Jump to content
Fórum Script Brasil
  • 0

Construa uma função que exiba um menu


Mr. Davi
 Share

Question

Olá faço curso a distância de Análise de Sistemas. Na matéria de Estruturas de dados surgiu um exemplo dado no material on-line que exibia o seguinte código fonte:

#include <iostream>
using namespace std;
void menu()
{
  system ("cls");
  cout<<"\nMenu\n";
  cout<<"\n1-Pilha";
  cout<<"\n2-Fila";
  cout<<"\n3-Lista";  
  cout<<"\n4-Arvore";
  cout<<"\n5-Grafo";  
  cout<<"\n6-Sair";
  cout<<"\nOpcao: ";    
}
int main()
{
    int op;
    do
    {
        menu();
        cin>> op
        switch (op)
        {
            case 1: cout<<"\nMetodo de acesso: LIFO\n";
            break;
            case 2: cout<<"\nMetodo de acesso: FIFO\n";
            break;
            case 3: cout<<"\nMetodo de acesso: Lista\n";
            break;
            case 4: cout<<"\nMetodo de acesso: Arvore\n";
            break;
            case 5: cout<<"\nMetodo de acesso: Grafo\n";
            break;
            case 6: cout<<"\nEstudar\n";
            break;
            default: cout<<"\nOpção Invalida\n";
        }
        System ("pause");
    }
    while (op!=6);
    return 0;
    }

Mas da erro na compilação, logo na linha 5 e depois na 7 e vai até a 13. Qual o problema desse código?

Alguém pode me ajudar?

Valeu

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

a função sytem é com s minúscula, C++ é "case sensitive", ou seja que distingue entre maiúsculas e minúsculas, para ele System é diferente de system. Ademais você precisa incluir cstdlib ou windows.h(só em sistemas linux). Na linha 38 esta como maiúscula.

Também falta ponto e virgula na linha 21 do seu código.

Sobre o problema que você diz que "...depois na 7 e vai até a 13.", isso é normal, quando você tem um erro em uma linha o mais normal é que as seguintes linhas estejam marcando erro, faça caso antes a primeira linha, consertando ela o resto deixa de marcar erro.

Um truque para identificar erros é que as vezes o compilador marca o erro em uma linha a qual você não vê nenhum erro, porem ele bota algo como "before algo" ou seja "antes de algo", um cout um switch(geralmente a primeira palavra da linha), e as vezes o que vem antes está na linha anterior, já que para C++ não existe o salto de linha, para c++ tanto faz você fazer

cout << "Alô"; cout << "mundo";

que

cout << "Alô";
cout << "mundo";

... o anterior(before) de  cout << "mundo"; sempre será cout << "Alô";, esteja ele na mesma linha ou na linha anterior, não lhe importa a c++ os saltos de linha, então como falei o truque é si não ver erro na mesma linha olhe uma linha atrás. Por isso existe o ponto e virgula, si você esquecer de colocar o ponto e virgula depois do cout << "Alô", iria fazer mais sentido si fosse cout << "Alô" cout << "mundo"(falta ponto e virgula depois de "Alô");, nesse caso ele ia dizer que falta ponto e coma antes(before) do segundo cou, isso tem sentido, o compilador iria marcar o erro na mesma linha, porem deixa de ter sentido si ambos estiver em linhas separadas e ele vai marcar o erro na seguinte linha com a palavra before, porém como falei para C/C++ é a mesma coisa estar junto que separado, porque o ponto e virgula é o que indica que acabamos uma instrução, isso sim que não pode faltar. Podemos até escrever o programa integramente em uma só linha, mas não devemos esquecer o ponto e virgula logo depois de cada instrução. ;)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...