МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
Электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра Телевидения и видеотехники
отчет
По лабораторной работе№10
По дисциплине «Информатика»
Тема: МАССИВЫ ДАННЫХ,
ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ ПРОЦЕССОВ
Студентка гр. 7106 | Рязанцева М. Н. | |
Преподаватель | Чиркунова А. А. |
Санкт-Петербург
2017
Цель работы: знакомство с массивами; освоение реализаций циклических алгоритмов при работе с массивами; знакомство с датчиком случайных чисел
Краткие теоретические положения
Массивы в С++
1. Одномерный массив.
Для объявления:
<ТипЭлементовМассива><ИмяМассива> [<КоличествоЭлементовМассива>];
Для обращения к элементу массива:
<ИмяМассива>[<НомерЭлемента>]
Нумерация элементов начинается с 0!!!!
2. Двумерный массив
Для объявления:
<ТипЭлементовМассива><ИмяМассива>[<КоличествоСтрок>][<КоличествоСтолбцов>];
Для обращения к элементу массива:
<ИмяМассива>[<НомерСтроки>][<НомерСтолбца>]
Нумерация элементов начинается с 0!!!!
Датчик случайных чисел
При работе с массивами очень удобен встроенный датчик случайных чисел (функция rand), который существенно облегчает задание значений элементов массива.
Синтаксис:
<ИмяПеременной> = rand();
Функция возвращает псевдослучайное целое число (тип int) в диапазоне от 0 до RAND_MAX. RAND_MAX – константа, определяющая максимальное значение, которое может быть возвращено функцией rand(). RAND_MAX = 232 = 4 294 967 296.
Примечания:
1. Для генерации случайных чисел, находящихся в диапазоне 0…N следует пользоваться следующей записью:
<ИмяПеременной> = rand() % (N+1);
2. Для генерации случайных чисел, находящихся в диапазоне -N…N следует пользоваться следующей записью:
<ИмяПеременной> = (rand() % (2N+1))-N;
3. Для генерации действительных чисел, находящихся в диапазоне 0…N следует пользоваться следующей записью:
<ИмяПеременной> = N.*rand()/RAND_MAX;
4. Поскольку генерируемые функцией rand числа являются псевдослучайными, при каждом новом запуске приложения будет вырабатываться одна и та же последовательность чисел. Если это недопустимо, генератор случайных чисел надо принудительно рандомизировать, т. е. задавать каждый раз новое случайное исходное (первое в последовательности) число. Для этого в тексте программы перед запуском датчика указывается оператор
randomize();
5. Функции rand и randomize описаны в файле stdlib.h, поэтому для использования описанных функций необходимо вручную подключить файл stdlib.h, используя директиву:
#include<stdlib.h>
Экспериментальные результаты
1. Ввод значений элементов массива
· Код
double Mas[100]={0};
intNEl;
cout<< «Vvedite koli4estvo elementovmassiva (<100)»;
cin>>NEl;
for (inti=1;i<=NEl;i++)
{
cout<< “VvediteznachenieelementaN”<<i;
cin>> Mas[i-1];
}
· Программа
· Код
intmain(intargc, char* argv[])
{
double Mas[100];
intNEl;
cout<< "Vvedite koli4estvo elementovmassiva (<100) ";
cin>>NEl; // количество элементов массива
for (int i=1;i<=NEl;i++) // ввод элементов массива
{
cout<< "Vvediteznachenieelementa N "<<i;
cin>> Mas[i-1];
}
for (int j = 0;j<NEl;j++)
{
cout<< Mas[j]<<", ";
}
cout<<endl;
return 0;
}
· Программа
· Код
double Mas[100]={0};
intNEl;
cout<< «Vvedite koli4estvo elementovmassiva (<100)»;
cin>>NEl;
for (int j = 0;j<NEl;j++)
{
cout<< Mas[j]<<", ";
}
cout<<endl;
· Программа
2. Заполнение массива с помощью датчика случайных чисел
· Код
double Mas[100],N;
intNEl, reg;
cout<< "Vvedite koli4estvo elementovmassiva (<100) ";
cin>>NEl; // количество элементов массива
cin>> N; cin>>reg;
for (inti=1;i<=NEl;i++) // ввод элементов массива
{ if (reg =1) { cout<< "Vvediteznachenieelementa N "<<i;
cin>> Mas[i-1]; }
else {if (reg=2) {Mas= rand() % (N+1);}
else {if (reg=3) {= (rand() % (2N+1))-N;}
else {if (reg=4) {Mas= N.*rand()/RAND_MAX;}}}};
for (int j = 0;j<NEl;j++)
{cout<< Mas[j]<<", ";}
cout<<endl;
return 0;
}
· Программа
Вывод: мы научились создавать массив и заполнять его вручную, а так же познакомились с датчиком случайных чисел, который заполняет массив случайными элементами