Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Все формальные параметры, которые не изображают результаты выполнения процедуры, рекомендуется объявлять в программах формальными параметрами-значениями.






Параметры-значения не обязательно имеют стандартный тип. Пусть, например, в программе описана константа n и регулярный тип Т:

Т = аrrау[1..п] of real

Для вычисления величин s =a12 +a22+…+аn2 и t=max( | a1|, |а2|,...., |аn|) может быть использована процедура

procedure r(a: Т; va s, t: real);

var i: integer; u: real;

Begin

s: =sqr(a[1]); t: =abs(a[1]);

for i: =2 to n do

Begin

s: =s+sqr(a[i]);

u: =abs(a[i]);

if и > t then t: =u

End

End;

 

при обращении к этой процедуре с помощью оператора процедуры r(x, p, q); будет выполняться составной оператор

Begin

а: =х;

p: =sqr(a[1]); q: =abs(a[1]);

for i: =2 to n do

Begin

p: =p+sqr(a[i]);

u: =abs(a[i]);

if и > q then q: =u

End

End;

В операторе присваивания a: =x левая и правая части являются переменными регулярного типа Т.


ЗАДАЧИ

Процедуры без параметров. Параметры - переменные

 

1. Какое из следующих описаний процедур без параметров составлено правильно, а какие - нет, и почему:

procedure dis;

d: =sqr(b) - 4*a*c;

Procedure dis;

var d: real;

d: =sqr(b) - 4*a*c;

Procedure dis;

begin

d: =sqr(b) - 4*a*c;

end;

 

2. Рассмотрим два описания процедур без параметров:

procedure F; procedure G;

var x: real; var x, y, z: real;

begin begin

x: =y+z; x: =y+z;

end; end;

Один из операторов процедуры F или G не может быть выполнен ни при каких обстоятельствах, а другой - может в определенных случаях. Какой именно из операторов F и G и, в каких случаях может быть выполнен? Каковы последствия этого выполнения?

3. Для каждого из приведенных ниже описаний процедур сформулировать назначение соответствующей процедуры:

А) procedure S(var х, y, z. real);

begin

z: = х + у

end,

б) procedure P(var х, у, z, t: real);

begin

z: = х+у;

t: = х*у

end;

в) procedure C(var х, у, r: real; var р: integer);

Begin

if sqr(x) + sqr (у)< = sqr(r) then p: = 1 else p: =0

End;

 

4. Что будет выведено при выполнении следующей программы:

Program Prog(output);

var х, у, z: real;

procedure P(var a, b: real);

var г: real;

Begin

z: =a;

a: =b;

b: =z

End;

procedure Q(var a, b: real);

Begin

z: =a;

a: =b;

b: =z

End;

Begin

x: =1.1;

y: =2.2;

z: =3.3;

P(x, у);

Writeln(x, у, z);

х: =1.1;

у: =2.2;

z: =3.3;

Q(х, у);

Writeln(x, у, z);

End;

5. Если в программе и в процедуре описана одна и та же переменная, то, какое из этих описаний имеет силу в процедуре?

6. Процедура описана следующим образом:

procedure F(var х, у: integer);

Begin

x: =у

End;

Допустимо ли обращение к процедуре, имеющее вид F(a, b-1)?

7. Имеет место следующий интересный геометрический факт: если координаты вершин треугольника в прямоугольной системе координат равны, соответственно (х1, y1), (х2, y2), (х3, у3), то площадь этого треугольника равна

0.5|x1y2+x2y3+x3y1-x1y3-x2y1-x3y2|

Используя этот факт, написать программу вычисления площади выпуклого четырехугольника ABCD (рис. 1), заданного координатами четырех вершин (хА, уA), (хB, уB), (xC, уC), (xD, yD)

8. Дано: натуральные n, m (n, m> 1), целые а1, …, an, b1,...bm, с1,.....с30. Получить

9. Дано: натуральные k, l, m, действительные x1, …, хк, y1,..., yt, z1,..., zm. Получить

10. Дано: натуральное к, действительные а1, …, a3n. Получить х+у2+z3, где

x=а1a2…an

y=аn+1an+2…a2n

z= a2n+1a2n+2… a3n






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.