ALGORITMI. I diagrammi a blocchi o diagrammi di flusso (flow charts) sono diagrammi a blocchi

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

Risoluzione di un problema

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Caratteristiche di un calcolatore elettronico

Introduzione agli Algoritmi

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Lab 04 Programmazione Strutturata"

Algoritmi. Informatica B. Daniele Loiacono

Algoritmi. Andrea Passerini Informatica. Algoritmi

Algoritmi e diagrammi di flusso versione biennio

Corso di Informatica di Base

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Teoria dell Informazione

Algoritmi. Informatica B. Daniele Loiacono

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Algoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile

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.)

Algoritmi e soluzione di problemi

Diagrammi a blocchi 1

Algoritmi e (cenni sul) calcolatore

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA

L uomo come esecutore di algoritmi

Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica

del Linguaggio C Istruzioni di iterazione

Analisi strutturata 1

Corso di Informatica

Pseudo codice. Pseudo codice, Paolo Bison, FI07, p.1 / Pseudo codice, Paolo Bison, FI07, p.3

Cicli. S i a i = a 1 + a 2 + a a n

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

A.S Classe III H Informatica. Programma didattico finale e indicazioni per il recupero estivo relativi all'insegnamento di Informatica

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

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

INFORMATICA. Strutture iterative

Algoritmi e diagrammi di flusso

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI

Computer. Capitolo 2. 05/04/2012 continuazione 1

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

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

Diagrammi a blocchi 1

LA METAFORA DELL UFFICIO

Flow-chart. Introduzione agli algoritmi e ai diagrammi a blocchi.

Programmazione Strutturata

APPUNTI DI INFORMATICA

Unità di apprendimento 6. Dal problema al programma

MODULO 07. La soluzione dei problemi mediante gli algoritmi

Introduzione. Informatica B. Daniele Loiacono

Fasi di creazione di un programma

Informatica/ Ing. Meccanica e Ing. Edile/ Prof. Verdicchio/ 16/07/2013 / Foglio delle domande / VERSIONE 1

Sviluppo di programmi

= < < < < < Matematica 1

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Rappresentazione con i diagrammi di flusso (Flow - chart)

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

Ing. Lorenzo Vismara

PROBLEMI ALGORITMI E PROGRAMMAZIONE

La Programmazione particolare insieme di azioni particolare tipologia di dati risolvere un problema

PROGRAMMAZIONE: La selezione

Il concetto di calcolatore e di algoritmo

Formalismi per la descrizione di algoritmi

Sviluppo di programmi

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica

Problemi, algoritmi, calcolatore

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI

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

PROGRAMMAZIONE: Le strutture di controllo

Cos è l informatica? Un esempio di algoritmo. Che cos è un algoritmo? Algoritmi e loro proprietà. non ambigue ed effettivamente calcolabili

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

1 Esercizi in pseudocodice

PROGRAMMAZIONE STRUTTURATA

COMANDI ITERATIVI. Ivan Lanese

Sviluppo di programmi

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

Sistemi di Elaborazione delle Informazioni

L ELABORATORE ELETTRONICO

Lezione 4: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive (2p) Venerdì 7 Ottobre 2009

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi seconde

Introduzione alla programmazione

Parte Seconda. Prova di selezione culturale

Fondamenti di Informatica A. A. 2018/19

Definizione. E un insieme ordinato di istruzioni che risolvono un problema. Da al- Khwarizmi: importante matematico Arabo nato nel 780 circa a Baghdad

Strutture di controllo

Algoritmi e loro proprietà. Proprietà formali degli Algoritmi Efficienza rispetto al tempo Efficienza rispetto allo spazio

LA METAFORA DELL UFFICIO

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

ALGORITMI E SOLUZIONI DI PROBLEMI

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

Strutture di controllo (v.anche cap. 8 del testo MATLAB per l ingegneria )

Come scrivere bene codice? (1 di 1)

Elementi di Informatica e Programmazione

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Lezione 5. La macchina universale

Esercizi. perimetro > X area > Y. dove al posto di X e Y vanno scritti il valori corrispondenti.

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

Efficienza: esempi. Nella lezione precedente. Fondamenti di Informatica. Ferdinando Cicalese. ! Qualche problema computazionale

Transcript:

