LA PROGRAMMAZIONE: Algoritmi e programmi

Slides:



Advertisements
Presentazioni simili
Analisi – Progettazione - Programmazione
Advertisements

Linguaggi algoritmici
Gli algoritmi.
Algoritmi e Programmazione strutturata
1 Parte 2 Fondamenti di programmazione. 2 Definizione intuitiva di algoritmo Elenco finito di istruzioni che specificano una serie di operazioni, eseguendo.
Realizzazione software
Problemi, algoritmi e programmazione
ALGORITMI Dal problema al programma Definizione di algoritmo
GLI ALGORITMI Appunti preparati dalla prof.ssa Maria D’Angelo.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Istruzioni e algoritmi. Istruzioni Operative I passi elementari che compongono l’algoritmo sono le istruzioni. Distinguiamo: Istruzioni di input Istruzioni.
Qualche esercizio per fissare le idee. Esercizio 1. Scrivere un programma SommaApprossimata che chiede all’utente di inserire due numeri con la virgola,
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia
1 Elementi DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
1 Prof.ssa A.Comis. 2 Introduzione Definizione Classificazione Principi di equivalenza Regole per la risoluzione.
Elaborazione delle Immagini Operatori Puntuali Luigi Cinque
INFORMATICA ALGORITMI, PROGRAMMI, E LINGUAGGI DI PROGRAMMAZIONE.
© 2007 SEI-Società Editrice Internazionale, Apogeo
La rappresentazione degli algoritmi
CODING.
Pensiero Computazionale
Rappresentazione dell’ Informazione Informazione e Comunicazione
rielaborato da Atzeni-etal., Basi di dati, Capitolo 4
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Dal problema al processo risolutivo
CRITTOGRAFIA Per crittografia si intende la protezione delle informazioni mediante l'utilizzo di codici e cifre. La crittografia è un componente fondamentale.
Algoritmi e soluzioni di problemi
IL CONCETTO DI ALGORITMO
Dal problema al processo risolutivo
Unità di apprendimento 7
Commenti Ogni riga che comincia con il simbolo # non viene letta dall’interprete per cui rappresenta un modo per commentare il listato # Questo è un esempio.
Regione Lombardia Data Base Topografico
TIPI PRIMITIVI TIPI STRUTTURATI
Programmazione strutturata
Forme per rappresentare l’algoritmo:
Che cosa è un problema matematico
Classe III A A.s – 2012 Programma di Informatica
IL CONCETTO DI ALGORITMO
Statistica Scienza che studia i fenomeni collettivi.
Programmare.
Programmazione e Laboratorio di Programmazione
Dall’analisi del problema alla definizione dell’algoritmo
Secondo Programma in C.
Gli automi.
Programmazione e Laboratorio di Programmazione
Sistemi informativi statistici
Ricorsione 16/01/2019 package.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Lezione N° 6 L’organizzazione
Definizione di linguaggio di programmazione
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Lezione N° 6 L’organizzazione
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
Il Diagramma di Flusso Docente: Maria Savina Rossi Alunne:
APPUNTI SUL LINGUAGGIO C
Unità D2 Dal problema all’algoritmo
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
EQUAZIONI DI SECONDO GRADO
Informatica CdL Scienze e Tecniche Psicologiche a.a
Programmazione e Laboratorio di Programmazione
Array e Stringhe Linguaggio C.
Informatica CdL Scienze e Tecniche Psicologiche a.a
Unità D1 L’informatica e il problem solving
Lezione N° 6 L’organizzazione
La programmazione strutturata
Algoritmi.
ALGORITMO E’ una successione finita di passi che consente di risolvere tutti i problemi di una classe e di determinare il risultato. Caratteristiche: Finito.
Lezione N° 6 L’organizzazione
ALGORITMO E’ una successione finita di passi che consente di risolvere tutti i problemi di una classe e di determinare il risultato. Caratteristiche: Finito.
Le Equazioni di 1°grado Prof.ssa A.Comis.
Transcript della presentazione:

