Rappresentazione degli algoritmi

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

I Linguaggi di programmazione
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità E1 Dallanalisi del problema alla definizione dellalgoritmo.
Analisi – Progettazione - Programmazione
Linguaggi algoritmici
Costruzione di un semplice programma che opererà su uno smartphone
I DATI LE ISTRUZIONI LE STRUTTURE FONDAMENTALI
ITIS LATTANZIO Unità Didattica Materia Informatica Funzioni in C++
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
Algoritmi e Programmazione
3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)
3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)
Fondamenti di Informatica
Sommario Gli algoritmi I linguaggi per la formalizzazione di algoritmi
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Informatica Problema Algoritmo Programma
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Definizione di Algoritmo
Introduzione alla programmazione ll
Introduzione alla programmazione lll
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
ALGORITMI E PROGRAMMAZIONE STRUTTURATA
Unità Didattica 1 Algoritmi
Unità Didattica 2 I Linguaggi di Programmazione
Strutture di controllo in C -- Flow Chart --
Fondamenti di Informatica Algoritmi
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Gli algoritmi.
Elementi di Informatica
Elementi di Informatica
Da Problema a Programmazione
ITIS LATTANZIO Unità Didattica Materia Informatica Funzioni in C++
Biologia Computazionale - Algoritmi
2000 Prentice Hall, Inc. All rights reserved. Capitolo 3 (Deitel) Lo sviluppo di programmi strutturati Indice degli argomenti Introduzione 3.2 -
Algoritmi e Programmazione strutturata
INFORMATICA MATTEO CRISTANI.
PROGRAMMAZIONE: linguaggi
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
Algoritmi e linguaggi di programmazione
BIOINFO3 - Lezione 15 ISTRUZIONI
Informatica e Algoritmi
COME RAGIONA UN COMPUTER
Linguaggi algoritmici
ORGANIZZAZIONE DI UN SISTEMA DI ELABORAZIONE
R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting.
Algoritmi.
Normativa di riferimento
Realizzazione software
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Diagrammi a blocchi.
Informatica e Informatica di Base
Problemi, algoritmi e programmazione
Il computer ragiona? Problemi e algoritmi. Paola Pianegonda2 Cos’è un problema?  Problema è qualsiasi situazione della quale non conosciamo la soluzione.
Programmazione dei Calcolatori Elettronici
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.
Unità di apprendimento 6 Dal problema al programma.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
Istruzioni e algoritmi. Istruzioni Operative I passi elementari che compongono l’algoritmo sono le istruzioni. Distinguiamo: Istruzioni di input Istruzioni.
Unità di apprendimento 6
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
IL CONCETTO DI ALGORITMO
Forme per rappresentare l’algoritmo:
Transcript della presentazione:

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Problema Algoritmo Definizione del procedimento per arrivare alla soluzione Algoritmo descritto con una qualche notazione Rappresentazione dell’algoritmo in una forma comprensibile per l’esecutore Programma Traduzione nel linguaggio di programmazione prescelto

Linguaggi Il linguaggio (naturale) è la capacità dell'uomo di comunicare per mezzo di un codice complesso, cioè una lingua. Il linguaggio formale in informatica, matematica, ingegneria e discipline affini è una notazione o un formalismo con sintassi e semantica definite in modo preciso (spesso matematico/formale) Il linguaggio di programmazione è un linguaggio formale, che permette l'esecuzione automatica

Classi di Istruzioni Nella rappresentazione di un algoritmo si possono riconoscere tre classi di istruzioni: istruzioni di ingresso e uscita (dati e risultati del problema)‏ istruzioni di assegnamento (P  A con il significato assegna al nome logico P il valore di A)‏ istruzioni di controllo: sono quelle istruzioni che modificano la sequenza dell’esecuzione alterazione incondizionata alterazione condizionata

Esempio Calcolare il prodotto di due numeri interi positivi A e B supponendo che l’esecutore conosca solo le operazioni di somma, sottrazione e confronto fra numeri. N.istruzione Istruzione 1 leggi A e B 2 P  A 3 se B è uguale 1 andare all’istruzione 7 4 P  P+ A 5 B  B - 1 6 andare alla 3 7 scrivi P 8 fine

L’algoritmo può essere testato utilizzando una Tabella di Traccia. Esempio: l’algoritmo precedente eseguito per i valori di ingresso 7 e 4 Tabella di Traccia istruzione A B P inizio 7 Leggi A e B 4 P  A 7 B è uguale a 1 ? P  P + A 14 B  B - 1 3 B è uguale a 1 ? P  P + A 21 B  B - 1 2 B è uguale a 1 ? P  P + A 28 B  B - 1 1 B è uguale a 1 ? Scrivi P

Diagrammi a blocchi P A true false condizione Uno dei primi e più diffusi formalismi per la descrizione degli algoritmi, che si avvale di una dislocazione di blocchi contenenti le istruzioni e connessi mediante frecce, è detto Diagrammi a Blocchi. Le forme dei blocchi sono: Rettangolo: indica una operazione come ad esempio un assegnamento P A Rombo: indica una diramazione, cioè la verifica di una condizione e la contrassegnazione degli archi uscenti in conformità con il risultato della verifica true false condizione

Parallelogramma: indica una operazione di ingresso o uscita Leggi A Ellissi: indica l’inizio o la fine dell’algoritmo inizio fine

Problemi 1. Dati due numeri interi, stampare prima il più grande e poi il più piccolo 2. Dati due numeri interi positivi, effettuare il loro prodotto con il metodo delle addizioni successive. 3. Dati due numeri interi positivi diversi da zero, calcolare quoziente e resto con il metodo delle sottrazioni successive 4. Sommare i primi N interi positivi 5. Leggere N numeri e scrivere la loro somma 6. Sommare una sequenza di N numeri interi positivi terminata dallo 0 (zero)

Dati due numeri interi, stampare prima il più grande e poi il più piccolo inizio Leggi A e B A > B T F Scrivi B Scrivi A Scrivi A Scrivi B fine fine

Dati due numeri interi positivi, effettuare il loro prodotto con il metodo delle addizioni successive. inizio Leggi A e B P A True B = 1 P  P + A Scrivi P B  B -1 fine

Dati due numeri interi positivi diversi da zero, calcolare quoziente e resto con il metodo delle sottrazioni successive inizio Leggi A e B R A Q  0 False R >= B R  R -B Scrivi Q,R Q  Q + 1 fine

inizio Sommare i primi N interi positivi Leggi N I  1 S  0 S  S + I I  I + 1 False I > N Scrivi S fine

Leggere N numeri e scrivere la loro somma. inizio Leggi N I  0 S  0 Leggi num S  S + num I  I + 1 False I = N Scrivi S fine

Calcolare il quadrato di un numero N intero positivo utilizzando la somma dei primi N numeri dispari inizio Leggi N I = N Scrivi Q fine Q  0 False Disp  Disp + 2 I  0 Disp  1 Q  Q +Disp I  I + 1

Limiti dei diagrammi a blocchi I DaB sono poco leggibili, non si riesce a seguire l’algoritmo soprattutto quando superano le dimensioni di un semplice esercizio didattico. La lettura andrebbe fatta un po’ dall’alto un po’ dal basso senza un ordine preciso; I DaB sono facilmente esposti ad errori logici, bastano pochi accavallamenti di cicli per perdere il filo del controllo. Ciò nasce dalle correzioni consentite da un indisciplinato uso delle frecce che causa un proliferare di errori logici che si accentua con la complessità del problema e l’inesperienza del risolutore Scarsa praticità dovuta alla natura grafica bidimensionale difficoltà di riconoscimento della struttura di controllo

Regole di Scrittura di un DaB L’idea base è che un algoritmo deve essere letto dall’alto al basso secondo un ordine sequenziale di esecuzione Ogni blocco deve avere un unico punto di ingresso ed un unico punto di uscita Ciò non significa che non possono esistere dei cicli o dei test, ma che questi devono essere strutturati in modo da poter essere considerati come un unico blocco operativo Si possono distinguere blocchi semplici e blocchi composti