Dal problema al programma - PowerPoint PPT Presentation

About This Presentation
Title:

Dal problema al programma

Description:

Dal problema al programma Unit di apprendimento Tratte da moduli presentati dalle prof.sse Piera De Maio e Maria Cantone PNFI TIC 3.1 Sintassi e semantica dei ... – PowerPoint PPT presentation

Number of Views:73
Avg rating:3.0/5.0
Slides: 43
Provided by: Unkn123
Category:
Tags: dal | esco | problema | programma

less

Transcript and Presenter's Notes

Title: Dal problema al programma


1
Dal problema al programma
  • Unità di apprendimento
  • Tratte da moduli presentati dalle prof.sse Piera
    De Maio e Maria Cantone PNFI TIC

2
Scopo
  • Conoscere alcuni concetti fondamentali
    dellinformatica algoritmo, automa a programma,
    linguaggio formale
  • Essere in grado di cogliere lintreccio tra
    alcuni risultati della matematica e della logica
    dei primi decenni del secolo scorso ed i
    successivi sviluppi e applicazioni che questi
    hanno avuto in campo informatico

3
Indice
  • UA.1 Problemi e algoritmi
  • 1.1 introduzione intuitiva del concetto di
    problema
  • 1.2 cenni sulle strategie per la risoluzione dei
    problemi
  • soluzione di un problema fase di analisi e
    algoritmi
  • 1.2a Diagrammi a blocchi
  • 1.2b Linguaggio di progetto
  • Esempi ed esercizi
  • UA.2 Automi esecutori
  • 2.1 Automi esecutori
  • 2.2 Caratteristiche di un automa
  • 2.2a Concetto di sistema
  • 2.2b Concetto di modello
  • 2.3 Automi e classi di problemi
  • Esercitazioni
  • UA.3 Linguaggi
  • 3.1 Sintassi e semantica dei linguaggi
  • 3.1a Linguaggi nella comunicazione uomo-macchina
  • 3.2 Linguaggi e automi
  • 3.3 Linguaggi di programmazione con esempio

4
1.1 Introduzione intuitiva al concetto di
problema
Il problema è una situazione che pone delle
domande alle quali si devono dare delle risposte.
Risolvere il problema vuol dire uscire dalla
situazione
Un problema è incertezza cioè mancanza di
informazioni Problema è quando non sappiamo
affrontare normalmente la vita di solito il
nostro comportamento è meccanico, le nostre
azioni sono frutto di abitudine ma nasce il
problema quando un fatto imprevisto ci causa
dubbio, disagio perché ci impone una scelta con
esigenza di riflettere cioè ragionare analizzando
dettagliatamente il pro e il contro delle
decisioni al fine di sciogliere quel dubbio
(analysis scioglimento, risoluzione).
5
Problemi e algoritmi
  • Un problema consta dei seguenti elementi
  • Dati iniziali ossia ciò che è noto (misura
    reale) e che indichiamo col termine input
  • Risultati o dati finali gli elementi incogniti
    che si devono determinare e che indicheremo con
    output
  • Condizioni le limitazioni o vincoli cui devono
    soggiacere i risultati
  • Il che cosa e il come
  • il problema descrive che cosa si deve
    calcolare
  • lalgoritmo descrive come effettuare un calcolo

6
Problemi e algoritmi
Tipi di problemi
Problemi di decisione
Problemi di ricerca
Problemi di ottimizzazione
7
1.2 Strategie per la risoluzione dei
problemi
Problema
Verifica dei risultati
Interpretazione
Esecuzione
Procedimento risolutivo (algoritmo)
Modello
8
1.2 Strategie per la risoluzione dei
problemi
Interpretazione
TOP DOWN
GRAFICO
Utilizza uno schema grafico a segmenti
Suddivide il problema in tanti sotto-problemi
fino ad operazioni elementari
9
Esempio di Problema
  • Individuare il percorso più breve per andare a
    scuola (scomponendo in sotto-problemi)