LA PROGRAMMAZIONE: Algoritmi e programmi

Obiettivo Imparare a PROGRAMMARE Imparare a costruire PROGRAMMI che permettano, tramite l’uso di computer, di risolvere problemi di diverso tipo.

Algoritmo Sequenza di passi che devono essere eseguiti secondo un ordine prefissato per raggiungere l’obiettivo desiderato Deve essere ben chiaro l’OBIETTIVO da raggiungere (DATI DI OUTPUT) e si devono conoscere i dati disponibili in partenza (DATI DI INPUT) Esempi : Telefonata Ricetta di cucina Indicazione di un percorso stradale Quando si identificano chiaramente i passi da eseguire per risolvere un problema si puo’ costruire l’ALGORITMO risolutivo.

ESEMPI Obiettivo : cucinare spaghetti al pomodoro Input : ingredienti Output : spaghetti al pomodoro Algoritmo: descrizione della preparazione Esecutore dell’Algoritmo : cuoco Obiettivo : calcolo area del quadrato attraverso un programma Dati di Input : lato del quadrato Dati di Output : area del quadrato Algoritmo : procedimento di calcolo: - richiedere all’utente la misura del lato - calcolare l’area ( = lato*lato) - comunicare il risultato Esecutore dell’Algoritmo : computer

Caratteristiche di un algoritmo Finito Deve essere composto da un numero finito di passi che devono essere compiuti un numero finito di volte. Deterministico A fronte degli stessi dati di input deve fornire gli stessi dati di output Non ambiguo I passi dell’algoritmo devono essere interpretabili in modo univoco dall’esecutore Generale Deve fornire la soluzione per tutti i problemi di una certa classe Un ALGORITMO e’ un insieme finito di passi che permette di risolvere tutti i problemi di una determinata classe

Metodologie per affrontare i problemi TOP-DOWN Il problema viene diviso in tanti sottoproblemi piu’ semplici, che avranno quindi minore complessita’  saranno piu’ facilmente risolvibili Si procede dal generale al particolare Esempio. Problema : Organizzare un pranzo. Sottoproblemi: - preparare Antipasti - preparare Primo Piatto - preparare Secondo Piatto - preparare Dessert

Metodologie per affrontare i problemi BOTTOM-UP Si risolvono prima i dettagli caratteristici del problema, che in un secondo momento verranno integrati per ottenere la soluzione del problema. Si procede dal particolare al generale Esempio Problema : Confezionare un maglione. Si preparano i vari “pezzi” (maniche, davanti, dietro), che poi verranno uniti.

Componenti di un algoritmo ALGORITMO = DATI + ISTRUZIONI Oggetti su cui operare Passi elementari che devono essere eseguiti

DATI

DATI Classificazioni possibili: Ad ogni dato viene associato un Nome (Identificatore) che permetta di identificarlo e che sia significativo Classificazioni possibili: in base all’uso (modo in cui interagiscono con il computer) in base al tipo (alle informazioni che rappresentano) in base alla possibilita’ di cambiare valore

DATI Classificazione in base all’interazione con il computer Dati di INPUT Forniti al computer dall’esterno Dati di OUTPUT Risultati comunicati all’esterno dal computer Dati INTERNI ( di LAVORO) Utilizzati nelle operazioni effettuate dall’algoritmo, ma non visibili all’utente

DATI Classificazione in base al TIPO Dati Numerici INTERI REALI (Numeri con virgola o interi molto grandi) Dati ALFANUMERICI Lettere dell’alfabeto, caratteri speciali

DATI Classificazione in base alla possibilita’ di cambiare valore Costanti Il valore del dato rimane immutato nel corso dell’elaborazione Variabili Il valore del dato puo’ cambiare nel corso dell’elaborazione.

Nome = significato (tipo) DATI VARIABILI Ogni dato variabile (chiamato semplicemente variabile), deve essere documentato, specificandone nome e tipo: Nome = significato (tipo) classificandolo come Dato di Input, Dato di Output o Variabile di Lavoro.

