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

Цвинтарный Иван 362-2 Лабораторная работа 5

.docx
Скачиваний:
2
Добавлен:
21.06.2023
Размер:
68.9 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ

РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

Томский Государственный Университет Систем Управления и Радиоэлектроники (ТУСУР)

Кафедра промышленной электроники (ПрЭ)

ОТЧЁТ

по результатам лабораторной работы №5

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

Одномерные массивы

Выполнил

Студент гр. 362-2

________ Цвинтарный И.В.

«___» __________

Проверил

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

_____________ Савин Д.А.

«___»__________

Томск 2022

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ 3

1. ХОД РАБОТЫ 4

2. ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ 5

3. БЛОК-СХЕМА ПОДПРОГРАММЫ 5

4. ПРОГРАММНЫЙ КОД – ТЕКСТ ПРОГРАММЫ 6

5. РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ 8

ЗАКЛЮЧЕНИЕ 9

ВВЕДЕНИЕ

В пятой лабораторной работе нам требуется научиться создавать массивы, выделять память под элементы массива и инициировать их значениями. Научиться обращаться к элементам массивов как при помощи оператора имя[индекс], так и посредством методики *(адрес + смещение). Освоить понятия: адрес массива, адрес элемента массива, смещение, индекс. Научиться передавать массив в функцию.

1. ХОД РАБОТЫ

1. Написать подпрограмму, выполняющую расчеты в соответствии со своим

вариантом индивидуального задания. Выполнение задания реализовать с

использованием массива соответствующего типа и размера.

2. Реализовать вызов функции из главной программы и вывод результатов

вычисления на экран. Отладить и протестировать программу.

3. Массив описать и инициировать в теле основной программы, передать его в функцию для расчетов. Вывести на экран адрес массива и его элементы.

4. Продемонстрировать в программе обращение к элементам массивов при помощи оператора имя[индекс], так и посредством методики *(адрес+смещение).

5. Отразить процесс трассировки кода, результаты работы программы, листинг программного кода с комментариями, блок-схему программы.

2. ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ

Вариант индивидуального задания – 23.

Рисунок 2.1 – Формулировка задания

3. БЛОК-СХЕМА ПОДПРОГРАММЫ

Рисунок 3.1 – Блок-схема подпрограммы

4. ПРОГРАММНЫЙ КОД – ТЕКСТ ПРОГРАММЫ

#include <iostream>

#include <time.h>

using namespace std;

#define rnd1(a, b) (rand()%((b) - (a) + 1) + (a))

void minmax(int* m, int n, int* min, int* imin, int* max, int* imax, int* mn, int* imn, int* mx, int* imx);

int main()

{

srand(time(NULL));

setlocale(LC_ALL, "RUS");

int n;

cout << "Введите размер массива: ";

cin >> n;

int* m = new int[n];

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

{

m[i] = rnd1(-2, 2);

}

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

{

cout << "m[" << i << "] = " << m[i] << endl;

}

int min = 0;

int max = 0;

int imin = 0;

int imax = 0;

int mn = 0;

int mx = 0;

int imn = 0;

int imx = 0;

minmax(m, n, &min, &imin, &max, &imax, &mn, &mx, &imn, &imx);

cout << "Первый минимум: " << mn << ", индекс: " << imn << endl;

cout << "Последний минимум: " << min << ", индекс: " << imin << endl;

cout << "Первый максимум: " << mx << ", индекc: " << imx << endl;

cout << "Пследний максимум: " << max << ", индекс: " << imax << endl;

delete[] m;

}

void minmax(int* m, int n, int* min, int* imin, int* max, int* imax, int* mn, int* imn, int* mx, int* imx)

{

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

{

if (*min >= m[i])

{

*min = m[i];

*imin = i;

}

if (*max <= *(m + i))

{

*max = *(m + i);

*imax = i;

}

if (m[i] < *mn)

{

*mn = m[i];

*imn = i;

}

if (m[i] > *mx)

{

*mx = *(m + i);

*imx = i;

}

}

}

5. РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ

Рисунок 5.1 – Результат работы программы

ЗАКЛЮЧЕНИЕ

В ходе лабораторной работы научились создавать массивы, выделять память под элементы массива и инициировать их значениями, обращаться к элементам массивов как при помощи оператора имя[индекс], так и посредством методики *(адрес + смещение). Научиться передавать массив в функцию. Составили блок-схему для демонстрации работы нашей подпрограммы. Вывели требуемые по заданию значения индексов максимального и минимального чисел массива.