- •Введение
- •Распределение тем лабораторных занятий по времени
- •1. Требования к оформлению и защите лабораторных работ
- •Лабораторная работа №1. «проектирование алгоритмов. Блок-схема алгоритма»
- •Лабораторная работа 2. «Знакомство с редактором Turbo Pascal»
- •Структура программы.
- •Задание 4. Вычислить значение функции
- •Лабораторная работа 3. «Операторы циклов»
- •Procedure имя (список параметров);
- •Лабораторная работа №5. «массивы».
- •Варианты заданий для лабораторной работы
- •Лабораторная работа №6. «основы обработки реляционных баз данных средствами
- •1. 2. Задания для самостоятельной работы
- •Лабораторная работа №7. «Основы работы с языком html»
- •Лабораторная работа №8. «информационная безопасность. Основы криптографии»
- •Тулыио целзио тсдизло
- •Современные алгоритмы шифрования
- •10. Перечень основной и дополнительной литературы
- •Приложение 1
- •Общее строение программы
- •Основные типы переменных
- •Конструкции для описания величин
- •Оператор присваивания
- •Модуль crt (cathode ray tube)
- •Арифметические средства языка
- •Логические средства языка
- •Операторы цикла
- •Массивы
- •Процедуры и функции пользователя
- •Символьные типы данных
- •Множества
- •Типы и записи
- •Ссылки и указатели
Procedure имя (список параметров);
Список параметров - перечень имен для обозначения исходных данных и
результатов работы процедуры с указанием их типов. Параметры, перечисляемые в списке, называют ФОРМАЛЬНЫМИ.
Пример:
Procedure MyProg(var A:Integer, B:char);
За заголовком могут следовать такие же разделы, как и в основной программе. Процедура завершается знаком ";". Для вызова процедуры из основной программы или другой подпрограммы следует написать оператор, состоящий из имени процедуры и списка фактических параметров, которые должны совпадать по типу с формальными параметрами процедуры.
Подпрограмма-функция предназначена для вычисления какого-либо параметра. Заголовок функции имеет отличие от заголовка процедуры - кроме cписка формальных параметров в заголовке указывается имя и тип возвращаемого значения.
ОТЛИЧИЯ от процедур:
1. В описании указывается тип результата функции.
2. Результат выполнения функции - ОДНО значение.
3. Имени функции обязательно присваивается результат.
4. Результат передается в программу как значение имени этой функции.
5. Функция записывается в выражениях, а не отдельной командой как процедура.
Описание функции аналогично описанию процедуры:
FUNCTION имя ( список формальных параметров ): тип;
[var локальные переменные: тип;]
BEGIN
блок функции
END;
Допускается описание функции без параметров:
FUNCTION имя : тип;
Пример:
Function MyFunc(var A:Integer, B:char) :Integer ;
Так функция MyFunc возвращает значение типа Integer.
Для вызова функции из основной программы или другой подпрограммы следует в выражении, где необходимо использовать ее значение, указать имя функции со списком фактических параметров, которые должны совпадать по количеству и типам с формальными параметрами.
Пример 1: Ввести две матрицы. Найти сумму элементов каждой из матриц.
Program Primer;
Uses CRT;
Var {описание глобальных переменных}
a:array [1..10,1..8] of integer;
n,m,i,j,f,l: integer;
s1,s2:integer;
{процедура ввода матрицы}
procedure vvod(x,y:integer); {x и y – формальные параметры}
begin
for i:=1 to x do
for j:=1 to y do
readln(a[i,j]);
end; {vvod}
{процедура вывода на экран матрицы}
procedure out (x,y:integer); {x и y – формальные парметры}
begin
for i:=1 to x do
begin
for j:=1 to y do
write (a[i,j],' ');
writeln;
end;
end {out}
{функция подсчета суммы}
function Mayf (x,y:integer):integer; {x и y – формальные параметры}
var
s:integer; {описание локальных переменных}
begin
s:=0;
for i:=1 to x do
for j:=1 to y do
s:=s+a[i,j];
mayf:=s;
end; {Mayf}
{основная программа}
BEGIN
CLRSCR;
READ(N,M);
{вызов процедуры ввода, n и m – фактические параметры}
VVOD(N,M);
{вызов процедуры вывода на экран, n и m – фактические параметры }
OUT(N,M);
{вызов функции для подсчета суммы элементов первой матрицы}
S1:=MAYF(N,M);
READ(F,L);
{вызов процедуры ввода, f и l – фактические параметры}
VVOD(F,L);
{вызов процедуры вывода на экран, f и l – фактические параметры }
OUT(F,L);
{вызов функции для подсчета суммы элементов второй матрицы}
S2:=MAYF(F,L);
WRITE ('S1=',S1,' ','S2=',S2);
READKEY;
END.
Пояснения к задаче:
При составлении алгоритмов, блок, в котором происходит обращение к подпрограмме, изображается так:
Алгоритм решения этой задачи будет состоять из четырех блок-схем:
1. Блок-схема основной программы,
2. Блок-схема процедуры VVOD,
3. Блок-схема процедуры OUT,
4. Блок-схема функции Mayf
Варианты заданий для лабораторной работы
Ввести две матрицы nxm. Найти сумму максимальных элементов этих матриц.
Ввести две матрицы nxm. Найти суммы минимальных элементов этих матриц.
Ввести две матрицы nxm. Найти суммы всех четных элементов этих матриц.
Ввести две матрицы nxm. Найти сумму среднеарифметических значений этих матриц.
Ввести две матрицы nxm. Найти суммы всех положительных элементов этих матриц.
Ввести две матрицы nxm. Найти суммы всех отрицательных элементов этих матриц.
Ввести две матрицы nxm. Найти количество положительных элементов в каждой из матриц и выдать соответствующие сообщения.
Ввести две матрицы nxm. Найти общее количество элементов, кратных 5.
Ввести две матрицы nxm. Найти общее количество нулевых элементов в этих матрицах.
Ввести две матрицы mxm. Найти общее количество нулевых элементов на главных диагоналях этих матриц.
Ввести две матрицы mxm. Найти количество положительных элементов, стоящих на главных диагоналях каждой из матриц и выдать соответствующие сообщения.
Ввести две матрицы nxm. Найти количество нечетных элементов в нечетных столбцах каждой из матриц. Выдать на экран сообщение о матрице с наибольшим количеством таких элементов.
Ввести две матрицы nxm. Найти сумму элементов в каждой из четных строк матриц.
Ввести две матрицы nxm. Найти в каждой матрице количество элементов, равных заданному числу K.
Ввести две матрицы nxm. Заменить в каждой матрице нулевые элементы на -1.
Вопросы для самоконтроля
Что такое функция?
Что такое процедура?
Чем отличается функция от процедур?
Можно ли описать функцию без параметров?
Как оформляются функции и процедуры в блок-схеме?
Рекомендованная литература [1-4, 5,9]