PDA

Visualizza la versione completa : [pascal] teoria


pakylory
25-01-2003, 12:44
Salve ragazzi,
purtroppo, per superare un test di programmazione, oltre a saper fare programmi, bisogna conoscere la teoria....
Volevo avere degli aiuti riguardo queste domande:

1) All'interno di un corpo di una procedura, si possono chiamare tutte le altre procedure dichiarate nel programma. Vero o falso?

2) Ogni procedura viene eseguita nell'ordine in cui è dichiarata nel programma principale. Vero o falso?

3) Puoi sempre sostituire un ciclo while con u nciclo for o repeat. Se si, perchè? Se no, perchè?

Io credo che le risposte siano: vero, falso, falso; però vorrei una vostra opinione perchè non ne sono sicuro al 100%!!! :tongue:
Vi ringrazio

:ciauz: :ciauz:

pakylory
25-01-2003, 13:07
:(

Michele Facchin
25-01-2003, 14:24
Originariamente inviato da pakylory

1) All'interno di un corpo di una procedura, si possono chiamare tutte le altre procedure dichiarate nel programma. Vero o falso?



Si purchè siano in ordine, esempio se ho una procedura "pippo" che chiama la procedura "pluto", la procedura "pluto" deve essere dichiarata prima di "pippo".



2) Ogni procedura viene eseguita nell'ordine in cui è dichiarata nel programma principale. Vero o falso?



Vero se una procedura non richiama un altra prcoedura, senno è Falso.




3) Puoi sempre sostituire un ciclo while con u nciclo for o repeat. Se si, perchè? Se no, perchè?



Dipende da problema a problema, cmq io direi "Vero".

pakylory
25-01-2003, 17:12
Grazie

Mabi
25-01-2003, 17:53
Secondo me la terza domanda è falsa, infatti con il ciclo repeat le istruzioni in esso, vengono eseguite almeno una volta; mentre un ciclo while può anche non essere mai eseguito.
Con un for invece è possibile ad esempio:


for cont:= 1 to 2
begin
if <CONDIZIONE VERIFICATA> then
begin
cont:=cont-1;
end;
end;

:ciauz:

Michele Facchin
25-01-2003, 18:12
Hai ragione Mabi, ma ricorda che esistono sempre gli if!

pakylory
26-01-2003, 12:40
Ho controllato meglio anche io e credo proprio che la terza sia VERA
Guardate:

a:=1;
while a<=10 do
begin
writeln (a);
a:=a+1;
end;

for a:=1 to 10 do
writeln (a);

a:=1;
repeat
writeln(a);
a:=a+1;
until
a=11;

E' la stessa cosa fatta con while, for, repeat....

Però scusate se approfitto ancora di voi....
mi sapreste dire cos'è un errore sintattico, un errore di run-time, e un errore logico, e farmi un esempio per ciascun caso???
Per quanto riguarda l'errore logico credo che possa andar bene, per esempio, un ciclo di while che non viene mai attivato:

a:=1;
while a<1 do
writeln...

è corretto sintatticamente ma inutile...Vero?

E per gli altri due errori potete aiutarmi????
Grazie ancora
:ciauz: :ciauz:

Michele Facchin
26-01-2003, 14:44
Originariamente inviato da pakylory
Ho controllato meglio anche io e credo proprio che la terza sia VERA
...


Si è vera, ma ripeto dipende dai casi..il repeat svolge le istruzioni almeno una volta, il while può anche fare a meno di svolgerle, cmq mediante if-then-else, puoi fare in modo che che anche il repeat possa fare a meno di svolgere le istruzioni.
Quindi direi che sia Vera.



Però scusate se approfitto ancora di voi....
mi sapreste dire cos'è un errore sintattico, un errore di run-time, e un errore logico, e farmi un esempio per ciascun caso???
Per quanto riguarda l'errore logico credo che possa andar bene, per esempio, un ciclo di while che non viene mai attivato:

a:=1;
while a<1 do
writeln...

è corretto sintatticamente ma inutile...Vero?


:nonono: No, questo non è un errore logico.. :nonono:

Errore Sintattico:



for i:=1 to 30
writeln(i);


Questo è un errore sintattico, perchè manca il do del for.



for i:=1 to 30 do
writeln(i);


Errore di Run-Time:
L'errore di Run-Time è quando si verifica un errore mentre il programma è in esecuzione (* esempio la divisione di un numero per zero *)

Errore Logico:
L'errore logico è quando si verifica un errore di logica del programma e cioè:

Mettiamo che devi fare la somma di 1000kb + 1Mb e ti dimentichi di convertire il Mb in Kilobyte..

Come noti il programma funzionerebbe, ma i risultati non sarebbero quelli aspettati.

Spero di averti chiarito le idee, ciao :quipy:

pakylory
28-01-2003, 12:48
....ma devo farvi delle altre domande.....

1) Qual è l'istruzione di controllo che è sempre presente in una funzione o procedura ricorsiva????

2) In nome di una funzione in una funzione ricorsiva si usa per ______________________ e per _________________

Scusatemi ancora se approfitto di voi..... :( :(

:ciauz: :ciauz:

Michele Facchin
28-01-2003, 15:37
Originariamente inviato da pakylory
....ma devo farvi delle altre domande.....

1) Qual è l'istruzione di controllo che è sempre presente in una funzione o procedura ricorsiva????


IF-THEN-ELSE
Devi controllare sempre il valore!


2) In nome di una funzione in una funzione ricorsiva si usa per ______________________ e per _________________


Per assegnare il valore di ritorno della funzione e per...
uhm........che ne sò!
Si usa per quello :quipy:

Loading