Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Механизм передачи параметровВ заголовке процедуры или функции может быть задан список параметров, которые называются формальными. Название "формальные" эти параметры получили в связи с тем, что в этом списке заданы только имена для обозначения исходных данных и результатов работы процедуры, а при вызове подпрограммы на их место будут подставлены конкретные значения (выражений) и имен. Список формальных параметров, указываемых в заголовке подпрограммы, может включать в себя параметры-значения; параметры-переменные параметры-процедуры параметры-функции нетипизированные параметры В списке должны быть перечислены имена формальных параметров и их типы. Имя параметра отделяется от типа двоеточием, а параметры друг от друга — точной с запятой. Имена параметров одного типа можно объединять в подсписки, в которых имена отделяются друг от друга запятой. Между формальными и фактическими параметрами должно быть полное ее соответствие: • формальных и фактических параметров должно быть одинаковое количество. • порядок следования фактических и формальных параметров должен быть один и тот же; • тип каждого фактического параметра должен совпадать с типом соответствующего формального параметра.
Параметры-значения(передающие). Параметры-значения используются только для передачи исходных данных из основной программы в подпрограмму (процедуру функцию), в списке формальных параметров они перечисляются через запятую с обязательным указанием их типов procedure Abort(M: byte); function Step(N: integer; X: real): real; Если формальный параметр объявлен как параметр-значение, то: фактическим параметром может быть произвольное выражение. перед вызовом процедуры значение фактических параметров вычисляются и используются как начальные значения для формальных параметров, притом, полученный результат помещается во временную память и передается процедуре. Даже если фактический параметр - простейшее выражение в виде константы или переменной, все равно процедуре будет передана лишь копия этой константы (переменной). В процессе выполнения подпрограммы формальные параметры могут изменяться, но это никак не отразится на соответствующих фактических параметрах, которые сохранят те значения, которые имели до вызова подпрограммы, так как в подпрограмме меняются не они, а их копия. Поэтому параметры-значения нельзя использовать для передачи результатов из подпрограммы в основную программу.
Параметры-переменные(возвращающие). Параметры-переменные используются для возвращения результатов выполнения процедуры и в списке формальных параметров записываются после зарезервированного слова var с обязательным указанием типа. Если параметр объявлен как параметр-переменная то: его фактическим параметром может быть только переменная тождественного типа при вызове процедуры ей передается сама переменная, а не ее копия, и изменение переменой приводит к изменению фактического параметра в вызывающей программе. Зам! Параметры-переменные могут использоваться только в процедурах! Лекция 28. Вопросы: Что такое подпрограмма, какие типы подпрограмм вы знаете? Как вызвать подпрограмму, как осуществляется ее работа? Что такое параметры, их виды? Охарактеризовать параметры- значения. Охарактеризовать параметры- переменные. Основные задачи по теме подпрограммы:
Написать программу ввода одномерного массива целых чисел размера N, нахождения суммы двух массивов и вывода результата на экран, кроме этого написать процедуру- заставку, очищающую экран, выводящую в центре экрана надпись «Это программа нахождения суммы массивов». Program _; Uses CRT; Const n=10; Type mas= array[1..n] of byte; Var a, b, c: mas;
Procedure zast; Begin Clrscr; Randomize; textcolor(red); Gotoxy(10,10); Writeln(‘это задача находит сумму двух массивов’) Delay(5000); Clrscr; End;
Procedure vvod(var x: mas); Var i: byte; Begin For i:=1 to n do x[i]:=random(50); End;
Procedure vivod(x: mas); Var i: byte; Begin For i:=1 to n do write(x[i]:4); Writeln; End;
Procedure sum(x, y: mas; var z: mas); Var i: byte; Begin For i:=1 to n do z[i]:=x[i]+y[i]; End; {ОСНОВНАЯ ПРОГРАММА} BEGIN ZAST; VVOD(A); VVOD(B); SUM(A,B,C); VIVOD(A); VIVOD(B); VIVOD(C); READKEY; END.
Написать программу, которая вычисляет среднее арифметическое двух чисел, используя функцию пользователя. Program _; Uses CRT; Var a, b, c: real; Function sr(x,y:real):real; Begin Sr:=(x+y)/2; End; {ОСНОВНАЯ ПРОГРАММА} Begin Clrscr; Writeln(‘введите два числа’); Readln(a,b); C:=sr(a,b); Writeln(‘среднее арифметическое =’,c:10:5); Readkey; End.
Написать программу, нахождения наибольшего из трех чисел, используя функцию пользователя. Program _; Uses CRT; Var a, b, c: real; Function max(x,y, z:real):real; Var m:real; Begin M:=x; If y>m then m:=y; If z>m then m:=z; Max:=m End; {ОСНОВНАЯ ПРОГРАММА} Begin Clrscr; Writeln(‘введите три числа’); Readln(a,b, c); Writeln(‘наибольшее =’,max(a, b, c):10:5); Readkey; End.
Лекция 29. Вопросы: Что такое параметр. Виды параметров. Разновидности формальных параметров. Их характеристика. Задачи: Определить значение переменных a, b. Program _; Var a,b:real; Procedure vvod(x,y: real); Begin X:=5; Y:=10; End; Begin Vvod(a,b); End. Program _; Var a,b:real; Procedure vvod(var x,y: real); Begin X:=5; Y:=sqr(5); End; Begin Vvod(a,b); End. Определить результат работы данной процедуры: Procedure unknown (var x,y: real); Const eps= 0,9; Begin X:=0; Y:=0; Repeat Writeln(x:7:5,y:7:5); X:=x+0,01; Y:=y+0,01; Until x+y>=eps; End; Определить результат работы данной функции: Program _; Const r=2; Var d: real; Function f(a,b,c:real):real; Begin F:=sqrt(abs(a))+sqr(c-b); End; Begin D:=5+r; Writeln(f(-36,r*2,d-3):10:5);
End.
Program _; Const m=25; Var d: real; Function f(a,b:real):real; Begin F:= abs(5*a)+c; End; Begin D:=4; D:=sqrt(m)-d; Writeln(f(d*2,10):10:5);
End.
Локальные и глобальные переменные. Область действия идентификаторов. Каждая подпрограмма включает в себя свои собственные переменные, постоянные, типы, описанные внутри данной процедуры или функции. Они называются локальными и действительны только в пределах данной подпрограммы и подпрограммах, расположенных внутри данной. Все они создаются при входе в процедуру и уничтожаются при выходе из нее. Переменные, расположенные в основной программе, называются глобальными. Глобальные и локальные переменные могут иметь одинаковые имена, так как им соответствуют разные объекты, но это не рекомендуется из-за возможной путаницы. Program _; Var i:byte; Procedure vivod; Var i: byte; Begin Write(i); End; Begin I:=4; Vivod; End. Найти ошибку: Написать программу, ввода и вывода одномерных массивов, нахождения их суммы. Program _; Type m=: array[1..n] of byte Var a: m; Procedure vvod (b:m); Var i: byte; Begin For i:=1 to n do Write (‘введите элемент массива’); Readln(b[i]); End; Procedure vivod; Begin For i:=1 to n do Write(b[i]); End; Function sum(b,d:m):m; Begin For i:=I to n do Sum[i]:=b[i]+d[i]; End; Begin Vvod(x); Vvod(y); Z:=sum(x,y); Vivod(z); End. Лекция 31.
|