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.
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.
var x, F: real; begin write('Введите х: '); readln(x); if ( x > -2.4 ) AND ( x < 5.7 ) then F := sqr(x) else F := 4; writeln('F = ', F); end.
№2
var x, F: real; begin write('Введите х: '); readln(x); if ( x > 0.2 ) AND ( x < 0.9 ) then F := sin(x) else F := 1; writeln('F = ', F); end.
№3
var a,b,c: real; begin write('Введите а: '); readln(a); write('Введите b: '); readln(b); write('Введите c: '); readln(c); if ( a < b ) AND ( b < c ) then writeln('a < b < c') else if ( b > a ) AND ( a > c ) then writeln('b > a > c') else writeln('Неравенства не выполняются'); end.
Var x,f:real; begin Write('Введите x: '); Readln(x); if (x>-2.4) and (x<5.7) then f:=sqr(x) else f:=4; Writeln('F=',f) end.
var x,f:real; begin Write('Введите x: '); Readln(x); if (x>0.2) and (x<0.9) then f:=sin(x) else f:=1; Writeln('F=',f) end.
var a,b,c:real; begin Write('Введите три числа: '); Readln(a,b,c); Write('Условие ',a,'<',b,'<',c); if (b>a) and (b<c) then Writeln(' выполняется.') else Writeln(' не выполняется.'); Write('Условие ',b,'>',a,'>',c); if (a<b) and (a>c) then Writeln(' выполняется.') else Writeln(' не выполняется.') end.
// 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