
Вопрос задан 08.04.2020 в 09:02.
Предмет Информатика.
Спрашивает Богданов Никита.
Задание PASCAL: c клавиатуры вводиться 3 5-значных числа. Найти сумму цифр наименьшего числа, сумму
цифр наибольшего числа и вывести на экран разность между этими суммами.

Ответы на вопрос

Отвечает Дутка Роксолана.
1. Вот так это можно написать коротко, быстро и понятно, если разбираться в современном Паскале.
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!
function SoD(Self:integer):integer; extensionmethod;
begin
while Self>0 do (Result,Self):=(Result+Self mod 10,Self div 10);
end;
function Diff(Self:array of integer):integer; extensionmethod;
begin
Result:=Self.Max.SoD-Self.Min.SoD
end;
begin
Writeln(ReadArrInteger('Три пятизначных числа:',3).Diff)
end.
Пример
Три пятизначных числа: 12345 23456 34567
10
2. А вот так примерно учат у нас в школах...
program School;
var
i,n,max,min,d:integer;
begin
Write('Введите 1-е пятизначное число: '); Read(n);
max:=n;
min:=n;
for i:=2 to 3 do begin
Write('Введите ',i,'-е пятизначное число: '); Read(n);
if n<min then min:=n
else
if n>max then max:=n;
end;
d:=0;
while max>0 do begin
d:=d+max mod 10;
max:=max div 10
end;
while min>0 do begin
d:=d-min mod 10;
min:=min div 10
end;
Writeln(d)
end.
Пример
Введите 1-е пятизначное число: 12345
Введите 2-е пятизначное число: 23456
Введите 3-е пятизначное число: 34567
10
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!
function SoD(Self:integer):integer; extensionmethod;
begin
while Self>0 do (Result,Self):=(Result+Self mod 10,Self div 10);
end;
function Diff(Self:array of integer):integer; extensionmethod;
begin
Result:=Self.Max.SoD-Self.Min.SoD
end;
begin
Writeln(ReadArrInteger('Три пятизначных числа:',3).Diff)
end.
Пример
Три пятизначных числа: 12345 23456 34567
10
2. А вот так примерно учат у нас в школах...
program School;
var
i,n,max,min,d:integer;
begin
Write('Введите 1-е пятизначное число: '); Read(n);
max:=n;
min:=n;
for i:=2 to 3 do begin
Write('Введите ',i,'-е пятизначное число: '); Read(n);
if n<min then min:=n
else
if n>max then max:=n;
end;
d:=0;
while max>0 do begin
d:=d+max mod 10;
max:=max div 10
end;
while min>0 do begin
d:=d-min mod 10;
min:=min div 10
end;
Writeln(d)
end.
Пример
Введите 1-е пятизначное число: 12345
Введите 2-е пятизначное число: 23456
Введите 3-е пятизначное число: 34567
10



Отвечает Сиделёв Иван.
Function sumd(n: integer): integer;
var s: integer;
begin
s:=0;
repeat
s:=s+ n mod 10;
n:=n div 10;
until n=0;
sumd:=s;
end;
// основная программа
var a,b,c,mx,mn: integer;
begin
write('числа a,b,c через пробел: ');
readln(a,b,c);
mx:=max(a,max(b,c));
mn:=min(a,min(b,c));
writeln(sumd(mx)-sumd(mn));
end.
числа a,b,c через пробел: 12345 23456 34567
10
var s: integer;
begin
s:=0;
repeat
s:=s+ n mod 10;
n:=n div 10;
until n=0;
sumd:=s;
end;
// основная программа
var a,b,c,mx,mn: integer;
begin
write('числа a,b,c через пробел: ');
readln(a,b,c);
mx:=max(a,max(b,c));
mn:=min(a,min(b,c));
writeln(sumd(mx)-sumd(mn));
end.
числа a,b,c через пробел: 12345 23456 34567
10


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili