Esercizio di pascal

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
Tuxolo
Prode Principiante
Messaggi: 158
Iscrizione: giovedì 23 luglio 2009, 17:23
Località: Mazara del Vallo

Esercizio di pascal

Messaggio da Tuxolo »

Ciao a tutti :D

sudio pascal da wiki books, ho cercato degli esercizi su internet ( http://www.pacioli.net/ftp/personali/dipartimenti/dipinfoemate/esercizi/info/pascalterza/esercizi_semplici.htm ) e provando a risolvere il 57 ho buttato giù queste righe di codice:

Codice: Seleziona tutto

{Dichiarazione del nome del programma}
program moltiplicazione_divisione;

{Inclusione delle librerie}
uses crt;
{Dichiarazione dei tipi di variabile}
var
	a,b,c,d:integer;
	operazione:string[1];

{Inizio programma}
begin
clrscr;
{Assegnazione valore alla variabile c}
c := 0;
{Acquisizione valore variabili}
write('Passami A : '); readln(a);
write('Passami B : '); readln(b);
writeln('');
writeln('');
write('Passami l''operatore '); readln(operazione);

clrscr;

{Ciclo dedicato alla moltiplicazione}
if operazione = '*' then
d := a;
repeat
begin
c := c +1;
a := a + d;
if c = b then
writeln('Il prodotto di a*b e'' : ',a-d); {Non ci dovrebbe essere alcun motivo di per cui si deve sottrarre d ad a...}
end;
until c = b;

{Ciclo dedicato alla divisione}
if operazione = '/' then
repeat
begin
c := c +1;
a := a - b;
if a = 0 then
write('Il quoziente della divisione è pari a ',c);
end;
until a = 0;


end.
se qualcuno mi sa rispondere ad un paio di domande gliene sarei grato
{Non ci dovrebbe essere alcun motivo di per cui si deve sottrarre d ad a...} ??? perchè???

Se provate a compilare vi accorgerete che dando come operatore / restituisce comunque "'Il prodotto di a*b e'' : ',a-d"

Infine non capisco perchè diamine il ciclo della divisione non funziona...:(

scusate la forma e la scarsa chiarezza :( ma è abbastanza tardi :(
Immagine
Ischia
Prode Principiante
Messaggi: 21
Iscrizione: domenica 30 dicembre 2007, 12:45

Re: Esercizio di pascal

Messaggio da Ischia »

Ti restituisce comunque la moltiplicazione perchè ti manca begin end

{Ciclo dedicato alla moltiplicazione}
if operazione = '*' then
--begin--
d := a;
repeat
begin
c := c +1;
a := a + d;
if c = b then
writeln('Il prodotto di a*b e'' : ',a-d); {Non ci dovrebbe essere alcun motivo di per cui si deve sottrarre d ad a...}
end;
until c = b;
--end;--

per la divisione non saprei ... sono un po' di fretta e non ho tempo di pensarci! :-[
Avatar utente
Tuxolo
Prode Principiante
Messaggi: 158
Iscrizione: giovedì 23 luglio 2009, 17:23
Località: Mazara del Vallo

Re: Esercizio di pascal

Messaggio da Tuxolo »

Giusto ! :D grazie mille :D ..comunque ho risolto
Immagine
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 5 ospiti