/*ProJecT*/ 2 programmi

Topic sul pascal.

/*ProJecT*/ 2 programmi

Postby Criphox on Sun Oct 15, 2006 7:55 pm

Questo programma che segue è stato fatto da me, invece quello dopo è stat fatto da un mio amico (+ grande di me) che studia Pascal a scuola :) ed è un appassionato di programmazione in pascal, è stato lui che mi ha fatto iniziare col Pascal ma dopo sono finito nel C/C++ :lol:

Code: Select all
program radice_quadrata;
var n:integer;
var n2:real;
begin
writeln('Salve!! Questo programma calcola la radice quadrata di un numero!!');
writeln;
writeln('Inserisci la base: ');
readln (n);
if (n=0) then
writeln ('Non posso calcolare la radice quadrata di 0...');
writeln;
n2:= sqrt(n);
writeln('Ecco il risultato!! La radice quadrata e''', n2);
writeln;
writeln('Grazie per aver scelto me!!');
readln;
end.



IL PROGRAMMA DEL MIO AMICO (commentato):

Code: Select all
program matrice;
{Matrice 3x4 : contiene quattro voti per tre materie; ogni riga Š associata
ad una materia}
var m: array [1..3,1..4] of real;
var materia, media: real;
var i, j: integer;
var desmateria: string [20];

begin
{Inizio caricamento della matrice}
I:=1;
     repeat
     J:=1;
          repeat
          if i=1 then
            begin
               desmateria:= 'ITALIANO';
            end;
          if i=2 then
            begin
               desmateria:= 'INFORMATICA';
             end;
          if i=3 then
            begin
               desmateria:= 'MATEMATICA';
            end;
           writeln ('Dammi voto n.',j,' della materia :',desmateria);
                        repeat
                              readln (m[I,J]);
                              {Controllo che il numero letto sia un voto}
                              if (M[i,j]<=0) or (m[i,j]>10) then
                              begin
                              writeln ('voto errato, ridigita');
                              end;
                        until (0<=M[i,j]) and (m[i,j] <=10);
                J:=J+1;
          until J>4;
          I:= I+1;
     until I>3;
{Termina il caricamento della matrice}

{Inizio elaborazione dei dati inseriti nella matrice : Media}
I:=1;
     repeat
           J:=1;
           materia:=0;
           if i=1 then
          begin
          desmateria:= 'ITALIANO';
          end;
          if i=2 then
          begin
          desmateria:= 'INFORMATICA';
          end;
          if i=3 then
          begin
          desmateria:= 'MATEMATICA';
          end;
                      repeat
                      materia:=materia+(m[I,j]);
                      J:=j+1;
                      until J>4;
           media:=materia/4;
           writeln ('Media della materia :',desmateria);
           writeln (media:10:2);
           writeln ('');
           I:=i+1;
     until I>3;
readln
{Termina calcolo media}

{Inizio elaborazione dati nella matrice : insufficienze}

{Termina calcolo insufficienze}

{Inizio elaborazione dati nella matrice : Voto pi— basso}

{Termina calcolo voto pi— basso}

{Inizio elaborazione dati nella matrice : Voto pi— alto}

{Termina calcolo voto pi— alto}
end.

User avatar
Criphox
Algoritmo
 
Posts: 141
Joined: Tue Sep 05, 2006 10:28 pm
Location: Benevento

/*ProJecT*/ 2 programmi

Sponsor

Sponsor


Re: /*ProJecT*/ 2 programmi

Postby Fabriz on Sun Oct 15, 2006 10:22 pm

Criphox wrote:
Code: Select all
program radice_quadrata;
var n:integer;
var n2:real;
begin
writeln('Salve!! Questo programma calcola la radice quadrata di un numero!!');
writeln;
writeln('Inserisci la base: ');
readln (n);
if (n=0) then
writeln ('Non posso calcolare la radice quadrata di 0...');
writeln;
n2:= sqrt(n);
writeln('Ecco il risultato!! La radice quadrata e''', n2);
writeln;
writeln('Grazie per aver scelto me!!');
readln;
end.



ti posso dire che è logico-matematicamente scorretto.


La radice quadrata di 0 è proprio 0. Devi trovare quel numero che elevato alla seconda dia 0, ovvero 0! 0x0=0.

In secondo luogo, il Pascal, che utilizza al più numeri reali, non può accettare una cosa del tipo: radice di -5.

Il tuo programma però permette di fare radici negative. Il risultato sarebbe un errore.

Buon lavoro, cmq.

Riguardo al secondo programma, non ho nulla da dire, se non che personalmente gli indici e le variabili li preferisco minuscoli :D , anche se il Pascal non fa distinzione tra N e n, scelta e SceLtA... ;)
Bit wrote:Ma sisi cosa? che ca**o c'è da ridere? bha


Dead on my sweet Piano.


IO NON SONO AMICO DI GOOGLE
User avatar
Fabriz
Diagramma a Blocchi
 
Posts: 209
Joined: Sun Jul 02, 2006 4:15 pm

Postby Criphox on Mon Oct 16, 2006 2:43 pm

si hai ragione, ma nn volevo dire che la radice quadrata di 0 nn si può fare, ma solo che la radice quadrata di 0 è inutile farla xkè è 0!
scusate nn mi sno espresso bene ^^:lol:


In secondo luogo, il Pascal, che utilizza al più numeri reali, non può accettare una cosa del tipo: radice di -5.

Il tuo programma però permette di fare radici negative. Il risultato sarebbe un errore.


come dovrei fare per eliminare queste radici di numeri negativi??
usare un altro tipo di variabile??

forse dovevo usare la variabile word...che copre i numeri da 0 65mila....BHOOOOO!!!
User avatar
Criphox
Algoritmo
 
Posts: 141
Joined: Tue Sep 05, 2006 10:28 pm
Location: Benevento

Postby Fabriz on Mon Oct 16, 2006 2:51 pm

una cavolata abnorme, cambi solo la condizione dell'if:



Code: Select all
program radice_quadrata;
var n:integer;
var n2:real;
begin
writeln('Salve!! Questo programma calcola la radice quadrata di un numero!!');
writeln;
writeln('Inserisci la base: ');
readln (n);
if n<0 then
   begin
        writeln;
        writeln ('Non posso calcolare la radice quadrata di un numero negativo...');
        writeln('Premi invio per terminare...');
        readln
   end
       else
   begin
        writeln;
        n2:= sqrt(n);
        writeln('Ecco il risultato!! La radice quadrata e''', n2:4:2);
        //va messo n2:4:2 per formattare l'output, altrimenti, siccome è real, te lo darebbe in esponenziale;
        writeln;
        writeln('Grazie per aver scelto me!!');
        readln
   end;
end.
Bit wrote:Ma sisi cosa? che ca**o c'è da ridere? bha


Dead on my sweet Piano.


IO NON SONO AMICO DI GOOGLE
User avatar
Fabriz
Diagramma a Blocchi
 
Posts: 209
Joined: Sun Jul 02, 2006 4:15 pm

Postby Criphox on Mon Oct 16, 2006 3:25 pm

Code: Select all
//va messo n2:4:2 per formattare l'output, altrimenti, siccome è real, te lo darebbe in esponenziale;


questo nn lo sapevo azz...

grazie dell'aiuto!

spero che la prox volta che provo a fare qualche programma in Pascal nn faccia queste figure demmerda :mrgreen:

forse è meglio se mi limito a programmare in C++
:lol:
Last edited by Criphox on Mon Oct 16, 2006 5:14 pm, edited 1 time in total.
User avatar
Criphox
Algoritmo
 
Posts: 141
Joined: Tue Sep 05, 2006 10:28 pm
Location: Benevento

Postby Fabriz on Mon Oct 16, 2006 4:44 pm

tranquillo, nno ti fucilo se sbagli ;)



Visto che sei uno dei pochi che posta in sezione (l'unico ?!?!?) continua, altrimenti andiamo in malora...
Bit wrote:Ma sisi cosa? che ca**o c'è da ridere? bha


Dead on my sweet Piano.


IO NON SONO AMICO DI GOOGLE
User avatar
Fabriz
Diagramma a Blocchi
 
Posts: 209
Joined: Sun Jul 02, 2006 4:15 pm


Return to Pascal

Who is online

Users browsing this forum: No registered users and 1 guest

cron