DATI Esempio Problema Calcolo area del cerchio di raggio R Dati di Input: R = raggio del cerchio (numerico reale) (dato variabile) Dati di Output: AREA = area del cerchio (numerico reale) (dato variabile Costanti: 3.14

Valore inserito dall’utente da tastiera DATI Algoritmo risolutivo. Richiedi raggio R all’utente AREA = R * R * 3.14 Comunica il valore di AREA all’utente R Valore inserito dall’utente da tastiera Area R * R *3.14

ISTRUZIONI

TIPI DI ISTRUZIONI Istruzione di LETTURA (di INPUT) Permette di attribuire un valore ad una variabile tramite digitazione su tastiera

Istruzione di SCRITTURA TIPI DI ISTRUZIONI Istruzione di SCRITTURA (di OUTPUT) Permette di visualizzare sul video, o stampante, il contenuto di una variabile o un messaggio.

TIPI DI ISTRUZIONI Istruzione di ASSEGNAZIONE Permette di attribuire (assegnare) un valore ad una variabile. Simbolo dell’istruzione:  oppure =

TIPI DI ISTRUZIONI Modalita’ di utilizzo istruzione di Assegnazione 1^ modo: Identificatore  Valore Es.: A  5 NomePersona  ‘Anna’ 2^ modo: Identificatore1  Identificatore2 Es.: A  B (dove A e B sono variabili) Il valore contenuto in B viene assegnato ad A Il contenuto di B non viene perso Il contenuto di A precedente viene perso 3^ modo: Identificatore  Espressione matematica Es.: A  ((K+3)/2) Viene calcolata l’espressione a destra ed il risultato viene assegnato ad A

TIPI DI ISTRUZIONI Osservazioni Variabili non inizializzate (alle quali non e’ stato assegnato un valore iniziale) con operazioni di lettura o assegnazione non hanno un valore definito. Una variabile puo’ apparire alla destra in un’istruzione di assegnazione, solo se prima e’ stata inizializzata. Es: TOTALE  0 leggi(PREZZO) TOTALE  TOTALE + PREZZO Operatori aritmetici utilizzabili in algoritmi: + , - , * , / (divisione reale), DIV (divisione intera), MOD (resto)

Modalita’ di rappresentazione degli algoritmi

Modalita’ di rappresentazione algoritmi Modello grafico DIAGRAMMA A BLOCCHI (FLOW CHART) Le operazioni sono rappresentate con simboli grafici ed il flusso delle operazioni viene indicato da frecce Modello descrittivo PSEUDOCODIFICA Le operazioni sono rappresentate con frasi convenzionali

Modalita’ di rappresentazione algoritmi Operazioni Diagramma Pseudocodifica Inizio algoritmo INIZIO Fine algoritmo FINE Operazione Var espressione Istruzione di Input Leggi(Variabile) o Ricevi(Variabile) Istruzione di output Scrivi(Variabile) Comunica(Variabile)

L’ALGORITMO - i simboli del flow chart

Modalita’ di rappresentazione algoritmi Diagramma a blocchi Pseudocodifica Inizio Inizio Leggi(L); A  L*L; Scrivi(‘Areaquadrato =‘, A) Fine. L A L*L ‘Area quadrato=’ A Fine

Metodologia per la soluzione di problemi

Metodologia per la soluzione di problemi Seguire le seguenti fasi: Analisi del problema Dati di Input Dati di Output 1a. Architettura di progetto scomposizione TOP-DOWN 1b. Analisi di dettaglio (se il problema e’ complesso)

Metodologia di lavoro per la soluzione di problemi 2. Stesura del procedimento risolutivo (con opportuna modalita’ di rappresentazione) 3. Codifica in linguaggio di programmazione (IMPLEMENTAZIONE)

Metodologia di lavoro per la soluzione di problemi Viene creato il programma sorgente che verra’ poi eseguito dall’elaboratore Il prodotto ottenuto dalle 3 fasi rappresenta la DOCUMENTAZIONE relativa alla soluzione proposta