14
Come si Svolge Un Esercizio IISS LICETI IISS LICETI Informatica Informatica

Come si Svolge Un Esercizio

  • Upload
    gili

  • View
    54

  • Download
    0

Embed Size (px)

DESCRIPTION

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) - PowerPoint PPT Presentation

Citation preview

Page 1: Come si Svolge Un Esercizio

Come si Svolge Un Esercizio

IISS LICETIIISS LICETIInformatica Informatica

Page 2: Come si Svolge Un Esercizio

22

individuare le parti che compongono un problema, scomponendolo il individuare le parti che compongono un problema, scomponendolo il problema in sottoproblemi (TOP DOWN)problema in sottoproblemi (TOP DOWN)

descrivere dettagliatamente il lavoro svolto da ogni parte in termini di descrivere dettagliatamente il lavoro svolto da ogni parte in termini di input, elaborazione, output. Utilizzando la pseudocodifica input, elaborazione, output. Utilizzando la pseudocodifica

implementare in C++ un algoritmo che preveda l’utilizzo delle funzioniimplementare in C++ un algoritmo che preveda l’utilizzo delle funzioni

Passi di RisoluzionePassi di Risoluzione

Page 3: Come si Svolge Un Esercizio

33

Supponiamo di dover far risolvere al computer il Supponiamo di dover far risolvere al computer il seguenteseguente

problema:problema:

Calcolare e visualizzare il quadratoCalcolare e visualizzare il quadrato

di un numero letto da tastieradi un numero letto da tastiera

La prima domanda da porsi è:La prima domanda da porsi è:

Quante parti compongono il problema?Quante parti compongono il problema?

Solitamente “le parti” sono le azioni da svolgere Solitamente “le parti” sono le azioni da svolgere per ottenere la soluzione. Nel nostro esempio:per ottenere la soluzione. Nel nostro esempio:

Leggere il numeroLeggere il numero Calcolare il quadratoCalcolare il quadrato Visualizzare il risultatoVisualizzare il risultato

Scomposizione in Scomposizione in sottoproblemisottoproblemi

Page 4: Come si Svolge Un Esercizio

44

Diagramma di strutturaDiagramma di struttura

Calcolo del Calcolo del quadratoquadrato

Leggere il Leggere il numeronumero

Calcolare il Calcolare il quadratoquadrato

Far vedere Far vedere il risultatoil risultato

Rappresentiamo la scomposizione del problema con Rappresentiamo la scomposizione del problema con un grafico ad albero chiamato diagramma di un grafico ad albero chiamato diagramma di strutturastruttura

Page 5: Come si Svolge Un Esercizio

55

Supponiamo ora di dover risolvere il seguente problema:Supponiamo ora di dover risolvere il seguente problema:

Calcolare e visualizzare la radice quadrata di un numero letto da Calcolare e visualizzare la radice quadrata di un numero letto da tastieratastiera

controllando prima che sia positivocontrollando prima che sia positivo

Provate a disegnare il diagramma di struttura, la pseudocodifica e ilProvate a disegnare il diagramma di struttura, la pseudocodifica e ilprogramma in C++programma in C++

SOLUZIONE

ESERCIZIO 1ESERCIZIO 1

Page 6: Come si Svolge Un Esercizio

66

SOLUZIONE ESERCIZIO 1: TOP DOWN - SOLUZIONE ESERCIZIO 1: TOP DOWN - diagramma di strutturadiagramma di struttura

Calcolo della radice Calcolo della radice quadrataquadrata

Leggere e Leggere e controllare il controllare il numeronumero

Calcolare Calcolare la radicela radice

VisualizzarVisualizzare il e il risultatorisultato

Page 7: Come si Svolge Un Esercizio

77

SOLUZIONE ESERCIZIO 1: Analisi Input/OutputSOLUZIONE ESERCIZIO 1: Analisi Input/Output

Calcolo RadiceCalcolo Radice

QUADRATAQUADRATANUMERONUMERO

RADICE QUADRATA DIRADICE QUADRATA DINUMERONUMERO

Page 8: Come si Svolge Un Esercizio

• <Leggere il numero e controllare che sia positivo><Leggere il numero e controllare che sia positivo>• <Calcolare la radice quadrata><Calcolare la radice quadrata>• <Visualizzare il risultato><Visualizzare il risultato>Che applicando il metodo top down in pseudocodice Che applicando il metodo top down in pseudocodice diventa:diventa:

<leggo numero><leggo numero>SeSe <numero >= 0 > <numero >= 0 > alloraallora

< calcolo radice quadrata>< calcolo radice quadrata>< visualizzo risultato>< visualizzo risultato>

Altrimenti Altrimenti < visualizzo segnalazione di errore>< visualizzo segnalazione di errore>

Se lo pseudocodice lo scriviamo usando le parole chiavi Se lo pseudocodice lo scriviamo usando le parole chiavi (parole sottolineate) in inglese, arriviamo vicini (parole sottolineate) in inglese, arriviamo vicini all’implementazione:all’implementazione:

<leggo numero><leggo numero>IFIF <numero >= 0 > <numero >= 0 > THENTHEN

< calcolo radice quadrata>< calcolo radice quadrata>< visualizzo risultato>< visualizzo risultato>

ELSEELSE< visualizzo segnalazione di errore>< visualizzo segnalazione di errore>

88

SOLUZIONE ESERCIZIO 1: PseudocodificaSOLUZIONE ESERCIZIO 1: Pseudocodifica

Page 9: Come si Svolge Un Esercizio

99

