| 
| 
 | Вопрос # 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) Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |