Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - problema con for e array
Forum - Pascal - problema con for e array

Avatar
I'mmoralizzato (Normal User)
Newbie


Messaggi: 7
Iscritto: 28/02/2007

Segnala al moderatore
Postato alle 15:14
Mercoledì, 28/02/2007
ciao a tutti sono nuovo :)
ho un problema con turbo pascal... sto realizzando un piccolo programmino e sto facendo uso di un for perchè con questo programma devo:
_inserire da tastiera un numero di valori che dovrò inseire,
_inserire n (appena deciso) valori da tastiera,
_fare la media dei valori inseriti e restituirla in output... avevo pensato di realizzarlo con un for e con un array mettendo:
Codice sorgente - presumibilmente Delphi

  1. for n:=1 to x do begin
  2. writeln('Inserisci il valore');
  3. readln(risultato[n]);
  4. {risultato è un array definito inizialmente con risultato:array[1..999] of real}
  5. end;


a questo punto mi è sorto un errore di compilazione in readln(risultato[n]); che mi chiede di inserire una partentesi chiusa dove sta la parentesi chiusa (in pratica c'è ma è come se lui non la sentisse).
poi avevo un altro dubbio cioè sul come fare per sommare tutti i n risultati ottenuti... cioè in pratica a me verrebbero tante variabili così: risultato[1], risultato[2], ecc ma come faccio per fargli fare la somma tra tutti i risultato[n]??
in pratica: come mi consigliate di fare questo programma?

PM Quote
Avatar
nikipe_silver (Founder Member)
Expert


Messaggi: 339
Iscritto: 20/09/2005

Segnala al moderatore
Postato alle 15:37
Mercoledì, 28/02/2007
prova

Codice sorgente - presumibilmente Delphi

  1. program media;
  2. var
  3. numeri:array[1..999]of real;
  4. media,tot:real;
  5. n,i:integer;
  6. begin
  7.  tot:=0;
  8.  readln(n);
  9.  for i:=1 to n do
  10.  begin
  11.   readln(numeri[i]);
  12.   tot:=tot+numeri[i];
  13.  end;
  14.  media:=tot/n;
  15.  writeln(media);
  16. end;



addiritura l'array non servirebbe nemmeno...

Ultima modifica effettuata da nikipe_silver il 28/02/2007 alle 15:37
PM Quote
Avatar
I'mmoralizzato (Normal User)
Newbie


Messaggi: 7
Iscritto: 28/02/2007

Segnala al moderatore
Postato alle 15:42
Mercoledì, 28/02/2007
grazie mille!! potresti dirmi per favore anche la soluzione senza array ??? grazie ancora!

PM Quote
Avatar
AliasFrugghi (Ex-Member)
Newbie


Messaggi: 12
Iscritto: 24/02/2007

Segnala al moderatore
Postato alle 15:55
Mercoledì, 28/02/2007
Codice sorgente - presumibilmente Delphi

  1. program media;
  2. var
  3. media,tot:real;
  4. n,i:integer;
  5. begin
  6. tot:=0;
  7. readln(n);
  8. for i:=1 to n do
  9. begin
  10. readln(media);
  11. tot:=tot+media;
  12. end;
  13. media:=media/n;
  14. writeln(media);
  15. readln
  16. end.



:k::k:

Cmq di consiglio DevPascal, secondo me è meglio di Turbo

Ultima modifica effettuata da AliasFrugghi il 28/02/2007 alle 15:57
PM Quote
Avatar
I'mmoralizzato (Normal User)
Newbie


Messaggi: 7
Iscritto: 28/02/2007

Segnala al moderatore
Postato alle 16:01
Mercoledì, 28/02/2007
grazie mille per il sorgente e per il consiglio.. purtroppo la mia scelta è obbligata perchè a scuola uso turbo pascal e quindi preferisco anche a casa fare pratica con quello... grazie ancora!

Ultima modifica effettuata da I'mmoralizzato il 28/02/2007 alle 16:06
PM Quote
Avatar
AliasFrugghi (Ex-Member)
Newbie


Messaggi: 12
Iscritto: 24/02/2007

Segnala al moderatore
Postato alle 16:03
Mercoledì, 28/02/2007
Testo quotato

Postato originariamente da I'mmoralizzato:

grazie mille per il sorgente e per il consiglio.. purtroppo la mia scelta è obbligata perchè a scuola uso turbo pascal e quindi preferisco anche a casa fare pratica con quello... grazie ancora!



Di niente...io a scuola uso DevPascal..:rotfl:

PM Quote
Avatar
I'mmoralizzato (Normal User)
Newbie


Messaggi: 7
Iscritto: 28/02/2007

Segnala al moderatore
Postato alle 16:07
Mercoledì, 28/02/2007
purtroppo ho provato ed il tuo sorgente non funziona perchè lui non prende in considerazione tutti i valori assegnati ma solamente l'ultimo valore...

PM Quote
Avatar
AliasFrugghi (Ex-Member)
Newbie


Messaggi: 12
Iscritto: 24/02/2007

Segnala al moderatore
Postato alle 16:14
Mercoledì, 28/02/2007
scusami ho dimenticato di sostituire i nomi di alcune varibili...

dopo il ciclo metti questo pezzo :k:
Codice sorgente - presumibilmente Plain Text

  1. tot:=tot/n;
  2. writeln(tot);
  3. readln
  4. end.


PM Quote
Avatar
I'mmoralizzato (Normal User)
Newbie


Messaggi: 7
Iscritto: 28/02/2007

Segnala al moderatore
Postato alle 16:15
Mercoledì, 28/02/2007
evvai!! grazie mille adesso funziona!!

PM Quote