Verifica Scritta Quartu S.E. L.S. - Brotzu Opzione Scienze Applicate Docente: Prof. A.Saba Materia: Informatica Tempo a disposizione: 1 h Fila A Valutazione: Classe: Data: Nome: Cognome: Scrivere il programma C++ che risolve il seguente problema: tre ragazzi effettuano un viaggio e vogliono suddividere equamente le spese sostenute. Ciascuno dei tre ha però effettivamente speso una certa cifra durante il viaggio che in genere è diversa da quella spesa dagli altri. Scrivere un programma che permetta di acquisire i nomi e la spesa effettuata da ciascun ragazzo e calcoli e mostri in output quanto il ragazzo deve dare o ricevere affinché le spese sostenute dal gruppo siano suddivise equamente. Suggerimento: si effettui qui su questo foglio una analisi e si scriva l algoritmo informale ed eventualmente quello formale, prima di passare alla codifica c++ Analisi informale Soluzione Dal testo si capisce che dobbiamo acquisire i nomi di ciascun ragazzo e la cifra spesa nel viaggio. Per equiparare la spesa basterà calcolare la spesa totale e poi la spesa media che ciascuno dovrebbe sostenere e quindi mediante differenza tra la spesa effettivamente sostenuta e la spesa media siamo in grado di stabilire quanto ciascuno deve dare o ricevere. Algoritmo informale (COSA devo fare) 1. acquisire nome e spesa effettuata da ciascun ragazzo 2. calcolare la spesa totale 3. calcolare la spesa media 4. calcolare il saldo di ciascun ragazzo 5. visualizzare il saldo di ciascun ragazzo Algoritmo formale (Come devo fare) 1. acquisire il nome di un ragazzo 2. acquisire le spese sostenute nel viaggio da questo ragazzo e memorizzarlo in spesa_sost1 3. acquisire il nome di un ragazzo 4. acquisire le spese sostenute nel viaggio da questo ragazzo e memorizzarlo in spesa_sost2 5. acquisire il nome di un ragazzo
6. acquisire le spese sostenute nel viaggio da questo ragazzo e memorizzarlo in spesa_sost3 7. assegnare a spesa_totale la somma delle spese sostenute da ciascun ragazzo 8. assegnare a media la spesa totale diviso 3 9. assegnare a saldo1 - spesa_sost1 media 10. assegnare a saldo2 - spesa_sost2 media 11. assegnare a saldo3 - spesa_sost3 media 12. Visualizzare i nomi con i rispettivi saldi Codifica C++ #include <iostream> #include <string.h> using namespace std; /*tre ragazzi effettuano un viaggio e vogliono suddividere equamente le spese * sostenute. Ciascuno dei tre ha perã² effettivamente speso una certa cifra * durante il viaggio che in genere à diversa da quella spesa dagli altri. * Scrivere un programma che permetta di acquisire i nomi e la spesa * effettuata da ciascun ragazzo e calcoli e mostri in output quanto il * ragazzo deve dare o ricevere affinchã le spese sostenute dal gruppo siano * suddivise equamente */ int main () { string nome1, nome2, nome3; //i nomi dei tre ragazzi float spesa_sost1, spesa_sost2, spesa_sost3; //le spese effettivamente sostenute float spesa_media, spesa_totale; float saldo1, saldo2, saldo3; //qiuanto dovra' essere dato o dovrã dare ciascun ragazzo cout <<"programma per ripartire le spese di un viaggio"<<endl<<endl; cout <<"Inserisci il nome del primo viaggiatore: "; cin >>nome1; cout <<"Quanto hai speso nel viaggio "<<nome1<<"? "; cin >>spesa_sost1; cout <<"Inserisci il nome del secondo viaggiatore: "; cin >>nome2; cout <<"Quanto hai speso nel viaggio "<<nome2<<"? "; cin >>spesa_sost2; cout <<"Inserisci il nome del terzo viaggiatore: "; cin >>nome3; cout <<"Quanto hai speso nel viaggio "<<nome3<<"? "; cin >>spesa_sost3; //fase di elaborazione dei dati presi in input spesa_totale = spesa_sost1 + spesa_sost2 + spesa_sost3; spesa_media = spesa_totale / 3.0; //calcolo dei saldi: il saldo sarã positivo se il viaggiatore deve ricevere //dei soldi negativo se deve darli
saldo1 = spesa_sost1 - spesa_media; saldo2 = spesa_sost2 - spesa_media; saldo3 = spesa_sost3 - spesa_media; //comunicazione risultti cout <<"Spesa totale del viaggio: "<<spesa_totale<<" euro "<<endl; cout <<"Spesa che ciascuno dovebbe sostenere (spesa media): "<<spesa_media<<endl; cout <<"Un segno + indicherã che la persona deve ricevere dei soldi, il segno - che deve darli"<<endl<<endl; cout <<nome1<<" deve dare (-) o ricevere (+): "<<saldo1<<" euro\n\n"; //\n in una stringa ha cout <<nome2<<" deve dare (-) o ricevere (+): "<<saldo2<<" euro\n\n"; //\n in una stringa ha cout <<nome3<<" deve dare (-) o ricevere (+): "<<saldo3<<" euro\n\n"; //\n in una stringa ha } return 0;
Verifica Scritta Quartu S.E. L.S. - Brotzu Opzione Scienze Applicate Docente: Prof. A.Saba Materia: Informatica Tempo a disposizione: 1 h Fila B Valutazione: Classe: Data: Nome: Cognome: Scrivere il programma C++ che risolve il seguente problema: in un condominio si devono affrontare delle spese straordinarie e le quote verranno ripartite in questo modo: si pagheranno k euro a metro quadro dell appartamento, una quota fissa a prescindere dalle dimensioni dell appartamento (che ciascun proprietario di un appartamento pagherà in misura eguale). Alla somma così ottenuta si aggiungerà una percentuale del T percento. Presi in input i dati necessari ed il cognome della famiglia si mostri quanto è dovuto da tale famiglia. Suggerimento: si effettui qui su questo foglio una analisi e si scriva l algoritmo informale ed eventualmente quello formale, prima di passare alla codifica c++ Analisi Soluzione Il problema è abbastanza semplice: la spesa a metro quadro è data da spesa_metro_quadro = metri_quadri * costo_metro_quadro (il k del testo), la quota fissa si può prendere in input o impostarla come valore fisso (una costante del problema). Si fa la somma di questi due valori ed a questa somma si aggiunge il T percento che anch esso può essere preso in input o imposto come costante. Algoritmo informale (COSA devo fare) 1. imposta quota fissa, quota_metro_quadro e percentuale_fissa come costanti 2. acquisisci il nome della famiglia 3. acquisisci i metri quadri dell appartamento della famiglia 4. calcolo spesa a metro quadro 5. calcolo spesa totale 6. mostra la spesa totale in output Algoritmo formale (COME devo fare) 1. imposta quota fissa, quota_metro_quadro e percentuale come costanti 2. acquisisci il nome della famiglia
3. acquisisci i metri quadri dell appartamento della famiglia 4. spesa_metro_quadro -metri_quadri * quota_metro_quadro 5. spesa_totale = (spesa_metro_quadro + quota_fissa) * (1+percentuale_fissa) 6. mostra in output il nome della famiglia e la spesa totale Codifica c++ #include <iostream> #include <string.h> using namespace std; /* in un condominio si devono affrontare delle spese straordinarie e le quote verranno ripartite in questo modo: si pagheranno k euro a metro quadro dellâappartamento, una quota fissa a prescindere dalle dimensioni dellâappartamento (che ciascun proprietario di un appartamento pagherã in misura eguale). Alla somma cosã ottenuta si aggiungerã una percentuale del T percento. Presi in input i dati necessari ed il cognome della famiglia si mostri quanto à dovuto da tale famiglia.*/ int main () { const float QUOTA_METRO_QUADRO = 1.2;//quota dovuta a metro quadro const float PERCENTUALE_FISSA = 15;//percentuale fissa da aggiungere al totale const float QUOTA_FISSA = 40.0;//quota fissa dovuta ad appartamento string cognome; //il cognome della famiglia float spesa_totale; //la quota che la famiglia dovrã pagare float mq; //metri quadri dell'appartamento float spesa_metro_quadro; cout <<"programma per ripartire le spese straordinarie in un condominio"<<endl<<endl; cout <<"Inserisci il cognome del condomino: "; cin >>cognome; cout <<"Metri quadri appartamento della famiglia "<<cognome<<": "; cin >>mq; //fase di elaborazione dei dati presi in input spesa_metro_quadro = QUOTA_METRO_QUADRO * mq; spesa_totale = (spesa_metro_quadro + QUOTA_FISSA) * (1+ PERCENTUALE_FISSA/100); } //comunicazione risultti cout <<"Quota dovuta dalla famiglia " <<cognome<<" euro: "<<spesa_totale<<endl; return 0;