
- •1Основы алгоритмизации
- •1.1Этапы решения задач на эвм
- •1.2Алгоритм. Свойства алгоритмов
- •1.3 Алгоритмическая конструкция ветвления
- •1.4Алгоритмическая конструкция цикла
- •22. Программирование на Турбо Паскаль
- •2.1Основные конструкции языка Паскаль
- •2.1.1История создания языка.
- •2.1.2Программа на tp.
- •2.1.3 Простые типы данных.
- •2.1.4Константы, переменные и оператор присваивания.
- •2.1.5Операторы ввода/вывода.
- •2.2 Управляющие конструкции языка тп
- •2.2.1Безусловные конструкции.
- •2.2.2Условные конструкции.
- •2.2.3Циклические конструкции.
- •1. Цикл с предусловием.
- •Цикл с постусловием.
- •3. Цикл с параметром.
- •2.3Массивы
- •2.3.1Одномерные массивы
- •2.3.2Сортировка массивов.
- •2.3.3Двумерные массивы
- •2.4Процедуры и функции.
- •2.4.1Использование
- •2.4.2Формальные и фактические параметры
- •2.4.3Описание
- •2.4.4Вызов процедур и функций в основной программе
- •2.4.5Пример
- •2.5Использование библиотек стандартных процедур в программах. Модуль Crt. Текстовые режимы использования экрана.
2.4.4Вызов процедур и функций в основной программе
Вызов процедуры представляет в программе самостоятельную команду:
<Имя процедуры>(<Фактический параметр 1>, < Фактический параметр 2>?);
Типы фактических параметров должны быть такими же, что и у соответсвующих им формальных.
Вызов функции должен входить в выражение. При вычислении значения такого выражения функция будет вызвана, действия, находящиеся в ее теле, будут выполнены, в выражение будет подставлено значение результата функции.
2.4.5Пример
Приведем простейший пример использования подпрограммы.
Обратите внимание на краткость тела основной программы и на прозрачность действий внутри функции. Формальные параметры A и B, используемые в подпрограмме, не имеют никакого отношения переменным A и B, описанным в основной программе.
program rgr;
type matrica=array[1..20,1..20] of real;
vector=array[1..20] of real;
const n=5;
var a:matrica;
x:vector;
function znak(k:integer):integer;
var i,z:integer;
begin
z:=1;
for i:=1 to k do z:=-z;
znak:=z;
end;
procedure part1(n: integer; var A:matrica);
var i,j:integer;
begin
for i:=1 to n do
for j:=1 to n do a[i,j]:=znak(i+j)*ln(i*j);
end;
procedure part2(n:integer; a:matrica; var x:vector);
var i,j:integer;
min:real;
begin
for i:=1 to n do
begin
min:=a[1,i];
for j:=1 to n do if min>a[j,i] then min:=a[j,i];
x[i]:=a[i,i]-min;
end;
end;
procedure part3(n:integer; var a:matrica);
var i,j,l,k:integer; c:real;
begin
for l:=1 to n do
for i:=1 to n-1 do
begin
k:=i;
for j:=i+1 to n do
if a[k,l]<a[i,l] then k:=j;
c:=a[k,l];
a[k,l]:=a[i,l];
a[i,l]:=c;
end;
end;
procedure print_m(n:integer; a:matrica);
var i,j:integer;
begin
writeln('MATRICA');
for i:=1 to n do
begin
for j:=1 to n-1 do write(a[i,j]:6:3);
writeln(a[i,n]:6:3);
end;
end;
procedure print_V(n:integer; x:vector);
var i:integer;
begin
writeln('VECTOR');
for i:=1 to n-1 do write(x[i]:6:3);
writeln(x[n]:6:3);
end;
begin
part1(n,a);
part2(n,a,x);
print_M(n,a);
print_V(n,x);
part3(n,a);
print_m(n,a);
readln;
end.
2.5Использование библиотек стандартных процедур в программах. Модуль Crt. Текстовые режимы использования экрана.
Язык программирования Паскаль содержит ряд предопределенных процедур, разделенных по темам на несколько библиотек (модулей). Файлы с библиотеками процедур имеют расширение tpu и хранятся в папке units основной директории tp. Подключение библиотек к программе производится сразу за заголовком программы. Для этого используется служебное слово uses. За ним перечисляются через запятую имена файлов библиотек. Модуль Crt содержит процедуры и функции, испльзующиеся для работы на текстовом экране. Примером процедуры этого модуля может служить очистка экрана clrscr. Процедуры этого модуля всегда работают в активном окне. Окном считается прямоугольная область, определяемая координатами верхнего левого и нижнего правого угла. По умолчанию активным окном является экран. Размеры экрана, по умолчанию, - 80x25 знакомест. Заданный по умолчанию режим экрана можно изменить, используюя процедуру textmode (<константа режима>). Константа 0 задает черно/белый режим с размером экрана 40x25. 1 - цветной режим 40x25 2 - черно/белый режим 80x25 3 - цветной режим 80x25 7 - черно/белый режим и монохромный дисплей 256 - загружаемый шрифт - 43 строки в EGA и 50 строк в VGA. Процедуры этого модуля могут обеспечивать работу со звуком. Частоту звука определяет процедура sound (<число герц>). Длительность звука регулируется процедурой delay (<длительность звука в мс.>) и процедурой nosound - отключение звука. Короткий звуковой сигнал можно обеспечить, используя символ #7 в списке вывода оператора write. В списке вывода также можно использовать еще 4 специальных символа: #8 - смещение курсора влево на одну позицию #10 - сдвиг курсора на одну строку вниз #13 - перемещение курсора на левую границу окна Комбинация #13#10 соответствует нажатию клавиши Enter. Для активирования нового окна следует определить его границы. Для этого используется процедура window (x1, y1, x2, y2). Координаты x1, y1, x2, y2 - абсолютные, все остальные координаты в окне - относительные, а точкой отсчета считается верхний левый угол окна. В пределах окна курсор можно переместить на овую позицию, используя процедуру gotoxy (x, y). Если x, y выходят за пределы окна, то процедура игнорируется. Для изменения цветовой гаммы окна используются следующие процедуры: textbackground (<…>) - изменяет цвет фона; в качестве аргументов выступают числа 0..7 textcolor (<…>) - изменяет цвет текста; в качестве аргументов выступают числа 0..15. Для организации