Лабораторная работа №5
.docx
Министерство образования и науки Российской федерации
Томский государственный университет систем управления и
радиоэлектроники (ТУСУР)
Лабораторная работа по информационным технологиям:
Лабораторная работа № 5. Одномерные массивы.
Вариант 23
Выполнил
Студент заочного
отделения гр. З-66
Шерстюк П.В.
_________
Проверил
Старший преподаватель
кафедры ПРЭ
Савин Д.А.
_________
Томск 2017
Цель работы
Научиться создавать массивы, выделять память под элементы массива и инициировать их значениями. Научиться обращаться к элементам массивов как при помощи оператора имя[индекс], так и посредством методики *(адрес+смещение). Освоить понятия: адрес массива, адрес элемента массива, смещение, индекс. Освоить пошаговую трассировку программы с массивами, научиться отражать в окне watch элементы массива и их адреса. Научиться передавать массив в функцию.
Задание на лабораторную работу
1. Написать подпрограмму, выполняющую расчеты в соответствии со своим вариантом индивидуального задания. Выполнение задания реализовать с использованием массива соответствующего типа и размера.
2. Реализовать вызов функции из главной программы и вывод результатов вычисления на экран. Отладить и протестировать программу. В процессе отладки пользоваться средствами пошаговой трассировки кода, продемонстрировать в окне Watch элементы массива и их адреса.
3. Массив описать и инициировать в теле основной программы, передать его в функцию для расчетов. Вывести на экран адрес массива и его элементы.
4. Продемонстрировать в программе обращение к элементам массивов при помощи оператора имя[индекс], так и посредством методики *(адрес+смещение).
5. В отчете отразить процесс трассировки кода, результаты работы программы, листинг программного кода с комментариями, блок-схему программы.
Исходный код программы:
#include "stdafx.h"
using namespace std;
void minmax(int *massiv, int N){
int min = massiv[0];
int max = massiv[0];
int k, n;
for(int i=1;i<N;i++){
if(massiv[i]<=min)
{min= massiv[i];k=i;}
if(massiv[i]>max)
{max= massiv[i];n=i;}
}
cout<<"min ["<<k+1<<"] = "<<min<<"\nmax ["<<n+1<<"] = "<<max<<endl;
}
void _tmain(int argc, _TCHAR* argv[])
{
srand(time(NULL)); //инициализация рандомника
int N,i; //объявление числовых переменных
int *massiv; //объявление динамического массива
cout<<"Vvedite kolichestvo znachenii: ";
cin>>N;
massiv = new int[N]; //задавание размерности
cout<<"Massiv = ";
for(i=0;i<N;i++){ // заполнение массива случайными числами
massiv[i]=rand()%201-100;
}
for(i=0;i<N;i++){ // вывод массива чисел
cout<<massiv[i]<<" ";
}
cout<<endl;
minmax(massiv,N);
delete [] massiv; //очистка памяти
system("pause");
}
Результат работы программы
Вывод:
Мы научились создавать массивы, выделять память под элементы массива и инициировать их значениями. Освоили обращение к элементам массивов как при помощи оператора имя[индекс], так и посредством методики *(адрес+смещение). Изучили понятия: адрес массива, адрес элемента массива, смещение, индекс. Освоили пошаговую трассировку программы с массивами, научились отражать в окне watch элементы массива и их адреса. Научились передавать массив в функцию.