|
Вопрос # 6 172/ вопрос решён / |
|
Здравствуйте, уважаемые эксперты!
Решите, пожалйста, задачу: Найти min элементы 1-го столбца и 1-й строки матрицы А920*20), и поменять их местами.
 |
Вопрос задала: Мамонова Елена Николаевна (статус: Посетитель)
Вопрос отправлен: 29 мая 2012, 14:02
Состояние вопроса: решён, ответов: 1.
|
Ответ #1. Отвечает эксперт: min@y™
Исключительно от скуки (сижу на работе).
{
Найти min элементы 1-го столбца и 1-й строки матрицы А920*20),
и поменять их местами.
}
program MegaLaba_100500;
const
N = 20;
type
TMatrix: array[0..N - 1, 0..N - 1] of Integer; { или какой должен быть тип элементов? }
{ заполнение матрицы случайными числами }
procedure MakeMatrix(var X: TMatrix);
var
Row, Col: Integer;
begin
for Row:= 0 to N - 1 do
for Col:= 0 to N - 1 do
X[Row, Col]:= Random(101) - 50; { ну или как-то по-другому }
end;
{ вывод матрицы на экран }
procedure PrintMatrix(const X: TMatrix);
var
Row, Col: Integer;
begin
{ сама сделаешь - элементарно }
end;
{ поиск минимальных элементов 1-го столбца и 1-й строки матрицы
и их перестановка }
procedure ProcessMatrix(var X: TMatrix);
var
Row, Col: Integer;
MinRow: Integer; { индекс минимального элемента 1-го столбца }
MinCol: Integer; { индекс минимального элемента 1-й строки }
Min: Integer;
begin
{ поиск минимального в 1-м столбце }
Min:= X[0, 0];
MinRow:= 0;
for Row:= 1 to N - 1 do
if X[Row, 0] < Min
then begin
Min:= X[Row, 0];
MinRow:= Row;
end;
{ поиск минимального в 1-й строке }
Min:= X[0, 0];
MinCol:= 0;
for Col:= 1 to N - 1 do
if X[0, Col] < Min
then begin
Min:= X[0, Col];
MinCol:= Col;
end;
{ перестановка местами }
Min:= X[MinRow, 0];
X[MinRow, 0]:= X[0, MinCol];
X[0, MinCol]:= Min;
end;
var
A: TMatrix;
begin
MakeMatrix(A); { инициализация матрицы }
WriteLn('Исходная матрица:');
PrintMatrix(A); { вывод исходной матрицы на экран }
ProcessMatrix(A); { обработка матрицы согласно условию задачи }
WriteLn('Обработанная матрица:');
PrintMatrix(A); { вывод обработанной матрицы на экран }
ReadLn; {ожидание нажатия Enter }
end.
Ахтунг! Не отлаживал, писал на коленке!
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 29 мая 2012, 14:50
Оценка за ответ: 5
Комментарий к оценке: Спасибо большое!
|
Мини-форум вопроса
Всего сообщений: 2; последнее сообщение — 29 мая 2012, 14:47; участников в обсуждении: 2.
|
min@y™ (статус: Доктор наук), 29 мая 2012, 14:32 [#1]:
Цитата (Мамонова Елена Николаевна):
матрицы А920*20)
Мой телепатор говорит, что вместо "9" должна быть скобка. Он прав, да?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
29 мая 2012, 14:52: Вопрос перемещён из тематического раздела Pascal » Программирование на Pascal в раздел Лабораторный практикум » Pascal модератором DNK
4 июня 2012, 11:49: Статус вопроса изменён на решённый (изменил модератор DNK)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|