allora, ecco a cosa sn arrivato: con i pari funziona, ma coi dispari sn nei problemi:
parte a ruota con un dispari, spara numeri che nn capisco... c'è qualcosa che nn va... ma cosa?codice:program CICLO; uses crt; {Richiamo la unit CRT} var NUMERO, R, R2: integer; RISPOSTA: string; procedure procedura_pari; {questo funziona bene...} begin while (NUMERO <> 1) do begin NUMERO := NUMERO div 2; writeln (NUMERO); end; writeln ('------------------------------'); writeln ('FINITO!!'); end; procedure procedura_dispari; begin while (NUMERO <> 1) do {finchè il numero è diverso da 1} begin R2 := NUMERO mod 2; while (R2 <> 0) do {ficnhè il numero è dispari (resto diverso da 0)} begin NUMERO := ((NUMERO*3)+1) div 2; writeln(NUMERO); end; procedura_pari; end; end; begin clrscr; writeln('Questo programma Š stato orgogliosamente realizzato da Kilin'); writeln('per ovviare alla mancanza di materia grigia di KleRoi.'); writeln; readln; writeln('Via su, dammi ir numero... non nell''occhio, o'' duro!'); read(NUMERO); R:= NUMERO mod 2; if(R=0) then {Se il resto Š 0, il numero Š pari....} begin procedura_pari; readln; end else procedura_dispari; readln; end.![]()


Rispondi quotando