Ir para o conteúdo
rkixa

Calculadora Pascal com Case

Mensagens Recomendadas

rkixa    1
rkixa

Boas,

Venho pedir ajuda aqui aos gurus da programação para que me deêm um toque do que o que tenho mal aqui neste programa.

program calculadora;

uses crt;

var n1, n2, conta: integer;

operacao: char;

begin
    clrscr;
    writeln ('Inserir 1º valor: ');
    readln (n1);

    writeln('Escolha a operacao [+, -, *, /]: ');
    readln(operacao);

    writeln ('Inserir 2º valor: ');
    readln (n2);

        case operacao of
        '+': conta:= n1+n2;
        '-': conta:= n1-n2;
        '*': conta:= n1*n2;
        '/': conta:= n1/n2;
        else
        writeln('Invalido');

    writeln('O valor da operacao ‚: ',conta);
   
    readkey;
end.

Tenho quase a certeza que o erro principal está no Case mas não estou a ver onde.

Agradecia uma ajudinha.

cumps,

rkixa

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheGlorious    0
TheGlorious

Qual o erro que aparece?

Penso que um dos problemas é quando divides, pois o resultado pode ser decimal, e tu declaraste-o como inteiro.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
rkixa    1
rkixa

Muito Obrigado já está a funcionar.

Aqui estão as alterações:

program calculadora;

uses crt;

var n1, n2: integer;

conta: real;

operacao: char;

begin

    clrscr;
    writeln ('Inserir 1º valor: ');
    readln (n1);

    writeln('Escolha a operacao [+, -, *, /]: ');
    readln(operacao);

    writeln ('Inserir 2º valor: ');
    readln (n2);

        case operacao of
        '+': conta:= n1+n2;
        '-': conta:= n1-n2;
        '*': conta:= n1*n2;
        '/': conta:= n1/n2;
        end;

    writeln('O valor da operacao ‚: ',conta);

    readkey;
end.

Tem que ter o readkey; ao fim caso contrário não consigo ver o resultado.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
bsntuga    0
bsntuga

Isto porque estás a correr o projecto a partir do clique no executavel. Eu costumo abrir a consola e correr lá, logo vejo o output :).

podes tambem usar o readln;

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
thoga31    611
thoga31

Eu não uso readkey. Uso o readln.

Tem diferença?

O ReadKey obtém qualquer que seja a tecla premida, o ReadLn lê o input do teclado após premido o Enter e só o Enter.

A diferença neste caso prático de pausa do programa: ReadKey avança com qualquer tecla, RaedLn só avança com Enter.

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade