Transcript
Page 1: 1) analisi del problema - itisforli.it 2... · analisi del problema 2. definizione dell’algoritmo 3. esecuzione e risoluzione ... dato che mantiene lo stesso valore per tutta la

I FONDAMENTI della PROGRAMMAZIONE

Risoluzione dei problemi mediante il PC

1. analisi del problema

2. definizione dell’algoritmo

3. esecuzione e risoluzione

1) analisi del problema

Problema produrre una melodia risolvere un’equazione

Esperto compositore matematico

Algoritmo spartito formula

Esecutore musicista calcolatore

Es. equazione di 2° grado file: equ2

ax2+bx+c=0

1.1 def esatta e completa:

formula risolutiva delle equ di 2° grado

1.2 ricerca di algoritmi già esistenti:

non è conveniente ricercare algoritmi già esistenti

1.3 individuazione delle variabili di INPUT:

a, b, c

1.4 individuazione delle variabili intermedie e di OUTPUT:

D=b2-4ac; var OUT: x1, x2

1.5 necessità o meno di usare un PC:

è conveniente il PC se il numero di equ è elevato

2) definizione dell’algoritmo

algoritmo: una serie finita di operazioni eseguite in sequenza che fornisce la soluzione

l’algoritmo deve essere: non ambiguo

finito nei passi

esaustivo – contenere tutte le possibili soluzioni

riproducibile – stessi input, stesse risoluzioni

descrizione

a. linguaggio naturale

b. “ ad alto livello

c. “ specialistico

d. diagrammi di flusso, pseudocodifica

Page 2: 1) analisi del problema - itisforli.it 2... · analisi del problema 2. definizione dell’algoritmo 3. esecuzione e risoluzione ... dato che mantiene lo stesso valore per tutta la

3) realizzazione tramite PC

a. linguaggio macchina

b. “ ad alto livello

c. “ orientato al problema

diagrammi di flusso

un insieme di blocchi collegati da linee orientate

la forma del blocco indica il tipo di operazione, ovvero il tipo di istruzioni che il blocco contiene;

un blocco può contenere più istr. Che verranno eseguite in sequenza dall’alto verso il basso

l’algoritmo comunica tramite dati

dati: hanno un nome “identificatore” associato all’indirizzo della locazione di memoria

i dati possono essere costanti e variabili:

costanti: dato che mantiene lo stesso valore per tutta la durata del programma

variabili: possono variare nel corso del programma

Espressioni: sequenza di costanti e variabili legate da operatori

Aritmetiche

Alfanumeriche

Logiche

Relazionali, confronto fra due espr. dello stesso tipo

Inizio o fine

IN e OUT

Assegnazione

selezione

Page 3: 1) analisi del problema - itisforli.it 2... · analisi del problema 2. definizione dell’algoritmo 3. esecuzione e risoluzione ... dato che mantiene lo stesso valore per tutta la

STRUTTURE DEI FLOW-CHART

F V

F

V ? ISTR ? ISTR1 ISTR2

SELEZIONE

A UNA VIA A DUE VIE

ITERAZIONE

PRECONDIZIONALE POSTCONDIZIONALE

ISTR1

ISTR2

ISTR3

SEQUENZA

F

V F

V

?

? ISTR

ISTR

Page 4: 1) analisi del problema - itisforli.it 2... · analisi del problema 2. definizione dell’algoritmo 3. esecuzione e risoluzione ... dato che mantiene lo stesso valore per tutta la

Un algoritmo si dice STRUTTURATO se usa solo le strutture:

SEQUENZA-SELEZIONE-ITERAZIONE

Tecniche di programmazione:

TOP-DOWN: dal generale al particolare; prima il problema generale che viene poi scisso in tanti

sottoproblemi

BOTTOM-UP: dal particolare al generale; è usato in fase di verifica/correzione (debugging)

Problema: risoluzione equazione di primo grado ax+b=0 senza condizioni (file: equ1)

//************ file: equ1 *************

// autori: Nome Cognome Classe

// data: gg/mm/aaaa

// descrizione: RISOLUZIONE EQUAZIONE DI 1° GRADO

#include <iostream.h>

#include <math.h>

#include<stdio.h>

#include<stdlib.h>

int a,b;

float x;

main()

{

cout<<" inserire a:"; cin>> a;

cout<<" inserire b:"; cin>> b;

x=-b/a;

cout<<"la soluzione x="<< x << endl;

}

inizio

Leggi: a,b

x← -b/a

Stampa: x

a,b

fine

int a,b;

double x;

Page 5: 1) analisi del problema - itisforli.it 2... · analisi del problema 2. definizione dell’algoritmo 3. esecuzione e risoluzione ... dato che mantiene lo stesso valore per tutta la

Problema: risoluzione equazione di primo grado ax+b=0 (con condizioni )

//************ file: equ1 cond *************

// autori: Nome Cognome Classe

// data: gg/mm/aaaa

// descrizione: RISOLUZIONE EQUAZIONE DI 1° GRADO con condizione

#include <iostream.h>

#include <math.h>

#include<stdio.h>

#include<stdlib.h>

int a,b;

float x;

main()

{

cout<<" inserire a:"; cin>> a;

cout<<" inserire b:"; cin>> b;

if (a<>0) { x=-b/a;

cout<<x;

}

else {

if (b==0) { cout<<”soluzione indeterminata”

}

else { cout<<”non esiste soluzione”

}

}

}

F V

F V

inizio

Stampa:

soluzione

indeterminata

b=0

a<>0

Leggi: a,b

Stampa: non

esiste

soluzione

fine

x ← - b/a

Stampa: x

Page 6: 1) analisi del problema - itisforli.it 2... · analisi del problema 2. definizione dell’algoritmo 3. esecuzione e risoluzione ... dato che mantiene lo stesso valore per tutta la

Problema: risoluzione equazione di secondo grado ax2+bx+c=0

{

leggi:a,b,c

D=b2-4ac

If (D<0) {

RX1=b/(2a)

…………..

…………..

…………..

}

else {

RX1=(-b+SQRT(D))/(2a)

………………………….

………………………….

………………………….

}

stampa: RX1,IX1,RX2,IX2

}

V F

inizio

Leggi: a,b,c

D←b2-4ac

D<0

fine

Stampa: RX1,IX1,RX2,IX2

RX1←(-b+SQRT(D))/(2a) RX2←(-b-SQRT(D))/(2a)

IX1←0

IX2←0

RX1←-b/(2a)

RX2←RX1

IX1←SQRT(-D)/(2a)

IX2←-IX1


Top Related