- •Департамент образования и науки
- •1. Этапы решения задач на эвм. Алгоритмизация. Блок-схемы.
- •2. Назначение системы программирования.
- •3.Связь функция - клавиатура в интегрированной среде Turbo Pascal
- •4. Команды экранного редактора
- •4.1 Команды перемещения курсора
- •4.2 Команды вставки/удаления
- •4.3 Команды работы с блоками
- •5. Технология компиляции
- •6. Технология отладки программы
- •7. Программирование линейных алгоритмов
- •Задание 1
- •8. Программирование разветвляющихся вычислительных процессов
- •Задание 2
- •9. Программирование циклов с параметром
- •Задание 3
- •10. Программирование циклов с условием
- •Задание 4
- •11. Работа с векторами
- •Задание 5
- •12. Работа с матрицами
- •Задание 6
- •13. Обработка символьных строк
- •Задание 7
- •14. Записи. Файлы.
- •Задание 8
- •15. Процедуры
- •Задание 9
- •16. Функции
- •Задание 10
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
ЦЕЛЬ РАБОТЫ:
Научиться использовать процедуры в языке Паскаль.
Изучить механизм передачи параметров в процедурах.
ПОРЯДОК РАБОТЫ
Составить алгоритм и программу с использованием подпрограммы (процедуры) (табл.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). |