- •Министерство образования и науки рф
- •Наука информатика
- •Алгоритмы и программы
- •Информация, ее количественная мера и принципы кодирования
- •Принципы программного управления обработкой информации и структура современных пк
- •Принципы построения и технические характеристики устройств пк Основные устройства
- •Клавиатура
- •Лабораторная работа №1 название: знакомство с эвм, операционной системой и файловыми менеджерами
- •Начальные сведения об операционной системе dos
- •Файлы и каталоги на дисках
- •Работа с программой Dos Navigator
- •Краткая справка по Dos Navigator
- •Краткая справка по текстовому редактоРу среды
- •** Команды перемещения курсора **
- •** Команды удаления/вставки**
- •** Команды работы с блоками **
- •** Команды, передаваемые среде из редактора**
- •Лабораторная работа №3 название: организация ввода/вывода,вычисление выражений,использование стандартных функций
- •Лабораторная работа № 4 название: Организация циклов в программе с использованием условного операторА
- •Лабораторная работа №5 название: Организация циклов в программе с использованием операторов цикла
- •Лабораторная работа № 6
- •Лабораторная работа №7 название: работа с массивами чисел
- •Программа:
- •Лабораторная работа №8 название: упорядочение элементов массива
- •Программа:
- •Программа:
- •Лабораторная работа №9 название: работа с комбинированными типами данных
- •Программа:
- •Результаты работы программы
- •Лабораторная работа №10 название: организация программ с использованием подпрорамм
- •Программа:
- •Результаты работы программы
- •Лабораторная работа №11 название: организация программ с использованием модулей
Лабораторная работа №10 название: организация программ с использованием подпрорамм
ЦЕЛЬ ЗАДАНИЯ:
1. Получение навыков в написании программ с использованием подпрограмм-процедур и подпрограмм-функций.
2. Изучение механизма передачи параметров по значению и ссылке.
ПОСТАНОВКА ЗАДАЧИ:
Дано несколько массивов чисел. Длины массивов заданы в варианте. Требуется в каждом массиве найти наибольший и наименьший элементы и напечатать их. Вычисление максимальной и минимальной величин оформить в виде процедуры, глобальные параметры в процедуре не использовать.
СОДЕРЖАНИЕ ОТЧЕТА:
1. Постановка задачи для конкретного варианта
2. Блок-схему алгоритма.
3. Текст программы.
4. Результаты счета.
МЕТОДИЧЕСКИЕ УКАЗАНИЯ:
1. Если в качестве исходной информации в процедуру передается массив, то его следует передавать по ссылке для экономии памяти, так как в этом случае при вызове процедуры не образуется локальный массив.
2. Несмотря на то, что обрабатываемые массивы имеют разную длину, они описываются в программе как массивы одного и того же типа, так как при обращении к процедуре типы соответствующих формальных и фактических параметров должны совпадать.
3. Конкретные длины массивов должны быть описаны в разделе констант.
4. Приведенная ниже программа упорядочивает по не убыванию три массива разной длины (10, 5, 8) и выводит их на печать.
Программа:
PROGRAM MAS;
TYPE
A=ARRAY[1..20] OF REAL;
VAR
X,Y,Z:A; I,N: INTEGER;
D:TEXT;
(* ПРОЦЕДУРА ВВОДА *)
PROCEDURE WWOD(K:INTEGER; VAR M:A);
VAR J: INTEGER;
BEGIN
WRITELN('ВВЕДИТЕ',K:3,' ЭЛЕМЕНТОВ МАССИВА');
FOR J:=1 TO K DO READ(M[J]);
READLN
END;
(* ПРОЦЕДУРА СОРТИРОВКИ МАССИВОВ *)
PROCEDURE UP(K:INTEGER;VAR M:A);
VAR I,J:INTEGER; C: REAL;
BEGIN
FOR J:=K DOWNTO 2 DO
FOR I:=1 TO J-1 DO
IF M[I]>M[I+1] THEN
BEGIN
C:=M[I+1]; M[I+1]:=M[I]; M[I]:=C
END
END;
(* ПРОЦЕДУРА ВЫВОДА *)
PROCEDURE WUWOD(K:INTEGER;VAR M:A;L:BOOLEAN);
VAR J:INTEGER;
BEGIN
FOR J:=1 TO K DO
begin
IF L THEN WRITE(M[J]:6:2);
WRITE(D,M[J]:6:2)
END;
WRITELN;
WRITELN(D)
END;
BEGIN
ASSIGN(D,'LAB11.DAT');
REWRITE(D);
WWOD(10,X); WWOD(5,Y); WWOD(8,Z);
WRITELN(D,'ИСХОДНЫЕ МАССИВЫ');
WRITELN(D);
WRITELN(D,'МАССИВ X'); WUWOD(10,X,FALSE);
WRITELN(D,'МАССИВ Y'); WUWOD(5,Y,FALSE);
WRITELN(D,'МАССИВ Z'); WUWOD(8,Z,FALSE);
WRITELN(D);
UP(10,X); UP(5,Y); UP(8,Z);
WRITELN('МАССИВЫ ПОСЛЕ ПЕРЕСТАНОВКИ ');
WRITELN;
WRITELN(D,'МАССИВЫ ПОСЛЕ ПЕРЕСТАНОВКИ ');
WRITELN(D);
WRITELN(D,'МАССИВ X');WRITELN('МАССИВ X'); WUWOD(10,X,TRUE);
WRITELN(D,'МАССИВ Y');WRITELN('МАССИВ Y'); WUWOD(5,Y,TRUE);
WRITELN(D,'МАССИВ Z');WRITELN('МАССИВ Z'); WUWOD(8,Z,TRUE);
WRITELN(D,'РАБОТУ ВЫПОЛНИЛ ИВАНОВ И.И.');
CLOSE(D)
END.