ALGORITMI 2 FINALITÁ
|
|
|
- Giulio Di Lorenzo
- 9 anni fa
- Visualizzazioni
Transcript
1 INFORMATICA MODULO 9 Algoritmi e A cura di Mimmo Corrado Maggio 2012
2 ALGORITMI 2 FINALITÁ Il Modulo Algoritmi e linguaggio Java introduce lo studente nel mondo della programmazione nel linguaggio Java.
3 ALGORITMI 3 1. FLOW-CHART E PSEUDOLINGUAGGIO 1.1 Definire il termine algoritmo Il termine algoritmo deriva dal nome del matematico arabo Al-Khwarizmi, vissuto nell 800 d.c., ritenuto l ideatore del procedimento che consente di effettuare il calcolo della moltiplicazione tra due numeri mediante l incolonnamento delle cifre (quella che ancora oggi usiamo). Nel senso più ampio della parola, un "algoritmo" è una sequenza finita di operazioni, come ad esempio una ricetta di cucina, o le istruzioni di funzionamento di una lavatrice. In informatica, con il termine algoritmo si intende: un procedimento (sequenza finita di istruzioni elementari) per la risoluzione di un problema, rappresentato in un linguaggio comprensibile all uomo e adatto ad essere tradotto in un programma eseguibile da un computer. Un algoritmo deve: essere finito: la sequenza di istruzioni deve essere finita e portare ad un risultato avere un punto di Inizio, dove si avvia l esecuzione delle azioni, e un punto di Fine, dove si interrompe l esecuzione essere eseguibile: le istruzioni devono poter essere eseguite materialmente dall esecutore essere non ambiguo: le istruzioni devono essere espresse in modo tale da essere interpretate da tutti allo stesso modo essere generale: deve essere valido non solo per un particolare problema, ma per una classe di problemi essere deterministico: partendo dagli stessi dati iniziali deve portare sempre allo stesso risultato finale indipendentemente dall esecutore essere completo: deve contemplare tutti i casi che si possono verificare durante l esecuzione 1.2 Descrivere in forma algoritmica la procedura risolutiva di semplici problemi Come accennato precedentemente, gli algoritmi li incontriamo e li eseguiamo quotidianamente: nella preparazione di un uovo al tegamino nella messa in moto dell auto nel calcolo dell area del rettangolo nel calcolo dell M.C.D. fra due numeri naturali nel trasporto del lupo, della pecora e del cavolo da una sponda all altra di un fiume ecc Ad esempio l algoritmo risolutivo dell ultimo problema, ricordando che il lupo non mangia il cavolo, è il seguente: 1. Inizio 2. traghettare la pecora sulla sponda B, lasciando assieme il lupo ed il cavolo 3. ritornare con la barca vuota sulla sponda A, lasciando la pecora da sola sulla sponda B 4. traghettare il cavolo sulla sponda B, lasciando il lupo da solo sulla sponda A 5. riportare la pecora sulla sponda A, lasciando il cavolo da solo sulla sponda B 6. traghettare il lupo sulla sponda B, lasciando da sola la pecora sulla sponda A 7. ritornare con la barca vuota sulla sponda A 8. traghettare la pecora sulla sponda B 9. Fine Al-Khwarizmi
4 ALGORITMI Rappresentare algoritmi mediante diagrammi Un modo chiaro per descrivere un algoritmo è rappresentato dai diagrammi di flusso (flow chart o diagrammi a blocchi). Leggi un numero N I diagrammi di flusso sono grafici creati utilizzando una successione di figure (ognuna delle quali identifica una particolare azione) che rappresentano un ragionamento logico di immediata comprensione. Calcola la radice quadrata di N Falso N < 0 ero Scrivi: La radice quadrata di N non esiste Scrivi il risultato della radice quadrata di N I simboli utilizzati in un diagramma di flusso sono i seguenti: Oggetto grafico Denominazione Significato Punto di partenza Rappresenta un azione che avvia il processo Punto di fine Rappresenta un azione che conclude il processo Leggi Leggi Rappresenta un azione di ingresso dati Scrivi Scrivi Rappresenta un azione di uscita dei risultati = h Elaborazione Rappresenta il comando o calcolo da eseguire Test ero Falso Test Rappresenta la scelta fra due possibili percorsi Linea di flusso Connessione Indica la direzione del percorso del flusso Rappresenta il punto d inserimento nel grafico (generalmente contiene una lettera o un numero d ordine)
5 ALGORITMI Scrivere un semplice programma con l'uso del pseudolinguaggio Un altro modo per rappresentare gli algoritmi consiste nell'uso di uno pseudolinguaggio. Questo tipo di linguaggio descrive le istruzioni con frasi rigorose anziché con i simboli grafici: si utilizzano parole chiave, operatori e nomi di variabili. Tuttavia, questo tipo di linguaggio non è direttamente comprensibile dai programmi compilatori e interpreti e dovrà quindi essere tradotto in linguaggio di alto livello. Non esiste un unico pseudo linguaggio. Analisti e programmatori di una azienda utilizzano uno pseudo linguaggio diverso da quello usato dai colleghi di un'altra. Esempio Pseudolinguaggio che traduce l algoritmo per il calcolo dell area di un rettangolo PROGRAMMA Area del Rettangolo LEGGI (base) LEGGI (altezza) AREA = base altezza SCRII (area)
6 ALGORITMI PROGRAMMAZIONE STRUTTURATA 2.1 La programmazione strutturata La programmazione strutturata è un paradigma (metodologia) di programmazione emerso nella seconda metà degli anni '60, che ha introdotto i concetti fondamentali che sono alla base di tutti gli altri paradigmi successivi, compresi gli ultimi linguaggi orientati agli oggetti. Un paradigma di programmazione è uno stile fondamentale di programmazione, ovvero un insieme di strumenti concettuali forniti da un linguaggio di programmazione per la stesura dei programmi. Esso è nato dalla necessità di portare ordine e criteri di lavoro più efficienti nella produzione dei programmi. Occorreva trovare una metodologia alternativa alla programmazione basata sul salto incondizionato (o goto) dei primi linguaggi di programmazione, che rendeva il codice scritto praticamente incomprensibile dallo stesso autore, tanto da essere chiamato spaghetti code, per la sua natura ingarbugliata. La programmazione strutturata è una tecnica di programmazione che limita l'utilizzo delle sole tre strutture fondamentali: Struttura di sequenza Struttura di selezione (o alternativa) Struttura di iterazione (o ciclo, ripetizione). Con questa tipologia di programmazione, la descrizione degli algoritmi viene effettuata in modo chiaro, facilmente leggibile e comprensibile: tale codice può essere agevolmente compreso e modificato in un secondo tempo anche da un eventuale programmatore che non sia il suo creatore. I linguaggi di programmazione strutturati iniziarono a emergere nei primi anni 70, facendo tesoro delle idee dei due matematici italiani Corrado Bohm e Giuseppe Jacopini che per primi sottolinearono, in un teorema, come le tre strutture fondamentali offrivano un insieme di strutture di controllo completo, che garantivano la possibilità di descrivere tutti gli algoritmi. Teorema di Jacopini-Bohm (1966) Un qualsiasi algoritmo può essere espresso utilizzando esclusivamente le tre strutture di controllo: sequenza, selezione e iterazione. Fra i linguaggi tipici del paradigma strutturato si possono citare: il linguaggio Pascal, elaborato nel 1968 dal professor Wirth del Politecnico di Zurigo, che è tutt'oggi il linguaggio più diffuso e utilizzato per affrontare lo studio della programmazione il linguaggio C, messo a punto da Dennis Ritchie per implementare i primi sistemi operativi negli anni '70, che è il linguaggio di riferimento sia per i programmatori "più esperti" sia per i moderni linguaggi di programmazione dell'ambiente Web (C++, Java, PHP ecc. usano la stessa sintassi propria del linguaggio C). il Cobol l algol
7 ALGORITMI La struttura di sequenza La struttura di sequenza è l elenco ordinato delle istruzioni da eseguire. In un ogni algoritmo, in quanto tale, non manca mai la struttura di sequenza. Flow-chart Struttura di sequenza Pseudolinguaggio Istruzione 1 Istruzione 2 Istruzione 3 Istruzione 4 Istruzione 1 Istruzione 2 Istruzione 3 Istruzione 4 Esempio Struttura di sequenza Dati la misura della base b e dell altezza h di un rettangolo, calcola l area del rettangolo S. Area del rettangolo Flow-chart Pseudolinguaggio Trace table (Input: b=3 ; h=2) n Istruzione n b h S Leggi la base b 2 3 Leggi 3 Leggi l altezza h Assegna a S il valore b h = 6 5 Scrivi S 5 6 Leggi h 6 6 = h Scrivi
8 ALGORITMI 8 import system.io; class rettangolo public static void main(string[] args) int base, altezza, area; System.out.print("Base = "); base=io.in.readint(); System.out.print ("Altezza = "); altezza = IO.in.readInt(); area = base * altezza; System.out.println("Area = "+area); 2.3 La struttura di selezione In un algoritmo si può verificare che le istruzioni da eseguire siano diverse a seconda dei dati elaborati. L esecutore deve effettuare una scelta fra due alternative. Per effettuare tale scelta l esecutore controlla il grado di verità della condizione posta in un test. Se la condizione risulta era l esecutore esegue l istruzione A. Se la condizione risulta Falsa l esecutore segue l istruzione B. Flow-chart Struttura di selezione Pseudolinguaggio F Istruzione B Condizione Istruzione A Se Condizione allora Istruzione A altrimenti Istruzione B if (Condizione = era) Istruzione A; else Istruzione B; Selezione a due uscite Codifica in linguaggio Java if (Condizione = era) Istruzione A; Selezione a una uscita
9 ALGORITMI 9 Esempio Struttura di selezione Dati due numeri a e b, calcola il maggiore. Max fra due numeri Flow-chart Pseudolinguaggio Trace table (Input: a=3 ; b=5) n Istruzione n a > b a b Leggi il numero a Leggi il numero b 3 5 Leggi a 4 Se a > b 4 Falso 5 allora Scrivi a 5 Leggi b 6 altrimenti Scrivi b F Scrivi b a > b Scrivi a import system.io; class max public static void main (String args[]) int a, b; System.out.print("Introduci il primo numero: "); a = IO.in.readInt(); System.out.print("Introduci il secondo numero: "); b = IO.in.readInt(); if (a > b) System.out.println("Il MAX e' " +a); else System.out.println("Il MAX e' " +b);
10 ALGORITMI La struttura di iterazione In un algoritmo può capitare che alcune istruzioni debbano essere ripetute, in modo identico, più volte. La ripetizione di un insieme di istruzioni prende il nome di iterazione o ciclo (loop). Il gruppo di istruzioni ripetute prende il nome di corpo del ciclo. L istruzione di iterazione può essere definita o indefinita. L iterazione è detta definita quando è noto a priori il numero di ripetizioni. L iterazione è detta indefinita quando il ciclo viene ripetuto un numero di volte sconosciuto a priori e termina quando si verifica una determinata condizione. Esempi Ripeti 10 volte la preghiera Atto di dolore Bevi un bicchiere di vino finché non cadi a terra ubriaco (Iterazione definita) (Iterazione indefinita) L iterazione indefinita è detta precondizionale (o iterazione per vero) se il controllo per l arresto dell iterazione è posto prima del gruppo di istruzioni da ripetere. L iterazione indefinita è detta postcondizionale (o iterazione per falso) se il controllo per l arresto dell iterazione è posto dopo del gruppo di istruzioni da ripetere. Strutture di Iterazione Iterazione indefinita precondizionale Iterazione indefinita postcondizionale Iterazione definita enumerativa Condizione Istruzioni F Istruzioni Condizione F Istruzioni Contatore = 1, N Mentre Condizione = era esegui Istruzioni Ripeti Istruzioni finchè Condizione = Falsa Ripeti Istruzioni N volte Iterazione indefinita precondizionale while (Condizione = era) Istruzioni Iterazione indefinita postcondizionale do Istruzioni while (Condizione = Falsa) Codifica in linguaggio Java Iterazione definita enumerativa for (contatore=1; contatore < N Iterazioni; contatore++) Istruzioni
11 ALGORITMI 11 Esempio 1 - Iterazione indefinita precondizionale Calcola la Somma dei primi N numeri naturali, senza utilizzare la formula di Gauss =. Somma dei primi N numeri naturali Flow-chart Pseudolinguaggio Trace table (Input N=5) n Istruzione n Cont < N Contatore Somma Leggi il numero N Assegna al Contatore il valore 1 5 ero Leggi N 4 Assegna alla Somma il valore =1 5 Mentre il Contatore <= N fai 8 2 Contatore = 1 6 Inizio 5 ero 7 Aggiungi alla somma il contatore 7 1+2=3 Somma = 0 8 Incrementa di 1 il contatore Fine 5 ero 10 Scrivi Somma 7 3+3=6 Contatore <= N F ero 7 6+4=10 Somma = Somma + Contatore ero Contatore = Contatore = Falso Scrivi Somma 11 import system.io; class sommanumeri_while public static void main (String [] args) int contatore, somma, n; IO.out.println(" SOMMA DEI PRIMI N NUMERI NATURALI"); IO.out.print("Introduci un numero naturale: "); n = IO.in.readInt(); somma = 0; contatore = 1; while (contatore <= n) somma = somma + contatore; contatore++; IO.out.println("La somma dei primi "+n+" numeri naturali e' "+somma);
12 ALGORITMI 12 Esempio 2 - Iterazione indefinita postcondizionale Calcola la Somma dei primi N numeri naturali, senza utilizzare la formula di Gauss =. Somma dei primi N numeri naturali Flow-chart Pseudolinguaggio Trace table (Input N=5) n Istruzione n Cont < N Contatore Somma Leggi il numero N 2 Leggi N 3 Assegna al Contatore il valore Assegna alla Somma il valore Contatore = 0 5 Ripeti 7 0+0=0 6 Inizio 8 1 Somma = 0 7 Aggiungi alla somma il contatore 10 ero Somma = Somma + Contatore Contatore = Contatore Incrementa di 1 il contatore 7 1+2=3 9 Fine Finchè Contatore <= N 10 ero 11 Scrivi Somma 7 3+3= ero Contatore <= N 7 F =10 Scrivi Somma 10 ero = Falso import system.io; class sommanumeri_do public static void main (String [] args) int contatore, somma, n; IO.out.println(" SOMMA DEI PRIMI N NUMERI NATURALI"); IO.out.print("Introduci un numero naturale: "); n = IO.in.readInt(); contatore=0; somma = 0; do somma = somma + contatore; contatore++; while (contatore <= n); IO.out.println("La somma dei primi "+n+" numeri naturali e' "+somma);
13 ALGORITMI 13 Esempio 3 - Iterazione definita enumerativa Calcola la Somma dei primi N numeri naturali, senza utilizzare la formula di Gauss =. Somma dei primi N numeri naturali Flow-chart Pseudolinguaggio Trace table (N=5) n Istruzione n Contatore Somma Leggi il numero N Assegna alla Somma il valore =1 Leggi N 4 Ripeti con Contatore da 1 a N Inizio 6 1+2=3 Somma = 0 6 Aggiungi alla somma il contatore 4 3 Contatore = 1, N 7 Fine 6 3+3= Scrivi Somma 6 6+4=10 Somma = Somma + Contatore = Scrivi Somma import system.io; class sommanumeri_for public static void main (String [] args) int contatore, somma, n; IO.out.println(" SOMMA DEI PRIMI N NUMERI NATURALI"); IO.out.print("Introduci un numero naturale: "); n = IO.in.readInt(); somma = 0; for (contatore=1; contatore <= n; contatore++) somma = somma + contatore; IO.out.println("La somma dei primi "+n+" numeri naturali e' "+somma);
14 ALGORITMI Algoritmi vari Esempio 1 Prodotto di due numeri Dati due numeri A e B, calcola il Prodotto dei due numeri utilizzando solo l operazione di addizione. Prodotto di due numeri Flow-chart Pseudolinguaggio Trace table (Input: A=6 ; B=4) n Istruzione n Cont < B Contatore Prodotto Leggi il numero A 5 0 Leggi A 3 Leggi il numero B 6 ero 4 Assegna al Contatore il valore Assegna al Prodotto il valore =6 Leggi B 6 Mentre il Contatore < B fai 6 ero 7 Inizio 8 2 Contatore = 0 8 Incrementa di 1 il contatore 9 6+6=12 9 Incrementa di A il prodotto 6 ero 10 Fine 8 3 Prodotto = 0 11 Scrivi Prodotto = ero Contatore < B F =24 6 Falso Prodotto = Prodotto + A Contatore = Contatore + 1 Scrivi Prodotto class prodotto public static void main (String args[]) int A, B, contatore, prodotto; System.out.print("Introduci il primo fattore: "); A = IO.in.readInt(); System.out.print("Introduci il secondo fattore: "); B = IO.in.readInt(); contatore = 0; prodotto = 0; while (contatore < B) prodotto = prodotto + A; contatore++; System.out.println(""); System.out.println("Il prodotto e' "+prodotto);
15 ALGORITMI 15 Esempio 2 - M.C.D. fra due numeri (Algoritmo di Euclide) Per determinare il M.C.D. fra due numeri naturali m e n si può sfruttare il seguente teorema. TEOREMA Supposto m n, se m e n hanno un divisore d comune, d è divisore anche di m n. Dimostrazione Poiché d è divisore sia di m che di n si ha che = e =h La differenza m n è allora: m n= h Raccogliendo il fattore d si ottiene m n= h. Si deduce che anche m n ha d come divisore. Pertanto i divisori comuni a m e n sono comuni anche a m n e n. Cioè:..., =...,. Si può allora determinare il M.C.D. fra due numeri per sottrazioni successive. L algoritmo è il seguente: si confrontano i due numeri, se il primo è minore del secondo si scambiano si esegue la sottrazione fra i due numeri si confronta poi il secondo numero con la differenza, se è necessario si scambiano si esegue la sottrazione fra i due numeri Si prosegue in questo modo fino ad ottenere una sequenza di numeri (sempre più piccoli) che hanno il medesimo M.C.D. Così facendo si giunge a 0, e a questo punto, essendo... 0, =, si conclude che il numero precedente è il... cercato. Leggi Numero 1 Leggi Numero2 Numero1 < Numero2 F Appoggio = Numero1 Numero1 = Numero 2 Numero2 = Appoggio Numero1 = Numero1 Numero2 Numero1 <> 0 F Scrivi Numero2
16 ALGORITMI 16 M.C.D. di Euclide (Sottrazioni successive) Pseudolinguaggio Trace table (Input: Dividendo =6 ; Divisore=15) n Istruzione n Test Se Test Finchè Numero1 Numero2 Appoggio M.C.D Leggi Numero Leggi Numero Ripeti 5 ero 5 Se Numero1 < Numero2 Allora Inizio Appoggio = Numero Numero1 = Numero = 9 9 Numero2 = Appoggio 12 Falso 10 Fine 5 Falso 11 Numero1 = Numero1 - Numero = 3 12 Finchè Numero1 = 0 12 Falso 13 M.C.D. = Numero2 5 ero 14 Scrivi M.C.D = 3 12 Falso 5 Falso = 0 12 ero Fine import system.io; class mcd public static void main (String args[]) int numero1, numero2, temporaneo; int mcd = 1; System.out.print("Introduci il primo numero: "); numero1 = IO.in.readInt(); System.out.print("Introduci il secondo numero: "); numero2 = IO.in.readInt(); do if (numero1 < numero2) temporaneo = numero1; numero1 = numero2; numero2 = temporaneo; numero1 = numero1 - numero2; while (numero1!= 0); // scambia i numeri mcd = numero2; System.out.println(""); System.out.println("Il M.C.D. = "+mcd);
17 ALGORITMI 17 Esempio 3 Divisione con resto Divisione con resto fra due numeri Pseudolinguaggio Trace table (Input: Dividendo =19 ; Divisore=5) n Istruzione n Test Contatore Dividendo Divisore Quoziente Resto Leggi il Dividendo Leggi il Divisore Assegna al Contatore il valore Assegna al Quoziente il valore Dividendo Mentre il Dividendo >= Divisore fai 6 ero 7 Inizio = 14 8 Quoziente = Dividendo - Divisore Dividendo = Quoziente Incrementa di 1 il Contatore 6 ero 11 Fine = 9 12 Resto = Quoziente Quoziente = Contatore Scrivi Quoziente 6 ero 15 Scrivi Resto = Falso 12 4 Leggi Dividendo Leggi Divisore Fine Contatore = 0 Quoziente = Dividendo Dividendo>= Divisore Quoziente = Dividendo Divisore F Dividendo = Quoziente Contatore = Contatore + 1 Resto = Quoziente Quoziente = Contatore Scrivi Quoziente Scrivi Resto
18 ALGORITMI 18 import system.io; class divisioneconresto public static void main (String [] args) int dividendo, divisore, quoziente, resto, contatore; IO.out.print("Introduci il dividendo: "); dividendo = IO.in.readInt(); IO.out.print("Introduci il divisore: "); divisore = IO.in.readInt(); contatore = 0; quoziente = dividendo; while (dividendo >= divisore) quoziente = dividendo - divisore; dividendo = quoziente; contatore++; resto = quoziente; quoziente = contatore; IO.out.println("Quoziente = " +quoziente); IO.out.println("Resto = " +resto);
19 ALGORITMI 19 Esempio 4 Scambia Scambia il contenuto della variabile A con il contenuto della variabile B class scambia public static void main (String args[]) int A, B, temporaneo; System.out.println(" System.out.println(""); SCAMBIA DUE NUMERI"); System.out.print("Introduci A: "); A = IO.in.readInt(); System.out.println(""); System.out.print("Introduci B: "); B = IO.in.readInt(); temporaneo = A; A = B; B = temporaneo; // scambia i numeri System.out.println(""); System.out.println("A = "+A); System.out.println("B = "+B);
20 ALGORITMI 20 Esempio 5 alore assoluto Calcola il valore assoluto di un numero N. import system.io; class valoreassoluto public static void main (String args[]) int A; System.out.print("Introduci A: "); A = IO.in.readInt(); if (A < 0) A = -A; System.out.println(" A = "+A);
21 ALGORITMI 21 Esempio 6 Max fra n numeri Calcola il max fra N numeri. import system.io; class max10n public static void main (String args[]) int A, B, max, contatore; System.out.print("Introduci un numero: "); A = IO.in.readInt(); max = A; for (contatore=1; contatore<=10; contatore++) System.out.print("Introduci un numero: "); B = IO.in.readInt(); if (B > max) max = B; System.out.println(""); System.out.println("Il MAX e' "+max); Contatore = 1 Leggi un numero N Max = N Contatore < 100 Contatore = Contatore + 1 F F Leggi un numero N Max > N Max = N Max = Max Scrivi Max
22 ALGORITMI 22 Altri esercizi Esercizio 1 Calcola la media fra N numeri. Esercizio 2 Calcola i primi 7 multipli del numero 2. Esercizio 3 Dati in ingresso due numeri A e B, scambia il valore del numero A con il valore del numero B. Esercizio 4 Parchimetro Esercizio 5 Controllo sui dati di input (numero positivo, 1 numero > del 2, )
Unità di apprendimento 6. Dal problema al programma
Unità di apprendimento 6 Dal problema al programma Unità di apprendimento 6 Lezione 2 Impariamo a fare i diagrammi a blocchi In questa lezione impareremo: come descrivere l algoritmo risolutivo utilizzando
= < < < < < Matematica 1
NUMERI NATURALI N I numeri naturali sono: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,... L insieme dei numeri naturali è indicato con la lettera. Si ha cioè: N= 0,1,2,3,4,5,6,7,.... L insieme dei naturali privato
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la
Rappresentazione con i diagrammi di flusso (Flow - chart)
Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo
Diagrammi a blocchi 1
Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi." Analisi strutturata." Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi." Attraverso
Unità di apprendimento 6. Dal problema al programma
Unità di apprendimento 6 Dal problema al programma Unità di apprendimento 6 Lezione 1 Conosciamo gli algoritmi e i linguaggi In questa lezione impareremo: cos è un problema come affrontarlo come descrivere
Analisi strutturata 1
Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata
Introduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
PROGRAMMAZIONE STRUTTURATA
PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:
Introduzione agli Algoritmi
Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione
Diagrammi a blocchi 1
Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi. Analisi strutturata. Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi. Attraverso
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.)
Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale l informazione è rappresentata in forma numerica
La formalizzazione dell informazione: Dati e Diagrammi di Flusso
La formalizzazione dell informazione: Dati e Diagrammi di Flusso Codifica degli algoritmi Algoritmo formulato per essere comunicato tra esseri umani chiaro, sintetico e intuitivo codificato in linguaggi
Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota
Corso di Problemi ed algoritmi Ing Pasquale Rota Argomenti Problemi ed algoritmi Proprietà degli algoritmi Pseucodice Diagrammi di flusso Problemi ed algoritmi - Ing. Pasquale Rota 2 Proprietà degli algoritmi
Il linguaggio di programmazione Python
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani ([email protected])
in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico
Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito
Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Dal Problema all Algoritmo Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Cosa Impareremo Informazioni e codici Definizione e soluzione di un problema Individuazione dei dati Definizione
Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)
1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano
Algoritmi e soluzione di problemi
Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)
Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto
Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra
Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1
Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli
Formalismi per la descrizione di algoritmi
Formalismi per la descrizione di algoritmi Per descrivere in passi di un algoritmo bisogna essere precisi e non ambigui Il linguaggio naturale degli esseri umani si presta a interpret non univoche Si usano
PROGRAMMAZIONE: Le strutture di controllo
PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l
Programmazione strutturata
Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 3. (testo di riferimento: Bellini-Guidi) Ing. Michele Ruta 1di 29 Linguaggi di programmazione Un programma è un algoritmo
Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software
Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell
Risoluzione di un problema
Algoritmi Risoluzione di un problema Descrizione di un problema! Individuazione di un ALGORITMO! Metodo risolutivo (progetto) Introduzione 2 Algoritmo Sequenza finita di mosse che risolve in un tempo finito
LA METAFORA DELL UFFICIO
LA METAFORA DELL UFFICIO Lavagna di lavoro Lavagna di programma Sportello utenti Impiegato Capo Ufficio LAVAGNA DI LAVORO Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome
CAPITOLO 3 - ALGORITMI E CODIFICA
FASI DI SVILUPPO DEL SOFTWARE Problema Idea (soluzione) Algoritmo (soluzione formale) Programma (traduzione dell algoritmo in una forma comprensibile da un elaboratore elettronico) Test (criteri di verifica)
L ELABORATORE ELETTRONICO
L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti
Lez. 5 La Programmazione. Prof. Salvatore CUOMO
Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente
MODULO 07. La soluzione dei problemi mediante gli algoritmi
MODULO 07 La soluzione dei problemi mediante gli algoritmi MODULO 07 Unità didattica 02 Impariamo a fare i diagrammi a blocchi In questa lezione impareremo: come descrivere l algoritmo risolutivo utilizzando
Algoritmi. Pagina 1 di 5
Algoritmi Il termine algoritmo proviene dalla matematica e deriva dal nome di in algebrista arabo del IX secolo di nome Al-Khuwarizmi e sta ad indicare un procedimento basato su un numero finito operazioni
Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso
Programmazione I Fondamenti di programmazione ( Lezione I ) Problemi, Algoritmi, Diagrammi di flusso Fabrizio Messina [email protected] www.dmi.unict.it/~messina Algoritmo Dato un problema, un algoritmo
Introduzione alla programmazione strutturata
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio
Dispensa di Informatica II.1
ALGORITMI La dispensa di seguito proposta si pone come tutorial per poter porre le basi per la realizzazione di algoritmi che poi potranno eventualmente essere sviluppati in moduli software con metodologia
Programmazione strutturata
Programmazione strutturata C O P Y R I G H T ( C ) 2 0 0 8 W W W. F O N D A M E N T I. I N F O P E R M I S S I O N I S G R A N T E D T O C O P Y, D I S T R I B U T E A N D / O R M O D I F Y T H I S D O
PROBLEMI ALGORITMI E PROGRAMMAZIONE
PROBLEMI ALGORITMI E PROGRAMMAZIONE SCIENZE E TECNOLOGIE APPLICATE CLASSE SECONDA D PROGRAMMARE = SPECIFICARE UN PROCEDIMENTO CAPACE DI FAR SVOLGERE AD UNA MACCHINA UNA SERIE ORDINATA DI OPERAZIONI AL
PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI
PROBLEMI E ALGORITMI prof.ssa VESPIA CATERINA LICEO CLASSICO AGLI ANGELI C O N T E N U T I Problemi. Concetto di algoritmo. Caratteristiche di un algoritmo. Descrizione di algoritmi - Diagrammi di flusso.
10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 10 STRUTTURE DI CONTROLLO REPEAT E WHILE Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II
ALGORITMI. Obiettivo: risolvere problemi mediante l uso di un elaboratore elettronico. Elaboratore elettronico
ALGORITMI Obiettivo: risolvere problemi mediante l uso di un elaboratore elettronico Dati input Elaboratore elettronico Risultati Per risolvere un problema è necessario fornire una descrizione chiara e
3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi
0.1.1.1 Definire un algoritmo 1. Con il termine algoritmo si intende: a) il software utilizzato in un calcolatore b) l elenco finito di istruzioni necessario per risolvere un problema c) un elaboratore
Problemi, algoritmi e oggetti
Fondamenti di informatica Oggetti e Java Luca Cabibbo Capitolo 5 Marzo 2007 1 Fondamenti di informatica: Oggetti e Jav Contenuti... Problemi e algoritmi comprensione del problema identificazione di un
Matlab. Istruzioni condizionali, cicli for e cicli while.
Matlab. Istruzioni condizionali, cicli for e cicli while. Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica 17 marzo 2016 Alvise Sommariva Introduzione 1/ 18 Introduzione Il
Flow-chart. Introduzione agli algoritmi e ai diagrammi a blocchi.
Flow-chart Introduzione agli algoritmi e ai diagrammi a blocchi [email protected] 1 Sommario Fasi dello sviluppo di un programma Algoritmo Dati: Variabili e Costanti Le operazioni tipiche Diagramma
Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica
FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Prof. ELIO TOPPAO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio Toppano
Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
Algoritmi e diagrammi di flusso versione biennio
Algoritmi e diagrammi di flusso versione biennio Pablo Genova [email protected] I. I. S. Angelo Omodeo Mortara Indirizzo Tecnico-Economico A. S. 2015 2016 Cos'è un algoritmo? Algoritmo: procedimento
Unità di apprendimento 7. Dal problema al programma
Unità di apprendimento 7 Dal problema al programma Unità di apprendimento 7 Lezione 5 Conosciamo l iterazione definita e indefinita In questa lezione impareremo: che cos è l istruzione di iterazione come
Algoritmi e diagrammi di flusso
Algoritmi e diagrammi di flusso Pablo Genova [email protected] I. I. S. Angelo Omodeo Mortara Indirizzo Tecnico-Economico A. S. 2015 2016 Cos'è un algoritmo? Algoritmo: procedimento che risolve
PROGRAMMAZIONE: La selezione
PROGRAMMAZIONE: La selezione Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l altra, riga per
Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione
Sommario Problemi e soluzioni Definizione informale di algoritmo e esempi Proprietà degli algoritmi Input/Output, Variabili Algoritmi senza input o output 1 2 Problema Definizione (dal De Mauro Paravia):
Programmazione a blocchi. Algobuild Prof. Sergio Roselli
Programmazione a blocchi Algobuild Prof. Sergio Roselli Blocchi base Inizio programma I Fine programma F Input IN A Output Esecuzione OUT A A = 5 + 1 L interprete Algobuild Algobuildpermette di trascrivere
L ELABORATORE ELETTRONICO!
L ELABORATORE ELETTRONICO! Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti
