Ancora esempi. Problema: Somma di una sequenza di numeri. Indicando con a i il generico elemento da sommare, la formula generale è S a 1
|
|
- Eugenio Clemente
- 5 anni fa
- Visualizzazioni
Transcript
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 Gli algoritmi iterativi La pseudocodifica Gli algoritmi ricorsivi 1
2 Ancora esempi Problema: Somma di una sequenza di numeri Indicando con a i il generico elemento da sommare, la formula generale è S a 1 a 2 a n La variabile n conta quante volte si ripete l iterazione: n viene decrementata di 1 ad ogni iterazione ed il ciclo termina quando n vale 0 La variabile A è usata per l input degli a i, S per le somme parziali e totale 2
3 Costruiamo il primo algoritmo Supportati da questo bagaglio di strumenti e di suggerimenti possiamo cimentarci nella costruzione del nostro primo algoritmo Per fare questo ci atteniamo alla sequenza di fasi che emergono dall algoritmo Applichiamo questo procedimento risolutivo al problema del calcolo della media di una lista di numeri
4 Prepariamo tutti i materiali del problema: dati in input Anzitutto ci occorre la lista dei numeri ES: Abbiamo la lista cartacea allegata, sotto la forma di una tabella Di questa tabella l analisi testuale del testo del problema ci dice che ci occorre solo la colonna dei voti La colonna dei voti sono i dati noti, ossia l input all algoritmo nome studente classe materia data voto Bianchi IIIAL Italiano 17/09/08 6 Rossi IIIAL Matematica 17/09/08 5 Tizio IIIAL Storia 17/09/08 7 Bianchi IIIAL Inglese 18/09/08 6 Caio IIIAL Storia 18/09/08 5 Sempronio IIIAL Sc. Informatiche 22/09/08 7 Rossi IIIAL Sc. Informatiche 22/09/08 8 Bianchi IIIAL Sc. Elettriche 22/09/08 4 Tizio IIIAL Inglese 25/09/08 6 Mario IIIAL Matematica 25/09/08 6 Bianchi IIIAL Sc. Informatiche 25/09/08 7 Sempronio IIIAL Italiano 25/09/08 5 Qui IIIAL Storia 01/10/08 6 Rossi IIIAL Sc. Elettriche 01/10/08 5 Quo IIIAL Italiano 02/10/08 6 Tizio IIIAL Sc. Meccaniche 02/10/08 5 Quo IIIAL Sc. Informatiche 02/10/08 7 Qua IIIAL Sc. Meccaniche 02/10/08 9 Rossi IIIAL Matematica 02/10/08 3 Bianchi IIIAL Sc. Meccaniche 02/10/08 5 Mario IIIAL Sc. Elettriche 03/10/08 5 Qua IIIAL Inglese 03/10/08 6 Qui IIIAL Storia 03/10/08 6 Sempronio IIIAL Sc. Elettriche 03/10/08 6 Mario IIIAL Italiano 03/10/08 7 Bianchi IIIAL Sc. Informatiche 03/10/08 6 Tizio IIIAL Matematica 06/10/08 5 Rossi IIIAL Inglese 06/10/08 2 Sempronio IIIAL Sc. Elettriche 06/10/08 9
5 Analisi testuale: dati di output In questo esempio, essendo il testo del problema molto breve e semplice, è facile ricavare quali sono i dati incogniti, ossia in output, cioè Il voto medio della classe Problema data una lista cartacea di numeri interi positivi che possono rappresentare diversi dati, ad esempio supponiamo che siano i voti di tutti gli studenti di una classe determinare il voto medio della classe.
6 Intervistare gli esperti Fare una media di numeri è il lavoro da eseguire Intervistiamo un esperto del dominio del problema, un matematico statistico (!!!) Egli ci dice che l operazione della media è: media 1 N i 1 Quindi dobbiamo fare due operazioni La somma di tutti i voti da 1 a al numero complessivo dei voti N Dividere questa somma per il numero complessivo dei voti N N voto i
7 Le operazioni In questo caso, determinata la soluzione del problema con una formula matematica, ne consegue che le operazioni da eseguire sono due operazioni aritmetiche: Somma Divisione Gli operandi (i dati) della somma sono i singoli valori dei voti Gli operandi (i dati) della divisione sono la somma totale dei voti e il numero complessivo dei voti
8 La fasi dell algoritmo somma Possiamo individuare due fasi di lavoro: Sommatoria di tutti i voti Calcolo della media matematica della sommatoria La prima fase è un attività ripetitiva Qui si può vedere quale è il ragionamento intuitivo mentale Nel caso in cui noi facciamo a memoria questo calcolo esplicitando la nostra attività: Dedichiamo una cella (variabile) della nostra memoria Sommiamo il primo numero a questa zona di memoria Continuiamo a sommare i numeri successivi alla medesima cella di memoria finchè tutti i numeri sono terminati Contiamo quanti sono i numeri sommati Alla fine dividiamo la somma complessiva per il numero complessivo dei numeri
9 Revisione delle operazioni 1. Somma dei voti 2. Conteggio del numero dei voti 3. Divisione della somma per il conteggio del numero dei voti Le prime due operazioni sono ripetitive ed avvengono nella prima fase dell algoritmo La terzo operazione è un unica istruzione che viene eseguita in una seconda fase del lavoro,al termina della prima fase
10 Stesura dell algoritmo Si legge un voto alla volta Si incrementa una sommatoria parziale Si incrementa il contatore dei numeri Si ripete questo blocco di istruzioni finchè ci sono numeri nella lista cartacea Quando i numeri sono terminati la sommatoria parziale è la sommatoria S di tutti i voti della lista Il contatore è la somma N del numero di tutti i voti Si divide la sommatoria totale per il numero totale dei voti N e si ottiene media=s/n il risultato desiderato, ossia la media dei voti
11 Soluzione alternativa? Avremmo anche potuto caricare tutti i voti della lista ciascuno in una sua area di memoria Quindi avremmo potuto fare un unica istruzione di somma sommando contemporaneamente tutti i numeri Contare il totale dei numeri della lista cartacea Ed infine calcolare la media dei voti come prima Tuttavia questa seconda soluzione non comporta l utilizzo della iterazione e ci piace di meno perché l operazione di somma cambia al variare del numero dei voti da sommare Invece il sistema iterativo non muta con il numero dei voti da sommare ed è quindi preferibile al precedente metodo
12 Quale è la soluzione di algoritmo preferibile? Quando per fare un algoritmo ho diverse possibilità Occorre scegliere quelle che non devo cambiare al mutare dei dati, quali il numero dei dati o il valore di questi dati Le soluzioni che utilizzano blocchi di istruzioni ripetitivi con l ausilio di costrutti tecnici quali l iterazione sono particolarmente «simpatici» perché resistono alle modifiche indotte dal mutato ambiente nozionistico
13 Per concretizzare l algoritmo è utile un disegno (il flowchart) L inizio e la fine dell algoritmo lo rappresentiamo con una forma geometrica ovale Un operazione di input e di output con un parallelogrammo Un operazione interna con un rettangolo Una domanda con un rombo Il collegamento tra queste forme geometriche tramite frecce orientate che rappresentano il verso della sequenza delle istruzioni Inizio/fine Input/out put calcolo domanda
14 Le variabili del nostro algoritmo Leggiamo dalla lista cartacea un numero alla volta Occorre una cella di memoria per memorizzare il numero letto, chiamiamola numero Occorre una cella di memoria per memorizzare la sommatoria parziale, chiamiamola somma Occorre una cella per calcolare il numero dei voti, chiamiamola contavoti Occorre una cella di memoria per calcolare la media dei voti, chiamiamola media Occorre individuare un costrutto di iterazione
15 Il flowchart della media dei voti MediaVoti Leggo voto somma = somma + voto contavoti=contavoti+1 si altri voti? media=somma/conta Voti NB Parte difficile! Come si specifica?! scrivi media fine
16 Scrittura dell algoritmo in pseudoitaliano MediaVoti ripeti finchè ci sono voti nella lista leggi voto aggiungi voto a somma Incrementa di uno contavoti dividi somma per contavoti ed assegna il risultato a media scrivi media fine
17 La pseudocodifica 1 La pseudocodifica è un linguaggio per la descrizione di algoritmi secondo le regole della programmazione strutturata La descrizione di un algoritmo in pseudocodifica si compone di due parti... la dichiarazione delle variabili usate nell algoritmo la descrizione delle azioni dell algoritmo 17
18 La pseudocodifica 2 Tipo delle variabili Il tipo di una variabile indica l insieme dei valori che possono essere assegnati a quella variabile Su costanti e variabili di un tipo è possibile effettuare le operazioni che sono proprie di quel tipo e tutte le operazioni di confronto Sono permessi i seguenti 4 tipi: integer, real, boolean, string q 18
19 La pseudocodifica 3 integer: sono le variabili cui possono essere assegnati numeri interi; le costanti di tipo integer sono numeri interi, ad es. 1, 3, 150 real: sono le variabili cui possono essere assegnati numeri razionali; le costanti real possono essere rappresentate in notazione decimale, con un. che separa la parte intera dalla parte decimale (ad es., 5.17, , 123., 0.005) o in notazione scientifica (23.476E 3=23476, E 3= ) boolean: sono le variabili cui possono essere assegnati i valori logici; le costanti logiche sono true e false string q: sono le variabili cui possono essere assegnate parole (o stringhe) costituite da q caratteri; le costanti string q sono costituite da parole di q caratteri racchiusi tra apici (che non fanno parte della costante); ad es., FABIO è una costante string 5, + è una costante string 1 e 124 string 3 19
20 La pseudocodifica 4 Dichiarazione delle variabili La dichiarazione delle variabili nella pseudocodifica è un elenco, preceduto dalla parola var, delle variabili sulle quali l algoritmo opera Le variabili sono suddivise per tipo: quelle dello stesso tipo sono separate l una dall altra da una, ; l elenco delle variabili dello stesso tipo è seguito dai : e dall indicazione del tipo; gli elenchi di variabili di tipo diverso sono separati dal ;, l ultimo elenco è seguito da un. Esempio: var i, j, a(20): integer; p, q: real; nome: string 20; sw: boolean. 20
21 La pseudocodifica 5 Descrizione delle azioni Gli schemi di flusso fondamentali sono descritti utilizzando convenzioni linguistiche: ad ogni schema strutturato corrisponde una convenzione linguistica La descrizione di un algoritmo deve soddisfare le seguenti regole: a) La prima azione dell algoritmo è preceduta dalla parola begin; b) L ultima azione dell algoritmo è seguita dalla parola end; c) L azione di lettura è rappresentata dalla parola read; d) L azione di scrittura è rappresentata dalla parola write; e) Lo schema di sequenza di n flussi S 1, S 2,, S n è rappresentato come S 1 ; S 2 ; S n ; 21
22 La pseudocodifica 6 f) Gli schemi di selezione sono rappresentati come: S, S f, S v sono schemi di flusso strutturati g) Gli schemi di iterazione sono rappresentati come: 22
23 La pseudocodifica 7 Esistono convezioni linguistiche alternative in relazione a particolari schemi di flusso Esempio: Ciclo enumerativo Se il valore di incremento è 1, la parte step incremento della frase for...endfor può essere omessa 23
24 La pseudocodifica 8 Esempio: Algoritmo per il calcolo del vettore somma di due vettori di numeri razionali var a(100), b(100), c(100): real; i, n: integer. begin read n; for i from 1 to n do read a(i), b(i); c(i) a(i) b(i); write c(i) endfor end 24
25 La pseudocodifica 9 Esempio: Algoritmo per il calcolo del massimo elemento di un vettore di numeri razionali var max, v(100): real; i, n: integer. begin read n; for i from 1 to n do read v(i) endfor max v(1); for i from 2 to n do if max < v(i) then max v(i) endif endfor write max end 25
26 La pseudocodifica 10 Esempio: Algoritmo per il calcolo delle radici di equazioni di 2 o grado var x1, x2, a, b, c, delta: real. begin read a, b, c; delta b 2 4ac; if delta 0 then write non esistono radici reali else if delta 0 then x1 b/2a; x2 x1 else x1 ( b delta)/2a; endif end x2 ( b delta)/2a endif write x1, x2 26
27 Ancora esempi Esempio: Algoritmo per il calcolo della somma di una sequenza di numeri var a, s: real; n: integer. begin read n; s 0; repeat read a; s s a; n n 1 until n 0 endrepeat write s end 27
28 Ancora esempi Esempio: Ordinamento crescente per scambio Si suppone che (la dimensione e) gli elementi del vettore siano già stati letti e memorizzati var a, v(100): real; i, j, n: integer. begin i 1; repeat j i 1; repeat if v(j) v(i) then a v(i); v(i) v(j); v(j) a endif j j 1 until j n endrepeat i i 1 until i n endrepeat end 28
29 Un esempio comparativo Letti due interi n e k, entrambi maggiori di zero, stampare i primi n multipli di k var i, n, k, p: integer. begin read n; read k; for i from 1 to n do p k i ; write p endfor end i 1; while i n p k i ; write p; i i 1; endwhile #include <stdio.h> main() { int i,n,k,p; } scanf( %d,&n); scanf( %d,&k); for(i 1;i< n;i ) { p k i; printf( %d,p); } exit(0); Linguaggio C 29
30 Considerazioni finali 1 Attenzione alla scelta di un buon algoritmo Due algoritmi si dicono equivalenti quando: hanno lo stesso dominio di ingresso hanno lo stesso dominio di uscita in corrispondenza degli stessi valori nel dominio di ingresso producono gli stessi valori nel dominio di uscita Due algoritmi equivalenti forniscono lo stesso risultato, ma possono avere diversa efficienza e possono essere profondamente diversi 30
31 Considerazioni finali 2 Un esempio di due algoritmi equivalenti, ma con diversa efficienza, per la moltiplicazione fra interi è 31
32 Considerazioni finali 3 Esistono problemi che non possono essere risolti tramite un calcolatore elettronico perché la soluzione del problema non esiste la soluzione del problema richiederebbe un tempo di calcolo eccessivo (anche infinito) la natura del problema è percettiva e/o la soluzione del problema è soggettiva 32
33 Considerazioni finali 4 Un esempio di problema indecidibile, tale cioè che non esista alcun algoritmo capace di risolverlo, è il problema decisionale della terminazione : Dato un algoritmo B ed i suoi dati D, stabilire se la computazione B(D) termina In questo caso, infatti, non esiste un algoritmo A, che accettata una qualsiasi coppia B, D come dato in ingresso, stabilisca sempre in tempo finito se B(D) termina o meno Nota: A non può semplicemente consistere nel comandare l esecuzione B(D) e controllarne il comportamento, poiché, se tale esecuzione non terminasse, A non risponderebbe in tempo finito 33
34 Considerazioni finali 5 Un esempio di problema la cui soluzione richiederebbe un tempo infinito consiste nello stabilire se, data una funzione intera f, f(x) è costante per ogni valore di x Infine, un esempio di problema la cui soluzione è soggettiva è rappresentato dalla scelta, dato un insieme di immagini di paesaggi, del paesaggio più rilassante 34
35 Esercizi Formalizzare l algoritmo, attraverso diagramma a blocchi o pseudocodifica, per risolvere i problemi: Siano dati in input due vettori di interi, a e b, di dimensione n (in input). Si calcoli la somma incrociata degli elementi a(1)+b(n), a(2)+b(n 1), etc., la si memorizzi nel vettore c, e lo si stampi. Siano dati in input un vettore v 1 di interi (di dimensione n, in input) ed un intero k. Si determini l elemento di v 1 più prossimo a k, e lo si stampi assieme all indice corrispondente. Dato l insieme dei risultati d esame (nell intervallo da 0 a 100) di n studenti, contare il numero di studenti che hanno superato la prova, sapendo che l esame si intende superato con un voto maggiore o uguale a
Gli algoritmi. Gli algoritmi. Analisi e programmazione
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
DettagliPROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico
ISTITUTO TECNICO STATALE MARCHI FORTI Viale Guglielmo Marconi n 16-51017 PESCIA (PT) - ITALIA PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico Docente PARROTTA GIOVANNI
DettagliSistemi Web per il turismo - lezione 3 -
Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa
DettagliInformatica Teorica. Macchine a registri
Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire
DettagliVBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.
Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?
DettagliInformatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica
Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,
DettagliSTRUTTURE (O COSTRUTTI) DI CONTROLLO
Le strutture di controllo Le strutture di controllo STRUTTURE (O COSTRUTTI) DI CONTROLLO determinano l ordine con cui devono essere eseguite le istruzioni sono indipendenti dalla natura delle istruzioni
DettagliPIANO DI LAVORO. a.s. 2015 / 2016
PIANO DI LAVORO a.s. 2015 / 2016 Materia: INFORMATICA Classe: terza informatica- sez. A Data di presentazione: 15/10/2015 DOCENTI FIRMA Cerri Marta Bergamasco Alessandra Posta elettronica: itisleon@tin.it
DettagliGeneralità sugli algoritmi
Appunti di Fondamenti di Informatica Generalità sugli algoritmi La nozione di algoritmo...1 Rappresentazione grafica degli algoritmi...2 Diagrammi di flusso...4 Esempi di algoritmi numerici...6 La strutturazione
DettagliDAL DIAGRAMMA AL CODICE
DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza
DettagliAPPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL
APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL In informatica il Pascal è un linguaggio di programmazione creato da Niklaus Wirth ed é un linguaggio di programmazione strutturata. I linguaggi di programmazione
DettagliINFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno
INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno UD 3.1b: Costrutti di un Algoritmo Dispense 1.2 I Costrutti di base 13 apr 2010
DettagliAppunti del corso di Informatica 1. 6 Introduzione al linguaggio C
Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C
Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)
DettagliDescrizione di un algoritmo
Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica
Dettagli3. La sintassi di Java
pag.9 3. La sintassi di Java 3.1 I tipi di dati statici In Java, come in Pascal, esistono tipi di dati statici predefiniti e sono i seguenti: byte 8 bit da -128 a 127 short 16 bit coincide con l integer
DettagliElementi di Informatica
Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi
DettagliLa selezione binaria
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per
DettagliLiceo Marie Curie (Meda) Scientifico Classico Linguistico PROGRAMMAZIONE DISCIPLINARE PER COMPETENZE
Liceo Marie Curie (Meda) Scientifico Classico Linguistico PROGRAMMAZIONE DISCIPLINARE PER COMPETENZE a.s. 2015/16 CLASSE 2^ ASA Indirizzo di studio Liceo scientifico Scienze Applicate Docente Disciplina
Dettagli1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata
Esempi di Problema: Prendere un Caffè al Distributore Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani
DettagliProtocollo dei saperi imprescindibili Ordine di scuola: professionale
Protocollo dei saperi imprescindibili Ordine di scuola: professionale DISCIPLINA: MATEMATICA RESPONSABILE: CAGNESCHI F. IMPERATORE D. CLASSE: prima servizi commerciali Utilizzare le tecniche e le procedure
DettagliAlgebra Booleana ed Espressioni Booleane
Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale
DettagliDI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1
DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica
DettagliAlgoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.
Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito
DettagliIstruzioni per il controllo di ciclo - ciclo a condizione generica
Istruzioni per il controllo di ciclo - ciclo a condizione generica Permette di ripetere l esecuzione di un blocco di istruzioni finchè non viene verificata una condizione logica. Sintassi istruzione_1...
DettagliLezione 8. La macchina universale
Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione
DettagliProgetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012
Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Concetti importanti da (ri)vedere Programmazione imperativa Strutture di
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo
Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Marco Liverani (liverani@mat.uniroma3.it)
DettagliEsercizio. Pseudocodice
Esercizio Trovare quoziente e resto di una divisione intera per differenze successive (supponendo cioè di non disporre dell operatore di divisione) Dati di Input: D, D1 (supponiamo D1>0) Dati di Output:
DettagliDAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori.
DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come Scopo principale dell informatica è risolvere problemi con i calcolatori. Non tutti i problemi sono risolvibili con i calcolatori. Si può dimostrato
DettagliAppunti di Sistemi Elettronici
Prof.ssa Maria Rosa Malizia 1 LA PROGRAMMAZIONE La programmazione costituisce una parte fondamentale dell informatica. Infatti solo attraverso di essa si apprende la logica che ci permette di comunicare
DettagliSemantica dei programmi. La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma.
Semantica dei programmi La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma. Semantica operazionale: associa ad ogni programma la sequenza delle sue
DettagliUD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita
UD4 - MATLAB M-file. Efficienza degli algoritmi. Formati d uscita M-files In MatLab è possibile eseguire istruzioni contenute in file esterni; Tali file sono chiamati M-file perché devono avere estensione.m
DettagliIntroduzione al MATLAB c Parte 2
Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione
Dettagli+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice
Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica
DettagliPARTE III MACCHINE A REGISTRI
PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson
DettagliRisolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati
Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari
DettagliProf. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:
LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto
DettagliInput/output in C e in C++
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Input/output in C e in C++ 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliCorso di Esercitazioni di Programmazione
Corso di Esercitazioni di Programmazione Introduzione Dott.ssa Sabina Rossi Informazioni Pagina web del corso: News Orari Mailing list Lezioni Esercitazioni Date esami Risultati esami.. http://www.dsi.unive.it/~prog1
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliEsercitazioni di Reti Logiche. Lezione 1 Rappresentazione dell'informazione. Zeynep KIZILTAN zkiziltan@deis.unibo.it
Esercitazioni di Reti Logiche Lezione 1 Rappresentazione dell'informazione Zeynep KIZILTAN zkiziltan@deis.unibo.it Introduzione Zeynep KIZILTAN Si pronuncia Z come la S di Rose altrimenti, si legge come
DettagliSCUOLA PRIMARIA - MORI
ISTITUTO COMPRENSIVO DI MORI Via Giovanni XXIII, n. 64-38065 MORI Cod. Fisc. 94024510227 - Tel. 0464-918669 Fax 0464-911029 www.icmori.it e-mail: segr.ic.mori@scuole.provincia.tn.it REPUBBLICA ITALIANA
DettagliEsercizi di programmazione in C
Esercizi di programmazione in C Esercizio 1 Scrivere un programma in linguaggio C che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi. Il programma, a partire dal
DettagliDAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE
DAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE Il problema Un computer è usato per risolvere dei problemi Prenotazione di un viaggio Compilazione e stampa di un certificato in un ufficio comunale Preparazione
Dettagli(1) (2) (3) (4) 11 nessuno/a 9 10. (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B
Compito: Domanda 1 Per l'algoritmo fornito di seguito, qual è il valore assunto dalla variabile contatore quando l'algoritmo termina: Passo 1 Poni il valore di contatore a 1 Passo 2 Ripeti i passi da 3
DettagliCaratteri e stringhe Esercizi risolti
Esercizi risolti 1 Esercizio: Conta vocali e consonanti Scrivere un programma in linguaggio C che legga una frase introdotta da tastiera. La frase è terminata dall introduzione del carattere di invio.
DettagliSyllabus: argomenti di Matematica delle prove di valutazione
Syllabus: argomenti di Matematica delle prove di valutazione abcdef... ABC (senza calcolatrici, senza palmari, senza telefonini... ) Gli Argomenti A. Numeri frazioni e numeri decimali massimo comun divisore,
DettagliDISPENSE DI PROGRAMMAZIONE. Modulo 1 Risolvere problemi con l elaboratore: dal problema all algoritmo (Parte III)
DISPENSE DI PROGRAMMAZIONE Modulo 1 Risolvere problemi con l elaboratore: dal problema all algoritmo (Parte III) Un linguaggio lineare di descrizione degli algoritmi: il linguaggio SPARKS Esercizi di conversione
DettagliMATEMATICA GENERALE Prova d esame del 4 giugno 2013 - FILA A
MATEMATICA GENERALE Prova d esame del 4 giugno 2013 - FILA A Nome e cognome Matricola I Parte OBBLIGATORIA (quesiti preliminari: 1 punto ciascuno). Riportare le soluzioni su questo foglio, mostrando i
DettagliGli algoritmi: definizioni e proprietà
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Gli algoritmi: definizioni e proprietà La presente dispensa e da
DettagliEsercitazione Strumentazione virtuale
Esercitazione Strumentazione virtuale - 1 Esercitazione Strumentazione virtuale 1 - Oggetto Introduzione alla strumentazione virtuale. LabView: il pannello frontale e il diagramma a blocchi. Esempi: generatore
DettagliDall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere
DettagliMATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c
Caratteristiche MATLAB Linguaggio di programmazione orientato all elaborazione di matrici (MATLAB=MATrix LABoratory) Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione
DettagliIntroduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali
a Visual Basic Lezione 1 Concetti base e istruzioni condizionali Mario Alviano Introduzione all informatica Università della Calabria http://alviano.net/introinfo A.A. 2008/09 Introduzione Un esempio:
DettagliCorso di Laurea in INFORMATICA
Corso di Laurea in INFORMATICA Algoritmi e Strutture Dati MODULO 2. Algebre di dati Dati e rappresentazioni, requisiti delle astrazioni di dati, costrutti. Astrazioni di dati e dati primitivi. Specifica
DettagliLaurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1
Corso di INFORMATICA Laurea triennale - Comunicazione&DAMS Dr. Marco Manna 1 1 Dipartimento di Matematica Università della Calabria Corso di laurea intercalsse in COMUNICAZIONE&DAMS http://elleboro.unical.it/drupalab/informatica2009/
DettagliESERCIZI DEL CORSO DI INFORMATICA
ESERCIZI DEL CORSO DI INFORMTIC Questa breve raccolta di esercizi vuole mettere in luce alcuni aspetti della prima parte del corso e fornire qualche spunto di riflessione. Il contenuto del materiale seguente
DettagliPROGETTAZIONE DISCIPLINARE MATEMATICA classe 2^
PROGETTAZIONE DISCIPLINARE MATEMATICA classe 2^ PER RICONOSCERE, RAPPRESENTARE E RISOLVERE PROBLEMI I. Q. II. Q. CONTENUTI / ATTIVITA 1 bim. 2 bim. 3 bim. 4 bim. 1a) Individuazione di situazioni problematiche
DettagliDispense del corso di Introduzione all Informatica della Facoltà Di Scienze Matematiche, Fisiche e Naturali dell Università della Calabria
Introduzione all Informatica 1 Dispense del corso di Introduzione all Informatica della Facoltà Di Scienze Matematiche, Fisiche e Naturali dell Università della Calabria Programma del corso Programma di
DettagliFare matematica nelle prime due classi di scuola primaria IL NUMERO. Monica Falleri, Rossana Nencini, 2007
Fare matematica nelle prime due classi di scuola primaria IL NUMERO Monica Falleri, Rossana Nencini, 2007 ATTIVITA MOTORIA E RITMICA In continuità con la scuola dell infanzia Proponiamo esperienze che
Dettagli4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste
4 Le liste collegate 4.0 Le liste collegate c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 4.0 0 4 Le liste collegate Rappresentazione di liste 4.1
DettagliMATEMATICA e COMPLEMENTI di MATEMATICA
ALLEGATO N.8_b MATEMATICA e COMPLEMENTI di MATEMATICA DESTINATARI gli studenti delle classi: terze e quarte nuovo ordinamento RISULTATI DI APPRENDIMENTO DELL OBBLIGO D ISTRUZIONE, CHIAVE EUROPEA Padroneggiare
DettagliRICERCA DI UN ELEMENTO
RICERCA DI UN ELEMENTO Si legga da tastiera un array di N elementi (N stabilito dall utente) Si richieda un elemento x il programma deve cercare l elemento x nell array Se l elemento è presente, deve visualizzare
DettagliUnità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.
Unità Didattica 3 Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa
DettagliRAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI
RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI Diagramma di flusso L algoritmo può essere rappresentato in vari modi, grafici o testuali. Uno dei metodi grafici più usati e conosciuti è il cosiddetto diagramma
DettagliArduino: Programmazione
Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite
DettagliStrutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)
Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi
DettagliLABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B
LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B 23.XI.2012 VINCENZO MARRA Indice Esercizio 1 1 Menu 1 Tempo: 35 min. 2 Commento 1 2 Esercizio 2 2 Ordinamento e ricerca binaria con la classe
DettagliCreare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x.
Funzioni Esercizio 1 Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x. Creare un altra funzione, di nome float cube(float x), che restituisce invece il
DettagliINTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI
INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.
DettagliIl software e la programmazione
Il software e la programmazione Concetti base sul software Elementi di programmazione Cenni sul linguaggio Pascal Che cosa è il software Determina ciò che un computer può fare Include istruzioni memorizzate
DettagliProcedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM
Procedure memorizzate SQL-2003/PSM Procedure memorizzate nel database Programmazione general-purpose Leggere sezione 8.2 di Garcia-Molina et al. Lucidi derivati da quelli di Jeffrey D. Ullman 1 Una estensione
DettagliProcesso di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico
Processo di risoluzione di un problema ingegneristico 1. Capire l essenza del problema. 2. Raccogliere le informazioni disponibili. Alcune potrebbero essere disponibili in un secondo momento. 3. Determinare
DettagliRichiesta pagina PHP (es: index.php)
PHP PHP = personal home page SERVER Richiesta pagina PHP (es: index.php) Server Web (Apache) in ascolto sulla porta 80, si accorge che la pagina richiesta è una pagina PHP in base all'estensione o con
DettagliInformatica. Rappresentazione dei numeri Numerazione binaria
Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione
DettagliLaboratorio di Programmazione Lezione 1. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 1 Cristian Del Fabbro Reperibilità homepage corso: https://users.dimi.uniud.it/~cristian.delfabbro/teaching.php email: cristian.delfabbro@uniud.it telefono: 0432 558676
DettagliOTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C
CORSO DI LABORATORIO DI INFORMATICA CORSO DI LAUREA IN SDM ANNO ACCADEMICO 2011-2012 Docente: R. Sparvoli Esercitazioni: R. Sparvoli, F. Palma OTTAVA ESPERIENZA DI LABORATORIO L elaborazione dei files
DettagliESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 27 Gennaio 2015
COGNOME E NOME: MATRICOLA: Civile Ambiente e Territorio Non si possono consultare manuali, appunti e calcolatrici. Esercizio 1: [3 punto] Rappresentare i numeri 36 e 91 (in base 10) in notazione binaria
DettagliGestione di files Motivazioni
Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)
Dettagli2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.
Tipo File Per memorizzare un dato su un supporto magnetico come un hard disk o un nastro, o più in generale su un'unità di memoria di massa viene utilizzata un tipo di dato chiamato file. Un file può essere
DettagliCaricare un numero n float, calcolare e stampare il quadrato e il cubo di n. Diagramma di flusso
Esercizi svolti durante le ore di nformatica e Sistemi automatici nelle Clas del Liceo Scientifico Teclogico Milli di Teramo Esercizio N. 1 Caricare un numero n float, calcolare e stampare il quadrato
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
DettagliCos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247
Cos è una stringa (1) Stringhe DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Una stringa è una serie di caratteri trattati come una singola unità. Essa potrà includere lettere, cifre, simboli e caratteri
DettagliIl programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1
Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria R. Vitolo Dipartimento di Matematica Università di Lecce SaLUG! - Salento Linux User Group Il programma OCTAVE per l
DettagliDefinizione Dati due insiemi A e B, contenuti nel campo reale R, si definisce funzione reale di variabile reale una legge f : A
Scopo centrale, sia della teoria statistica che della economica, è proprio quello di esprimere ed analizzare le relazioni, esistenti tra le variabili statistiche ed economiche, che, in linguaggio matematico,
DettagliTipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
DettagliPreparati per il compito in classe Modulo 5
Preparati per il compito in classe Modulo 5 Hai i dati relativi a una serie di N (con N < 20) cinema, per ogni cinema si conoscono il nome e l incasso. Scrivi un programma che, presi in input tali dati,
DettagliGUIDA BASE DI PASCAL
1 GUIDA BASE DI PASCAL Un algoritmo, nel suo significato più ampio, è sequenza logica di istruzioni elementari (univocamente interpretabili) che, eseguite in un ordine stabilito, permettono la soluzione
DettagliFasi di creazione di un programma
Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma
DettagliSOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:
1 SOFTWARE È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: SOFTWARE DI SISTEMA (o di base), che deve gestire le funzioni
DettagliIL CONCETTO DI FILE. È illecito operare oltre la fine del file.
IL CONCETTO DI FILE Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni su memoria di massa. Concettualmente, un file è una sequenza di registrazioni
DettagliProblem solving elementare su dati vettoriali
Problem solving elementare su dati vettoriali Introduzione Verifiche su sequenze di dati Selezione o ricerca di dati 2 2006 Politecnico di Torino 1 Introduzione (1/2) I problemi di verifica consistono
DettagliIl file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.
Il File System Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Realizza i concetti
DettagliISTITUTO D'ISTRUZIONE SUPERIORE A. MOTTI
ISTITUTO D'ISTRUZIONE SUPERIORE A. MOTTI ISTITUTO PROFESSIONALE DI ENOGASTRONOMIA E OSPITALITA ALBERGHIERA CON I PERCORSI: ACCOGLIENZA TURISTICA, CUCINA, SALA-BAR ISTITUTO TECNICO PER IL TURISMO Sede Amministrativa:
DettagliEsercizi sulla conversione tra unità di misura
Esercizi sulla conversione tra unità di misura Autore: Enrico Campanelli Prima stesura: Settembre 2013 Ultima revisione: Settembre 2013 Per segnalare errori o per osservazioni e suggerimenti di qualsiasi
DettagliDESCRIZIONE CREAZIONE APP Si suddivide in 4 fasi di lavoro: 1. PIANIFICAZIONE; 2. PROGETTAZIONE; 3. SVILUPPO; 4. DISTRIBUZIONE.
DESCRIZIONE CREAZIONE APP Si suddivide in 4 fasi di lavoro: 1. PIANIFICAZIONE; 2. PROGETTAZIONE; 3. SVILUPPO; 4. DISTRIBUZIONE. PIANIFICAZIONE La pianificazione è la prima fase. Questa è la più delicata
DettagliTipologie di macchine di Turing
Tipologie di macchine di Turing - Macchina di Turing standard - Macchina di Turing con un nastro illimitato in una sola direzione - Macchina di Turing multinastro - Macchina di Turing non deterministica
DettagliVerifica della correttezza formale del numero di partita IVA
Verifica della correttezza formale del numero di partita IVA A tutti i soggetti che intraprendono un attività rilevante ai fini Iva (impresa, arte, professione), al momento della presentazione della dichiarazione
DettagliRicerche, ordinamenti e fusioni. 5.1 Introduzione. 5.2 Ricerca completa
Ricerche, ordinamenti e fusioni 5.1 Introduzione Questo capitolo ci permette di fare pratica di programmazione utilizzando gli strumenti del linguaggio introdotti finora. A una prima lettura possono essere
Dettagli