- •Предисловие
- •Общая схема выполнения лабораторной работы
- •Требования к программе
- •Содержание программы
- •Общие пояснения
- •Var r,d: real; {раздел описаний переменных может
- •Требования к программе
- •Общие пояснения
- •If Pr then {здесь Pr – логическая переменная,}
- •Разбор контрольного варианта Задание
- •Лабораторная работа № 3
- •Задачи лабораторной работы Вопросы, изучаемые в работе
- •Задание (общее ко всем вариантам).
- •Требования к программе.
- •Общие пояснения
- •Разбор контрольного варианта Задание
- •Алгоритм
- •Текст программы
- •Vvod: writeln('Сколько будет чисел?');
- •Варианты заданий
- •Требования к программе
- •Содержание программы
- •Общие пояснения
- •Var Massiv1,Nmbs:IntMasMax; {завели 2 целочисл. Массива}
- •Разбор контрольного варианта Задание.
- •Текст программы
- •Результаты работы
- •Варианты заданий
- •Требования к программе
- •Содержание программы.
- •Общие пояснения
- •Var {здесь выделяется место под все массивы }
- •Разбор контрольного варианта Задание
- •Формирование таблицы идентификаторов
- •Алгоритм
- •Текст программы.
- •Содержимое файла результатов umnik5.Res
- •Варианты заданий
- •Требования к программе
- •Содержание программы
- •Общие пояснения
- •Разбор контрольного варианта Задание
- •Рассмотрение метода решения
- •Алгоритм
- •Текст программы.
- •Vvod_eps:writeln('введите минимальный размер слагаемого);
- •Результаты расчета
- •Варианты заданий
- •Требования к программе и отчету по работе
- •Содержание программы.
- •Пояснения к лабораторной работе Общие пояснения к использованию процедур и функций.
- •Механизм параметров
- •Разбор контрольного варианта Задание
- •Б Рисунок 7. Алгоритм 31-го варианта лок-схема алгоритма Текст программы.
- •Общие пояснения Графический режим экрана
- •Алгоритмы построения графиков на экране
- •Стандартный модуль работы с графическим экраном Graph
- •Разбор контрольного варианта № 31 Задание
- •Алгоритм
- •Текст программы
- •X,y, { текущие значения переменных х и y }
- •Xmin,Xmax,{минимальное и максимальное значения х на графике}
- •Imin,Imax, {координаты экрана, соответствующие Ymin и Ymax}
- •Разбор контрольного варианта № 32 Задание
- •X,y:mas; { текущие значения переменных х и y }
- •Xmin,Xmax,t,tmin,tmax, { минимальное и максимальное значения х на графике }
- •Imin,Imax, { координаты экрана, соответствующие Ymin и Ymax }
- •Варианты заданий
- •Требования к программе
- •Содержание программы
- •Общие пояснения
- •Односвязные списки
- •Двусвязные списки
- •Нульсвязные списки
- •Описание файлов с данными
- •Inc(I); { стандартная процедура увеличения на 1 }
- •Разбор контрольного варианта Задание
- •Содержание программы
- •Алгоритм
- •Текст программы
- •If Beg then { если добавляем в начало }
- •If Beg then { если удаление из начала }
- •Варианты заданий
- •Литература
- •Приложение а. Система меню и команды Турбо-Паскаля Меню системы программирования Турбо-Паскаль
- •Главное меню
- •Опции главного меню
- •Локальные меню
- •Основные команды встроенного редактора текста
- •Приложение б. Сообщения об ошибках
- •Сообщения об ошибках на шаге выполнения
- •Приложение в. Описание числовых файлов для лабораторных работ
- •I,j : integer; {I- счетчик элементов массива, j - номер символа в файле }
- •Приложение г. Таблица ascii-кодов (с альтернативной кодировкой)
- •Содержание
Механизм параметров
В список параметров включаются исходные данные для работы процедуры/функции (входные параметры) и, если надо, указания, куда поместить результаты работы процедуры (выходные параметры).
Существует два способа передачи данных через список параметров из вызывающей программы в процедуру. Первый способ заключается в том, что процедуре передается некоторое данное в виде его значения, например, если данное числового типа, передается само число. Второй способ заключается в том, что передается не значение данного, а адрес ячейки, где это данное находится (говорят, что передается имя переменной). Таким образом, параметры могут передаваться по значению и по имени. В каких случаях какой способ следует использовать? Обычно входные параметры передаются в процедуру по значению, а выходные – всегда по имени.
Есть некоторые особенности при передаче массивов (и других составных данных большого размера) в качестве фактических параметров. Даже если массив представляет собой входные данные и не меняется в процессе выполнения процедуры, его обычно передают по имени, так как это требует передачи только адреса начала массива, а не копии всего массива, как это потребовалось бы при передаче массива по значению. Кроме того, массив основной программы (фактический параметр) и массив в списке формальных параметров должны иметь один и тот же тип – т.е. должен использоваться один и тот же явный описатель.
Отметим, что когда параметры передаются по имени, они занимают в памяти по 4 байта. Подробнее об этом смотри лабораторную работу № 9.
Примеры написания списков формальных и фактических параметров:
..(A,B,C:real;VAR X1,X2:real;VAR N:integer); – формальные,
..(0.762,Alfa,C[3]-1.2,X,Y,Num); соответствующие фактические.
Для передачи массива в процедуру:
TYPE
Vect = array[1..10] of real;
Mas5x8 = array[1..5,1..8] of integer;
. . .
VAR
C1,C2: Vect;
A: Mas5x8;
Metod: Integer;
. . .
PROCEDURE GetMatr(M:integer; Var X,Y:Vect;
Var Z:Mas5x8;...);
VAR A1,C1:integer;
. . .
Begin
<Операторы тела процедуры >
End;
FUNCTION MinValueMatr( Var Z:Mas5x8; M,N:integer)
:Integer;
VAR MinZ, I, j :integer;
Begin
<Операторы тела функции >
MinValueMatr:= MinZ;
End;
BEGIN
<Операторы основной программы >
. . .
GetMatr(0, C2, C1, A,...); {обращение к процедуре}
. . .
If MinValueMatr(A,5,7) div 2 < 3 then {обращение к функции}
. . .
END.
Разбор контрольного варианта Задание
Таблица 24. Данные к заданию 31 варианта
№ вар. |
Программа |
Процедуры (Функции) |
M<= |
N<= |
Файл с данными |
31 |
Прямоугольный массив заполнить числами из файла, начиная с 33 числа. С помощью функции в исходном массиве сделать элементы последнего столбца равными сумме всех четных элементов соответствующей строки. |
1)Исходный и полученный массивы печатать процедурой. 2)Построить функцию, которая возвращает сумму четных по значению элементов заказанной строки прямоугольного массива. |
13 |
10 |
DATI.BIN |
Таблица идентификаторов
Составляется как для основной программы, так и для каждой подпрограммы пользователя.
Таблица 25. Идентификаторы программы 31 варианта
Имя |
Тип |
Р-р (байт) |
Назначение |
Основная программа |
|||
KorrMass |
Имя программы |
- |
Обработка массива |
Massiv |
Описатель типа |
- |
Описатель целочисл. массивов |
Stroka |
Описатель типа |
- |
Описатель строки до 30 символов |
M |
Целое |
2 |
Количество строк массива |
N |
Целое |
2 |
Количество столбцов массива |
i |
Целое |
2 |
Номер текущей строки массива |
j |
Целое |
2 |
Номер текущего столбца массива |
Fin |
Двоичный файл прямого доступа |
2 |
Файл с исходн. целыми числами |
Fout |
Последовательный символьный файл |
128 |
Файл с результатами работы |
Ouest1 |
Инициализирован-ная строка |
31 |
Запрос числа строк массива |
Ouest2 |
Инициализирован-ная строка |
31 |
Запрос числа столбцов массива |
A |
Целочисленный массив |
260 |
Обрабатываемый массив |
InpMN |
Имя процедуры |
- |
Ввод размеров массива |
PrintMas |
Имя процедуры |
- |
Вывод массива в файл протокола |
DATI.BIN |
Строка – константа |
9 |
Имя набора данных с числами |
Umnik_7.res |
Строка – константа |
12 |
Имя набора данных с протоколом |
Sum |
Имя функции |
- |
Суммирование четных значений |
InpMN –- Процедура ввода размеров массива |
|||
Txt |
Строка |
31 |
Формальный параметр – строка запроса |
Kol |
Адрес целочисленной переменной |
4 |
Формальный параметр – имя переменной для результата ввода |
MaxK |
Целое |
2 |
Формальный параметр – предельное возможное значение |
PrintMas –- Процедура вывода массива в файл протокола (распечатки массива) |
|||
Txt |
Строка |
256 |
Формальный параметр – текст заголовка |
Mas |
Адрес массива |
4 |
Формальный параметр – имя выводимого массива |
NStr |
Целое |
2 |
Формальный параметр – число строк массива |
NKol |
Целое |
2 |
Формальный параметр – число столбцов массива |
i |
Целое |
2 |
Номер строки |
j |
Целое |
2 |
Номер столбца |
Sum – Функция вычисления суммы четных элементов заданной строки массива |
|||
Mas |
Адрес массива |
4 |
Формальный параметр – имя исходного массива |
N |
Целое |
2 |
Формальный параметр – число столбцов массива |
St |
Целое |
2 |
Формальный параметр – номер обрабатываемой строки |
J |
Целое |
2 |
Номер элемента |
S |
Целое |
2 |
Сумма |
Odd |
Стандартная логическая функция |
- |
Проверка нечетности аргумента |