burns Posted December 7, 2022 at 03:02 PM Report #628636 Posted December 7, 2022 at 03:02 PM (edited) Eu criei um código mas ele esta com um erro no End. alguem me ajude a conseguir corrigir o programa? Program livroslojas ; var opcao:integer; var menu:real; var livro:integer; Begin repeat clrscr; writeln(' ---Menu--- '); writeln ('Escolhe o Genero de Leitura :'); writeln ('1- Aventura'); writeln ('2- Acao'); writeln ('3- Romance'); writeln ('4- Terror'); writeln ('5- Suspance'); writeln ('6- Fantasia'); writeln ('7- Manga'); readln(opcao); case (opcao) of 1: begin writeln ('Voce escolheu o Genero de Aventura'); writeln ('Recomendo o Livro O Artifice de Richard Sennett'); readln(livro); end; 2: begin writeln ('Voce escolheu o Genero de Acao'); writeln ('Recomendo o Livro O Hobitt Jonh Ronald Tolkien '); readln (livro); end; 3: begin writeln ('Voce Escolheu o Genero de Romance'); writeln ('Recomendo o Livro A Culpa e das estrelas de Jonh Green'); readln (livro); end; 4: begin writeln ('Voce Escolheu o Genero de Terror'); writeln ('Recomendo o Livro O Corvo de Edgar Allan Poe '); readln (livro); end; 5: begin writeln ('Voce Escolheu o Genero de Suspance'); writeln ('Recomendo o Livro YOU de Caroline Kepnes'); readln (livro); end; 6: begin writeln ('Voce Escolheu o Genero de Fantasia'); writeln ('Recomendo o Livro Harry Potter de J.K Rolling'); readln (livro); end; 7: begin writeln ('Voce Escolheu o Genero de Mang�'); writeln ('Recomendo o Livro One Piece de Eiichiro Oda'); readln (livro); end; else begin if(opcao=8) then begin writeln ('Voce Escolhe Sair , Adeus :)'); end else begin writeln (' Opcao Inv�lida'); end; if(opcao=8); End. Edited December 8, 2022 at 04:36 AM by thoga31 GeSHi
thoga31 Posted December 8, 2022 at 06:01 AM Report #628651 Posted December 8, 2022 at 06:01 AM O compilador diz-me o seguinte: prog.pas(8,1) Error: Identifier not found "clrscr" prog.pas(78,12) Fatal: Syntax error, "THEN" expected but ";" found Não sei se o PascalZim inclui nativamente a função clrscr, mas se tiveres o primeiro erro que mostrei, deverás importar o módulo crt. Quanto ao segundo erro, repara que tens a seguinte linha de código no final: if(opcao=8); Isto não é válido sintaticamente. Se a opção for 8, então... o quê? O compilador espera que indiques o que fazer com um then e o respetivo bloco de código subsequente. Cumprimentos. Knowledge is free!
burns Posted December 8, 2022 at 01:54 PM Author Report #628660 Posted December 8, 2022 at 01:54 PM Em 08/12/2022 às 06:01, thoga31 disse: O compilador diz-me o seguinte: prog.pas(8,1) Error: Identifier not found "clrscr" prog.pas(78,12) Fatal: Syntax error, "THEN" expected but ";" found Não sei se o PascalZim inclui nativamente a função clrscr, mas se tiveres o primeiro erro que mostrei, deverás importar o módulo crt. Quanto ao segundo erro, repara que tens a seguinte linha de código no final: if(opcao=8); Isto não é válido sintaticamente. Se a opção for 8, então... o quê? O compilador espera que indiques o que fazer com um then e o respetivo bloco de código subsequente. Cumprimentos. Eu agradeço imenso a tua ajuda , eu não estava mesmo a detetar esses erros , Obrigado Cumprimentos
nunopicado Posted December 9, 2022 at 12:14 AM Report #628674 Posted December 9, 2022 at 12:14 AM (edited) Permite-me só dizer-te o motivo de ser difícil encontrar o erro, mostrando como seria mais fácil: Program livroslojas; var opcao : integer; menu : real; livro : integer; Begin repeat clrscr; writeln(' ---Menu--- '); writeln ('Escolhe o Genero de Leitura :'); writeln ('1- Aventura'); writeln ('2- Acao'); writeln ('3- Romance'); writeln ('4- Terror'); writeln ('5- Suspance'); writeln ('6- Fantasia'); writeln ('7- Manga'); readln(opcao); case (opcao) of 1: begin writeln ('Voce escolheu o Genero de Aventura'); writeln ('Recomendo o Livro O Artifice de Richard Sennett'); readln(livro); end; 2: begin writeln ('Voce escolheu o Genero de Acao'); writeln ('Recomendo o Livro O Hobitt Jonh Ronald Tolkien '); readln (livro); end; 3: begin writeln ('Voce Escolheu o Genero de Romance'); writeln ('Recomendo o Livro A Culpa e das estrelas de Jonh Green'); readln (livro); end; 4: begin writeln ('Voce Escolheu o Genero de Terror'); writeln ('Recomendo o Livro O Corvo de Edgar Allan Poe '); readln (livro); end; 5: begin writeln ('Voce Escolheu o Genero de Suspance'); writeln ('Recomendo o Livro YOU de Caroline Kepnes'); readln (livro); end; 6: begin writeln ('Voce Escolheu o Genero de Fantasia'); writeln ('Recomendo o Livro Harry Potter de J.K Rolling'); readln (livro); end; 7: begin writeln ('Voce Escolheu o Genero de Mang�'); writeln ('Recomendo o Livro One Piece de Eiichiro Oda'); readln (livro); end; else begin if (opcao=8) then begin writeln ('Voce Escolhe Sair , Adeus :)'); end else begin writeln (' Opcao Inv�lida'); end; if (opcao=8); End. Ao indentar corretamente o código, torna-se fácil notar inconsistências. Por exemplo: Aquele "if (opcao=8);" repete o if anterior. Aquele "if (opcao=8);" não tem o THEN que era suposto ter. o ELSE é opcional, mas o THEN tem de existir. A linha "else begin", antes dos IF da opção 8, não tem qualquer linha com um END no mesmo nível, ou seja, falta o seu END. A linha do CASE precisa de um END ao seu nível, e também não o tem. A linha REPEAT precisa de um UNTIL ao seu nível, e também não o tem. Indentar o código não é "embelezamento", e como tal, menos importante. É tão importante indentar corretamente o código como saberes qual o comando para escrever no ecrã. A indentação é fundamental em qual código. Repara, este programa tem "meia dúzia" de linhas e se estivesse bem indentado já seria mais fácil encontrar os erros. Agora imagina um programa com, por exemplo, 9 milhões de linhas. Sem indentação, o suicídio começaria a parecer uma opção bem viável. Há inclusivamente linguagens de programação, nomeadamente Python, em que se não indentares não consegues sequer correr o programa, mesmo para forçar o seu uso. Edited December 9, 2022 at 12:15 AM by nunopicado 1 Report "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