Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gustavo Katibian

O que há de errado neste algoritmo?

Recommended Posts

Estou fazendo curso de programação e tem uns exercícios que eu não consegui terminar na aula, então resolvi tentar em casa...

 

Bom, este código está certinho, sem erro algum, e está certo perante ao exercício proposto na aula, só que eu quero mais, quero aprender mais coisas, então fucei pra aprender o comando Repeat e o comando Until, o Repeat esta funcionando, só que o Until, ao digitar Sair ele trava o DOS, alguém sabe o que eu fiz de errado?

 

Isso eu também que coloquei...

If Codigo >= 7 Then
      Begin
        Writeln('Este cargo nao existe, veja a lista no comeco!');
        Writeln('');
      End;

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

Var
  Codigo: Integer;
  Palavra: String;
begin
  Writeln('Este programa ira mostrar o Percentual de Aumento de um cargo!');
  Writeln('');
  Writeln('Codigo 1: Marketing');
  Writeln('Codigo 2: Vendas');
  Writeln('Codigo 3: Secretario');
  Writeln('Codigo 4: Caixa');
  Writeln('Codigo 5: Gerente');
  Writeln('Codigo 6: Diretor');
  Writeln('');
  Repeat
  Writeln('Digite o codigo do cargo que voce deseja saber o percentual:');
  Readln(Codigo);
    If Codigo = 1 Then
      Begin
        Writeln('O Percentual de Aumento de Marketing e de: 50%');
        Writeln('');
      End;
    If Codigo = 2 Then
      Begin
        Writeln('O Percentual de Aumento de Vendas e de: 45%');
        Writeln('');
      End;
    If Codigo = 3 Then
      Begin
        Writeln('O Percentual de Aumento de Secretario e de: 35%');
        Writeln('');
      End;
    If Codigo = 4 Then
      Begin
        Writeln('O Percentual de Aumento de Caixa e de: 25%');
        Writeln('');
      End;
    If Codigo = 5 Then
      Begin
        Writeln('O Percentual de Aumento de Gerente e de: 15%');
        Writeln('');
      End;
    If Codigo = 6 Then
      Begin
        Writeln('O Percentual de Aumento de Diretor e de: Nao possui aumento!');
        Writeln('');
      End;
    If Codigo >= 7 Then
      Begin
        Writeln('Este cargo nao existe, veja a lista no comeco!');
        Writeln('');
      End;
  Readln;
Until (Palavra = 'Sair');
End.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A principio você espera que ele digite Sair nesta linha:

 

Readln(Codigo);

certo?

 

pois então, se você digita "Sair", que é uma string, neste momento, repare que o valor é jogaod para a variavel "Código" que é um inteiro. Este é o problema.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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