Задание 10 Параграф 8 ГДЗ Босова 11 класс (Информатика)
1) из цифр данного числа формируется одномерный целочисленный массив;
2) определяются наибольшая и наименьшая цифры данного числа;
3) находятся сумма и произведение цифр, образующих данное число.
var
a: array [1..5] of integer;
x, i, max, min, sum, pr, k: integer;
begin
readln(x);
i := 1;
sum := 0; pr := 1;
//формирование массива из цифр числа
//и вычисление суммы и произведения цифр числа
while x < > 0 do
begin
a[i] := x mod 10;
sum := sum + a[i];
pr := pr * a[i];
x := x div 10;
i := i + 1
end;
//————————————
//определение max и min
k := i — 1;//количество цифр в числе
max := a[1];
min := a[1];
for i := 2 to k do
begin
if a[i] > max then max := a[i];
if a[i] < min then min := a[i]
end;
Writeln('sum=', sum, ' pr=', pr, ' max=', max, ' min=', min);
end.
Программа: Z_8_10.pas (ссылка ниже)
Сначала последовательно выделим цифры числа с помощью операции $$x \bmod 10$$ и будем записывать их в массив. Одновременно найдём сумму и произведение цифр. После этого по заполненному массиву определим наибольшую и наименьшую цифры.
var
a: array [1..5] of integer;
x, i, max, min, sum, pr, k: integer;
begin
readln(x);
i := 1;
sum := 0; pr := 1;
// формирование массива из цифр числа
// и вычисление суммы и произведения цифр числа
while x <> 0 do
begin
a[i] := x mod 10;
sum := sum + a[i];
pr := pr * a[i];
x := x div 10;
i := i + 1
end;
// определение max и min
k := i — 1; // количество цифр в числе
max := a[1];
min := a[1];
for i := 2 to k do
begin
if a[i] > max then max := a[i];
if a[i] < min then min := a[i]
end;
Writeln(‘sum=’, sum, ‘ pr=’, pr, ‘ max=’, max, ‘ min=’, min);
end.
В программе массив хранит цифры числа в обратном порядке, но это не мешает правильно найти сумму, произведение, максимум и минимум.
Ответ
Программа на Pascal:
var
a: array [1..5] of integer;
x, i, max, min, sum, pr, k: integer;
begin
readln(x);
i := 1;
sum := 0; pr := 1;
while x <> 0 do
begin
a[i] := x mod 10;
sum := sum + a[i];
pr := pr * a[i];
x := x div 10;
i := i + 1
end;
k := i — 1;
max := a[1];
min := a[1];
for i := 2 to k do
begin
if a[i] > max then max := a[i];
if a[i] < min then min := a[i]
end;
Writeln(‘sum=’, sum, ‘ pr=’, pr, ‘ max=’, max, ‘ min=’, min);
end.