Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский технический университет связи и информатики»
(МТУСИ)
Кафедра: Математической кибернетики и информационных технологий
Отчёт по лабораторной работе №3
Дисциплина: «Языки программирования»
по теме:
«Одномерные массивы и строки»
Вариант №19
Выполнил: студент группы МБСТ0000
Иванов И.И.
_________________________
Проверил:
Ассистент, Соловьев Александр Сергеевич
_________________________
Москва, 2024
Цель работы
Выполнить индивидуальное задание по теме «одномерные массивы и строки». Используя одномерные массивы и изучить такие понятия как линейная память, адресация, указатель, операции разыменования указателя и получения адреса, ASCII-код, терминальный нуль.
Индивидуальное задание
Вычислить среднее арифметическое отрицательных элементов массива A[60], полагая, что в массиве есть отрицательные значения.
Блок-схемы алгоритмов
Для решения поставленной задачи необходимо построить блок-схему алгоритма работы, на которой будет отражен общий принцип функционирования программы. Данная блок-схема представлена на рисунке 1.
Рисунок 1 – Укрупненная схема алгоритма решения задачи
Идентификаторы (описание переменных)
Идентификаторы и переменные описаны в таблице №1
Таблица №1 — Идентификаторы (описание переменных)
№ |
Имя |
Область видимости |
Тип |
Описание и назначение |
1. |
A |
main() |
int[] |
исходный массив |
2. |
n |
main() |
int |
счётчик отрицательных элементов массива |
3. |
sum |
main() |
int |
сумма всех отрицательных элементов массива |
4. |
average |
main() |
double |
среднее арифметическое отрицательных элементов массива |
5. |
size |
main() |
int |
размер исходного массива |
Исходный код программы
Следующий шаг - написание кода, позволяющий решить поставленную задачу. Исходный код программы, был представлен в листинге №1.
Листинг №1 - Исходный код программы
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int A[60] = {-75,-6,-36,-83,35,99,48,-54,-88,-74,-80,-79,10,-31,23,31,-26,-15,-41,63,-66,57,70,-46,60,-98,-85,-73,-77,-39,-34,39,-18,65,31,-63,-77,-4,-92,91,-60,-92,-29,18,90,54,13,-1,29,87,19,64,-1,70,-7,7,42,57,82,92};
int n = 0;
int sum = 0;
double average = 0;
int size = sizeof(A) / sizeof(A[0]);
cout << "Массив A[60]:";
for (int i = 0; i < size; i++)
{
cout << A[i] <<",";
}
cout << endl;
for (int i = 0; i < size ; i++)
{
if (A[i] < 0)
{
n++;
sum += A[i];
}
}
average = sum / n;
cout << "Cреднее арифметическое отрицательных элементов массива A[60] = " << average << endl;
}
Результат работы
Пользователю выдается информация о массиве A[60] и среднем арифметическом отрицательных элементов массива average, данный функционал представлен на рисунке 2.
Рисунок 2 — Результат работы программы (вывод среднее арифметическое отрицательных элементов массива A[60])
Заключение
В ходе выполнения лабораторной работы было выполнено данное индивидуальное задание. Также в ходе лабораторной работы было изучены теоретические сведения о понятие линейная память, адресация, указатель, операции разыменования указателя и получения адреса, ASCII-код, терминальный нуль.