Jump to content

Dúvida no código.


hoakerk.
 Share

Recommended Posts

Olá a todos,

Sou iniciante em programação... E quero aprender mais. Tenho por objectivo de criar um programa simples. Mas deparei-me com uns pequenos obstáculos... Vou colocar o código e a seguir as minhas duas dúvidas.

#include <iostream>
using namespace std;
int main ()
{
    char op;
    float n;
    cout << "Conversao automatica de notas Quantitativas para Qualitativas.\n";
    cout << "O valor da nota deve ser representado entre 0 e 20.\n\n";
    cout << "Introduza a nota: ";
    cin >> n;
          if(n>=0 && n<5)
                  cout << "Nota Qualitativa: Mau\n\n";
          else if(n>=5 && n<10)
                  cout << "Nota Qualitativa: Mediocre\n\n";
          else if(n>=10 && n<14)
                  cout << "Nota Qualitativa: Suficiente\n\n";
          else if(n>=14 && n<18)
                  cout << "Nota Qualitativa: Bom\n\n";
          else if(n>=18 && n<=20)
                  cout << "Nota Qualitativa: Muito Bom\n\n";
          else if(n>20 || n<0)
                  cout << "ERRO! Introduza o valor da nota entre 0 e 20!\n\n";
          cout << "\n\n";
do{
    cout <<"Deseja repetir? [s/N]: ";
    cin >> op;
    op=toupper(op);
    switch (op){
        case 'S':
        case 's':
             system ("cls");
             main ();
        case 'N':
        case 'n':
             return EXIT_SUCCESS;
        default:
            cout <<"Opcao invalida!\n\n";
            break;
            }
    } while (op!='n' || op!='N' || op!='s' || op!= 'S');
}

Na primeira parte, nas condicionais, se introduzir uma letra em vez de um float, programa entra em ciclo. Existe alguma maneira simples de limitar a introdução somente para números (float)?

A minha segunda dúvida é em relação do "do...while". Se eu introduzir 1 carácter qualquer, funciona como deve ser. Mas se introduzir 2 acontece o seguinte:

"(...)

Deseja repetir? [s/N]: kj

Opcao invalida!

Deseja repetir? [s/N]: Opcao invalida!

(...)"

Fico muito agradecido pela vossa ajuda.

Cumprimentos.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.