TJFBarreto Posted March 19, 2012 at 10:37 PM Report #444705 Posted March 19, 2012 at 10:37 PM Bem, estou a laborar um trabalho para um "mini" projecto e neste código, dá-me um erro na linha do "Else" gostaria de saber porquê e como resolver o problema Procedure CartaoDeCredito; Begin clrscr; textcolor(green);writeln('Escreva o NIB para quem deseja transferir: ');readln(NIB);clrscr; textcolor(green);write('Qual o mountante que deseja transferir: ');readln(Valor2); textcolor(green);write('Deseja tranferir ');textcolor(yellow);write(Valor2);textcolor(green);write(' para o NIB ');textcolor(yellow);write(NIB:0);textcolor(green);write(' ? | Sim/Nao|'); readln(Escolha2); If (Escolha2='Sim') or (Escolha2='sim') then Begin Carregar:=0; repeat clrscr; textcolor(11);writeln('A transferência está a ser processada ',carregar,'%'); Carregar:=Carregar + random(10); delay(400) until Carregar>100; delay(1000); clrscr;textcolor(green);writeln('Transferência concluida de ',Valor2,' euros, ficou com ',MostraDinheiro2(Dinheiro,Valor2),' euros na sua conta. ') else textcolor(red);writeln('A OPERAÇÂO FOI CANCELADA'); End; End; EDIT: GeSHi adicionado. thoga31
nunopicado Posted March 19, 2012 at 11:05 PM Report #444711 Posted March 19, 2012 at 11:05 PM O problema é que te falta um end antes do Else... No Then tens um bloco começado por Begin, mas depois não o fechas antes de chamares o Else, o que te cria o erro. Já agora, também te falta um begin a seguir ao Else, para poderes executar aquelas duas instruções. Se me permites a sugestão, trabalha no sentido de indentares correctamente o código que fazes. Como tens, torna-se muito complicado para ti (e para qualquer pessoa) entender qual o bloco a que cada instrução pertence. Outra coisa que raramente é boa ideia é teres mais do que uma instrução na mesma linha. Sugestão de Indentação: Procedure CartaoDeCredito; Begin // Lê NIB clrscr; textcolor(green); writeln('Escreva o NIB para quem deseja transferir: '); readln(NIB); // Lê montante clrscr; textcolor(green); write('Qual o montante que deseja transferir: '); readln(Valor2); // Deseja transferir? textcolor(green); write('Deseja tranferir '); textcolor(yellow); write(Valor2); textcolor(green); write(' para o NIB '); textcolor(yellow); write(NIB:0); textcolor(green); write(' ? | Sim/Nao|'); readln(Escolha2); // Testa resposta If (Escolha2='Sim') or (Escolha2='sim') then Begin Carregar:=0; repeat clrscr; textcolor(11); writeln('A transferência está a ser processada ',carregar,'%'); Carregar:=Carregar + random(10); delay(400) until Carregar>100; delay(1000); clrscr; textcolor(green); writeln('Transferência concluida de ',Valor2,' euros, ficou com ',MostraDinheiro2(Dinheiro,Valor2),' euros na sua conta. '); end // Com esta indentação é fácil perceber que te faltava este end else begin // e este begin textcolor(red); writeln('A OPERAÇÂO FOI CANCELADA'); End; End; Já agora, para o teste que fazes (resposta Sim ou sim), se tentares responder SIM já vai falhar. Ou sIm, ou siM... Para evitar isto, substituis a linha do IF onde fazes o teste por: If (UpCase(Escolha2)='SIM') // Ele transforma os caracteres da resposta em maiúsculas, e depois compara com a resposta SIM. "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
TJFBarreto Posted March 19, 2012 at 11:15 PM Author Report #444714 Posted March 19, 2012 at 11:15 PM Muito obrigado 😁 nem sabes o que ajudas-te.. ;D é sempre bom aprender por pessoas que sabem do que estar a inventar e tentar mete-las a funcionar. mais um vez.. Muito Obrigado! 😁
thoga31 Posted March 20, 2012 at 11:35 AM Report #444738 Posted March 20, 2012 at 11:35 AM Muito obrigado 😁 nem sabes o que ajudas-te.. ;D é sempre bom aprender por pessoas que sabem do que estar a inventar e tentar mete-las a funcionar. mais um vez.. Muito Obrigado! 😁 Mas olha que a auto-aprendizagem também é extremamente positiva 😉 Knowledge is free!
nunopicado Posted March 20, 2012 at 01:03 PM Report #444745 Posted March 20, 2012 at 01:03 PM Mas olha que a auto-aprendizagem também é extremamente positiva 😁 Concordo... 😁 "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now