10
1.2 Strategie per la risoluzione dei
problemi
Algoritmo
Insieme dei comandi che definiscono una sequenza
finita di operazioni da eseguire mediante le
quali si risolve il problema
Deve essere
  • finito (numero limitato di passi i comandi
    sono in numero finito
  • e vengono eseguiti un numero
    finito di volte)
  • definito (ogni istruzione deve consentire
    uninterpretazione
  • univoca non ambigua e
    precisa)
  • eseguibile (la sua esecuzione deve essere
    possibile con gli
  • strumenti a
    disposizione)
  • deterministico (ad ogni passo deve essere
    definita una ed una
  • sola
    operazione successiva).

11
Passo
  • Azione elementare che deve essere intrapresa per
    procedere nellesecuzione dellalgoritmo.
  • Questo concetto richiede di stabilire linsieme
    delle azioni che lesecutore dellalgoritmo
    (persona o la macchina) è in grado di svolgere.
  • In altre parole, chi definisce un algoritmo deve
    accordarsi con chi lo dovrà eseguire circa le
    istruzioni da utilizzare per descrivere
    lalgoritmo stesso.

Supponiamo ad esempio di dover descrivere la
ricetta per la preparazione di una frittata
listruzione mettere quattro uova in una padella
può essere utilizzata solo se si è sicuri che
la persona che eseguirà la ricetta è abbastanza
esperta da capire che nella padella deve essere
versato il contenuto delle uova che devono quindi
venire rotte in modo da eliminare i gusci.
12
Esempi di algoritmo
  • Preparazione di una torta

Ricetta descrizione precisa di un procedimento
meccanico
13
Esempi di algoritmo
  • Prelevamento col Bancomat

