Definizione di algoritmo

Documenti analoghi
Algoritmi e soluzione di problemi

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Strutture di Controllo

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Come ragiona il computer. Problemi e algoritmi

Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Strutture dati e loro organizzazione. Gabriella Trucco

Rappresentazione con i diagrammi di flusso (Flow - chart)

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

UD 3.2b: Programmazione in Pascal (1)

Algoritmi e diagrammi di flusso

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Modulo 1 Concetti di base della Tecnologia dell Informazione

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

VBA Principali Comandi

Corso di Informatica di Base

Algoritmi. Pagina 1 di 5

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Sviluppo di programmi

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI

VISUAL BASIC FOR APPLICATION

Dalla prima lezione. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI 28/02/2016. Concetto di algoritmo

Diagrammi di flusso. Un metodo per rappresentare graficamente gli algoritmi. sotto programma. Input/ Output. Start. predicato Elaborazione Stop

PROGRAMMAZIONE: Le strutture di controllo

Dall algoritmo al programma

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Sistemi Web per il turismo - lezione 3 -

Programmazione in Java (I modulo)

DESCRIZIONI RIGOROSE c7

= < < < < < Matematica 1

Diagrammi a blocchi 1

Caratteristiche di un linguaggio ad alto livello

LA METAFORA DELL UFFICIO

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

1 Esercizi in pseudocodice

Indice. Prefazione. 3 Oggetti e Java 53

PROGRAMMAZIONE STRUTTURATA

Algoritmi e Programmi

Diagrammi a blocchi 1

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

MODULO 4: LE STRUTTURE ITERATIVE: FOR, WHILE E DO LOOP UNTIL

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

DAL DIAGRAMMA AL CODICE

LA METAFORA DELL UFFICIO

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Dati aggregati. Violetta Lonati

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Il concetto di calcolatore e di algoritmo

DEFINIZIONI SMART E RELATIVE ESERCITAZIONI

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Introduzione alla programmazione Esercizi risolti

Costrutti condizionali e iterativi

Lezione 5. La macchina universale

28/02/2014 Copyright V. Moriggia

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010

Esercitazione 3. Espressioni booleane I comandi if-else e while

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione alla programmazione

2. Algoritmi e Programmi

Esempio di Patto Formativo per la classe terza

Variabili e Istruzioni

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010

Concetti Introduttivi. Il Computer

Laboratorio di Programmazione

VARIABILI E COSTANTI

Dispensa di Informatica II.1

La ricerca dicotomica

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Capitolo 3 L elaborazione e la strutturazione dell informazione

Algoritmi e basi del C Struttura di un programma

Formalismi per la descrizione di algoritmi

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Matlab : le basi. Vediamo ora un esercizio di calcolo: Il volume di una sfera è dato da V=4*π*r 3 /3 dove r è il raggio.

PROGRAMMA EFFETTIVAMENTE SVOLTO

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Algoritmi e dintorni: La radice quadrata Prof. Ettore Limoli. Formule iterative

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Le strutture di controllo in C++

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Linguaggi di programmazione

Algoritmo per l ordinamento di un array

Cosa si intende con stato

ALGORITMI. Obiettivo: risolvere problemi mediante l uso di un elaboratore elettronico. Elaboratore elettronico

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Programmazione strutturata

Transcript:

L algoritmo Il termine algoritmo deriva da AL-KWHARIZMI, matematico arabo vissuto nell VIII secolo d.c. considerato il padre dell algebra. In realtà i primi algoritmi risalgono a 4000 anni fa e sono descritti nelle prime tavolette dell antica Mesopotamia e riguardano operazioni di misurazione della superficie quadrata. Il termine algoritmo è tutt ora utilizzato come sinonimo di: Procedura effettiva; Procedimento di calcolo; Metodo di risoluzione di un problema Insieme di regole per eseguire una determinata operazione

Definizione di algoritmo E un insieme di istruzioni elementari che consentono di risolvere il problema trasformando i dati iniziali del problema stesso nel risultato, cioè nell insieme dei dati finali che rappresentano la soluzione CARATTERISTICHE: 1. FINITO: l algoritmo deve essere composto da un numero finito di passi elementari che vengono eseguiti un numero finito di volte; 2. DETERMINISTICO: deve portare sempre allo stesso risultato; 3. REALIZZABILE: le istruzioni si devono poter effettuare; 4. GENERALE: deve risolvere una famiglia di problemi: 5. NON AMBIGUO: i passi che compongono l algoritmo devono essere interpretabili in modo univoco

