Какую задачу решает процедура «Primer»? procedure primer(a,b: integer; var m: integer);
begin
if a>b then
т" =а
else
m:=b:
end.
1) находит максимум из двух чисел
2) меняет местами значения двух переменных
3) определяет равны для два числа
4) находим минимум из двух чисел
Program yravnenie;
Var
a,b,c,D,x1,x2,p,q:Real;
Begin
Repeat
Write('a= ');
Readln(a);
if a=0 then writeln('Error: a=0. Enter another value');
Until a<>0;
Write('b= ');
Readln(b);
Write('c= ');
Readln(c);
p:=b/a;
q:=c/a;
D:=Sqr(p/2)-q;
If D>0 then
begin
Writeln('x1 = ',-p/2-Sqrt(D):0:5);
Writeln('x2 = ',-p/2+Sqrt(D):0:5);
end
else
If D=0 then
Writeln('x1 = x2 = ',-p/2:0:5)
else
begin
Writeln('x1 = ',-p/2:0:5,'-i*',Sqrt(-D):0:5);
Writeln('x2 = ',-p/2:0:5,'+i*',Sqrt(-D):0:5);
end;
Readln;
End.
Во всех программах у меня будет использоваться процедура swap:
procedure swap(a: ^real; b: ^real);
var
t: real;
begin
t := a^;
a^ := b^;
b^ := t;
end;
swap(x,y) - меняет местами значения x и y.
1.
var
A: array[1..100] of real;
i, j, N: integer;
begin
readln(N);
for i := 1 to N do
read(A[i]);
for j := 1 to (N div 2) - 1 do
for i := 1 to (N div 2) - j do
swap(A[i], A[i + 1]);
for j := 1 to (N div 2) - 1 do
for i := (N div 2) + 1 to N - j do
swap(A[i], A[i + 1]);
for i := 1 to N do
writeln(A[i])
end.
2.
var
A: array[1..100] of real;
i, N: integer;
begin
readln(N);
for i := 1 to N do
read(A[i]);
for i := 1 to N - 1 do
swap(A[i], A[i + 1]);
for i := 1 to N do
writeln(A[i])
end.
3.
var
A: array[1..100] of real;
i, N: integer;
begin
readln(N);
for i := 1 to N do
read(A[i]);
for i := N downto 2 do
swap(A[i], A[i - 1]);
for i := 1 to N do
writeln(A[i])
end.