Una dettagliata sequenza di azioni/operazioni che
devono essere eseguite per risolvere una classe
di problemi. Il nome deriva dal matematico
Uzbeko-Iraniano Al-Khawarizmi ???????? ?
(vissuto intorno all'anno 800)
14
Esempio di algoritmo (continua)
  • L'algoritmo "va' dal salotto alla cucina" si
    compone in realtà delle seguenti istruzioni
  • esci dal salotto
  • curva a sinistra
  • prosegui per il corridoio fino all'ultima porta
    sulla sinistra
  • attraversa la porta a sinistra
  • L'algoritmo "attraversa la porta a sinistra" si
    compone di
  • controlla se la porta è aperta
  • nel caso che la porta sia aperta salta il passo
    seguente
  • apri la porta (cioè protendi braccio, afferra
    maniglia .)
  • avanza di un metro

15
Esempio di algoritmo
  • Un modo dettagliato di rappresentare l'algoritmo
    "attraversa la porta a sinistra" specificando le
    sequenze sotto-algoritmiche è allora il seguente
  • controlla se la porta è aperta
  • nel caso che la porta sia aperta salta il passo
    seguente
  • apri la porta
  • protendi il braccio
  • afferra la maniglia
  • rotea la mano di 30 gradi in direzione antioraria
  • applica una pressione alla maniglia diretta di
    fronte a te
  • ...
  • avanza di un metro

16
Esercizi
  • Spedire una lettera allamico Giorgio che abita a
    Roma
  • 1 - Ordinare le seguenti operazioni
  • - metto il foglio nella busta
  • - attacco il francobollo
  • - prendo una busta
  • - esco di casa
  • - imbuco la lettera nella cassetta
  • - aggiungo il c.a.p. di Roma
  • - prendo il francobollo
  • - vado allufficio postale
  • - scrivo sulla busta lindirizzo di Giorgio
  • - chiudo la busta
  • - cerco il numero del c.a.p di Roma
  • - cerco lindirizzo di Giorgio nella rubrica.
  • 2 - Specificarne le sequenze sotto-algoritmiche

17
Esercizi
  • Considerando i seguenti concetti come il percorso
    che va dal problema al programma, collegare con
    parole o frasi significative ogni parola alla
    successiva e a quanti più concetti è possibile
  • PROBLEMA, ALGORITMO, DIAGRAMMA A BLOCCHI,
    LIGUAGGIO DI PROGETTO, AUTOMA, SISTEMA, MODELLO,
    LINGUAGGI DI PROGRAMMAZIONE, PROGRAMMA

18
1.2 Strategie per risoluzione dei
problemi
Rappresentazioni grafiche e formalizzate di un
algoritmo
La descrizione delle fasi esecutive del problema
può avvenire mediante la formalizzazione dei
passi elementari da effettuare che può essere
realizzata con
Diagramma a blocchi o flow-chart
e/o
Pseudocodifica
19
1.2a Diagrammi a blocchi
Diagramma a blocchi o flow-chart
Ha il pregio di evidenziare visivamente
lavanzamento in sequenza e le varie strutture
che compongono lalgoritmo, presenta istruzioni
di input e/o output, calcolo e/o di elaborazione,
condizioni ed individua un inizio ed una fine.
INPUT
CONDIZIONI
ISTRUZIONI
fine
20
1.2a Esempio di diagramma a blocchi
inizio
Somma S di una sequenza di N numeri di valore A
variabile
N
S ?
A
S SA
NN-1
NO
SI
N gt ?
S
fine
21
1.2b Linguaggio di progetto
Linguaggio di progetto o pseudo-codifica
è un linguaggio formale (linguaggio di progetto),
con regole prive di ambiguità ed eccezioni che
esprimono i vari tipi di istruzioni. Viene
definito pseudo-codifica o notazione lineare
strutturata. Generalmente utilizzato nella
soluzione informatizzata di problemi più
complessi.
inizio leggi N S ? fai
leggi A S
SA N N-1 mentre ( N gt
? ) stampa S fine
In modo più efficiente, al posto di inizio/fine
si possono usare le parentesi graffe
22
Algoritmo media aritmetica
Diagramma a blocchi o flow-chart
  • Calcolo della media aritmetica di una sequenza di
    valori numerici

23
Algoritmo media aritmetica
Linguaggio di progetto o pseudo-codifica
  • inizio
  • N ? ?
  • S ? ?
  • fai
  • leggi V
  • S ? S V
  • N ? N 1
  • mentre (V gt ?)
  • N ? N-1
  • M ?
  • scrivi M
  • fine

Tecnica descrittiva di più semplice
lettura/comprensione
24
2.1 Automi esecutori
La risoluzione di un problema è un processo di
manipolazione di informazioni per generare nuove
informazioni . Per risolvere un problema ci sono
due tipi di attività
intelligentidi elaborazione
routinarie di esecuzione
25
2.2 Caratteristiche di un automa
Automi
Sono macchine che compiono attività complesse in
cui sono riconoscibili elementi propri delle
attività superiori del comportamento umano.
Possono essere programmate per svolgere diverse
mansioni e per modificare le proprie azioni in
relazione ai mutamenti ambientali. (Es
lavatrici, sistemi di controlli ascensori,
bancomatcomputer) Un automa è un sistema
Dinamico Passa da uno stato (condizione di
funzionamento) allaltro secondo
gli input che riceve Invariante Se le condizioni
iniziali sono le stesse il comportamento
del sistema è
invariato Discreto Le variabili (dingresso, di
stato e duscita) possono assumere
solo valori discreti
26
2.2a Concetto di sistema
Si dice sistema un insieme di elementi che
interagiscono tra loro in modo da formare una
nuova entità (con un determinato scopo o
funzionalità) che, al verificarsi di un dato
evento (azione) proveniente dallambiente
esterno, produce una risposta definita. Un
sistema non è un oggetto ma la definizione di un
ambito (limiti di analisi) si sceglie cosa
nascondere (come in una scatola nera) e cosa
evidenziare, interessati alluso.
Rappresentazione sistemica (paradigma
ingresso-uscita) descrizione a blocchi
funzionali cioè una rappresentazione grafica che
distingue tra variabili in ingresso (grandezze su
cui possiamo agire per introdurre modifiche) e
in uscita (risposte cioè grandezze che risultano
influenzate e che possiamo osservare per studiare
sperimentalmente landamento) individuando gli
eventuali parametri costanti
Per una classificazione rigorosa dei sistemi
http//professoressa.altervista.org/Dispense_III/C
lassificazione20sistemi.pdf
27
2.2b Concetto di modello
Modello
E uno schema teorico (una descrizione
semplificata) elaborato per rappresentare
elementi fondamentali di fenomeni o enti
  • Modelli descrittivi (riproducono in modo
    semplice la realtà, senza presupporre luso
  • che
    ne verrà fatto)
  • Modelli predittivi (danno gli elementi di una
    situazione per prevederne levoluzione)
  • Modelli prescrittivi (impongono un particolare
    comportamento in previsione dellobiettivo
  • da
    raggiungere)
  • Modelli simbolici o matematici (danno una
    rappresentazione astratta mediante un

  • insieme di equazioni che
    legano le grandezze)
  • Modelli iconici (danno una rappresentazione
    fedele della realtà in scala ridotta)
  • Modello per trascurare gli aspetti superflui alla
    soluzione di problemi
  • Per una motivazione alluso della modellizzazione
    ed una classificazione rigorosa dei modelli
    http//professoressa.altervista.org/Dispense_III/A
    pprendimento_Modelli.pdf

28
2.3 Automi e classi di problemi
Un sistema automatico o automa è un sistema nel
quale la componente umana è completamente
eliminata nellambito dei processi, che sono ben
determinati e prevedibili lavatrice,
lavastoviglie, computer (automa a programma)
Un sistema umano, al contrario, presenta un
carattere probabilistico, poiché luomo può
assolvere a funzioni impreviste, utilizzando il
ragionamento, la creatività e lintuito.
29
Problemi e algoritmi
  • ESERCITAZIONI
  • Testo dei problemi on-line http//utenti.multimani
    a.it/pbiasotti/Dispense_III/Esercizi_da_problema_a
    d_algoritmo.pdf
  • Introduzione alla logica delle proposizioni
    quesiti on-line http//professoressa.altervista.or
    g/Dispense_III/Cavalieri_furfanti.pdf
  • Un bambino ha costruito una torre di tre blocchi
    colorati così disposti dallalto in basso
    ROSSO-GIALLO-VERDE. IL bambino vuole capovolgerla
    in modo da avere VERDE-GIALLO-ROSSO. Può spostare
    solo un blocchetto alla volta. Individuare il
    numero minimo di stati per i quali si arriva alla
    configurazione desiderata

30
Problemi e algoritmi
  • Soluzione all ESERCITAZIONE (spazio degli stati)
  • Un bambino ha costruito sul tavolo una torre di
    tre blocchi colorati, così disposti dallalto in
    basso ROSSO-GIALLO-VERDE. Vuole capovolgerla, in
    modo da avere VERDE-GIALLO-ROSSO e si serve di
    una sola mano per spostare non più di un
    blocchetto alla volta sul tavolo.

Il percorso ottenuto componendo in successione le
4 transizioni elementari (nella figura) conduce
alla soluzione una volta arrivato alla
configurazione in cui tutti i blocchi poggiano
sul tavolo, può completare in sequenza la torre
seguendo diverse alternative (ne è illustrata una
delle possibili)
Per approfondire La Torre di Hanoi
31
3 Linguaggi
Il linguaggio è un sistema codificato di segni
che consente la comunicazione, intesa come
scambio di informazioni
32
3.1 Sintassi e semantica dei
linguaggi
Uninformazione può
  • Essere acquisita direttamente tramite rilevamento
    di un evento reale attraverso percezione
    sensoriale.
  • Essere trasmessa (messaggio) intenzionalmente
    da un emittente
  • ad un ricevente per mezzo di un canale

33
La comunicazione
  • Il messaggio presuppone lutilizzo di un codice
  • (sistema di regole) e di un linguaggio (sistema
    di segni) che devono essere conosciuti sia dalla
    sorgente emittente che dal destinatario,
    altrimenti la comunicazione non ha effetto

?
?
?
?
sorgente
destinatario
34
3.1 Sintassi e semantica dei linguaggi
La funzione del linguaggio è quella di sostituire
ad oggetti o concetti dei segni/simboli per
trasmettere un messaggio. Il segno è
lassociazione di qualcosa di materiale e
sensibile (immagine, suono) che chiamiamo
significante con qualcosa di puramente
concettuale che chiamiamo significato Il codice
ci consente linterpretazione dei segni
Segno significante significato Segno significante significato Segno significante significato
gatto Il gruppo dei suoni o di lettere g/a/t/t/o
Nella storia si sono usate diverse forme di
comunicazione
35
3.1 Sintassi e semantica dei linguaggi
ELEMENTI DI UN LINGUAGGIO
  • Alfabeto insieme finito e non vuoto di
    simboli convenzionali espressi con segni
    tipografici detti caratteri
  • Ortografia insieme finito e non vuoto di regole
    per la scrittura dei suoni
  • Sintassi insieme finito e non vuoto delle
    regole (di posizione) mediante le quali si
    formano le stringhe o le frasi di un linguaggio
  • Semantica insieme finito e non vuoto di
    significati da attribuire alle stringhe
  • Morfologia insieme finito e non vuoto di tutte le
    regole che servono per generare le forme di un
    linguaggio

36
3.1.a Linguaggi nella comunicazione uomo -
macchina
Luomo per comunicare all automa le strategie
risolutive di un problema ha bisogno di un
linguaggio formale che gli consenta di passare
dall algoritmo al programma, cioè ad una
sequenza di istruzioni in linguaggio
comprensibile al calcolatore mediante le quali si
può risolvere il problema.
37
3.2 Linguaggi e automi
Linguaggio macchina, linguaggio assemblativo
(Assembler). Vicino alla logica della macchina
Linguaggi non evoluti
Linguaggi non orientati alla macchina, ma alla
soluzione dei problemi. Vicino alla logica
delluomo
Linguaggi evoluti
38
3.2 Linguaggi e automi
Programmi general purpose
I principali software
Office Automation
Sistema operativo
  • Word processor
  • Foglio di calcolo
  • Sistemi di gestione base dati
  • Programmi per la realizzazione di
  • presentazioni multimediali
  • Programmi di grafica computerizzata
  • Editor di suoni
  • Editor di pagine web

Software di base, controlla tutte le risorse del
computer, necessita di un linguaggio più vicino
al linguaggio macchina (Assembler)
39
3.3 Linguaggi di programmazione
Problema
Risultati
Dalla formulazione del problema alla sua soluzione
Elaborazione
Algoritmo
Programma sorgente
Programma traduttore
Programma oggetto
40
3.3 Linguaggi di programmazione
Lalgoritmo risolutivo viene trasformato in un
programma attraverso un linguaggio di
programmazione che può contenere
Programma sorgente
Istruzioni di dichiarazione
Istruzioni di input e output
Istruzioni di controllo
Istruzioni di assegnazione
Descrivono dati e variabili utilizzati dal
programma, definendone tipo e struttura
Consentono di assegnare alla variabile un valore
dello stesso tipo della variabile
Sono istruzioni che richiedono salti di sequenza
nellesecuzione del programma
Richiedono lingresso o luscita di
uninformazione da una periferica alla memoria
centrale e viceversa
41
3.3 Linguaggi di programmazione
Fortran
Cobol
Algol
Basic
PHP
Principali linguaggi
Logo
PL1
Lisp
Java
Pascal
C /C
42
Esempio da problema a programma
  • Calcolo dellinteresse composto generalizzato
    dall'analisi all'implementazione, con richiami a
    concetti pregressi on-line http//professoressa.al
    tervista.org/Dispense_I/Analisi_Modellizzazione_Es
    _Interessi.pdf (linguaggio C/C)
  • Giocando con la torre di Hanoi on-line
    http//professoressa.altervista.org/Dispense_III/L
    a20torre20di20Hanoi_3D.pdf (linguaggio C/C o
    JavaScript)
Write a Comment
User Comments (0)
About PowerShow.com