Componenti di un algoritmo Dati iniziali e finali: sono gli elementi (iniziali o in ingresso) che vengono elaborati dall algoritmo e i risultati prodotti dall algoritmo (finali o in uscita) Istruzioni: sono i passi elementari da eseguire Dati di input Algoritmo Dati di output Ad ogni dato è associato un nome che lo identifica in modo univoco come, per esempio, area, lato, nome, ed è sempre buona norma dare ai dati nomi significativi che permettano di comprenderne il significato.

I dati e la loro classificazione Ci sono diversi modi di classificare i dati: In base alla modalità di interazione con l elaboratore; A seconda degli oggetti che rappresentano; In base alla possibilità di cambiare il valore del dato durante l esecuzione dell algoritmo

I dati e la loro classificazione Modalità di interazione con l elaboratore Input: dati forniti dall esterno e noti al momento dell esecuzione; Output: dati calcolati dall elaboratore e comunicati all esterno Interni o di lavoro: utlizzati dall algoritmo, trasparenti all utente e non vengono comunicati in output.

I dati e la loro classificazione A seconda degli oggetti che rappresentano possono essere di tre tipi; Numerici (interi o reali): contengono numeri, possono essere utilizzati per fare le operazioni aritmetiche; Alfanumerici: detti anche stringhe, contengono caratteri alfabetici, speciali e cifre non utilizzabili per le operazioni aritmetiche. Es: numero dell autobus, numero di telefono, p.iva, ecc Logici e booleani: possono valere VERO o FALSO e sono utlizzati quando si vuole indicare la possibilità di scelta tra due opzioni.

I dati e la loro classificazione In base alla possibilità di cambiare il valore del dato durante l esecuzione dell algoritmo si classificano come: Costanti: il valore del dato è immutato nel tempo. Variabili: il valore del dato può cambiare. Es. Calcolo dell area di un cerchio di cui si conosce il raggio. Area = raggio * raggio * π VARIABILE DI INPUT VARIABILE DI OUTPUT COSTANTE Fisicamente le variabili risiedono in memoria centrale: ad ogni variabile sono assegnate celle contigue in grado di memorizzare il valore.

Le istruzioni Sono i passi elementari che compongono l algoritmo e permettono di dare comandi all esecutore (computer) Istruzione di lettura (leggi) permette di assegnare ad una variabile un valore tramite la sua digitazione sulla tastiera del computer Istruzione di scrittura (scrivi) permette di visualizzare a video un messaggio o il valore della variabile Istruzione di assegnazione (=) permette di assegnare un valore ad una variabile. Tutte le volte che viene scritta un operazione di assegnazione è necessario assicurarsi che le variabili siano state inizializzate con un valore (non necessariamente lo zero)

Esempi di assegnazione A = 10; nome = Maria. Alla variabile viene assegnato un valore determinato (costante) A = B. Se B ha valore 5 anche A avrà lo stesso valore A = ( k + 3 ) / 2. Alla variabile A è assegnato il risultato dell espressione.

Rappresentazione degli algoritmi. Un modo semplice e intuitivo per rappresentare gli algoritmi potrebbe essere quello di numerare i passi, ma non è un metodo universale. Il metodo più diffuso è quello di assegnare ad ogni simbolo un preciso tipo di operazione Flow-chart o diagramma di flusso. INIZIO / FINE OPERAZIONE DI ASSEGNAZIONE LETTURA / SCRITTURA

Verifica degli algoritmi Dopo aver definito la sequenza di istruzioni necessarie per risolvere il problema dato, non abbiamo nessuno strumento che ci assicuri che la soluzione adottata sia corretta almeno fino a quando non saremo in grado di fare eseguire il programma dal computer. Per valutare la validità dell algoritmo è utile la sua simulazione o prova logica che si esegue seguendo passo passo l algoritmo, proprio come si comporterà il computer dovendo eseguire il programma.

Programmazione strutturata Gli schemi o strutture presenti in un algoritmo sono: struttura di sequenza struttura di selezione struttura di iterazione Quando nella programmazione si fa uso di queste strutture, la programmazione si dice strutturata. Le tecniche di questa programmazione nascono a metà degli anni sessanta, quando al crescere della attività di progettazione del software, si sentì la necessità di fornire regole nella progettazione in modo che i lavori prodotti fossero non solo più leggibili ma anche più manutenibili (cioè modificabili nel tempo). Il teorema di Böhm-Jacopini afferma: qualsiasi algoritmo può essere definito usando esclusivamente le strutture di sequenza, selezione e iterazione

