задача 1
program ProcArray;
procedure GetMax (A: array of Integer; var imax: Integer);
var
i: Integer;
begin
imax := Low (A);
for i := Low (A) to High (A) do
if A [i] > A [imax] then
imax := i;
end;
procedure GetMin (A: array of Integer; var imin: Integer);
var
i: Integer;
begin
imin := Low (A);
for i := Low (A) to High (A) do
if A [i] < A [imin] then
imin := i;
end;
procedure Repl (var A: array of Integer; OldValue, NewValue: Integer);
var
i: Integer;
begin
for i := Low (A) to High (A) do
if A [i] > OldValue then
A [i] := NewValue;
end;
var
A: array [0..49] of Integer;
i, imax, imin: Integer;
begin
Randomize;
for i := Low (A) to High (A) do begin
A [i] := Random (21) - 10;
Write (A [i] :3, ' ');
end;
WriteLn;
GetMax (A, imax);
WriteLn ('Максимальное значение = ', A [imax]);
GetMin (A, imin);
WriteLn ('Минимальное значение = ', A [imin]);
Repl (A, 1, 0);
WriteLn ('Замена >1 на 0');
for i := Low (A) to High (A) do
Write (A [i] :3, ' ');
ReadLn;
end.
задача 2
program ProcArray1;
procedure Multi (A: array of Integer; var Prod: LongInt);
var
i: Integer;
begin
Prod := 1;
for i := Low (A) to High (A) do
Prod := Prod * A [i];
end;
procedure Repl (var A: array of Integer; OldValue, NewValue: Integer);
var
i: Integer;
begin
for i := Low (A) to High (A) do
if A [i] > OldValue then
A [i] := NewValue;
end;
var
A: array [0..29] of Integer;
i: Integer;
p: LongInt;
begin
Randomize;
for i := Low (A) to High (A) do begin
A [i] := Random (3) + 1;
Write (A [i] :3, ' ');
end;
WriteLn;
Multi (A, p);
WriteLn ('Произведение = ', p);
Repl (A, 5, 1);
WriteLn ('Замена >5 на 1');
for i := Low (A) to High (A) do
Write (A [i] :3, ' ');
ReadLn;
end.
Объяснение:
Во задаче №2 при заполнении массива значениями больше 5 начинает возникать переполнение LongInt из за чего значение произведения становится отрицательным
Программа:
1)
var i: integer;
begin
for i:=1 to 1000 div (3*5) do
write(i*3*5,' ');
end.
Результат:
15 30 45 60 75 90 105 120 135 150 165 180 195 210 225 240 255 270 285 300 315 330 345 360 375 390 405 420 435 450 465 480 495 510 525 540 555 570 585 600 615 630 645 660 675 690 705 720 735 750 765 780 795 810 825 840 855 870 885 900 915 930 945 960 975 990
Программа:
2)
var n,i,j: integer;
begin
readln(n);
for i:=1 to n do
begin
for j:=1 to 10 do write(j,' ');
writeln;
end;
end.
Пример:
5
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
Bool() true, false
Str() 'run', 'привет'
Float() 27.05,- 0.5, 658.1
Int() 5, 89, - 541, 698754