написать программу к вот такому заданию: Дана строка S, состоящая из слов, отделённых друг от друга одним или несколькими пробелами. Некоторые слова могут быть целыми числами. Найдите числа в строке и расположите цифры в этих числах в порядке убывания.
Напишите процедуру chisla, в которую передаётся исходная строка S, и которая возвращает эту же строку S с измененными числами.
Опишите и используйте вс функцию sort типа longint, которая располагает цифры в числе в порядке убывания. Параметр функции sort должен иметь тип longint.
Я уже написал функцию sort, но она что-то не заводится, вот она:
function sort(x:longint):longint;
var
M: array[1..100] of integer;
n, w, y, i, j:integer;
begin
for i:=1 to length(x) do;
begin
m[i]:=x mod 10;
x:=x mod 10;
end;
y:=32767;
j:=1;
for i:=1 to length(x) do
begin
if m[i] begin
n:=i;
w:=m[i];
m[j]:=m[i];
j:=j+1;
end;
end;
end;
pascal
Объяснение:
var
a: array [1..21] of integer;
i, max, imax: integer;
begin
randomize;
WriteLn('Исходный массив:');
for i := 1 to 21 do
begin
a[i] := random(66) - 13;
Write(a[i], ', ');
end;
WriteLn;
WriteLn('Результат задания 1:');
for i := 1 to 21 do
begin
if i mod 2 = 0 then a[i] := -3 * a[i];
Write(a[i], ', ');
end;
WriteLn;
WriteLn('Результат задания 2:');
for i := 1 to 21 do
begin
if a[i] < 10 then a[i] := - a[i];
Write(a[i], ', ');
end;
WriteLn;
max := -13;
WriteLn('Результат задания 3:');
for i := 1 to 21 do
begin
if abs(a[i]) > 40 then a[i] := a[i] - 15;
Write(a[i], ', ');
if a[i] > max then
begin
max := a[i];
imax := i;
end;
end;
WriteLn;
a[imax] := sqr(imax);
WriteLn('Результат задания 4:');
for i := 1 to 21 do
Write(a[i], ', ');
end.
program z1;
var a:array [1..21] of integer;
i,m: integer;
begin;
write('0.');
for i:=1 to 21 do
begin
a[i]:=random(66)-13;
write(a[i]:5)
end;
writeln;
write('1.');
for i:=1 to 21 do
begin
if i mod 2 = 0 then a[i]:=-3*a[i];
write(a[i]:5)
end;
writeln;
write('2.');
for i:=1 to 21 do
begin
if a[i] < 10 then a[i]:=-a[i];
write(a[i]:5)
end;
writeln;
write('3.');
for i:=1 to 21 do
begin
if abs(a[i]) > 40 then a[i]:=a[i]-15;
write(a[i]:5)
end;
writeln;
m:=1;
for i:=1 to 21 do if a[m] < a[i] then m:=i;
a[m]:=m*m;
write('4.');
for i:=1 to 21 do write(a[i]:5)
end.
Объяснение:
После каждого преобразования выводится получившийся массив