Jump to content


Photo
- - - - -

Пару задачек на C++


  • Please log in to reply
10 replies to this topic

#1 LaNick

LaNick

    True Member

  • True Members
  • PipPipPipPip
  • 107 posts
4
Обычный
  • Пол:Не определился

Posted 03 June 2012 - 00:49

Буду очень благодарен, если кто нибудь сможет помочь:)
Ну, и в долгу не останусь:)

1. Работа с битами.
Ввести последовательность из 8 символов. Если символ есть + – * / % , то заменить в нем четыре младших бита единицами, иначе – заменить 5-й бит нулем. Вывести исходную и преобразованную последовательности в символьной и восьмеричной формах.

2. Рекуррентные последовательности.
Напечатать значения очередных пар последовательностей и Произведение.

Attached File  2.png   9.69KB   0 downloads

3. Одномерные массивы.
Даны целые числа a1, …, a30. Все члены последовательности с четными номерами, предшествующие первому по порядку члену со значением max(a1,…, a30), домножить на max(a1, …, a30).

4. Двумерные массивы.
Задана матрица Z(5,6). Выбрать строку с наибольшей суммой элементов и вывести элементы этой строки в массив, затем каждый отрицательный элемент умножить на номер столбца. Вывести исходную и преобразованную матрицы, полученный массив.

5. Динамическое распределение памяти.
Получить квадратную матрицу порядка n:

Attached File  8.png   4.43KB   0 downloads

Матрица размещается в памяти динамически с помощью операции new, значение n вводится по запросу с клавиатуры. В конце работы программы освободить выделенную память. Вывести полученную матрицу.

6. Работа с символьными данными.
Прочитать из файла строку символов. Заменить в этой строке все целые числа соответствующим повторением следующего за ними символа (например "abc5xacb15y" – "abcxxxxxacbyyyyyyyyyyyyyyy"). Новую строку не создавать. Вывести исходную и преобразованную строки.

7. Классы. Протокол класса. Конструкторы и деструкторы.
Создать класс матрица Данный класс содержит указатель на long, размер строк и столбцов и состояние ошибки. Определить конструктор без параметров, конструктор с одним параметром и конструктор с двумя параметрами, деструктор. Определить методы доступа: возвращать значение элемента (i, j) и адрес этого элемента. Определить функцию печати. Определить функции сложения и вычитания (матрицы с матрицей), умножение матрицы на матрицу. Определить умножение матрицы на число. Проверить работу этого класса. В случае нехватки памяти, несоответствия размерностей, выхода за пределы устанавливать код ошибки.

8. Преобразование типов. Дружественные функции. Конструктор копирования.
Создать два класса вектор (double *) и матрица (double **). Определить конструкторы по умолчанию, с параметром, для класса матрица с двумя параметрами, копирования, деструкторы. Определить функцию умножения матрицу на вектор как дружественную.

9. Перегрузка операторов.
Создать объект – связный двунаправленный список, с перегруженными унарными операциями ++, --, как движение по списку. (Как постфиксными так префиксными).

10. Наследование. Иерархия и контейнерные классы.
Используя иерархию и композицию классов, создать бинарное дерево. У бинарного дерева есть корневой узел. Мы можем вставлять узел. Мы можем обходить в ширину и обратный обход. Узел может быть помещен в дерево двоичного поиска только в качестве концевого узла. Если дерево является пустым, то создается новый экземпляр класса узел дерева и узел помещается в дерево. Если дерево не является пустым, то программа сравнивает вставляемое в дерево значение со значением в корневом узле и если меньше, то помещает в левые поддеревья, а если больше, то в правые. Если значения равны, то выводится сообщение, что повтор и не вставляется.

11. Виртуальные функции.
Создать класс – данные – абстрактный базовый класс. Создать производные классы – данные типа сигнал, данные типа результат обработки и вспомогательные данные. Все данные имеют функции отображения, сохранения и обработки.

12. Применение основ программирования на языке высокого уровня в области химической технологии.
Создать класс «Скорость химической реакции».
Создать процедуру ввода параметров химической реакции:
- стехиометрические коэффициенты αi;
- число исходных реагентов m;
- константа скорости химической реакции k;
- концентрации исходных реагентов во времени Сi(t).

Создать функцию расчёта скорости химической реакции. Для вывода уравнения скорости химической реакции используется закон действия масс (основной постулат химической кинетики).
Если в реагирующей системе протекает реакция в соответствии со следующим стехиометрическим уравнением: α1А1 + α2А2 + … + αmАmk αm+1А m+1 + α m+2А m+2 + … + αnАn, то в соответствии с законом действия масс скорость элементарной химической реакции пропорциональна концентрациям реагирующих
веществ в степенях, равных их стехиометрическим коэффициентам:

Attached File  6-3.png   1.84KB   0 downloads

где k – константа скорости реакции (размерность зависит от порядка реакции); m – число реагентов в реакции; Сi – концентрация i-го компонента, моль/м3; αi – стехиометрический коэффициент i-го компонента.
Создать функцию вывода результатов расчёта скорости реакции в каждый момент времени.
4A = 4B + 2C + D
  • 0

#2 *soulburner*

*soulburner*

    You have reached level cap

  • True Members
  • PipPipPipPipPip
  • 5619 posts
225
Очень хороший
  • Пол:Мужчина

Posted 03 June 2012 - 01:32

[зануда_mode]
это называется не "помогите решить", а "решите за меня"
[/зануда_mode]
  • 3

#3 Igor Diakonov

Igor Diakonov

    Super True Member

  • Admin
  • PipPipPipPipPip
  • 10191 posts
226
Очень хороший
  • Пол:Мужчина
  • Город:SPB

Posted 03 June 2012 - 01:36

Техноложка чтоль?

Отправлено с моего GT-I9100 через Tapatalk
  • 0

#4 LaNick

LaNick

    True Member

  • True Members
  • PipPipPipPip
  • 107 posts
4
Обычный
  • Пол:Не определился

Posted 03 June 2012 - 01:37

Техноложка чтоль?

Отправлено с моего GT-I9100 через Tapatalk

Она самая
  • 0

#5 dr-evil

dr-evil

    Админ и человек!

  • True Members
  • PipPipPipPipPip
  • 1196 posts
36
Обычный
  • Пол:Мужчина

Posted 03 June 2012 - 02:49

цены-то не видно.
  • 2
General DC++ Hub (dc.elenet.info) более не админю. С Эленетом никак не связан.

#6 Igor Diakonov

Igor Diakonov

    Super True Member

  • Admin
  • PipPipPipPipPip
  • 10191 posts
226
Очень хороший
  • Пол:Мужчина
  • Город:SPB

Posted 03 June 2012 - 03:38

На кафедре на сервере все контрольные эти есть уже решенные - поищи :)

Отправлено с моего GT-I9100 через Tapatalk
  • 0

#7 DEVILIK

DEVILIK

    доброжелатель

  • True Members
  • PipPipPipPipPip
  • 13593 posts
-1736
Очень плохой
  • Пол:Мужчина
  • Город:Nothern Palmira

Posted 03 June 2012 - 03:44

Задачки-то простые.

Отправлено с моего GT-I9500 через Tapatalk
  • 1

#8 LaNick

LaNick

    True Member

  • True Members
  • PipPipPipPip
  • 107 posts
4
Обычный
  • Пол:Не определился

Posted 03 June 2012 - 08:02

На кафедре на сервере все контрольные эти есть уже решенные - поищи :)

Отправлено с моего GT-I9100 через Tapatalk

Смотрел уже, не было)

цены-то не видно.

Предложите сами?:)
  • 0

#9 Beowulf

Beowulf

    Злобный программист

  • True Members
  • PipPipPipPipPip
  • 1862 posts
197
Очень хороший
  • Пол:Мужчина
  • Интересы:Программирую все, что можно

Posted 04 June 2012 - 13:31

Ну зачем, зачем, зачем идти туда, где есть программирование? Если вы не можете открыть простейшую книжку про программирование и осилить это?
Задачи примитивные ведь.

И кстати, мне это не пригодится (с)
Мне это не нужно (с)
Мне некогда (с)
У меня другая специальность (с)

Это не причина, чтобы не уметь программировать :)
  • 2

#10 LaNick

LaNick

    True Member

  • True Members
  • PipPipPipPip
  • 107 posts
4
Обычный
  • Пол:Не определился

Posted 04 June 2012 - 22:22

может пригодится кому:)
Attached File  Prog.doc   283KB   27 downloads
правда не все работает:) но зачет поставили:)
  • 0

#11 Goofy

Goofy

    Member

  • True Members
  • PipPipPipPipPip
  • 2365 posts
-10
Обычный
  • Пол:Мужчина
  • Город:Len.p-t.96.3.

Posted 05 June 2012 - 04:44

А я напрягся.. и чего-то написал по первой задаче на C#.. но это, наверно, какое-то извращение)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace Task_1
{
    class Program
    {
        static void Main()
        {
            String[] symbol = new String[8];
            String[] symbolMod = new String[8];
            String[] binaryValue = new String[8];
            String[] binaryValueMod = new String[8];
            String[] byteValue = new String[8];
            String[] byteValueMod = new String[8];
            Char[] charValue = new Char[8];
            Byte[] bytes = new Byte[8];

            int[] bitArray = new int[8];
            bool[] booleanArray = { false, false, false, false, false, false, false, false };

            Console.WriteLine("Enter Symbol");

            for (int i = 0; i < 8; i++)
            {
                Console.Write("Symbol {0} : ", i.ToString());
                symbol[i] = Console.ReadLine();
                charValue[i] = Convert.ToChar(symbol[i]);
                bytes[i] = Convert.ToByte(charValue[i]);
                byteValue[i] = Convert.ToString(bytes[i]);
                binaryValue[i] = Convert.ToString(Convert.ToInt32(byteValue[i], 10), 2);

                bitArray = binaryValue[i].Select(letter => int.Parse(letter.ToString())).ToArray();

                if (charValue[i] == '+' ^ charValue[i] == '-' ^ charValue[i] == '*' ^ charValue[i] == '/' ^ charValue[i] == '%')
                {
                    for (int j = bitArray.Length - 4; j < bitArray.Length; j++)
                    {
                        bitArray[j] = 1;
                    }
                }
                else
                {
                    bitArray[bitArray.Length - 5] = 0;
                }

                for (int k = 0; k < 8; k++)
                {
                    booleanArray[k] = false;
                }

                for (int k = 0; k < bitArray.Length; k++)
                {
                    bool booleanValue = Convert.ToBoolean(bitArray[k]);
                    booleanArray[k + 8 - bitArray.Length] = booleanValue;
                }

                bool[] bools = booleanArray;
                Array.Reverse(bools);
                BitArray booleanArray2 = new BitArray(bools);
                Byte[] byteMod = new Byte[booleanArray2.Length / 8];

                booleanArray2.CopyTo(byteMod, 0);
                Array.Reverse(byteMod);
                byteValueMod[i] = Convert.ToString(byteMod[0]);
                binaryValueMod[i] = Convert.ToString(Convert.ToInt32(byteValueMod[i], 10), 2);
                symbolMod[i] = System.Text.Encoding.GetEncoding("utf-8").GetString(byteMod);
            }

            for (int i = 0; i < 8; i++)
            {
                Console.Write("\n");
                Console.Write("{0} --> {1} --> {2} --> {3} --> {4} --> {5}", symbol[i], byteValue[i], binaryValue[i], binaryValueMod[i], byteValueMod[i], symbolMod[i]);
            }
            Console.ReadKey();
        }
    }
}

вторую тоже написал, но может чушь тоже чушь)) в doc файле всё иначе как-то.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace task_2
{
    class Program
    {
        static void Main(string[] args)
        {
            Double x1 = 1, x2 = 1.5, y1 = -1, y2 = -0.6;
            Double x_old_1, x_old_2, y_old_1, y_old_2, x_new, y_new;
            Double P = y1 * y2;
            int i = 3;

            y_old_1 = y1;
            y_old_2 = y2;
            x_old_1 = x1;
            x_old_2 = x2;

            do
            {
                x_new = 5 * Math.Sin(y_old_2) + Math.Floor(y_old_1);

                y_new = 2 * x_old_2 + 3 * x_old_1 + 5 * y_old_2;
                
                P = P * y_new;

                x_old_1 = x_old_2;
                x_old_2 = x_new;
                y_old_1 = y_old_2;
                y_old_2 = y_new;

                i++;
            }
            while (i <= 100);
            Console.WriteLine("P = {0} ", P);
            Console.ReadKey();
        }
    }
}

  • 0


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users