Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР_7 отчет.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
232.29 Кб
Скачать

Министерство образования и науки Российской Федерации

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

высшего образования «Тульский государственный университет»

Кафедра «Информационная безопасность»

Подпрограмма - процедура

отчет по

лабораторной работе № 1

по курсу

Программирование

Вариант 11

Выполнил: ст. гр. 221041 Макаров А.В

Проверил: асс, каф. ИБ Кушнир О.А.

Тула, 2015 г.

Цель и задача работы

Изучить работу с подпрограммами-процедурами. Реализовать программу лабораторной работы номер 5 с подпрограммой-процедурой, например ввод в одной подпрограмме-процедуре, вывод в другой подпрограмме-процедуре, а обработка в третьей подпрограмме-процедуре. Обрабатываемые данные передаются в подпрограмму-процедуру и возвращаются оттуда через параметры.

Задание на работу

Задана последовательность из N вещественных чисел. Вычислить число наиболее приближенное к среднему арифметическому максимального и минимального чисел данной последовательности

Схема алгоритма

На рисунке 1 представлена схема алгоритма поиска наиболее приближенное к среднему арифметическому максимального и минимального чисел данной последовательности

Рисунок 1 - Схема алгоритмы решения поставленной задачи

На рисунке 2 представлена схема алгоритма ввода пользователем числовой последовательности.

Рисунок 2 - Схема алгоритмы ввода числовой последовательности

На рисунке 3 представлена схема алгоритма поиска максимального и минимального значения числовой последовательности.

Рисунок 3 - Схема алгоритма поиска максимального и минимального элемента

числовой последовательности

На рисунке 4 представлена схема алгоритма нахождения числа наиболее приближенного к среднему арифметическому.

Рисунок 4 - Схема алгоритма нахождения числа наиболее приближенного к среднему арифметическому

На рисунке 5 представлена схема алгоритма вывода результата работы программы.

Рисунок 5 - Схема алгоритма вывода результата работы программы

Код программы

{

Данная программа предназначена для поиска числа

наиболее приближенного к среднему арифметическому максимального и

минимального чисел данной последовательности

}

PROGRAM TEST;

CONST

MAX_SIZE = 100; { максимальный размер массива }

TYPE

VECTOR = array [1..MAX_SIZE] of REAL; { тип для числовой последовательности }

{Подпрограмма ввода значений числовой последовательности

pArray - числовая последовательность

Size - размерность последовательности}

PROCEDURE EnterArrayValue(VAR pArray : VECTOR; Size : INTEGER);

VAR

Index : INTEGER;

CheckInput : string;

Err : INTEGER;

BEGIN

WRITELN('Enter array [', Size,']');

for Index := 1 to Size do

BEGIN

REPEAT

WRITE('[',Index,']: ');

READLN(CheckInput);

VAL(CheckInput,pArray[Index],Err);

UNTIL (Err = 0);

END;

END;

{

Подпрограмма ввода значений числовой последовательности

pArray - числовая последовательность

Size - размерность последовательности

Min - минимальное значение

Max - максимальное значение

}

PROCEDURE FindMinMaxElements(VAR pArray : VECTOR; Size : INTEGER; VAR Min : REAL; VAR Max : REAL);

VAR

Index : INTEGER;

BEGIN

Max := Round(pArray[1]);

Min := Max;

for Index := 1 to Size do

BEGIN

if (pArray[Index] > Max) then

Max := Round(pArray[Index]);

if (pArray[Index] < Min) then

Min := Round(pArray[Index]);

END;

END;

{

Подпрограмма поиска наиболее приближенного числа

pArray - числовая последовательность

Size - размерность последовательности

Min - минимальное значение

Max - максимальное значение

NearNumber - наиболее приближенное число

}

PROCEDURE FindNearNumber(VAR pArray : VECTOR; Size : INTEGER; Min : REAL; Max : REAL; Average : REAL; VAR NearNumber : REAL);

VAR

Sub : REAL;

Index : INTEGER;

BEGIN

NearNumber := pArray[1];

Sub := abs(Max - Min);

for Index := 1 to Size do

BEGIN

if (abs(pArray[Index] - Average) < Sub) then

BEGIN

Sub := abs(pArray[Index] - Average);

NearNumber := pArray[Index];

END;

END;

END;

{

Подпрограмма вывода результата работы программы

NearNumber - наиболее приближенное число

}

PROCEDURE PrintResult(Result : REAL);

BEGIN

WRITELN('Near number: ',Result:1:3);

END;

{==========================================================}

VAR

RealArray : VECTOR;

Size: INTEGER;

Max : REAL;

Min : REAL;

Average : REAL;

NearNumber : REAL;

BEGIN

WRITELN('Данная программа предназначена для поиска в последовательности число, наиболее приближенное'

' к среднему арифметическому максимального и минимального числа последовательности');

WRITE('Enter element count [1..100]: ');

READLN(Size);

EnterArrayValue(RealArray, Size);

FindMinMaxElements(RealArray,Size,Min,Max);

Average := (Min + Max) / 2;

WRITELN('Average: ',Average);

FindNearNumber(RealArray,Size,Min,Max,Average,NearNumber);

PrintResult(NearNumber);

END.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]