Помощь - Поиск - Пользователи - Календарь
Полная версия: Квадратная матрица
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
DZZRtt
Задача следующая: дана квадр матрица наити количество нулей, положительных и отрицательных элементов .
Задачу я решил самостоятельно, понемногоу начинаю везжать в простенькое программирование smile.gif
теперь просто для себя хочу сделать так чтобы можно было каждое из этих действий выполнять отдельно.

Например при нажатии клавиши 1 - вычислялось количество нулей
2- отрицательных
3-положительных чиселю
Как это можно реализовать?
Ozzя
var
ch: char;
...

ch:=readkey;
case ch of
'1' : {действие 1-е}
'2' : {действие 2-е}
'3' : {действие 3-е}
end;
DZZRtt
Спасибо!!!. Все получилось.
И еще один вопросик как сделать тоже самое, но так чтобы не нужно было запускать программу 3 раза.
Т.е. для одной и той же матрицы выполнялись все три действия?
Ozzя
Необязательно.
Например,
var
ch: char;
...

ch:=readkey;
case ch of
'1' : 
  begin
    kolvo_nuley:=0;
    for i:=1 to n do
    for j:=1 to n do
      if a[i]=0 then inc(kolvo_nuley);
  end;
'2' : {действие 2-е}
'3' : {действие 3-е}
end;

Либо оформить процедурой
мисс_граффити
добавить цикл, выход из которого осуществляется при нажатии какой-то клавиши (0, например).
а до этого сколько угодно раз делай п. 1,2,3
DZZRtt
А есть возможность выполнять все 3 действия не запуская програму каждый раз по новой?
Я матрицу генерю случайную и не получается проверить считается ли количество остальных элементов
Ozzя
var
ch: char;
...

ch:=readkey;
case ch of
'1' : 
  begin
    kolvo_nuley:=0;
    for i:=1 to n do
    for j:=1 to n do
      if a[i]=0 then inc(kolvo_nuley);
  end;
'2' : 
 begin
    kolvo_pol:=0;
    for i:=1 to n do
    for j:=1 to n do
      if a[i]>0 then inc(kolvo_pol);
  end;
'3' : 
 begin
    kolvo_otr:=0;
    for i:=1 to n do
    for j:=1 to n do
      if a[i]<0 then inc(kolvo_otr);
  end;
end;
Bokul
Цитата
А есть возможность выполнять все 3 действия не запуская програму каждый раз по новой?

Вот программная реализация того, что сказала мисс_граффити, только для выхода надо нажать Esc:

uses crt;
var ch:char;
begin
  repeat
     ch:=readkey;
     clrscr;
     case ch of
       '1': writeln('First procedure');
       '2': writeln('Second procedure');
       '3': writeln('Third procedure');
     end;
  until ch=#27;
end.


Цитата
Я матрицу генерю случайную и не получается проверить считается ли количество остальных элементов

Если ты используешь random без randomize, то будешь получать одинаковую матрицу при каждом запуске. Удобно при отладке прог.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.