Zen Posted June 26, 2005 at 11:09 AM Report Share #1395 Posted June 26, 2005 at 11:09 AM ola a todos. gostava que me respondessem a uma pergunta, que para vcs é estupida, acerca de loops; o problema é que o programa nao está a fazer o loop, simplesmente sai do programa... aki esta o código program clc; uses crt; var v1,v2:integer; op,leter:char; q:boolean; begin repeat; Writeln (' Calculadora versao 1.3 BY GUILHERME'); read; delay (1000); Writeln ('digite o primeiro numero'); read (v1); Writeln (''); readln; Writeln ('digite a operação desejada'); read (op); Writeln (''); readln; if (op <> '+') and (op<>'-') and (op<>'/') and (op<>'*') then begin Writeln ('Operação ainda nao disponivel. Adeus!'); readln; exit; end else begin gotoxy (30,30); end; Writeln ('digite o segundo numero'); readln (v2); case op of '+' : begin Writeln ('--->',v1+v2); read; end; '-' : begin Writeln ('--->',v1-v2); read; end; '*' : begin Writeln ('--->',v1*v2); read; end; '/' : begin Writeln ('--->',v1/v2); read; end; end; read; until (keypressed = q); read(leter); clrscr; end. agradecia que me ajudassem obrigado. Link to comment Share on other sites More sharing options...
deathseeker25 Posted June 26, 2005 at 11:34 AM Report Share #1397 Posted June 26, 2005 at 11:34 AM Boas, Antes de mais bem-vindo ao forum Zen.Na realidade não existe nenhum loop no teu programa (os loops existem apenas quando existem instruções while e/ou for, penso eu). Segunda coisa: da próxima vez que transcreveres um código de um programa teu, utiliza o template que nós disponibilizamos aqui no forum que faz o highlight das diversas situações durante um código, através da aplicação do bbcode com as funções [syntax=linguagem do código]código[/syntax]. Ora então tentando ajudar-te no problema: program clc; uses crt; var v1,v2:integer; op,leter:char; q:boolean; begin repeat; Writeln (' Calculadora versao 1.3 BY GUILHERME'); read; delay (1000); Writeln ('digite o primeiro numero'); read (v1); Writeln (''); readln; Writeln ('digite a opera‡ao desejada'); read (op); Writeln (''); readln; if (op <> '+') and (op<>'-') and (op<>'/') and (op<>'*') then begin Writeln ('Opera‡ao ainda nao disponivel. Adeus!'); readln; exit; end;[aqui tinhas-te esquecido do ";" que talvez tenha feito com que saíse do programa] else begin gotoxy (17,0);[linha 17 que é onde pergunta qual a operação a realizar] end; Writeln ('digite o segundo numero'); readln (v2); case op of '+' : begin Writeln ('--->',v1+v2); read; end; '-' : begin Writeln ('--->',v1-v2); read; end; '*' : begin Writeln ('--->',v1*v2); read; end; '/' : begin Writeln ('--->',v1/v2); read; end; end; read; until (keypressed = q); read(leter); clrscr; end. Bem, tenta assim e diz o que te acontece... Cumps Link to comment Share on other sites More sharing options...
Zen Posted June 26, 2005 at 12:14 PM Author Report Share #1404 Posted June 26, 2005 at 12:14 PM ja xprimentaei e continua a nao fazer o repeat, na tua correcçao, dizes para por ';' antes do else, mas tal nao pode ser, dá erro, e no gotoxy tb nao faz repeat, ou loop ao como lhe chamas. Link to comment Share on other sites More sharing options...
SLider3 Posted June 26, 2005 at 01:42 PM Report Share #1408 Posted June 26, 2005 at 01:42 PM Antes de mais bem-vindo ao forum Zen.Na realidade não existe nenhum loop no teu programa (os loops existem apenas quando existem instruções while e/ou for, penso eu). A instrução repeat ... until tb é um ciclo! Link to comment Share on other sites More sharing options...
deathseeker25 Posted June 26, 2005 at 06:21 PM Report Share #1415 Posted June 26, 2005 at 06:21 PM Citação A instrução repeat ... until tb é um ciclo! LOL....nem tinha reparado na existencia do repeat mesmo....se repeat faz com que certas instruções se repitam conforme as condições é lógico que tambem seja um ciclo... Foi mesmo falta de atenção.... Link to comment Share on other sites More sharing options...
Zen Posted June 26, 2005 at 06:41 PM Author Report Share #1417 Posted June 26, 2005 at 06:41 PM e eh memso ai k tenho o problema, pq o loop n ta a acontecer... Link to comment Share on other sites More sharing options...
deathseeker25 Posted June 26, 2005 at 06:48 PM Report Share #1418 Posted June 26, 2005 at 06:48 PM Ok então uma pergunta agora minha: para fazer o repeat não é necessário colocar as condições do repeat? Do tipo, repeat while "condições" e depois para parar o ciclo colocar a instrução break? Ou já estarei a misturar com o C? ;) Link to comment Share on other sites More sharing options...
Zen Posted June 26, 2005 at 06:55 PM Author Report Share #1419 Posted June 26, 2005 at 06:55 PM bem, segundo o k tenho lido em varios tutoriais, o REPEAT apenas indica o inocio do loop, k dps se encerra no UNTIL, e se essa condiçao (do e no until) for verdadeira entao o programa encerra, se nao, (dai o until ) faz novamente o repeat. istu eh o k tenho lido em tutoriais, mas posso tar enganado, embora duvide ;) Link to comment Share on other sites More sharing options...
deathseeker25 Posted June 26, 2005 at 07:01 PM Report Share #1420 Posted June 26, 2005 at 07:01 PM Ok penso que está correcto... Esive aqui a rever os meus tutoriais e tambem dei com isto: REPEAT Instrução; UNTIL expressão_boleana Ou seja, a expressão de instruções é executada repetidamente até que a expressão booleana se torne verdadeira. Sequencia de operações executadas pelo ciclo REPEAT: 1. executa a sequencia de instruções 2. testa a condição; se for FALSE volta ao passo 1; 3. segue para as instruções seguintes do programa. Acho que assim já estamos todos de acordo... Vou fazer uns testes com o teu código e já digo alguma coisa... Cumps Link to comment Share on other sites More sharing options...
Zen Posted June 28, 2005 at 09:28 PM Author Report Share #1479 Posted June 28, 2005 at 09:28 PM ora boas, bem, ja resolvi o problema, graças ah ajuda de um colega... tava dificil hein! bem, ca vai o codigo com o loop a funcar, embora ainda seja "um rascunho", e nao ainda como eu quero, a sintax do loop ta la: program clc; uses crt; var v1,v2:integer; op,leter,c,k,key:char; q:boolean; readkey:char; begin clrscr; repeat; textcolor(green); Writeln (' Calculadora versao 1.4 BY GUILHERME'); Writeln; textcolor(brown); Writeln ('pressione Q para sair do programa'); read(key); if key = 'q' then exit; Writeln ('digite o primeiro numero'); read (v1); Writeln (''); read; Writeln ('digite a opera‡ao desejada'); read (op); Writeln (''); readln; if (op <> '+') xor (op<>'-') xor (op<>'/') xor (op<>'*') then begin Writeln ('Opera‡ao nao disponivel.'); readln; exit; end; Writeln ('digite o segundo numero'); readln (v2); case op of '+' : begin Writeln ('--->',v1+v2); read; end; '-' : begin Writeln ('--->',v1-v2); read; end; '*' : begin Writeln ('--->',v1*v2); read; end; '/' : begin Writeln ('--->',v1/v2); read; end; end; read; until key = 'q'; end. so uma koisa, inda nao percebi essa opçao do highlight, bbcode ou k eh... sorry 4 the noobish.... Link to comment Share on other sites More sharing options...
deathseeker25 Posted June 28, 2005 at 09:31 PM Report Share #1480 Posted June 28, 2005 at 09:31 PM Ok ok...o highlight torna mais fácil a leitura do código pelas pessoas que o estão a ver.... Vou então editar o teu tópico... Usa-se assim: [syntax=nome da linguagem]codigo[/syntax] Da próxima já sabes 😛😄 Link to comment Share on other sites More sharing options...
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