ALGORITMI In informatica e matematica, il termine algoritmo indica un procedimento che risolve un determinato problema attraverso un numero finito di passi (cioè un numero limitato di operazioni). Un problema risolvibile mediante un algoritmo si dice computabile. Il termine "algoritmo" deriva dalla trascrizione latina del nome del matematico persiano Al - Khwarizmi, che è considerato uno dei primi autori ad aver fatto riferimento a questo concetto. Deve essere: Effettivo: cioè deve avere un punto di partenza e uno di fine, ed ogni operazione deve dare lo stesso risultato ogni volta che si hanno le stesse condizioni Definito: cioè che devono essere presi in considerazione tutti i casi che un problema può presentare Non ambiguo: Ogni passaggio deve essere interpretato da chiunque nello stesso modo Generale: cioè che deve poter essere utilizzato per tutti gli stessi tipi di problemi, quest'ultimo insieme si chiama dominio dell'algoritmo Finito: cioè si deve poter raggiungere il risultato con un numero limitato di operazioni II costo computazionale di una funzione/algoritmo/programma è un costo definito in termini di risorse di calcolo; le risorse di calcolo fondamentali sono due: quantità di tempo necessario alla computazione (tempo) quantità di memoria utilizzata (spazio) A che serve stabilire il costo computazionale di una funzione/programma/algoritmo? Serve a confrontare diverse funzioni/algoritmi/programmi che risolvono lo stesso problema, in modo da scegliere il più efficiente. DIAGRAMMI A BLOCCHI I diagrammi a blocchi o diagrammi di flusso (flow charts) sono diagrammi a blocchi ono strumenti molto utilizzati in informatica per una chiara e semplice esposizione in forma grafica degli algoritmi, sono uno strumento fondamentale per il programmatore (servono per scomporre in maniera sistematica il problema), danno una visione immediata d'insieme e facilitano la correttezza logica del problema; hanno anche una funzione comunicativa, infatti è molto più semplice capire un algoritmo attraverso uno schema a blocchi che leggerne una sua traduzione in un linguaggio di programmazione specifico; un diagramma di flusso deve avere i seguenti requisiti: deve esistere un solo blocco di inizio, deve esistere un solo blocco di fine, può avere solo un numero finito di blocchi di controllo, può avere solo un numero finito di blocchi di ingresso/ uscita e blocchi operativi, dall'inizio devo poter arrivare alla fine qualunque sia il percorso che seguo