Struttura sequenziale e di selezione STRUTTURA SEQUENZIALE: le operazioni descritte vanno eseguite una dopo l altra, secondo l ordine con cui son definite. STRUTTURA DI SELEZIONE: permette di impostare percorsi diversi in base a condizioni che possono essere o meno verificate nel corso dell esecuzione stessa. La condizione dovrà essere scritta secondo regole precise: saranno confrontate due espressioni tramite un operatore logico ( = > < <> >= <=).

Tipi di selezione Semplice a una via: se la condizione è vera allora Esercizio: dati in input il nome e l età di una persona stampa il nome e la scritta MAGGIORENNE se la persona è maggiorenne. Semplice a due vie : se la condizione è vera allora altrimenti.. Esercizio: dato in input un numero calcola il cubo se è maggiore di zero, il quadrato in caso contrario. In cascata: due o più condizioni. Esercizio: dato in input il nome e il prezzo di un prodotto, calcola e stampa il prezzo da pagare sapendo che se il prezzo è superiore a 3000 euro applichi il 6% di sconto e, inoltre, se il pagamento avviene in contanti, applica un ulteriore 2% di sconto. Visualizzare il prezzo aggiornato.

Tipi di selezione Annidata: la seconda condizione è presa in considerazione solo se la prima è vera Esercizio:dati due numeri se sono entrambi positivi farne la somma, altrimenti il prodotto. Composta: due condizioni con operatore AND. Esercizio: di una persona vengono forniti il nome e la data di nascita: stampa un messaggio di buon compleanno se compie gli anni nel giorno corrente

I dati in VB.NET Variabili: per definire le variabili è necessario usare la parola chiave DIM seguita dal nome e dal tipo. Il nome serve per poterla richiamare all interno del programma, il tipo indica il tipo di dato che potrà contenere. Ecco alcuni esempi: Dim I as integer Dim area as single Dim distanza as double Dim sesso as char Dim nome as string Dim risposta as boolean Costanti: vengono dichiarate facendo precedere la parola CONST e assegnando subito un valore. Const intestazione= Mio programma Const pigreco= 3.14 Const iva = 21

ISTRUZIONI DI INPUT/OUTPUT Vengono gestite tramite gli oggetti disponibili nel linguaggio: i più usati sono caselle di testo da inserire nel form e finestre di dialogo. GESTIONE DELL INPUT Casella di testo (textbox): la proprietà text rappresenta il valore contenuto nella casella. E di tipo string per cui se si deve effettuare la lettura di un numero lo si deve convertire da stringa a numerico con la funzione VAL. Es. nome=txtcasella.text numero = val(txtcasella.text) Inputbox (finestra di dialogo) consiste in una finestra con all interno una textbox e un messaggio di testo. Es. numero = val(inputbox( dammi il numero ))

ISTRUZIONI DI INPUT/OUTPUT GESTIONE DELL OUTPUT Etichetta (label) Es. label.text = nome Casella di testo (textbox) Es. casella.text = nome Msgbox (finestra di dialogo) può contenere il messaggio da visualizzare e concatenare il valore di una variabile da visualizzare o un altro messaggio. Es. msgbox ( il nome è: & nome)

Assegnazione in VB.NET Sono contrassegnate dal simbolo =. Var1 = costante Var1 = var2 Var1 = var1 + var2 Var1 = espressione Per evitare problemi è necessario che ciò che compare sulla destra dell = sia dello stesso tipo di ciò che compare a sinistra. Nelle istruzioni di assegnazione possono comparire gli operatori aritmetici per eseguire dei calcoli. (+, -, *, /, mod). Un particolare tipo di assegnazione in VisualBasic è la concatenazione di stringhe con &

Esercizi 1. Data la base e l altezza di un rettangolo, calcolare l area e il perimetro 2. Dato il nome e l anno di nascita di una persona, visualizzare l età. 3. Scrivere un programma che calcoli e visualizzi l ammontare della bolletta della luce di un utente, ricevendo in input il nome dell utente, il numero di Kwh della lettura precedente e il numero di kwh della lettura attuale. L ammontare della bolletta è dato dalla quota fissa, che deve esser fornita in input e dall importo relativo al consumo, considerando costante il costo per kwh ( euro 0,07 per kwh)

