Подпрограмма–процедура
Процедура в отличие от функции может вычислять и передавать в основную программу несколько параметров.
Пример 1:
В программе задаются два целых числа 5 и 7, эти числа передаются процедуре INC2, в которой они удваиваются. Один из параметров передается как параметр–переменная, другой – как параметр–значение. Значения параметров до и после вызова процедуры, а также результат их удвоения выводятся на экран.
Решение.
Const
A : Integer = 5 ;
B : Integer = 7 ;
{------------}
Procedure Inc2 (var c : Integer; b : Integer);
Begin {Inc2}
C := c+c;
B := b+b;
Writeln (‘Удвоенные :’, c:5, b:5)
End {Inc2};
{-------------}
Begin {main}
Writeln (,Исходные :’, a:5, b:5);
Inc2(a, b);
Writeln (‘Результат :’, a:5, b:5);
End {main}.
В результате прогона программы будет выведено:
Исходные : 5 7
Удвоенные : 10 14
Результат : 10 7
Как видно из примера, удвоение второго формального параметра в процедуре не вызвало изменения фактической переменной В, так как этот параметр описан в заголовке процедуры как параметр-значение.
Пример 2.
В целочисленной матрице размером 10x10 произвести сортировку чисел в строках по возрастанию значений. Первоначально заполнить матрицу целыми случайными числами в диапазоне от 0 до 100.
Решение.
Для решения задачи составим процедуру SortVec сортировки одномерного массива по возрастанию значений. Используем для этого «алгоритм пузырька». В основной программе используем эту процедуру для сортировки каждой строки матрицы.
Program SortMatr;
Const N=10;
Type Vector=array[1..N] of integer;
Var A: array[1..N] of Vector;
K, l: integer;
Procedure SortVec(Var X: Vector);
Var I, j, z : integer;
Begin
For i:=1 to N-1 do
For j:=1 to N-I do
If X[j] < X[j+1] then
Begin z := X[j]; X[j] := X[j+1]; X[j+1] := z
End;
End;
Begin {Заполнение матрицы случайными числами}
For k:=1 to N do
for l := 1 to N do
A[k, l] := random(100);
For k := 1 to N do SortVec (A[k]); {сортировка строк}
For k := 1 to N do {вывод отсортированной матрицы}
Begin writeln;
For l := 1 to N do write (A[k, l]: 5)
End
End.
При задании массива в качестве формального параметра в заголовке программы типы формальных параметров должны обязательно быть стандартными или производными ранее объявленными типами. Например, следующий заголовок является недопустимым:
Procedure J ( var A:array[1..10] of byte);
В данном случае тип параметра А определяется программистом и поэтому следует воспользоваться идентификатором:
Type
MyArray=array [1..10] of byte;
…………….
Procedure Correct (var A: MyArray);
Создание и отладка компьютерных программ
Общие сведения.
Создание текста программы на языке программирования выполняется человеком вручную, а перевод текста программы в машинные двоичные коды выполняется специальными компьютерными программами. Для перевода программ с языков высокого уровня на язык машинных команд используются специальные программы, называемые трансляторами, а сам процесс перевода называется трансляцией. Трансляторы подразделяются на две большие группы – интерпретаторы и компиляторы. Компиляторы сначала переводят всю программу в машинные коды и после этого очень быстро исполняют её. Достоинством компиляции является быстрота исполнения, а недостатком – невозможность увидеть промежуточные результаты. Результат выполнения программы мы увидим только после успешной компиляции, а на этапе предварительной подготовки программа-компилятор обычно требует устранить все синтаксические ошибки. Интерпретаторы покомандно переводят программу на язык машинных кодов и тут же исполняют команду. Программа- интерпретатор при обнаружении ошибки прекращает работу и предлагает исправить ошибку. Достоинство интерпретаторов – возможность видеть промежуточные результаты и вносить в исполняемый алгоритм изменения. Недостаток – гораздо более медленная работа по сравнению с компиляторами
Система программирования Турбо Паскаль
Система программирования Турбо Паскаль (Turbo Pascal) представляет собой сочетание компилятора с языка программирования Паскаль и программной оболочки, помогающей в создании программ. В названии языка Турбо – это торговая марка разработчика системы Турбо Паскаль фирмы Borland International, Inc (США), а Паскаль – название широко распространённого языка программирования (язык назван в честь выдающегося французского математика и философа Блеза Паскаля). Программной оболочкой предоставляется диалоговая среда, которая способствует повышению эффективности создания программ. Эту диалоговую среду называют также средой разработчика Турбо Паскаля.
Система программирования Турбо Паскаль является одной из наиболее популярных систем программирования. Это объясняется сочетанием двух безусловных её достоинств: исключительной простотой и естественностью языка программирования Паскаль и великолепными сервисными возможностями диалоговой среды программирования фирмы Borland. С помощью Турбо Паскаля можно создавать любые программы – от программ, предназначенных для решения простейших вычислительных задач, до сложных современных систем управления базами данных и операционных систем.