[RISOLTO] Problema programma in Pascal

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
alessandro 22
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 315
Iscrizione: lunedì 25 giugno 2012, 12:28
Desktop: unity
Distribuzione: Ubuntu 16.04 LTS 64 bit

[RISOLTO] Problema programma in Pascal

Messaggio da alessandro 22 »

Salve a tutti,
vi spiego il mio problema: devo scrivere un programma in pascal che calcoli la media di n voti e ne calcoli la media, se la media è maggiore di 6 scrivi promosso altrimenti bocciato.
il professore ci ha detto di scriverlo usando 1 volta il repeat...until e un'altra con il for.
vi mostro quello che ho fatto:

Codice: Seleziona tutto

programm input_output(input, output) ;
var
            n,voto,media,somm, i :integer ;
begin
            writeln('inserisci numero di voti')
             readln (n) ;
             for i:=0 to n do
                     begin
                      writeln('Inserisci voto') ;
                      readln (voto) ;
                       somm:=voto+somm ;
                     end
                   readln;
               media:= somm/n;
               if media <= 6
                    then
                    writeln ('promosso')
                   else
                   writeln ('bocciato') ;
               readln ;
end. 
con repeat ci sono riuscito con for mi da errore, ho postato il codice.
Grazie in aticipo.
Ultima modifica di alessandro 22 il domenica 25 maggio 2014, 12:26, modificato 2 volte in totale.
Il Saggio coltiva Linux, tanto Windows si pianta da solo.
ixamit
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 499
Iscrizione: giovedì 14 novembre 2013, 10:16

Re: Problema programma in Pascal

Messaggio da ixamit »

Non mi ricordo se vanno inizializzate le variabili, ma l'errore che segnali e' dovuto alla variabile voto che non e' dichiarata
Avatar utente
alessandro 22
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 315
Iscrizione: lunedì 25 giugno 2012, 12:28
Desktop: unity
Distribuzione: Ubuntu 16.04 LTS 64 bit

Re: Problema programma in Pascal

Messaggio da alessandro 22 »

come dovrei fare?
Il Saggio coltiva Linux, tanto Windows si pianta da solo.
Avatar utente
Bianco95
Prode Principiante
Messaggi: 31
Iscrizione: venerdì 25 aprile 2014, 21:29
Desktop: Unity
Distribuzione: Ubuntu 14.04 x86_64
Località: Susegana (Treviso)

Re: Problema programma in Pascal

Messaggio da Bianco95 »

alessandro 22 potresti postare l'errore che ti dà?? :D :ciao:
Work Hard Dream Big
Dopo le ere della pietra, del ferro... è giunta l'era di Linux.
ixamit
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 499
Iscrizione: giovedì 14 novembre 2013, 10:16

Re: Problema programma in Pascal

Messaggio da ixamit »

io avevo visto vot non voto... non e' che e' stato rimodificato il sorgente?
poi dovresti controllare i limiti di iterazione:

Codice: Seleziona tutto

 for i:=0 to n do
Avatar utente
Bianco95
Prode Principiante
Messaggi: 31
Iscrizione: venerdì 25 aprile 2014, 21:29
Desktop: Unity
Distribuzione: Ubuntu 14.04 x86_64
Località: Susegana (Treviso)

Re: Problema programma in Pascal

Messaggio da Bianco95 »

Comunque in teoria il tuo ciclo fa un giro in più...quindi ti fa inserire un voto in più perchè fai partire il ciclo da 0 fino al numero di voti

Poi, molto importante anche per le prossime volte ;) , cerca di inizializzare sempre le variabili perchè altrimenti potrebbero darti dei problemi :cry:

quindi per concludere fai partire il ciclo da 1 e inizializza la variabile somm:=0 prima del ciclo
Work Hard Dream Big
Dopo le ere della pietra, del ferro... è giunta l'era di Linux.
Avatar utente
Bianco95
Prode Principiante
Messaggi: 31
Iscrizione: venerdì 25 aprile 2014, 21:29
Desktop: Unity
Distribuzione: Ubuntu 14.04 x86_64
Località: Susegana (Treviso)

