МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра Радиотехнических систем
Отчет
по лабораторной работе №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. Заполнение массива с помощью датчика случайных чисел
Открыла проект InpTable из папки InpTable.
Сохранила проект с именем 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.