Ir para conteúdo
  • 0
ezbueno

Lógica de Programação - Dúvida - C++

Pergunta

Olá, pessoal!

 

Sou iniciante em programação. Criei um sistema simples para mostrar os valores de uma matriz, conforme o menu de escolha. O sistema só é encerrado, se o valor 5 for digitado. Segue abaixo o código:

 

 

#include<iostream>
#include<stdio.h>
#include<locale.h>
using namespace std;

int Menu (){
    
   cout << "=========================================" << endl;
   cout << "        M E N U  D E  O P Ç Õ E S        " << endl;
   cout << "=========================================" << endl;
   cout << "[1] Mostrar a Matriz" << endl;
   cout << "[2] Diagonal Principal" << endl;
   cout << "[3] Triângulo Superior" << endl;
   cout << "[4] Triângulo Inferior" << endl;
   cout << "[5] Sair" << endl;
   cout << "=========================================" << endl;    
    
}

int main (){
    
    setlocale (LC_ALL, "Portuguese");
    
    int l, c, mat[4][4], opcao;
    char esc = 's';

    for (l = 0; l < 4; l++){
        for (c = 0; c < 4; c++){
        cout << "Digite o valor da posição " << "[" << l << "," << c << "]: ";
        cin >> mat[l][c];
        }
    }
    system ("cls");    
do{
    Menu();
    cout << "Digite a opção desejada: ";
    cin >> opcao;
    system ("cls");
    if (opcao == 1){
        for (l = 0; l < 4; l++){
            for (c = 0; c < 4; c++){
                printf ("%5d", mat[l][c]);
            }
            cout << "\n";
        }
    }
    if (opcao == 2){
        for (l = 0; l < 4; l++){
            printf ("\n%5d", mat[l][l]);
        }
        cout << "\n";
    }
    if (opcao == 3){
        for (l = 0; l < 4; l++){
            for (c = 0; c < 4; c++){
                if (l > c || l == c){
                    printf ("     ");
                }else if (l < c || l == c){
                    printf ("%5d", mat[l][c]);
                }
            }
            cout << "\n";
        }
    }
    if (opcao == 4){
        for (l = 0; l < 4; l++){
            for (c = 0; c < 4; c++){
                if (l < c || l == c){
                    printf ("     ");
                }else if (l > c || l == c){
                    printf ("%5d", mat[l][c]);
                }
            }
            cout << "\n";
        }
    }
}while (opcao < 5);
    cout << "ENCERRANDO...";
}
 

Eu gostaria de fazer uma implementação para mostrar da seguinte maneira: Se o usuário digitar algum valor que não está contido no menu, o sistema mostraria a informação "VALOR INVÁLIDO". O problema é que se eu fizer uma condição para comparar se a minha variável "opcao" for menor do que 1 ou "opcao" maior do que 5, o sistema irá encerrar o meu programa e exibir a mensagem "VALOR INVÁLIDO",  juntamente com a outra mensagem do final do programa que é "ENCERRANDO..."

De que forma eu poderia implementar isso, sem que o meu programa fosse encerrado até que o valor 5 seja escolhido? Alguém poderia me ajudar? Grato pela atenção!

Compartilhar este post


Link para o post
Compartilhar em outros sites

0 respostas a esta questão

Recommended Posts

Até agora não há respostas para essa pergunta

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por 4Unknow
      Bom dia comunidade Imasters.

      Venho aqui tratar de um problema dúvida que estou tendo com um layout que estou tentando usar o formulário php dele.
      Quando clico em enviar ele me enviar para um arquivo .php  (assets/vendor/simple-forms/sendmail.php)

      Ele não envia o e-mail, acredito que deveria aparecer uma mensagem que o contato foi enviado corretamente.
      Vou deixar os arquivos aqui em anexo quem puder me ajudar nessa, ficaria muito grato.
       
      Link Website (wetransfer.com)
    • Por Sharank
      Strcat Function In C++
       
      I'm new to C and C++ programming, can anyone give me a hint on what I'm doing wrong here. I'm trying to write to concat function that takes to pointers to chars and concatenates the second to the first. The code does do that, but the problem is that it adds a bunch of junk at the end.
       
      For instance, when passing the arguments - "green" and "blue", the output will be "greenblue" plus a bunch of random characters. I also wrote the strlen function that strcat uses, which I will provide below it for reference. I'm using the online compiler at InterviewBit The exact instructions and specification is this:
       
      int main(int argc, char** argv)
      {
      const int MAX = 100;
       
      char s1[MAX];
      char s2[MAX];
       
      cout << "Enter your first string up to 99 characters. ";
      cin.getline(s1, sizeof(s1));
      int size_s1 = strlen(s1);
      cout << "Length of first string is " << size_s1 << "\n";
       
      cout << "Enter your second string up to 99 characters. ";
      cin.getline(s2, sizeof(s2));
      int size_s2 = strlen(s2);
      cout << "Length of second string is " << size_s2 << "\n";
      cout << " Now the first string will be concatenated with the second
      string ";
      char* a = strcat(s1,s2);
       
      for(int i = 0; i<MAX; i++)
      cout <<a;
       
      // system("pause");
      return 0;
      }
       
      //strcat function to contatenate two strings
      char* strcat(char *__s1, const char *__s2)
      {
      int indexOfs1 = strlen(__s1);
      int s2L = strlen(__s2);
      cout <<s2L << "\n";
      int indexOfs2 = 0;
      do{
      __s1[indexOfs1] = __s2[indexOfs2];
      indexOfs1++;
      indexOfs2++;
      }while(indexOfs2 < s2L);
       
       
      return __s1;
      }
       
      //Returns length of char array
      size_t strlen(const char *__s)
      {
      int count = 0;
      int i;
      for (i = 0; __s != '\0'; i++)
      count++;
      return (count) / sizeof(__s[0]);
       
      }
    • Por Hacker_Buiu
      Tem que completar o perfil para curtir e ser curtido sem dar erro?
    • Por Hacker_Buiu
      Porque não ganho reputação com o meu bom trabalho?
    • Por Flaviaac
      Boa tarde pessoal,
      gostaria de pedir uma ajuda para criar um evento em um formulário HTML.
       

      Eu tenho um formulário em HTML e PHP,  e nele tem um campo do tipo select e um campo do tipo text(desabilitado).
      Gostaria que ao clicar no campo select e escolher qualquer opção da lista, automaticamente em seguida aparecesse dentro do campo text um valor respectivo a opção escolhida anteriormente.
       
      Exemplo:
      Tenho um campo select com tipos diferentes de materiais (vidro, papel, alumínio, etc.) e no campo text(desabilitado) terei a quantidade de anos que cada material demora a se decompor na natureza. O campo text inicialmente estará vazio, mas quando selecionar o material, aparecerá dentro deste text a quantidade de anos.
       
      obs.: Os valores do campo select e do campo text estão ambos na mesma tabela do banco de dados(MySQL), o campo select com valores string e o campo text com valores inteiros.
       
      Não sei se consegui explicar direito, mas acredito que terei que utilizar javascript para este evento, mas ainda não sei como.
      Alguém tem ideia de como eu poderia fazer isso ou alguma dica?
       
       
      Muito obrigada!!

       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.