Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на матрицу
Форум «Всё о Паскале» > 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.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.