Автор: Пользователь скрыл имя, 13 Ноября 2011 в 11:18, реферат
Для подготовки информации к обработке на ПЭВМ необходимо выполнить следующие этапы:
Постановка задачи.
Формализация поставленной задачи.
Выбор численного метода и представление решения в виде структурной схемы(блок-схемы) (алгоритмизация).
Оформление задачи на входном языке ПЭВМ (программирование).
Ввод и отладка программы.
Выполнение программы и анализ полученных результатов.
Type Matr = array [1..10, 1..10] of real;
Var A, B, C : Matr;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Procedure MultMat (n: integer; Mat1, Mat2:Matr; Var Mat3:Matr);
var i.k,j : integer;
begin
for 1:=1 to n do
for j:=1 to n do begin
Mat3[i,j]:=0.0;
end;
Здесь массивы Mat1 и Mat2 в ходе выполнения процедуры не меняют своих значений, поэтому для них указывается только тип. Массив Mat3 формируется в процедуре, соответственно при описании его типа перед именем ставится ключевое слово Var. Переменные i, j, k задействованы только внутри процедуры, поэтому они описаны как локальные переменные.
Вызов
процедуры осуществляется по имени,
с указанием фактических
MultMat (m. A, B, С);
Результат перемножения двух матриц располагается в массиве С.
Описание процедуры служит для определения процедуры в рамках текущей процедуры или программы. Выполнение процедуры начинается с оператора процедуры и после завершения процедуры выполнение программы продолжается с оператора, следующего непосредственно за оператором вызова процедуры.
Подпрограммы могут быть двух видов: подпрограмма без параметров и подпрограмма с параметрами. Обращение к подпрограмме может быть организовано из любого места основной программы или другой подпрограммы сколько угодно раз.
При работе с подпрограммами важными являются понятия формальных и фактических параметров. Формальные параметры — это идентификаторы входных данных для подпрограммы. Если формальные параметры получают конкретные значения, то они называются фактическими. Формальные параметры могут получить конкретные значения только в той программе, где производится обращение к данному модулю-подпрограмме. Тип и порядок записи фактических параметров должны быть такими же, как и формальных параметров. В противном случае результат работы программы будет непредсказуемым. Из этого следует, что фактические параметры используются при обращении к подпрограмме из основной, а формальные параметры — только в самом модуле.
Подпрограмма с параметрами используется для записи многократно повторяющихся действий при разных исходных данных. Подпрограммы с параметрами можно разделить на два типа: подпрограммы-функции и просто подпрограммы с параметрами (их называют процедурами).
При
составлении подпрограмм с
1)
каждая подпрограмма имеет
2)
процедура из основной
Пример 1. Используем алгоритм нахождения наибольшего общего делителя двух натуральных чисел в качестве вспомогательного при решении задачи: составить программу вычитания дробей (a, b, c, d — натуральные числа). Результат представить в виде обыкновенной несократимой дроби.
Подпрограмма.
1) Ввести натуральные числа M, N.
2) Если M=N, перейти к п. 5, иначе к следующему пункту.
3) Если M>N, то M:=M-N, иначе N:=N-M.
4) Перейти к п. 2.
5) Передать значение M в основную программу.
6) Конец подпрограммы.
Основная программа.
1) Ввести значения A, B, C, D.
2) E:=A*D - B*C.
3) F:= B*D.
4) Если E=0, вывести значение E и перейти к п. 9, иначе перейти к следующему пункту.
5) M:=|E|, N:=F, перейти к подпрограмме вычисления НОД.
6) G := M.
7) E и F нацело разделить на G.
8) Вывести значения E и F на печать.
9) Конец программы.
Program Sub;
Var A, B, C, D, G, E, F : Integer;
Procedure Nod(M, N : Integer; Var K : Integer);
Begin
While M N Do
If M > N Then M := M - N Else N := N - M;
K := M
End;
Begin
Write('Введите числители и
ReadLn(A, B, C, D);
E := A * D - B * C;
F := B * D;
If E = 0 Then WriteLn(E)
Else
Begin
Nod(Abs(E), F, G);
E := E Div G;
F := F Div G;
WriteLn('Ответ: ', E, '/', F)
End
End.
Как
видно из примера, объявление и тело
подпрограмм находится в
Вызов процедуры осуществляется следующим образом:
();
Например,
Nod(Abs(E), F, G);
По способу передачи фактических значений в подпрограмму в Turbo Pascal 7.0 выделяют параметры-переменные, параметры-значения, параметры-константы и массивы открытого типа, строки открытого типа, параметры-процедуры, параметры-функции (подробности — в литературе).
Функция (в отличие от процедуры) всегда возвращает единственное значение.
Покажем, как изменится подпрограмма из примера, если ее записать в виде функции.
Function Nod(M, N : Integer) : Integer;
Begin
While M N Do
If M > N Then M := M - N Else N := N - M;
Nod := M
End;
Итак, после списка параметров указывается тип значения функции, а в теле функции хотя бы один раз встречается присваивание переменной, имя которой совпадает с именем функции, соотответствующего значения.
Вызов функции будет следующим:
G := Nod(Abs(E), F);
Вообще,
вызов функции может
При
решении задач целесообразно
проанализировать условие, записать решение
в крупных блоках (не являющихся
операторами Pascal), детализировать каждый
из блоков (записав в виде блоков,
возможно, по-прежнему не операторов Pascal),
и т.д., продолжать до тех пор, пока
каждый из блоков не будет реализован
с помощью операторов языка.
Информация о работе Основы технологии разработки программ. Этапы разработки программ