SOLUZIONE ESERCIZIO 1: programmaSOLUZIONE ESERCIZIO 1: programmaint main()int main(){float num, ris;{float num, ris;

cout<<“digita un numero”;cout<<“digita un numero”;cin >> num; cin >> num; if (num>=0) {if (num>=0) {

ris = sqrt(num);ris = sqrt(num);

cout<<“\nil risultato è”;cout<<“\nil risultato è”; cout<<b;cout<<b; } else} else cout << “ Errore: Non e’ cout << “ Errore: Non e’

possibile fare la radice quadrata di possibile fare la radice quadrata di un numero negativo “;un numero negativo “;

Torna indietro

Page 10: Come si Svolge Un Esercizio

1010

ESERCIZIO 2ESERCIZIO 2

Risolviamo il seguente problema:Risolviamo il seguente problema:

Date le altezze di 30 alunni di una classe, calcolare Date le altezze di 30 alunni di una classe, calcolare l’altezza media e stabilire quanti sono gli alunni che l’altezza media e stabilire quanti sono gli alunni che superano la mediasuperano la media

Page 11: Come si Svolge Un Esercizio

1111

SOLUZIONE ESERCIZIO: diagramma di SOLUZIONE ESERCIZIO: diagramma di strutturastruttura

Altezze degli alunniAltezze degli alunnidi una classedi una classe

Memorizzare Memorizzare le altezzele altezze

Calcolare Calcolare la media la media delle delle altezzealtezze

Contare Contare quanti quanti alunni alunni superano la superano la mediamedia

Page 12: Come si Svolge Un Esercizio

1212

SOLUZIONE ESERCIZIO 1: Analisi Input/OutputSOLUZIONE ESERCIZIO 1: Analisi Input/Output

Elaborazione Elaborazione Altezze Altezze AlunniAlunni

Lista Altezze Lista Altezze

AlunniAlunni

Media AltezzeMedia AltezzeNum Alunni che superano Num Alunni che superano

mediamedia

Page 13: Come si Svolge Un Esercizio

• <Memorizzare Altezze><Memorizzare Altezze>• <Calcolare La Media Altezze><Calcolare La Media Altezze>• < Calcolare num. Studenti che superano la media>< Calcolare num. Studenti che superano la media>• <Visualizzare il risultato><Visualizzare il risultato>Che applicando il metodo top down in pseudocodice a < Calcolare Che applicando il metodo top down in pseudocodice a < Calcolare la media Altezze > diventa (ipotizzando di averle memorizzate in la media Altezze > diventa (ipotizzando di averle memorizzate in un vettore):un vettore):Media = 0;Media = 0;Finche’ Finche’ < Non ho scandito vettore delle altezze> < Non ho scandito vettore delle altezze>

media <- altezze[i] + mediamedia <- altezze[i] + mediai <- i+ 1i <- i+ 1

Fine-CicloFine-Ciclo media <- media / imedia <- media / iSe lo pseudocodice lo scriviamo usando le parole chiavi (parole Se lo pseudocodice lo scriviamo usando le parole chiavi (parole sottolineate) in inglese, arriviamo vicini all’implementazione:sottolineate) in inglese, arriviamo vicini all’implementazione:

Media = 0;Media = 0;While While < Non ho scandito vettore delle altezze> < Non ho scandito vettore delle altezze>

media <- altezze[i] + mediamedia <- altezze[i] + mediai <- i+ 1i <- i+ 1

End WhileEnd While media <- media / imedia <- media / i

1313

SOLUZIONE ESERCIZIO 1: PseudocodificaSOLUZIONE ESERCIZIO 1: Pseudocodifica

Page 14: Come si Svolge Un Esercizio

1414

// prototipi delle funzioni// prototipi delle funzioni

void inserisci(int v[],int);void inserisci(int v[],int);

float calcolamedia(int v[],int);float calcolamedia(int v[],int);

void contaaltezze(int v[],int,float);void contaaltezze(int v[],int,float);

int main()int main()

{ {

int const max=30;int const max=30;

int vett[max];int vett[max];

float media;float media;

inserisci(vett,max);inserisci(vett,max);

media=calcolamedia(vett,max);media=calcolamedia(vett,max);

contaaltezze(vett,max,media);contaaltezze(vett,max,media);

}}

void inserisci(int v[],int dim) // carico il void inserisci(int v[],int dim) // carico il vettorevettore

{{

for (int i=0;i<dim;i++)for (int i=0;i<dim;i++)

{cout<<"\ndigita un elemento del vettore {cout<<"\ndigita un elemento del vettore ";";

cin>>v[i];cin>>v[i];

}}

}}

float calcolamedia(int v[],int dim) //calcolo la float calcolamedia(int v[],int dim) //calcolo la mediamedia

{float s,m;{float s,m;

for (int i=0;i<dim;i++)for (int i=0;i<dim;i++)

s=s+v[i];s=s+v[i];

m=s/dim;m=s/dim;

cout<<"\nla media e' "<<m;cout<<"\nla media e' "<<m;

return m;return m;

}}

void contaaltezze(int v[],int dim,float m) //calcolo void contaaltezze(int v[],int dim,float m) //calcolo le altezzele altezze

{int conta=0;{int conta=0;

for (int i=0;i<dim;i++)for (int i=0;i<dim;i++)

{ {

if (v[i]>m)if (v[i]>m)

conta++;conta++;

}}

cout<<"\ngli alunni che superano la media sono cout<<"\ngli alunni che superano la media sono "<<conta;"<<conta;

}}

SOLUZIONE ESERCIZIO: programmaSOLUZIONE ESERCIZIO: programma