Re: Problema programma in Pascal

Messaggio da Bianco95 »

Anche l'if è sbagliato perchè se la media è minore di 6 allora sei promosso... :lol: :lol: un pò strano
quindi modifica la condizione dell'if con media>=6
Work Hard Dream Big
Dopo le ere della pietra, del ferro... è giunta l'era di Linux.
Avatar utente
alessandro 22
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 315
Iscrizione: lunedì 25 giugno 2012, 12:28
Desktop: unity
Distribuzione: Ubuntu 16.04 LTS 64 bit

Re: Problema programma in Pascal

Messaggio da alessandro 22 »

gli errori sono questi: error: illegal assignment to for-loop variable "i"
fatal: syntax error, ":" expected but "." found

per quanto riguarda l'if qua ho scritto male ma sul programma è giusto (scusate)
vot l'ho corretto in voto per una svista.

Ricapitolando il codice dovrà essere così:

Codice: Seleziona tutto

programm input_output(input, output) ;
var
            n,voto,media,somm, i :integer ;
begin
            writeln('inserisci numero di voti')
             readln (n) ;
             for i:=1 to n do
                     begin
                      writeln('Inserisci voto') ;
                      readln (voto) ;
                       somm:=voto+somm ;
                     end
                   readln;
               media:= somm/n;
               if media >= 6
                    then
                    writeln ('promosso')
                   else
                   writeln ('bocciato') ;
               readln ;
end.
Il Saggio coltiva Linux, tanto Windows si pianta da solo.
Avatar utente
Bianco95
Prode Principiante
Messaggi: 31
Iscrizione: venerdì 25 aprile 2014, 21:29
Desktop: Unity
Distribuzione: Ubuntu 14.04 x86_64
Località: Susegana (Treviso)

Re: Problema programma in Pascal

Messaggio da Bianco95 »

Ho un altro appunto da farti mancano diversi ; (punti e virgola)
dopo writeln('inserisci numero di voti'), dopo l'end del ciclo e dopo writeln ('promosso')... :ciao:
Work Hard Dream Big
Dopo le ere della pietra, del ferro... è giunta l'era di Linux.
ixamit
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 499
Iscrizione: giovedì 14 novembre 2013, 10:16

Re: Problema programma in Pascal

Messaggio da ixamit »

1) Usi / nella divisione con operandi interi, ma il risultato e' di tipo real.
2) Programm (doppia emme)

scusa... ma con cosa stai compilando?!?!

wiki

Codice: Seleziona tutto

Program ciclo_for;
var i, n, num:integer;
begin
 write('quanti numeri vuoi inserire?');
 readln(n);
 for i:=1 to n do
  begin
   write('inserisci il numero: ')
   readln(num);
  end;
 readln;
end.
Avatar utente
alessandro 22
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 315
Iscrizione: lunedì 25 giugno 2012, 12:28
Desktop: unity
Distribuzione: Ubuntu 16.04 LTS 64 bit

Re: Problema programma in Pascal

Messaggio da alessandro 22 »

Sto compilando con dev Pascal
Gli errori di ; e altro genere è perché non mi fave copiare il codice e quindi lo ho riscritto adesso vi mando una foto
Il Saggio coltiva Linux, tanto Windows si pianta da solo.
Avatar utente
alessandro 22
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 315
Iscrizione: lunedì 25 giugno 2012, 12:28
Desktop: unity
Distribuzione: Ubuntu 16.04 LTS 64 bit

Re: Problema programma in Pascal

Messaggio da alessandro 22 »

Codice: Seleziona tutto

program professore;
var
    n, voto, media, somm, i :real;
begin
  writeln('inserisci numero di voti');
  readln(n);
  repeat
   writeln('inserisci voto');
   readln(voto);
   somm:=voto+somm;
   i:=i+1;
 until i=n;
 media:= somm/n;
  if media >=6
     then
      writeln('promosso')
     else
      writeln('bocciato');
    readln;

