PDA

Visualizza versione completa : Pascal



fabiosortelli
10-06-2003, 23.34.00
Ok, ho un problema con un codice scritto in pascal, spero che questo sia il luogo pi adatto per postarlo!
Premessa: io non so nulla n di pascal n di qualsiasi altro linguaggio di programmazione :D

Allora dopo aver fatto un programmino mongoloide che moltiplica un numero dato per 2,
questo il codice:

PROGRAM moltiplicazione;
VAR n:INTEGER;
begin
writeln(' Questo programma calcola il doppio di un numero dato ');
writeln;
writeln('Scrivi un numero intero ');
readln(n);
n:=n*2;
writeln;
writeln(' Il doppio ' ,n);
writeln;
writeln(' Premi enter per finire');
readln;
end.

mi venuta la strabiliante idea di farne uno con l' elevamento a potenza.
Poich non ci riuscivo ho deciso di copiarlo da uno gi fatto, ma non funziona!!! (sto scrivendo da cani ma ho poco tempo)
codice con relative domande:

PROGRAM potenza;
USES crt; < a cosa serve questa riga
VAR a,b,c,i:INTEGER;
BEGIN
WRITELN('Inserisci un numero');
READLN(A)
WRITELN(' Inserisci esponente ');
READLN(B);
FOR I:= 1 TO b DO
c:=a*a;
END; <uso turbo pascal 7 e non mi accetta dopo end il ;
WRITELN('Il risultao della potenza ' ,c);
READLN;
END.

conclusione sono costretto a cancellare " END; " e mi da come risultato a*a e non a^b
Aspetto ansiosamente suggerimenti

che.g
11-06-2003, 09.28.55
la riga USES crt; serve a indicare al compilatore che deve usare il crt, che una unit che contiene varie procedure e funzioni utili, quali il clrscr per pulire lo schermo e altre cazzatine...

la riga con END; inutile, anzi sbagliata, infatti se il ciclo FOR deve eseguire una sola operazione nn serve mettere un END;, e cmq mancherebbe il begin, quindi togli quell'END; e fine ;)

per il fatto che nn funzioni nn difficile: quel programma completamente sbagliato!! :D

nn fa altro che moltiplicare a*a, infatti lui esegue il for quante volte dice l'espontente (b), ma assegna il nuovo numero a c, e la volta dopo moltiplica nuovamente a*a, quindi completamente sbagliato e inutile...nn so se mi sono spiegato....

per farlo funzionare dovresti fare una cosa del genere:

c:=a;
a:=a*c;

in questo modo per funzionerebbe solo con potenze dispari :)

fabiosortelli
11-06-2003, 12.03.01
Ok, ti ringrazio, avevo anche io i miei dubbi su quel programma, quando ci riuscir (ovvero tra molto tempo) vi far sapere :asd: