Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка.DOC
Скачиваний:
36
Добавлен:
13.05.2015
Размер:
772.61 Кб
Скачать

15. Процедуры

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

В заголовке процедуры может быть задан список формальных параметров. При вызове процедуры эти формальные параметры заменяются фактическими параметрами. Различают формальные параметры - значения и параметры-переменные. Параметры значения можно передавать только в одном направлении: из программы в подпрограмму. Параметры-переменные передаются в обоих направлениях: из программы в подпрограмму и, наоборот.

ПРИМЕР 1:Массив A(n) отсортировать в порядке возрастания элементов.

ОСНОВНОЙ А Л Г О Р И Т М

алгСортировка

аргn: цел, A: вещ таб [1..n]

резA: вещ таб [1..n]

раб i,j,k: цел; R: вещ

нач

вводn

нцдляiот1доn

ввод A[i]

кц

j:=n

нц пока j ¹ 1

max (j,k)

R:=A(k); A(k):=A(j); A(j):=R

j:=j-1

кц

нцдляiот1доn

выводA(i)

кц

кон

ВСПОМОГАТЕЛЬНЫЙ А Л Г О Р И Т М

алгmax

аргq: цел

резnmax: цел

рабm: вещ; L: цел

нач

m:=A(1); nmax:=1

нцдляLот1доq

если A(L) > m

то m:=A(L); nmax:=L

все

кц

кон

П Р О Г Р А М М А

program SORT;

type x=array [1..20] of real;

var a:x;

i,j,n,k: integer;

R: real;

procedure max (q: integer; var nmax: integer);

var m: real;

l: integer;

begin

m:=A[1]; nmax:=1;

for l:=1 to q do

if A(l) > m then

begin

m:=A(l); nmax:=l

end

end; {конец описания процедуры}

begin

writeln ('n=');

readln (n);

writeln ('вводите массив');

for i:=1 to n do

readln (A[i]);

j:=n;

while j <> 1 do

begin

max (j,k);

R:=A(k); A(k):=A(j); A(j):=R;

j:=j-1

end;

writeln ('отсортированный массив');

for i:=1 to n do

writeln (A[i])

end.

Задание 9

ЦЕЛЬ РАБОТЫ:

  1. Научиться использовать процедуры в языке Паскаль.

  2. Изучить механизм передачи параметров в процедурах.

ПОРЯДОК РАБОТЫ

Составить алгоритм и программу с использованием подпрограммы (процедуры) (табл.15).

СОДЕРЖАНИЕ ОТЧЕТА

Отчет должен содержать условие задачи, основной и вспомогательный алгоритмы, текст программы, исходные данные для контрольного примера и результат.

ТАБЛИЦА 15

НОМЕР

УСЛОВИЕ

1

В массиве A(n) и B(n) все элементы, следующие за максимальным (за первым по порядку, если их несколько), заменить на 1.

2

Дана матрица A(n,m). Упорядочить столбцы по убыванию элементов.

3

Дана матрица X(n,m). Упорядочить строки по возрастанию элементов.

4

Дана матрица У(k,l). Получить из нее вектор, содержащий суммы элементов строк. Отсортировать его в порядке убывания элементов.

5

Из текста выделить слова и вывести их в алфавитном порядке.

6

Вычислить:

где Xmax - максимальный элемент вектора X(n)

Уmax - максимальный элемент вектора У(m).

7

Вычислить суммы элементов векторов У(k) и X(L), находящиеся в интервале от а до b.

8

Вычислить:

9

Решить уравнение a*x+b=0, где а - длина вектора У(n), b - длина вектора Z(m).

10

Решить уравнение:

где а - произведение элементов целочисленного вектора Т(к), b - произведение элементов целочисленного вектора D(p), с - произведение элементов целочисленного вектора R(n).