Simboli e regole di costruzione blocco di inizio/fine (può avere solo una linea in uscita nel caso di blocco di inizio, può avere solo una linea in ingresso nel caso di blocco di fine, da ogni blocco iniziale si deve poter raggiungere attraverso un insieme non vuoto di blocchi il blocco di fine) blocco operativo aritmetico/logico (può avere solo una linea in ingresso e una sola linea in uscita) Chiamata a subroutine (sottoprogramma) usato per richiamare, senza riscriverlo tutte le volte, una parte del diagramma di flusso. Usato quando un insieme di blocchi si ripete più volte all interno del diagramma di flusso, o quando un insieme di blocchi è usato da più diagrammi di flusso nello stesso modo blocco di ingresso/uscita (può avere solo una linea in ingresso e una sola linea in uscita) Blocco di selezione/controllo/condizione (deve avere solo una linea di ingresso e due uscite, chiamate: SI/NO oppure VERO/FALSO oppure CONDIZIONE A/CONDIZIONE B Linee di flusso (una linea di flusso non si può diramare, più linee di flusso si possono collegare a uno stesso punto) Connessione a un punto qualsiasi del diagramma (dove confluiscono due o più flussi)

L algoritmo per il calcolo delle radici di secondo grado è: effettivo cioè ho sempre lo stesso risultato se inserisco gli stessi valori di a, b e c definito cioè vale per qualunque valore di Delta non ambiguo cioè il percorso tra inizio e fine è interpretato da tutti allo stesso modo generale cioè vale per qualunque valore di a, b e c finito ho in tutto 10 blocchi ALGORITMO DI EULERO

I CICLI (BLOCCHI DI ITERAZIONE STRUTTURATA) Sono combinazioni di blocchi elementari che si presentano sempre con la stessa struttura, nei quali ci sono alcuni blocchi vengono eseguiti più volte Si suddividono in: blocchi di iterazione definita: conosco a priori prima di entrare nel ciclo il numero di volte che verrà ripetuto il ciclo stesso blocchi di iterazione indefinita: non conosco a priori il numero di volte che verrà ripetuto il ciclo, tale numero dipende dal risultato della verifica eseguita nel blocco condizionale definito indefiniti FOR WHILE DO WHILE ciclo FOR la variabile N indica quante volte deve essere ripetuto il ciclo i (indice o contatore) serve a tenere il conto di quante volte è già stato ripetuto il ciclo, ha il valore iniziale uguale a 0 o 1, viene incrementato generalmente di 1 ciclo WHILE si verifica come prima cosa la condizione iniziale, se questa è falsa non si esegue mai il ciclo. se la condizione è inizialmente vera, il ciclo viene ripetuto un numero non definito di volte fintantoché la condizione rimane vera. ciclo DO - WHILE si esegue per prima cosa l'espressione (che viene quindi eseguita almeno una volta) poi si verifica la condizione, se la condizione è falsa si esce dal ciclo se la condizione è vera il ciclo viene ripetuto un numero non definito di volte fintantoché la condizione rimane vera.

algoritmo della somma dei primi N numeri naturali algoritmo di ordinamento crescente GLI PSEDUDOLINGUAGGI In informatica per pseudolinguaggio si intende un linguaggio di programmazione fìttizio, non direttamente eseguibile da un computer Lo pseudolinguaggio può essere utilizzato alternativamente al diagramma di flusso e non è soggetto a molte limitazioni intrinseche di quest'ultimo tipo di rappresentazione; non esiste uno pseudolinguaggio standard e convenzionalmente usato da tutti, ciascun programmatore può essere portato ad utilizzare una propria variante. Pseudolinguaggio dell algoritmo di Eulero Inizio - Leggi dalla tastiera e - Assegna ad A il valore di - Assegna a B il valore di (*) Se il valore di A è uguale al valore di B Assegna al M.C.D. il valore di B - Calcola il valore del m.c.m. come prodotto del valore di e diviso il valore del M.C.D. - Scrivi sul monitor il valore del M.C.D.e il valore del m.c.m. - FINE Altrimenti Se il valore di A non è uguale al valore di B - se il valore di A è più grande del valore di B - Allora scambia i valori di A e B - fai la differenza tra il valore di A e il valore di B - Vai alla riga (*)

Esercizi: 1) Determinare il massimo di tre numeri. 2) Determinare perimetro ed area di un triangolo scaleno (usando la formula di Erone). 3) Calcolare il perimetro e l area di un poligono regolare (conoscendo l apotema in funzione dei lati). 4) Calcolo del fattoriale di un numero ( 6! = 6 * 5 * 4 * 3 * 2 * 1). 5) Calcolare la media aritmetica di un insieme di numeri. 6) Calcolare la radice di un equazione di primo grado. 7) Calcolare le radici di un equazione di secondo grado. 8) Sul prezzo di un prodotto viene praticato lo sconto del 3% se costa meno di 1.000, e del 5% se ne costa di più. Inserito da tastiera il prezzo P, calcolare il prezzo da pagare secondo la regola sopra descritta. 9) Sul prezzo di un biglietto di un treno viene applicato un supplemento del 7% se il treno è di tipo "a", del 12% se è di tipo "b" e del 18% se è di tipo "c". Per gli altri treni non c'è supplemento. Calcolare il prezzo totale del biglietto, a seconda del tipo di treno e comunicare il tipo di treno con il prezzo calcolato. 10) Dati in input 6 valori dare in output separatamente la somma dei numeri positivi e la somma dei negativi. 11) Calcolare la somma dei primi numeri N naturali e pari. 12) Calcolare la somma dei primi numeri N naturali e multipli di 3. 13) Dato in input secondi dare in output i min, ore e sec. 14) Dato in input una parola dare in output il numero delle vocali. 15) Dato in input un valore decimale trasformarlo in binario. 16) Dato in input un numero intero scrivere tutti i divisori del numero e contarli. 17) Supponiamo di avere due bicchieri, denominati A e B, pieni rispettivamente uno di acqua e l'altro di vino, e di voler travasare A in B e viceversa. 18) Un pastore deve attraversare un fiume portando sull'altra riva un lupo e una capra affamati e una cassa di cavoli. Ha a disposizione una barca a remi con la quale può traghettare un solo oggetto o animale alla volta. Ma, attenzione! Non può lasciare da soli: il lupo e la capra perchè il lupo si mangia la capra; la capra ed i cavoli perché la capra si mangia i cavoli. 19) Un anno è bisestile se il suo numero è divisibile per 4, con l'eccezione che gli anni secolari (quelli divisibili per 100) che sono bisestili solo se divisibili per 400. Sono cioè bisestili tutti gli anni la cui numerazione termina con le due cifre 04, 08, 12... fino a 96; gli anni che terminano con 00 sono bisestili solo se l'anno è divisibile per 400, cioè il 1600, il 2000, il 2400 eccetera. 20) Calcolare la potenza di un numero procedendo per moltiplicazioni successive.