begin readln(str); //str := 'Day 10, mice 8: "Year" 7 is a mistake 91.'; foreach c: char in str do if (Char.IsDigit(c)) then num += c; for j: byte := 1 to length(num) - 2 do for i: byte := 1 to length(num) - 1 do if (num[i] < num[i + 1]) then begin str[1] := num[i]; num[i] := num[i + 1]; num[i + 1] := str[1]; end; if (Integer.Parse(num) > 0) then begin while (num[num.Length - 1] = '0') do num.Remove(num.Length - 1); writeln('Да' + #13 + num); end else writeln('Нет'); end.
type MCo = array[1..200] of longint; {строка массива - до 200 столбцов} DV = ^MCo; {указатель на строку массива} MR = array[1..150] of DV; {массив указателей на строки}
var a: MR; {Создается массив указателей на строки} n,m:longint;
procedure ShiftCycle(row: longint; k: longint); var i, j, e: longint; begin for i := 1 to k do begin e := a[row]^[m]; for j := m - 1 downto 1 do a[row]^[j + 1] := a[row]^[j]; a[row]^[1] := e end; end;
var i, j, e: longint;
begin ClrScr; writeln('Введите число строк и столбцов массива'); readln(n,m); writeln('Введите элементы массива'); for i := 1 to n do begin getmem(a[i], m * sizeof(longint)); {Фактическое выделение памяти под i-ю строку строку массива} writeln('Строка ',i,':'); for j := 1 to m do read(a[i]^[j]) end; writeln; for i := 1 to n do begin ShiftCycle(i, i); for j := 1 to m do write(a[i]^[j]:4); writeln; freemem(a[i], m * sizeof(longint)) {Освобождение памяти из-под i-й строки массива} end end.
str, num: string;
begin
readln(str); //str := 'Day 10, mice 8: "Year" 7 is a mistake 91.';
foreach c: char in str do
if (Char.IsDigit(c)) then
num += c;
for j: byte := 1 to length(num) - 2 do
for i: byte := 1 to length(num) - 1 do
if (num[i] < num[i + 1]) then
begin
str[1] := num[i];
num[i] := num[i + 1];
num[i + 1] := str[1];
end;
if (Integer.Parse(num) > 0) then
begin
while (num[num.Length - 1] = '0') do
num.Remove(num.Length - 1);
writeln('Да' + #13 + num);
end
else
writeln('Нет');
end.
type
MCo = array[1..200] of longint; {строка массива - до 200 столбцов}
DV = ^MCo; {указатель на строку массива}
MR = array[1..150] of DV; {массив указателей на строки}
var
a: MR; {Создается массив указателей на строки}
n,m:longint;
procedure ShiftCycle(row: longint; k: longint);
var
i, j, e: longint;
begin
for i := 1 to k do
begin
e := a[row]^[m];
for j := m - 1 downto 1 do a[row]^[j + 1] := a[row]^[j];
a[row]^[1] := e
end;
end;
var
i, j, e: longint;
begin
ClrScr;
writeln('Введите число строк и столбцов массива');
readln(n,m);
writeln('Введите элементы массива');
for i := 1 to n do
begin
getmem(a[i], m * sizeof(longint)); {Фактическое выделение памяти под i-ю строку строку массива}
writeln('Строка ',i,':');
for j := 1 to m do read(a[i]^[j])
end;
writeln;
for i := 1 to n do
begin
ShiftCycle(i, i);
for j := 1 to m do write(a[i]^[j]:4);
writeln;
freemem(a[i], m * sizeof(longint)) {Освобождение памяти из-под i-й строки массива}
end
end.
Тестовый прогон:
Введите число строк и столбцов массива
4 5
Введите элементы массива
Строка 1:
1 2 3 4 5
Строка 2:
6 7 8 9 10
Строка 3:
11 12 13 14 15
Строка 4:
16 17 18 19 20
5 1 2 3 4
9 10 6 7 8
13 14 15 11 12
17 18 19 20 16