- •Введение.
- •1. Среда языка программирования Паскаль.
- •1.1. Структура программы на Паскале.
- •Тело процедуры
- •Тело функции
- •1.2. Правила пунктуации.
- •2. Базовые элементы языка Паскаль.
- •2.1. Алфавит и словарь языка.
- •2.2. Константы и переменные, типы данных.
- •Пример 6. Запись типа zapic содержит три компонента: номер, фамилию и имя. Доступ к полям записи осуществляется через переменную spicok типа запись и массив tabl, состоящим из записей.
- •2.3. Выражения, операнды и операции.
- •3. Операторы языка Паскаль.
- •3.1. Простые операторы.
- •3.2. Структурные операторы.
- •4. Ввод-вывод.
- •4.1.Процедуры ввода-вывода.
- •4.2. Запись результатов в файл.
- •5. Процедуры и функции.
- •5.1.Функции пользователя.
- •Процедуры пользователя.
- •Приложение 1. Зарезервированные слова.
- •Приложение 2. Список ошибок.
- •Список литературы.
- •Содержание.
- •Информатика, основы программирование на паскале
5.1.Функции пользователя.
Функция, определенная пользователем, состоит из заголовка и тела функции и имеет формат:
FUNCTION имя функции[(формальные параметры)]:тип результата;
Разделы описаний
BEGIN
Раздел операторов
END;
Тип результата– тип возвращаемого функцией значения. Тело функции представляет собой локальный блок, по структуре аналогичный программе. В разделе операторов должен находится по крайней мере один оператор, присваивающий идентификатору функции значение.
Обращение к функции осуществляется по имени с указанием списка аргументов. Каждый аргумент должен соответствовать формальным параметрам, указанным в заголовке функции, и иметь тот же тип. Формат обращения к функции:
имя функции [(фактические параметры)];
Процедуры пользователя.
Описание процедуры включает заголовок (имя) и тело процедуры. Заголовок состоит из зарезервированного слова PROCEDURE, имени процедуры и необязательного заключенного в круглые скобки списка формальных параметров с указанием типа каждого параметра. Имя процедуры – идентификатор, уникальный в пределах программы, тело процедуры – локальный блок по структуре аналогичный программе на Паскале. Формат записи процедуры:
PROCEDUREимя процедуры[(формальные параметры)];
Разделы описаний
BEGIN
Раздел операторов
END;
Для обращения к процедуре используется оператор вызова процедуры:
имя процедуры[(фактические параметры)];
Список фактических параметров заключается в круглые скобки, параметры отделяются друг от друга запятыми. Список параметров может отсутствовать, если процедуре не передается никаких значений. Между фактическими параметрами в операторе вызова процедуры и формальными параметрами в заголовке описания процедуры устанавливается взаимно-однозначное соответствие: количество и тип формальных параметров равны количеству и типу фактических параметров.
Если процедура возвращает в программу какие-либо значения, то соответствующие переменные должны быть описаны в разделе описаний переменных.
Пример 15. Нахождение факториала с использованием функции.
PROGRAM FAKT;
USES CRT;
VAR N,M,F1,F2: integer;
FUNCTION F(K: integer): integer;
VAR FAKT,I : integer;
BEGIN
FAKT:=1
FOR I:=1 TO K DO FAKT:=FAKT*I;
F:=FAKT;
END;
BEGIN {основная программа}
CLRSCR;
READ (N,M);
F1:=F(N); F2:=F(M); {обращение к функции}
WRITELN(‘ ‘,N:3,’!=’,F1:7);
WRITELN(‘ ‘,N:3,’!=’,F2:7);
END.
б)Нахождение факториала с использованием процедуры.
PROGRAM FAKT;
USES CRT;
VAR N,M: integer;
PROCEDURE F(K: integer);
VAR FAKT,I : integer;
BEGIN
FAKT:=1
FOR I:=1 TO K DO FAKT:=FAKT*I;
WRITELN(‘ ‘,K:3,’!=’,FAKT:7);
END;
BEGIN {основная программа}
CLRSCR;
READ (N,M);
F(N); F(M); {обращение к процедуре}
END.
Программы сортировки элементов массива.
1)поиск наименьшего (наибольшего элемента) и перемещение его.
program fff;
uses crt;
const n=15;
var a:array [1..n] of integer;
i,j,p:integer;
begin
clrscr;
for i:=1 to n do begin
a[i]:=random(40);
write(a[i]:4) end;
writeln;
for i:=1 to n-1 do begin
for j:=i+1 to n do begin
if a[j]>a[i] {po ybuvan} then
begin p:=a[i];a[i]:=a[j];a[j]:=p end;
end;
for j:=1 to n do write(a[j]:4);
writeln
end;
writeln;
for i:=1 to n do begin
write(a[i]:4); end;
readln;
end.
2) метод поплавка
program ff;
uses crt;
const n=15;
var a:array [1..n] of integer;
i,j,p:integer;
begin
clrscr;
writeln(' massiv');
for i:=1 to n do begin
a[i]:=random(40);
write(a[i]:4) end;
writeln;
writeln('sortirovka');
for i:=1 to n-1 do begin
for j:=1 to n-i do begin
if a[j]<a[j+1] {po ybuvan} then
begin p:=a[j];a[j]:=a[j+1];a[j+1]:=p end
end;
for j:=1 to n do write(a[j]:4);
writeln
end;
writeln('posle cortirovki');
for i:=1 to n do write(a[i]:4);
readln;
end.
Примеры составления блок – схем некоторых задач.
1) Найти четные элементы в одномерном массиве К(30). Организовать из найденных элементов отдельный массив (представлен фрагмент блок-схемы)
2) Найти максимальный элемент в одномерном массиве К(30) и его порядковый номер (представлен фрагмент блок-схемы)
3) В матрице А(6,6) найти максимальный и минимальный элементы с указанием их номеров и среднее арифметическое значение всех ее элементов. Элементы матрицы задать с помощью генератора случайных чисел. Заданную матрицу распечатать.
4) В массиве А(50) найти минимальный элемент в каждом десятке элементов. Заданный массив распечатать.