Другие языки программирования и технологии
Паскаль, двумерный массив =\
Дана матрица размера 5 x 10. Преобразовать матрицу, поменяв местами минимальный и максимальный элемент в каждой строке
procedure Swap(var N1, N2 : Integer); begin N1 := N1 + N2; N2 := N1 - N2; N1 := N1 - N2; end;
const Rows = 5; Cols = 10;
var A : array [1..Rows, 1..Cols] of Integer; Row, Col, Min, Max : Byte;
begin
WriteLn('Исходная матрица: '); Randomize;
for Row := 1 to Rows do begin for Col := 1 to Cols do begin A[Row, Col] := Random(100); Write(A[Row, Col]:3); end; WriteLn; end;
for Row := 1 to Rows do begin Min := 1; Max := 1; for Col := 2 to Cols do if A[Row, Col] < A[Row, Min] then Min := Col else if A[Row, Col] > A[Row, Max] then Max := Col; Swap(A[Row, Min], A[Row, Max]); end;
WriteLn('Полученная матрица: ');
for Row := 1 to Rows do begin for Col := 1 to Cols do Write(A[Row, Col]); WriteLn; end;
end.
const Rows = 5; Cols = 10;
var A : array [1..Rows, 1..Cols] of Integer; Row, Col, Min, Max : Byte;
begin
WriteLn('Исходная матрица: '); Randomize;
for Row := 1 to Rows do begin for Col := 1 to Cols do begin A[Row, Col] := Random(100); Write(A[Row, Col]:3); end; WriteLn; end;
for Row := 1 to Rows do begin Min := 1; Max := 1; for Col := 2 to Cols do if A[Row, Col] < A[Row, Min] then Min := Col else if A[Row, Col] > A[Row, Max] then Max := Col; Swap(A[Row, Min], A[Row, Max]); end;
WriteLn('Полученная матрица: ');
for Row := 1 to Rows do begin for Col := 1 to Cols do Write(A[Row, Col]); WriteLn; end;
end.
пиши в агент или icq 452371863
Запускаем два вложенных цикла - один по строкам будет проверять, другой каждую строку по символам. Во вложенном цикле используем два указателя
max и min. Присваиваем им значение первого элемента строки. Дальше, сравниваем каждый последующий элемент с этими. Если он больше max, делаем его текущим max, если меньше min, делаем текущим min. По окончании работы внутреннего цикла (который строку по символам разбирал) обмениваем местами значения min и max
int* temp;
*temp = *max;
*max = *min;
*min = *temp;
Дальше, переходим к увеличению счетчика внешнего цикла.
Сорри, что в коде с++ написано, не знаю паскаля.
max и min. Присваиваем им значение первого элемента строки. Дальше, сравниваем каждый последующий элемент с этими. Если он больше max, делаем его текущим max, если меньше min, делаем текущим min. По окончании работы внутреннего цикла (который строку по символам разбирал) обмениваем местами значения min и max
int* temp;
*temp = *max;
*max = *min;
*min = *temp;
Дальше, переходим к увеличению счетчика внешнего цикла.
Сорри, что в коде с++ написано, не знаю паскаля.
Похожие вопросы
- Паскаль. Двумерные массивы
- Помогите решить задачу по паскалю на двумерные массивы.
- кто может решить задачу в турбо паскале, по двумерным массивам
- Помогите,пожалуйста,решить задачу на двумерные массивы,в паскале.(задача вн.)Спасибо.
- помогите срочно надо Квадратные массивы тема: Двумерные массивы на языке C++
- дан двумерный массив С(3,4).Получите новый массив А путём увеличения всех элементов исходного массива на число С.
- Необходимо упорядочить строки двумерного массива, по возрастанию первого эл-та. СИ.
- .помогите пожалуйста двумерный массив на языке c++
- Как можно передать ДВУМЕРНЫЙ массив в функцию в С++, не создавая его, как глобальный. Пример ниже:
- Что такое Двумерный массив?