Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет_Паскаль2012.doc
Скачиваний:
9
Добавлен:
09.06.2015
Размер:
253.44 Кб
Скачать

5.1.Функции пользователя.

Функция, определенная пользователем, состоит из заголовка и тела функции и имеет формат:

FUNCTION имя функции[(формальные параметры)]:тип результата;

Разделы описаний

BEGIN

Раздел операторов

END;

Тип результата– тип возвращаемого функцией значения. Тело функции представляет собой локальный блок, по структуре аналогичный программе. В разделе операторов должен находится по крайней мере один оператор, присваивающий идентификатору функции значение.

Обращение к функции осуществляется по имени с указанием списка аргументов. Каждый аргумент должен соответствовать формальным параметрам, указанным в заголовке функции, и иметь тот же тип. Формат обращения к функции:

имя функции [(фактические параметры)];

    1. Процедуры пользователя.

Описание процедуры включает заголовок (имя) и тело процедуры. Заголовок состоит из зарезервированного слова 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) найти минимальный элемент в каждом десятке элементов. Заданный массив распечатать.