Strutture iterative La struttura iterativa (di ripetizione) consente di ripetere più volte la stessa istruzione o blocco di istruzioni finchè si verifica una determinata condizione. Viene chiamata anche struttura ciclica. Esistono due tipi di strutture iterative: Con il controllo in testa (precondizionale) Con il controllo in coda (postcondizionale)

Struttura iterativa precondizionale Struttura iterativa con controllo in testa (precondizionale). L iterazione potrebbe non essere mai eseguita e ciò accade quando la condizione di ciclo risulta falsa in partenza: Do While condizione Istruzione Loop è una istruzione o un blocco di istruzioni e viene eseguita fintanto che la condizione risulta vera

Struttura iterativa postcondizionale Struttura iterativa con controllo in coda (postcondizionale). L iterazione viene eseguita almeno una volta. Do Istruzione1 vengono eseguite in sequenza fintanto Istruzione2 che la condizione risulta falsa Istruzione N Loop until condizione

Il concetto di accumulatore e contatore Contatore è la variabile che si incrementa o decrementa all interno di un ciclo per calcolare il numero di volte che viene ripetuto un blocco di istruzioni. Accumulatore è la variabile usata per totalizzare un certo valore all interno di un ciclo. Esempio: media di N numeri.

Esercizi con strutture iterative 1. Scrivere un programma che visualizzi la tabellina del 2, a partire dal numero 2 e fino al numero 20. 2. Scrivere un programma che visualizza la successione dei numeri interi a partire da 1, finchè non rispondi negativamente alla domanda vuoi continuare? 3. Calcola la media dei voti di uno studente 4. Calcola quanto spendi in un negozio acquistando un certo numero di prodotti. Conosci il numero di prodotti che hai acquistato e, per ogni prodotto, inserisci il costo 5. Dati in input N numeri (N > 0), segnalare quanti sono i numeri positivi e quanti i numeri negativi. Visualizzare inoltre la somma dei positivi e dei negativi

Il record Ricordate che cos è un vettore? Un vettore è una variabile strutturata, formata da più elementi tutti dello stesso tipo. Contiene quindi dati omogenei. A volte c è la necessità di rappresentare dati di tipo diverso. Esempio: per rappresentare i dati di una persona è necessario avere a disposizione una variabile nome, (stringa) una variabile indirizzo,(stringa) una variabile età, (intero)tutte viste come un unica entità PERSONA. Il record è una variabile strutturata composta da elementi non omogenei, detti campi. Esempio PERSONA è un record composto dai campi nome, indirizzo, età.

La tabella E un vettore nel quale gli elementi sono record contenenti dati non omogenei tra di loro. Esempio: il listino prezzi di un bar è costituito da tanti elementi (uno per ogni prodotto) ciascuno dei quali è suddiviso in descrizione e prezzo. LISTINO indice 1 2 3 descrizione Caffè Cappuccino Thè prezzo 1,00 1,20 1,50 Per accedere ad un campo è necessario definire l indice della tabella (i) e il nome dl campo di interesse, per esempio listino(i).prezzo.

Record e tabelle in VisualBasic Public Structure PERSONA Dim nome as String Dim indirizzo as String Dim eta as integer End Structure La dichiarazione di un tipo record definisce la struttura dei dati ma non contiene dati. Occorre quindi definire una variabile di tipo PERSONA in questo modo Dim Pers as PERSONA Per assegnare un valore ad un campo di Pers si scrive: Pers.nome= Rossi. Per eseguire operazioni su più campi del record si scrive: Pers.nome=txtnome.text Pers.indirizzo=txtinidirizzo.text Pers.eta=txteta.text With Pers.nome=txtnome.text.indirizzo=txtindirizzo.text.eta=txteta.text.End With

Record e tabelle in VisualBasic Quando è necessario memorizzare queste informazioni per diverse persone si può dichiarare un array di record, cioè una tabella: Dim Agenda(19) as PERSONA Se l indice della tabella è I, ricordando che l indice della prima componente è zero, i riferimenti ai campi si scrivono: Agenda(i).nome Agenda(i).indirizzo Agenda(i).età Oppure: With Agenda(i) End With.nome =txtnome.text.indirizzo=txtindirizzo.text.eta=txteta.text