Вопрос задан 30.07.2023 в 01:51. Предмет Информатика. Спрашивает Гелина Ангелина.

Отсортировать массив по возрастанию последней цифры по строкам. Паскаль

0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Сергей Смотрин.
PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018
Внимание! Если программа не работает, обновите версию!

begin
  var (m,n):=ReadInteger2('Количество строк и столбцов в массиве:');
  Writeln('*** Исходный массив ***');
  var a:=MatrRandom(m,n,-99,99);
  a.Println(4); Writeln(4*n*'-');
  for var i:=0 to m-1 do
    a.SetRow(i,a.Row(i).OrderBy(t->Abs(t mod 10)).ToArray);
  Writeln('*** Полученный массив ***'); a.Println(4)
end.

Пример
Количество строк и столбцов в массиве: 5 8
*** Исходный массив ***
 -53 -41 -74  23  90  -4  48 -78
 -68  82  45  82 -54 -53 -63  80
  66  40 -72 -15  79 -95  16  98
 -52 -76  37  10  -9 -87 -12  30
 -82 -58  43 -17  58  27 -85  96
--------------------------------
*** Полученный массив ***
  90 -41 -53  23 -74  -4  48 -78
  80  82  82 -53 -63 -54  45 -68
  40 -72 -15 -95  66  16  98  79
  10  30 -52 -12 -76  37 -87  -9
 -82  43 -85  96 -17  27 -58  58

Замечание. В связи с некорректно поставленным вопросом принято решение сортировать каждую строку массива независимо от прочих по возрастанию последней цифры.
0 0
Отвечает Марцевич Кристина.
Const n=5;
var a:array[1..n,1..n] of integer;
i,j,v,l:integer;
begin
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(30);
write(a[i,j]:4)
end;
writeln
end;
writeln;
for l:=n-1 downto 1 do
for i:=1 to l do
if a[i,n] > a[i+1,n] then
for j:=1 to n do
begin
v:=a[i,j];
a[i,j]:=a[i+1,j];
a[i+1,j]:=v
end;
for i:=1 to n do
begin
for j:=1 to n do write(a[i,j]:4);
writeln
end;
readln
end.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для сортировки массива по возрастанию последней цифры по строкам в Pascal (Delphi) вы можете использовать простой алгоритм сортировки, такой как сортировка пузырьком. Вот пример кода:

pascal
program SortArrayByLastDigit; const Rows = 5; // Количество строк в массиве Cols = 5; // Количество столбцов в массиве type TwoDimensionalArray = array[1..Rows, 1..Cols] of Integer; var arr: TwoDimensionalArray; i, j, temp, lastDigitI, lastDigitJ: Integer; // Функция для получения последней цифры числа function GetLastDigit(num: Integer): Integer; begin Result := Abs(num) mod 10; end; // Процедура сортировки массива по возрастанию последней цифры по строкам procedure SortArrayByLastDigit(); begin for i := 1 to Rows do begin for j := 1 to Cols - 1 do begin lastDigitI := GetLastDigit(arr[i, j]); lastDigitJ := GetLastDigit(arr[i, j + 1]); if lastDigitI > lastDigitJ then begin // Меняем местами элементы массива, если последняя цифра первого элемента больше последней цифры второго элемента temp := arr[i, j]; arr[i, j] := arr[i, j + 1]; arr[i, j + 1] := temp; end; end; end; end; // Процедура для вывода массива на экран procedure PrintArray(); begin for i := 1 to Rows do begin for j := 1 to Cols do Write(arr[i, j]:4); Writeln; end; end; begin // Ввод значений массива (здесь ввод может быть произведен с клавиатуры или задан заранее) arr[1, 1] := 23; arr[1, 2] := 45; arr[1, 3] := 17; arr[1, 4] := 98; arr[1, 5] := 32; arr[2, 1] := 11; arr[2, 2] := 87; arr[2, 3] := 64; arr[2, 4] := 59; arr[2, 5] := 21; arr[3, 1] := 99; arr[3, 2] := 29; arr[3, 3] := 74; arr[3, 4] := 51; arr[3, 5] := 64; arr[4, 1] := 37; arr[4, 2] := 85; arr[4, 3] := 77; arr[4, 4] := 12; arr[4, 5] := 33; arr[5, 1] := 62; arr[5, 2] := 44; arr[5, 3] := 57; arr[5, 4] := 39; arr[5, 5] := 22; Writeln('Исходный массив:'); PrintArray(); // Сортируем массив по последней цифре по строкам SortArrayByLastDigit(); Writeln('Отсортированный массив по последней цифре по строкам:'); PrintArray(); Readln; end.

В этом примере я использовал массив 5x5, но вы можете изменить значение констант Rows и Cols в соответствии с вашими требованиями. Здесь массив уже содержит некоторые значения, но вы можете изменить их или ввести значения с клавиатуры.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос