Creare Videogiochi - Game Developer

Versione completa: Pascal, come si può utilizzare?
Al momento stai visualizzando i contenuti in una versione ridotta. Visualizza la versione completa e formattata.
Pagine: 1 2
allora steve...
Il mio ragionamento è questo:

Se x è maggiore di 0 allora
x diviso 2 resto 0 (mod dovrebbe servire per questo no?)
scrivi ( x è pari)
Altrimenti
scrivi (x è dispari)
Se x è minore di 0 allora
scrivi(non è possibile eseguire l' operazione)


Diciamo che questa è una versione "italianizzata"... per farti capire il mio ragionamento e vedere se è giusto o sbagliato...
Il ragionamento è giustissimo, ma il codice è sbagliato:
tu dici -> Se x diviso 2 ha il resto uguale a 0
però fai -> Se x diviso y ha il resto uguale a 0 (la variabile y non ha nessun valore; di default prende il valore 0, e un numero diviso 0 non si può fare)

Sostituendo y con 2 il programma funziona correttamente.

Questa è la mia soluzione al problema:
Codice PHP:
program pariDispari;
uses crt;
var 
num:integer;

begin
    clrscr
;
    
write('Inserire un numero: ');
    
readln(num);
    if 
num 0 then
        begin
        
if (num mod 2)=0 then
            writeln
('Il numero ',num,' è pari')
        else
            
writeln('Il numero ',num,' è dispari');
        
end
    
else
        
writeln(num,' è inferiore a 0');
    
writeln('Premere invio per chiudere...');
    
readln
end


PS. La "versione italianizzata" è detta pseudocodice (fai capire quello che vuoi fare senza utilizzare nessun linguaggio di programmazione)
ok, perfetto.. inizo un pò a capire il meccanismo di pascal xd... continuo a studiare (non avrei mai pensato di dirlo! D: )

EDIT:
Un altro esercizio è
Scrivere un programma che, inseriti due valori interi da tastiera, dica se sono divisibili sia per 2 che per 3. Suggerimento: usa sempre l'operatore mod e i connettivi logici.

In che senso "inserire 2 valori interi"? ... nom è meglio fare 1 programma per ogni singolo valore? O.o...
AsD, ho visto solo ora l'edit.
Tra fare un programma che, al posto di rilevare due interi, rilevi altri tipi di variabili cambia solo il dimensionamento delle variabili: al posto di var num1,num2:integer; metti var num1,num2:float;
In questo caso viene richiesto l'intero, ma è solo perché è un programma a scopo didattico, altrimenti si sarebbe scelto un altro tipo di variabile a seconda delle necessità.

Mentre ripulivo il desktop ho trovato gli esercizi, visto che è un po' che non ci si sente te li posto tutti (tanto ne mancavano due, e probabilmente li hai già finiti):
Codice:
(* radice quadrata *)
program radiceQuadrata;
uses crt;
var x,rad_x:real;

begin
    clrscr;
    write('Inserire un numero: ');
    readln(x);
    if x>=0 then
        begin
        rad_x:=sqrt(x);
        writeln('La radice quadrata di ',x,' è ',rad_x);
        end
    else
        writeln('La radice quadrata di ,x, è un numero immaginario');
    writeln('Premere invio per chiudere...');
    readln
end.
(* fine *)

(* pari o dispari *)
program pariDispari;
uses crt;
var num:integer;

begin
    clrscr;
    write('Inserire un numero: ');
    readln(num);
    if num > 0 then
        begin
        if (num mod 2)=0 then
            writeln('Il numero ',num,' è pari')
        else
            writeln('Il numero ',num,' è dispari');
        end
    else
        writeln(num' è inferiore a 0');
    writeln('Premere invio per chiudere...');
    readln
end.
(* fine *)

(* divisibili per 2 e 3 *)
program divisibilita2e3;
uses crt;
var num1,num2:integer;

begin
    clrscr;
    write('Inserire numero1: ');
    readln(num1);
    write('Inserire numero2: ');
    readln(num2);
    if (((num1 mod 2)=0) and ((num1 mod 3)=0)) then
        begin
        if (((num2 mod 2)=0) and ((num2 mod 3)=0)) then
            writeln('Sia ',num1,' che ',num2,' sono divisibili per 2 e per 3')
        else
            writeln('Solo ',num1,' è divisibile per 2 e per 3');
        end
    else
        begin
        if (((num2 mod 2)=0) and ((num2 mod 3)=0)) then
            writeln('Solo ',num2,' è divisibile per 2 e per 3')
        else
            writeln('Ne ',num1,' che ',num2,' sono divisibili per 2 e per 3');
        end;
    writeln('Premere invio per chiudere...');
    readln
end.
(* fine *)

(* calcolatrice *)
program calcolatrice;
uses crt;
var num1,num2,risultato:real;
var operazione:integer;

begin
    clrscr;
    write('Inserire numero1: ');
    readln(num1);
    write('Inserire numero2: ');
    readln(num2);
    write('Operazione  1=addizione  2=sottrazione 3=moltiplicazione  4=divisione    : ');
    readln(operazione);
    if operazione=1 then
        risultato:=num1+num2;
    if operazione=2 then
        risultato:=num1-num2;
    if operazione=3 then
        risultato:=num1*num2;
    if operazione=4 then
        begin
        if num2=0 then
            writeln('Impossibile dividere per 0')
        else
        risultato:=num1/num2;
        end;
    writeln('Risultato = ',risultato);
    writeln('Premere invio per chiudere...');
    readln
end.
(* fine *)
Pagine: 1 2