//Pascal //Для натуральных чисел var a, s, p:integer;
begin write('Введите число = '); readln(a); s := 0; p := 1; while (a<>0) do begin p := p * (a mod 10); s := s + (a mod 10); a := a div 10; end; writeln( 'Сумма цифр числа = ', s); writeln( 'Произведение цифр числа = ', p); end.
//Если число отрицательное var s, p, a, b, c: integer; f: boolean; begin write('Введите число = '); readln(a); if a < 0 then f := true; a := abs(a); b := a mod 10; a := a div 10; c := a mod 10; a := a div 10; if f = true then begin p := (-a) * b * c; s := -a + b + c; end else begin s := a + b + c; p := a * b * c; end; writeln('Сумма цифр числа = ', s); writeln('Произведение цифр числа = ', p); end.
Uses crt; type mas=array[1..1000] of integer; var a:mas; n,i:integer; procedure gnomesort(var arr:mas; size : Integer); var i, j, t : Integer; begin i := 2; j := 3; while i <= size do begin if arr[i-1] <= arr[i] then begin i := j; j := j + 1 end else begin t := arr[i-1]; arr[i-1] := arr[i]; arr[i] := t; i := i - 1; if i = 1 then begin i := j; j := j + 1 end end end; end; begin write('Размер массива n='); read(n); writeln('Исходный массив:'); for i:=1 to n do read(a[i]); writeln; gnomesort(a,n); writeln('Результат сортировки:'); for i:=1 to n do write(a[i],' '); end.
//Для натуральных чисел
var a, s, p:integer;
begin
write('Введите число = ');
readln(a);
s := 0;
p := 1;
while (a<>0) do
begin
p := p * (a mod 10);
s := s + (a mod 10);
a := a div 10;
end;
writeln( 'Сумма цифр числа = ', s);
writeln( 'Произведение цифр числа = ', p);
end.
//Если число отрицательное
var
s, p, a, b, c: integer;
f: boolean;
begin
write('Введите число = ');
readln(a);
if a < 0 then
f := true;
a := abs(a);
b := a mod 10;
a := a div 10;
c := a mod 10;
a := a div 10;
if f = true then
begin
p := (-a) * b * c;
s := -a + b + c;
end
else
begin
s := a + b + c;
p := a * b * c;
end;
writeln('Сумма цифр числа = ', s);
writeln('Произведение цифр числа = ', p);
end.
type mas=array[1..1000] of integer;
var a:mas;
n,i:integer;
procedure gnomesort(var arr:mas; size : Integer);
var i, j, t : Integer;
begin
i := 2;
j := 3;
while i <= size do
begin
if arr[i-1] <= arr[i] then
begin
i := j;
j := j + 1
end
else
begin
t := arr[i-1];
arr[i-1] := arr[i];
arr[i] := t;
i := i - 1;
if i = 1 then
begin
i := j;
j := j + 1
end
end
end;
end;
begin
write('Размер массива n=');
read(n);
writeln('Исходный массив:');
for i:=1 to n do
read(a[i]);
writeln;
gnomesort(a,n);
writeln('Результат сортировки:');
for i:=1 to n do
write(a[i],' ');
end.