Подпрограмма Подпрограмма - именованная часть программы к которой можно обращаться неоднократно по ее имени
Подпрограмма Описывается в описательной части самой программы. Обращение к ней происходит из исполнительной части программы. Подпрограммы делятся на процедуры и функции. Процедуру применяют когда нужно выполнить действие, функцию используют при математических выражениях
Типы переменных Глобальные переменные объявлены в описательной части самой программы. Доступны везде Локальные переменные объявлены в подпрограмме. Доступны только в теле подпрограммы.
Процедура Procedure имя(список переменных) Begin тело процедуры End;
Процедура без параметров Найти площадь треугольника с основанием 8 высотой 5 Var s:real; Procedure treyg; var a,h:integer; begin a:=8; h:=5;s:=a*h/2; end; Begin treyg; writeln(s:3:2); End.
Определить какое значение будет у переменной а Var a:byte; Procedure prim; Var a:byte; Begin a:=8; End; Begin a:=5; prim; writeln(a); End.
Процедуры с параметрами - значениями Это параметры, значения которым передаются из основной программы в подпрограмму. Записываются в круглых скобках после имени процедуры с указанием типа.
Найти площадь Var a,h,s:real; Procedure treyg(x,y:real); begin s:=x*y/2; end; Begin a:=8; h:=5; treyg(a,h); writeln(s:3:2); treyg(a+1,h-2); writeln(s:3:2); End.
Процедуры с параметрами ссылками Параметры ссылки(переменные)- это параметры которые передаются из подпрограммы в основную программу. Записываются в круглых скобках после имени процедуры после var
Var a,h,s:real; Procedure treyg(x,y:real; var p:real); begin p:=x*y/2; end; Begin a:=8; h:=5; treyg(a,h,s); writeln(s:3:2); End.
Найти последующее число Procedure prim(var x:integer); Begin x:=x+1; End; Var a:integer; Begin a:=5; prim(a); writeln(a); End.
Найти сумму элементов двух массивов Const n=10; Type mas=array[1..n] of integer; Procedure sozd(var m:mas); Var i:integer; Begin Writeln(Введи элементы в массив); for i:=1 to n do read(m[i]); End; Procedure sum(var m:mas); Var s,i:integer; begin S:=0; For i:=1 to n do s:=s+m[i]; writeln(sum=,s); end;
Основная программа Var a,b:mas; Begin sozd(a); sozd(b); sum(a); sum(b); End.
Функции 1.В заголовке всегда указывается тип функции 2.В теле необходимо присвоить вычислительный результат имени самой функции 3.К функции нельзя обращаться на прямую. Имя функции можно использовать либо в операции присваивания, либо в математическом выражении, либо в условии
Function имя(параметра): тип функции Begin Тело функции End;
Вычислить сумму площадей треугольников с заданными основаниями(5) и высотами меняющиеся от 1 до n Var n,a,i:integer; S:real; Function treyg(a,h:integer):real; var p:real; Begin p:=a*h/2; treyg:=p; End; Begin a:=5; s:=0; readln(n); For i:=1 to n do s:=s+treyg(a,i); Writeln(s:3:2); End.
В символьном массиве подсчитать количество гласных и согласных букв Const n=10; Type mas=array[1..n] of char; Procedure sozd(var m:mas); Var i:integer; Begin Writeln(Введи элементы в массив); for i:=1 to n do read(m[i]); End; Function glas(var b:char):boolean; Begin glas:=b in[a,A,e,E,u,U,I,i,o,O]; End;
Function soglas(var b:char):boolean; Begin soglas:=b in([a..z,A..Z]-[a,A,e,E,u,U,I,i,o,O]; End; Var a:mas; kgl, ksogl,i:integer; Begin sozd(a); kgl:=0; ksogl:=0; For i:=1 to n do begin if glas(a[i]) then kgl:=kgl+1; if soglas(a[i]) then ksogl:=ksogl+1; end; Writeln(kgl=, kgl); Writeln(ksogl=, ksogl); End.
Задачи 1.Подсчитать в массиве количество цифр 2.Дан массив с цифрами и буквами. Разделить их в 2 массива. 3. Дано три строки. Подсчитать сколько в них пробелов
Тесты 1.n=10 3 e g f 4 1 d f 5 n ответ e g f 4 1 d f 5 n ответ e g f d f n 3. Mir trud mai -3 mir tryd -1 Mir trud mai -5