|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2008
Città: Treviso
Messaggi: 1677
|
[Pascal] IF OR?? E media??
Ciao a tutti!
Volevo sapere come fare una cosa del genere: if= 'ciao' or 'bye' or 'ecc' si può fare?? perchè al terzo or pascal mi dice: error 41: operand types do not match operator. che posso fare?? ----------------------------------------------- Come posso fare la media tra più numeri? non voglio crearne una con o 2 o 3 o 4 o 5 numeri.. vorrei che per esempio il programma gli chiede quanti numeri a cui fare la media, e da solo gli chieda il numero.. si può? Ultima modifica di EraKlon : 07-06-2009 alle 11:12. |
|
|
|
|
|
#2 | ||
|
Senior Member
Iscritto dal: Feb 2007
Messaggi: 1020
|
Quote:
Quote:
Per la media di più numeri diciamo N, di cui non sai valore all'inizio, conviene utilizzare un ciclo. In pseudo codice sarebbe: Somma, Contantore, N: integer; X: real; Begin Somma:=0; Contantore:=0; scrivi ('Di quanti numeri devi fare la media?'); leggi (N); repeat Contantore:= Contatore+1; scrivi ('numero n.',Contantore,':'); leggi (X); Somma:= Somma+X; until (contatore=N) scrivi ('media= ',Somma/N); End. X è un generico numero che immetti per fare la media N è il numero totale dei valori Contatore serve per il ciclo repeat... tiene il conto dei numeri immessi Somma è l'addizione dei vari numeri che si immettono da tastiera Finito il conteggio esce dal ciclo repeat e esegue la divisione Somma/N restituendo la media aritmetica. |
||
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2008
Città: Treviso
Messaggi: 1677
|
Grazie ancora Tommy!!! (:
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Feb 2007
Messaggi: 1020
|
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2008
Città: Treviso
Messaggi: 1677
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Feb 2007
Messaggi: 1020
|
La logica è giusta, sarà qualche errore di sintassi. Ti faccio un esempio, se dobbiamo fare la media dei numeri 7, 3 e 5... immettiamo come valore per N il numero 3... perchè sono tre numeri. Col ciclo repeat prendiamo tutti i numeri uno alla volta e li sommiamo...
- immettiamo 7... allora X=7, Somma=0+7=7 e Contatore=0+1=1 il repeat effettua un altro ciclo perchè il Contatore non è uguale a N che vale 3 - immettiamo 3... allora X=3, Somma=7+3=10 e Contatore=1+1=2 il repeat effettua un altro ciclo perchè il Contatore non è uguale a N che vale 3 - immettiamo 5... allora X=5, Somma=10+5=15 e Contatore=2+1=3 il repeat si arresta dal ciclare perchè Contatore=N=3, cioè sono finiti i numeri da immetere. - si trova la media... Somma/N=15/3=5 |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2008
Città: Treviso
Messaggi: 1677
|
mi da sotto la U di until l'error 26: Type mismatch.
perchè? |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Feb 2007
Messaggi: 1020
|
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2008
Città: Treviso
Messaggi: 1677
|
program Media;
uses crt; var somma,contatore,N:integer; x:real; begin clrscr; somma:=0; contatore:=0; writeln('Inserisci i numeri di cui vuoi avere la media.'); readln(n); repeat contatore:=contatore+1; writeln('numero n.',contatore,':'); readln(x); somma:= somma + x until (contatore=N) <--- sotto la U c'è la cosa intermittente e mi dice l'errore writeln('media=',somma / N); end. |
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Feb 2007
Messaggi: 1020
|
Bastano piccole correzioni:
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:06.




















