Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

С++ / лаба5 / отчет5

.docx
Скачиваний:
6
Добавлен:
04.06.2022
Размер:
329.01 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра Радиотехнических систем

Отчет

по лабораторной работе №5

по дисциплине «Информатика»

Тема: МАССИВЫ ДАННЫХ, ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ ПРОЦЕССОВ.

Студентка гр. 1101

Кузембаева А. С.

Преподаватель

Андреева О. М.

Санкт-Петербург

2021

Цель работы: знакомство с массивами; освоение реализаций циклических алгоритмов при работе с массивами; знакомство с датчиком случайных чисел.

Упражнение 1. Ввод значений элементов массива.

1. Создала новый проект. Сохранила его в папке «InpTable». Имя проекта – InpTable, имя файла модуля – unitTable.

2. Перешла в функцию main, набрала в ней следующий код:

#include <iostream>

int main()

{

using namespace std;

double Mas[100] = { 0 };

unsigned char NEl;

cout << "Vvedite koli4estvo elementov massiva(< 100)";

cin >> NEl;

for (int i = 1; i <= NEl; i++)

{

cout << "Vvedite znachenie elementa N" << i;

cout << endl;

cin >> Mas[i - 1];

}

return 0;

}

3. В режиме отладчика запустила программу до строки return 0. Задала количество элементов – 5, значения элементов – 20, 10, 0, -10, -20.

4. Открыла «Контрольные значения» и добавила в него переменную Mas. Просмотрела результат.

5. Добавила в «Контрольные значения» переменные Mas[0], Mas[2], Mas[4]. Просмотрела результат, сравнила его с тем, что наблюдалось в п. 4. Сделала вывод, какой из способов (п. 4 или п. 5) удобнее.

Вывод: п. 4 удобнее, так как видно сразу все значения, и не нужно вводить каждый элемент отдельно.

6. Сбросила программу.

7. Убрала в строке double Mas[100]={0} символы ={0}.

8. Вновь выполнила п. 3 и просмотрела «Контрольные значения». Какие изменения наблюдаются? Почему?

Так как было ={0}, он заполнял не тронутые значения нулями. Без инициализации массива значение является случайным значением из стека.

9. Сбросила программу.

10. Вернулась в функцию main() и после окончания цикла по i набрала следующий код:

for (int j = 0; j < NEl; j++)

{

cout << Mas[j] << ", ";

}

cout << endl;

11. Не запуская программу, поняла действия, выполняемые в вышеприведенном коде: Он заполняет массив значениями, которые мы ввели.

12. Проверила свои размышления: запустить программу, задать количество элементов – 5, значения элементов – 20, 10, 0, -10, -20.

13. Выполняется по желанию: изменила код в блоке вывода так, чтобы после значения последнего элемента массива не выводилась бы запятая.

14. Закомментировала строки ввода NEl и цикла по i. Вспомнив возможности инициализации, задала значения первым шести элементам массива 20, 0.2, 30, 0.3, 40, 0.4

15. Сохранила проект.

Упражнение 2. Заполнение массива с помощью датчика случайных чисел

  1. Открыла проект InpTable из папки InpTable.

  2. Сохранила проект с именем RandTable в новой папке.

3-4. В блоке ввода исходных данных добавила ввод переменной, отвечающей за режим заполнения массива. Имя переменной – Reg. Будем полагать следующий принцип работы: при Reg=1 – массив заполняется вручную с клавиатуры, при Reg=2 генерируются целые случайные числа от 0 до N, при reg=3 генерируются целые случайные числа от –N до N, а при Reg=4 генерируются действительные случайные числа в диапазоне 0 …N. После блока ввода исходных данных написала код, действующий согласно алгоритму, представленному на рис. 7 (по возможности, код оптимизировать!):

#include <iostream>

#include <stdlib.h>

using namespace std;

int main()

{

int reg = 1;

cout <<"Vvedite 1 chtob vibrat colichestvo elementov massiva i samostoyatelno zapolnit ego.";

cout << endl;

cout << "Vvedite 2 chtob vibrat colichestvo elementov massiva i zapolnit randomno s pomosheu PK (ot 0 do N,bez drobnih).";

cout << endl;

cout << "Vvedite 3 chtob vibrat colichestvo elementov massiva i vibrat zapolnit randomno s pomosheu PK (ot -N do N,bez drobnih).";

cout << endl;

cout << "Vvedite 4 chtob vibrat colichestvo elementov massiva i vibrat zapolnit randomno s pomosheu PK (ot 0 do N,vkluchaya drobnie).";

cout << endl;

cin >> reg;

int a;

if (reg == 1)

{

int Mas[100] = { 0 };

unsigned int NEl;

cout << "Vvedite koli4estvo elementov massiva(< 100)\n";

cin >> NEl;

for (int i = 1; i <= NEl; i++)

{

cout << "Vvedite znachenie elementa N" << i;

cout << endl;

cin >> Mas[i - 1];

}

for (int j = 0; j < NEl; j++)

{

cout << Mas[j] << ", ";

}

cout << endl;

}

if (reg == 2)

{

int NEl2;

int Mas2[100] = {};

cout << "Vvedite koli4estvo elementov massiva(< 100)\n";

cin >> NEl2;

cout << endl;

cout << endl;

for (int i = 0; i <= NEl2; i++)

{

Mas2[i] = 0+ rand() % 2147483640;

cout << Mas2[i] << endl;

}

cout << endl;

cin >> a;

}

if (reg == 3)

{

int NEl3;

int Mas3[100] = {};

cout << "Vvedite koli4estvo elementov massiva(< 100)\n";

cin >> NEl3;

cout << endl;

cout << endl;

for (int i = 0; i <= NEl3; i++)

{

Mas3[i] =rand() % 2147483640 - 2147483640;

cout << Mas3[i] << endl;

}

cout << endl;

cin >> a;

}

if (reg == 4)

{

float NEl4;

float Mas4[100] = {};

cout << "Vvedite koli4estvo elementov massiva(< 100)\n";

cin >> NEl4;

cout << endl;

cout << endl;

for (int i = 0; i <= NEl4; i++)

{

Mas4[i] = rand() % 2147483640 - 2147483640;

cout << Mas4[i] << endl;

}

cout << endl;

cin >> a;

}

return 0;

}

5.