Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на матрицу
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Depression period
Пожалуйста помогите!!!!!!

Задача1: найти наименьший элемент матрицы X(n*m)
и записать нули в ту строку и столбец, где он находится.


Внимание!!!: Исходные данные вводятся с клавиатуры или получаются внутри программы с использованием генератора случайных чисел. !!!Выбор способа получения исходных данных осуществляется с использованием меню после запуска программы на выполнение.!!!!


Я с небольшой помощью сделала задачу, но у меня исходные данные всегда вводятся с использованием генератора случ. чисел, а надо, чтобы при нажатии 1-ввод с клавы
2-генератор случ. чисел
3-выход


ПОМОГИТЕ ПОЖАЛУЙСТА!!!!!!!
klem4
так ?
uses crt;
const
   n=3;
type
   TMatrix = array[1..n,1..n] of integer;

procedure InputHuman(var mx : TMatrix);
var
   i,j : byte;
begin
   for i := 1 to n do
    for j := 1 to n do begin
       write('m[',i,',',j,']=');
       readln(mx[i,j]);
    end;
   writeln;
end;

procedure InputRnd(var mx : TMatrix);
const rnd = 11;
var
   i,j : byte;
begin
   randomize;
   for i := 1 to n do
    for j := 1 to n do
     mx[i,j] := random(rnd);
end;

procedure Print(mx : TMatrix);
var
   i,j : byte;
begin
   for i := 1 to n do begin
      writeln;
      for j := 1 to n do write(mx[i,j]:3,'  ');
   end;
   writeln;
   readln;
end;

procedure Reform(var mx : TMatrix);
var
   i,j,imin,jmin : byte;
begin
   imin := 1;
   jmin := 1;
   for i := 1 to n do
    for j := 1 to n do
     if mx[i,j] < mx[imin,jmin] then begin
        imin := i;
        jmin := j;
     end;

   for i := 1 to n do begin
      mx[i,jmin] := 0;
      mx[imin,i] := 0;
   end;

   writeln('Done. Press any key ...');
   readln;
end;

var
   m : TMatrix;
   ch : char;

begin

   repeat
      clrscr;
      writeln('1 - Input ');
      writeln('2 - Input RND');
      writeln('3 - Print');
      writeln('4 - Reform');
      writeln('5 - Quit');
      ch := readkey;
      case ch of
       '1' : InputHuman(m);
       '2' : InputRnd(m);
       '3' : Print(m);
       '4' : Reform(m);
      end;
   until ch='5';
end.
Depression period
...........я сделала как ты показал, но у меня комп не понимает что такое readkey......
я переделала этот кусок так:
Код
var
   m : TMatrix;
   z : byte;

begin

   repeat

      writeln('1 - Input ');
      writeln('2 - Input RND');
      writeln('3 - Print');
      writeln('4 - Reform');
      writeln('5 - Quit');


      case z of
       1 : InputHuman(m);
       2 : InputRnd(m);
       3 : Print(m);
       4 : Reform(m);
     end;
   until z=5;

end.





но он вот чего выдает:
volvo
А что ты хотела, чтобы он выдавал? Ты ж ничего не вводишь... Хотя бы так вводи Z:
var
   m : TMatrix;
   z : byte;

begin

   repeat

      writeln('1 - Input ');
      writeln('2 - Input RND');
      writeln('3 - Print');
      writeln('4 - Reform');
      writeln('5 - Quit');

      readln(z); { <--- }

      case z of
       1 : InputHuman(m);
       2 : InputRnd(m);
       3 : Print(m);
       4 : Reform(m);
     end;
   until z=5;

end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.