end.
questo è il codice utilizzando repeat (senza errori)
come dovrei fare utilizzando il for?
Grazie! :D
Il Saggio coltiva Linux, tanto Windows si pianta da solo.
Avatar utente
alessandro 22
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 315
Iscrizione: lunedì 25 giugno 2012, 12:28
Desktop: unity
Distribuzione: Ubuntu 16.04 LTS 64 bit

Re: Problema programma in Pascal

Messaggio da alessandro 22 »

Codice: Seleziona tutto

program professore;
var
    n, voto, media, somm, i :real;
begin
  writeln('inserisci numero di voti');
  readln(n);
  for i:=1 to n do
  begin
   writeln('inserisci voto');
   readln(voto);
   somm:=voto+somm;
   i:=i+1;
end
 media:= somm/n;
  if media >=6
     then
      writeln('promosso')
     else
      writeln('bocciato');
    readln;

end.

ho scritto questo ma non funziona:

Fatal: Syntax error, ; expected but identifier MEDIA found
scusate per tutte questo domande ma son agli inizi
Il Saggio coltiva Linux, tanto Windows si pianta da solo.
Avatar utente
Bianco95
Prode Principiante
Messaggi: 31
Iscrizione: venerdì 25 aprile 2014, 21:29
Desktop: Unity
Distribuzione: Ubuntu 14.04 x86_64
Località: Susegana (Treviso)

Re: Problema programma in Pascal

Messaggio da Bianco95 »

Perchè incrementi la i all'interno del ciclo...il for è un ciclo autoincrementante...i:=i+1 non serve anzi è sbagliato perchè ti farebbe inserire sono metà dei voti...
In più come ti ho già detto ieri devi mettere il ; dopo l'end del ciclo :ciao:
Work Hard Dream Big
Dopo le ere della pietra, del ferro... è giunta l'era di Linux.
Avatar utente
Bianco95
Prode Principiante
Messaggi: 31
Iscrizione: venerdì 25 aprile 2014, 21:29
Desktop: Unity
Distribuzione: Ubuntu 14.04 x86_64
Località: Susegana (Treviso)

Re: Problema programma in Pascal

Messaggio da Bianco95 »

Prova così ma non ti assicuro che funzioni perchè non l'ho provato...

Codice: Seleziona tutto

program professore;
var
    voto, media, somm :real;
    n, i : integer;
begin
  writeln('inserisci numero di voti');
  readln(n);
  somm:=0;
  for i:=1 to n do
  begin
   writeln('inserisci voto');
   readln(voto);
   somm:=voto+somm;
end;
 media:= somm/n;
  if media >=6 then
      writeln('promosso')
     else
      writeln('bocciato');
  readln;

end.
Work Hard Dream Big
Dopo le ere della pietra, del ferro... è giunta l'era di Linux.
Avatar utente
alessandro 22
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 315
Iscrizione: lunedì 25 giugno 2012, 12:28
Desktop: unity
Distribuzione: Ubuntu 16.04 LTS 64 bit

Re: Problema programma in Pascal

Messaggio da alessandro 22 »

Grazie mille, funziona!
Quindi mi devo ricordare il ; dopo end e non mettere mai i:=i+1 in un ciclo for
Il Saggio coltiva Linux, tanto Windows si pianta da solo.
Avatar utente
Bianco95
Prode Principiante
Messaggi: 31
Iscrizione: venerdì 25 aprile 2014, 21:29
Desktop: Unity
Distribuzione: Ubuntu 14.04 x86_64
Località: Susegana (Treviso)

Re: [RISOLTO] Problema programma in Pascal

Messaggio da Bianco95 »

Felice di esserti stato d'aiuto :ciao: :D
Work Hard Dream Big
Dopo le ere della pietra, del ferro... è giunta l'era di Linux.
Avatar utente
alessandro 22
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 315
Iscrizione: lunedì 25 giugno 2012, 12:28
Desktop: unity
Distribuzione: Ubuntu 16.04 LTS 64 bit

Re: [RISOLTO] Problema programma in Pascal

Messaggio da alessandro 22 »

Il Saggio coltiva Linux, tanto Windows si pianta da solo.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti