var
x, a, b, c, s: integer;
begin
x := 154;
a := x div 100;
b := x mod 100;
c := x mod 10;
s := a + b + c;
writeln(s)
end.
ответ: 59
задача 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 из за чего значение произведения становится отрицательным
a:=x div 100; 154 div 100 = 1 (деление нацело), a = 1
b:=x mod 100; 154 mod 100 = 54 (остаток от деления нацело), b = 54
c:=x mod 10; 154 mod 10 = 4, c=4
s:=a+b+c; 1+54+4 = 59, s=59.
ответ: 59