Accedi per seguire   
Seguaci 0
Defected

Altro Problema Con Algoritmo - Quasi Risolto!

4 messaggi in questa discussione

Scusate se rompo sempre e se mi faccio vedere poco!^^ Però ultiamente questi esercizi mi stanno piacendo davvero un casino ma su uno in particolare sto avendo dei porblemi già da qualche giorno. L'ho risolto per metà e non so quale sia il problema, anche perchè la prof aveva specificato che era particolarmente difficile...Vabbe, cmq ecco la traccia:

"Dato un elenco di 10 prodotti di cui si conoscono il codice e prezzo, calcolare la media dei prezzi"

Eccolo in Pascal:

Program media_prezzi;

var
 cont: integer;
 tot, cd, pz, pf: real;

begin
 cont := 0;
 tot := 0;
 while cont<10 do
 begin
writeln('Inserisci il codice del prodotto');
readln(cd);
writeln('Inserisci il prezzo del prodotto');
readln(pz);
pf := pz*10;
writeln('Il prezzo medio dei prodotti e: ', pf);
cont := cont+1;
tot := tot+pz;
 end;
 readln;
end.

Il Dev-Pascal me lo manda in esecuzione ma la media non me la fa....

Come devo fare?^^

Grazie a tutti!^^

Modifica di Prozac: Ho riordinato il tuo codice in modo che sia più leggibile

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Partiamo dalla definizione di media matematica:

La media è la somma di tutti i valori diviso per il numero dei valori.

Nel caso dell'esercizio, la media dei prezzi è la somma di tutti i prezzi diviso per il numero dei prodotti (nel nostro caso il numero dei prodotti è stabilito direttamente dal problema: 10).

Il tuo programma dovrebbe: prelevare il prezzo dei 10 prodotti attraverso l'utilizzo di un ciclo tenendo, ad ogni passaggio, la somma dei prezzi (che è quello che fai). Dopodichè dovresti dividere la somma ottenuta per 10 e visualizzare questo dato come risultato della media:

Program media_prezzi;

var
 cont: integer;
 tot, cd, pz, pf: real;

begin
 cont := 0;
 tot := 0;
 while cont<10 do
 begin
writeln('Inserisci il codice del prodotto');
readln(cd);
writeln('Inserisci il prezzo del prodotto');
readln(pz);
cont := cont+1;
tot := tot+pz;
 end;
 pf := tot/10;
 writeln('Il prezzo medio dei prodotti e: ', pf);
 readln;
end.

Come noterai nel codice che ho modificato, ho tolto dal ciclo il calcolo della media che non sarà pz*10, ma diverrà tot/10

In teoria adesso è corretto ;-)

:)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

P.S. Non so se a scuola l'avete già fatto. Però, quando il numero di cicli è stabilito in partenza, viene più comodo utilizzare il costrutto for invece che il while ;-)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Grazie mille!xD

Che imbranato! Ci vuyole la divisione....Perciò nn mi trovavo con i calcoletti!xD

Grazie mille!^^

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per partecipare

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora
Accedi per seguire   
Seguaci 0