Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2009, 16:36   #1
mistertvister
Константин
Пользователь
 
Аватар для mistertvister
 
Регистрация: 11.10.2009
Сообщений: 47
Радость ПАСКАЛЬ. Поставить метки

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



Код:
program Laba2;


const
m=3;
n=3;
var a:array  [1..n,1..m]of integer ;
min:array [1..n] of integer;
i,j, sum,p,k : integer;
q:real;
begin
randomize;
writeln('programa vipolnaet operasii nad matrosoy nxm.') ;
writeln('matrisa');
for i:=1 to n do begin
for j:=1 to m do
begin
a[i,j]:=random(25)+1;
write(a[i,j]:3,'');
end;
writeln;
end;
writeln('viberete odin iz punktov');
writeln('1.poisk min elementa v kagdom stolbse.');
writeln('2.podssitivaen summu setnix elementov matrisi, raspoligenix na glavnoy diagonal.');
writeln('3.raspologaet elementi v kagdoy stroke v poriadke vozrastaniz');
writeln('4.zamena vcex setnix chisel na !.');
read(q);
if q=1 then
begin
writeln('=*==*==*= minimalniy element stolbsov: ');
for i:=1 to n do
for j:=2 to m do begin
min[i]:=a[i,1];
if a[i,j]<min[i] then  min[i]:=a[i,j];
end;
for i:=1 to n do writeln(min[i]);
end;

 if q=2 then   begin
sum:=0;
for i:= 1 to n do begin
if a[i,j] mod 2=0 then sum:=sum+a[i,j];
writeln('=*==*==*=sum=',sum);
end;
end;
  if q=3 then begin
for i:=1 to n do
begin
for j:=1 to m do
begin
if a[i,j] mod 2=0 then write('!') else write (a[i,j],'');
end;
writeln;
end;
writeln;
end;
    if q=4 then begin
for i:=1 to n do
for j:=1 to m-1 do
for k:=j+1 to m do

if a[i,j]>a[i,k] then
begin
p:=a[i,j];
a[i,j]:=a[i,k];
a[i,k]:=p;
end;
for i:=1 to n do
for j:=1 to m do begin write(a[i,j]:3);
                       if j=m then writeln
                       end;



end;
readln;
readln;
end.

Последний раз редактировалось Stilet; 29.10.2009 в 17:10.
mistertvister вне форума Ответить с цитированием
Старый 29.10.2009, 16:50   #2
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

советую прочитать про оператор goto , его использование с метками, также советуй почит про оператор switch,заюзать как выбор на какую метку будет указан переход....
ЗЫ:с тел сижу!
Lemo вне форума Ответить с цитированием
Старый 29.10.2009, 17:11   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
также советуй почит про оператор switch
Что-то я такого в паскале не припомню )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.10.2009, 17:21   #4
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

Сорри, а какой в пасе аналог свича?
Lemo вне форума Ответить с цитированием
Старый 30.10.2009, 10:31   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сорри, а какой в пасе аналог свича?
case

только дело не в том, как проверять (можно, хоть это и не очень красиво и удобно, оставить и на if'ах проверку).
а в том, как огранизовать структуру.
я бы рекомендовал так:
Код:
  repeat
      Выводим текст меню (в меню добавить пункт ВЫХОД!)
      вводим выбор пользователя: Read(q)
      case q of
          1: ...
          2: ...
          ...
      end;
until q=НомерПунктаВыхода;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.10.2009, 15:32   #6
wolf-wolf
Новичок
Джуниор
 
Регистрация: 24.10.2009
Сообщений: 1
По умолчанию связь

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
case

только дело не в том, как проверять (можно, хоть это и не очень красиво и удобно, оставить и на if'ах проверку).
а в том, как огранизовать структуру.
я бы рекомендовал так:
Код:
  repeat
      Выводим текст меню (в меню добавить пункт ВЫХОД!)
      вводим выбор пользователя: Read(q)
      case q of
          1: ...
          2: ...
          ...
      end;
until q=НомерПунктаВыхода;
сори что не по теме но не могу нати куда в личку вам написать отпишитесь плиз лучше в асю 410-001-720 спасибо
wolf-wolf вне форума Ответить с цитированием
Старый 30.10.2009, 17:09   #7
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
writeln('viberete odin iz punktov');
writeln('1.poisk min elementa v kagdom stolbse.');
writeln('2.podssitivaen summu setnix elementov matrisi, raspoligenix na glavnoy diagonal.');
writeln('3.raspologaet elementi v kagdoy stroke v poriadke vozrastaniz');
writeln('4.zamena vcex setnix chisel na !.');
case readkey  of
'1':begin

    end;
'2':begin

    end;
'3':begin

    end;
'4':begin

    end;
end;
writeln('Press ESC for exit');
until readkey=#27;
При нажати на кнопку выполнится один из пунктов
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод текста на метки HellMercenariess Общие вопросы Delphi 6 16.10.2009 14:30
Не работают метки ИВэТэшка Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 22.07.2009 22:05
Как поставить Паскаль на Висту? hqpz Паскаль, Turbo Pascal, PascalABC.NET 2 13.07.2009 13:48
Метки в делфи Neymexa Помощь студентам 1 29.01.2009 16:52