1 / 14

Come si Svolge Un Esercizio

IISS LICETI Informatica. Come si Svolge Un Esercizio. Passi di Risoluzione. individuare le parti che compongono un problema, scomponendolo il problema in sottoproblemi (TOP DOWN)

gili
Download Presentation

Come si Svolge Un Esercizio

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IISS LICETI Informatica Come si Svolge Un Esercizio

  2. Passi di Risoluzione • individuare le parti che compongono un problema, scomponendolo il problema in sottoproblemi (TOP DOWN) • descrivere dettagliatamente il lavoro svolto da ogni parte in termini di input, elaborazione, output. Utilizzando la pseudocodifica • implementare in C++ un algoritmo che preveda l’utilizzo delle funzioni

  3. Scomposizione in sottoproblemi Supponiamo di dover far risolvere al computer il seguente problema: Calcolare e visualizzare il quadrato di un numero letto da tastiera La prima domanda da porsi è: Quante parti compongono il problema? Solitamente “le parti” sono le azioni da svolgere per ottenere la soluzione. Nel nostro esempio: • Leggere il numero • Calcolare il quadrato • Visualizzare il risultato

  4. Diagramma di struttura Rappresentiamo la scomposizione del problema con un grafico ad albero chiamato diagramma di struttura Calcolo del quadrato Far vedere il risultato Leggere il numero Calcolare il quadrato

  5. ESERCIZIO 1 Supponiamo ora di dover risolvere il seguente problema: Calcolare e visualizzare la radice quadrata di un numero letto da tastiera controllando prima che sia positivo Provate a disegnare il diagramma di struttura, la pseudocodifica e il programma in C++ SOLUZIONE

  6. SOLUZIONE ESERCIZIO 1: TOP DOWN - diagramma di struttura Calcolo della radice quadrata Leggere e controllare il numero Calcolare la radice Visualizzare il risultato

  7. SOLUZIONE ESERCIZIO 1: Analisi Input/Output RADICE QUADRATA DI NUMERO Calcolo Radice QUADRATA NUMERO

  8. SOLUZIONE ESERCIZIO 1: Pseudocodifica • <Leggere il numero e controllare che sia positivo> • <Calcolare la radice quadrata> • <Visualizzare il risultato> Che applicando il metodo top down in pseudocodice diventa: <leggo numero> Se <numero >= 0 > allora < calcolo radice quadrata> < visualizzo risultato> Altrimenti < visualizzo segnalazione di errore> Se lo pseudocodice lo scriviamo usando le parole chiavi (parole sottolineate) in inglese, arriviamo vicini all’implementazione: <leggo numero> IF<numero >= 0 > THEN < calcolo radice quadrata> < visualizzo risultato> ELSE < visualizzo segnalazione di errore>

  9. SOLUZIONE ESERCIZIO 1: programma int main() {float num, ris; cout<<“digita un numero”; cin >> num; if (num>=0) { ris = sqrt(num); cout<<“\nil risultato è”; cout<<b; } else cout << “ Errore: Non e’ possibile fare la radice quadrata di un numero negativo “; Torna indietro

  10. ESERCIZIO 2 Risolviamo il seguente problema: Date le altezze di 30 alunni di una classe, calcolare l’altezza media e stabilire quanti sono gli alunni che superano la media

  11. SOLUZIONE ESERCIZIO: diagramma di struttura Altezze degli alunni di una classe Contare quanti alunni superano la media Calcolare la media delle altezze Memorizzare le altezze

  12. SOLUZIONE ESERCIZIO 1: Analisi Input/Output Media Altezze Num Alunni che superano media Elaborazione Altezze Alunni Lista Altezze Alunni

  13. SOLUZIONE ESERCIZIO 1: Pseudocodifica • <Memorizzare Altezze> • <Calcolare La Media Altezze> • < Calcolare num. Studenti che superano la media> • <Visualizzare il risultato> Che applicando il metodo top down in pseudocodice a < Calcolare la media Altezze > diventa (ipotizzando di averle memorizzate in un vettore): Media = 0; Finche’ < Non ho scandito vettore delle altezze> media <- altezze[i] + media i <- i+ 1 Fine-Ciclo media <- media / i Se lo pseudocodice lo scriviamo usando le parole chiavi (parole sottolineate) in inglese, arriviamo vicini all’implementazione: Media = 0; While < Non ho scandito vettore delle altezze> media <- altezze[i] + media i <- i+ 1 End While media <- media / i

  14. // prototipi delle funzioni void inserisci(int v[],int); float calcolamedia(int v[],int); void contaaltezze(int v[],int,float); int main() { int const max=30; int vett[max]; float media; inserisci(vett,max); media=calcolamedia(vett,max); contaaltezze(vett,max,media); } void inserisci(int v[],int dim) // carico il vettore { for (int i=0;i<dim;i++) {cout<<"\ndigita un elemento del vettore "; cin>>v[i]; } } float calcolamedia(int v[],int dim) //calcolo la media {float s,m; for (int i=0;i<dim;i++) s=s+v[i]; m=s/dim; cout<<"\nla media e' "<<m; return m; } void contaaltezze(int v[],int dim,float m) //calcolo le altezze {int conta=0; for (int i=0;i<dim;i++) { if (v[i]>m) conta++; } cout<<"\ngli alunni che superano la media sono "<<conta; } SOLUZIONE ESERCIZIO: programma

More Related