• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Parasita

como volto ao menu principal

15 mensagens neste tópico

depois de inserir um  menu por exemplo:

1- ver resultados

2- inserir dados

3- sair

como é que apos entrar na opção 1 (ver resultados) volto, sem sair do programa, ao menu principal?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

usas um ciclo do.. while

Nao percebi, podes dar 1 exemplo, nem que em VB ... lol :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

em vb não.... podia era dar em c++...

deixa cá ver se tenho para aqui algum em que tenha usado já feito...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

em vb não.... podia era dar em c++...

deixa cá ver se tenho para aqui algum em que tenha usado já feito...

Still w8ing

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eh fdx.... esqueci-me completamente.... :|

Aqui tens em c++, percebe-se bem, penso eu:

#include <iostream>
using namespace std;

int main () {
int escolha;
do {
cout << endl << endl << "****************SUPER-HELLO WORLD PROGRAM*******************";
cout << endl << "1 - Hello world normal" << endl;
cout << "2 - Enhanced hello world" << endl;
cout << "3 - Hyper Hello world" << endl;
cout << "4 - End" << endl;
cout << endl << "Insira a escolha: "; cin >> escolha;
switch (escolha) {
	case 1 : cout << endl << endl << "Hello World!"; break;
	case 2: cout << endl << endl << "Wake up you bastards!"; break;
	case 3: cout << endl << endl << "Fucking loosers, say a fucking hello to fucking me!"; break;
	case 4: continue;
	default : cout << endl << endl << "Insert on me a fuckying valid option you fag"; break;
} }while (escolha != 4);
return 0; 
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

em pascal é mais ou menos isto..

   

while opcao<>5 do
           begin
                write('1- potencia.');
                writeln('2-ler fixeiro.');
                writeln('3-escrever em fixeiro.');
                writeln('4-copiar fixeiro.');
                readln(opcao);
                case opcao of
                         1:potencia;
                          2:lerfix('0818.txt');
                          3:escrevefix('0818.txt');
                     end;
           end;[/code

isso é so um exemplo que eu copiei aqui de um programa qualquer que tenho aqui..
cumps.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem axo k nao me fiz entender.

O meu problem vem daki:

Tenhu um menu principal

writeln('1- ver documento');
writeln('2-ecrever etc....');
writeln('3-sair');
readln(a);
if a=1 then
  begin
          verdocumento;
end;
if a=2 then
  begin
          escrever;
  end;
if a=3 then
  begin
         exit;
  end; 

etc 
etc
etc 

Ao entrar na opçao 1 o meu programa deixa-me ver reralmente o documento mas o

k eu keria era ter tipo outro menu um que desse para voltar para o menu principal e outra sair,

Para Sair é fácil agora não estou a conseguir voltar ao menu principal, pois o menu

principal não é  PROCEDIMENTO (PROCEDURE).

Através do While até faz sentido mas o problema é que quando entro na opçao 1......

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Entao podes fazer, em todos os menus, um Sair, po exemplo:

program test;
uses crt;
var
a, b, n1, n2, n3:integer
writeln('1 - Soma');
writeln('2 - Divisão');
writeln('3 - Sair');
readln(a);
case a of
1: begin
writeln('1º Valor');
readln(n1);
writeln('2º Valor');
readln(n2);
n3:=n1+n2;
writeln('O Resultado é ',n3);
end;
writeln('3 - Sair');
case b of
3 : begin
exit;
end;
case a of
2 : begin
writeln('1º Valor');
readln(n1);
writeln('2º Valor');
readln(n2);
n3:=n1 Div n2;
writeln('O Resultado é ',n3);
end;
writeln('3 - Sair');
case b of
3 : begin
exit;
end;
case a of
3 : begin
exit;
end;
end.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então e porque não transformas o menu num procedure?

Penso que se tornava muito mais simples.

1:
begin
      ....
      write('99 - menu');
      read(var);
      if var = 99
           menu;
end;

Isto é uma maneira de ver...

Cumps,

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes usar uma label que é bastante simples...

program qlqcoisa;

uses crt;

label inicio;

var ....

begin

inicio:

writeln('MENU PRINCIPAL....');

readln(a);

case a of

1:  begin

....

goto to inicio;

end;

end.

Espero ter ajudado.. 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

NAO

labels é um mau principio da programação, e devem ser evitados. (tenho profs que nem corrigem se as usarmos)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

NAO

labels é um mau principio da programação, e devem ser evitados. (tenho profs que nem corrigem se as usarmos)

Concordo plenamente ..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois labels é mau para usar em procedimentos por ex. Mas de resto nao sei, ainda sou aprendiz nisto. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

usas um ciclo do.. while

Exactamente, podes usar um ciclo While...Do ou então Repeat...Until.

::Exemplo do programa principal, usando 3 subprogramas:

While...Do

BEGIN
     resp:='s';
     while (resp='s') do
         clrscr;        
         writeln('1 - ver resultados');
         writeln('2 - inserir dados'); 
         writeln('3 - sair');
         case (opcao) of        
            1:ver_resultados;
            2:inserir_dados; 
            3:sair;
         else writeln('Opcao invalida');
         end;
 writeln('Quer voltar ao menu inicial?(s/n)');
 readln(resp);        
     end;
END.

Repeat...Until

BEGIN
     repeat 
          clrscr;        
          writeln('1 - ver resultados');
          writeln('2 - inserir dados'); 
          writeln('3 - sair');
          case (opcao) of        
             1:ver_resultados;
             2:inserir_dados; 
             3:sair;
          else writeln('Opcao invalida');
          end;
  writeln('Quer voltar ao menu inicial?(s/n)');
  readln(resp);        
     until (resp='n');
END.

Se não é isto não tou a ver kal é o problema...:P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora