FONDAMENTI DI INFORMATICA
|
|
- Anna Maria Valeri
- 4 anni fa
- Visualizzazioni
Transcript
1 FONDAMENTI DI INFORMATICA Prof. Alfredo Accattatis Tutor: Prof. Venturino Taggi
2 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 2 Argomenti di oggi Si parlerà di: Tecniche di debug Stringhe ed operazioni su stringhe
3 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 3 Eliminazione degli errori Ogni errore in un programma è chiamato Bug Il processo di trovare gli errori e relativa (eventuale) correzione si chiama Debugging Tipi di errori (errori di sintassi) syntax errors (errori in esecuzione) runtime errors (errori logici) logical errors Da aggiungere Warning (avvertimenti) tipicamente in compilazione
4 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 4 Perché bug? Tenente Grace Hopper 9 settembre 1947 Mark II Circuiti elettromeccanici Falena incastrata «1545. Relay #70 Panel F (moth) in relay. First actual case of bug being found»
5 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 5
6 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 6 Syntax errors Sostanzialmente (e riduttivamente): uso errato del linguaggio. Per esempio: >> mystr='how are you; mystr='how are you; Error: A MATLAB string constant is not terminated properly. >> value=5 value = 5 >> newvalue = valu + 3 Undefined function or variable 'valu'. Did you mean: >> newvalue = value + 3
7 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 7 Syntax errors ed editor matlab Sintassi errata Sintassi corretta Errore non evidenziato
8 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 8 Syntax error La variabile c usata PRIMA della definizione (non inizializzata) Argomento d ingresso non usato Per comprendere la natura dell errore e/o warning si dovrebbe andare con il cursore sulla variabile evidenziata dall editor
9 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 9 Runtime/execution errors Gli errori vengono trovati durante l esecuzione, e.g. Divisione per ZERO Tentativo di riferirsi ad un elemento del vettore che non esiste >> a=1:3; >> b=4:5; >> a*b Error using * Inner matrix dimensions must agree.
10 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 10 Errori logici (Logical errors) Sono i più difficili da individuare Un errore logico è un errore di ragionamento del programmatore: il codice in se può essere formalmente e sintatticamente corretto Per testare il corretto funzionamento del codice si dovrebbe: Definire un set di uses case (differenti combinazioni di valori d ingresso) il più possibile rappresentativi della realtà simulata. =>Controllare la correttezza della risposta/soluzione
11 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 11 Tracing (tracciamento errore) Come controllare esattamente quali righe sono state eseguite? Consideriamo il seguente esempio?
12 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 12 Funzione echo >> help echo echo Display statements during function execution. echo ON turns on echoing of commands inside Scriptfiles. echo OFF turns off echoing. echo file ON where 'file' is a function name causes the named Function-file to be echoed when it is used. echo file OFF turns it off. echo file toggles it. echo ON ALL turns on the echoing of commands inside any Function-files that are currently in memory (i.e., the functions returned by INMEM). echo OFF ALL turns them all off....
13 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 13 Esempio Non particolarmente utile!!!!
14 Ispezione del codice in tempo reale: moderni interpreti/compilatori Possibilità di mettere breakpoint nel codice e successivamente è possibile: Eseguire il codice passo-passo interrogare le variabili del workspace locale Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 14 3<x ritorna 0(false) perchè x=-2 (3<x = 0) <6 è true perchè 0 < 6 sempre Anche se x=4 abbiamo 3<x = 1 < 6 è sempre true.
15 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 15 Definire i breakpoint Si può fare con il mouse nella finestra di editor Oppure da linea di comando (slide successiva) Puntare il cursore del mouse sul trattino e cliccare
16 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 16 Definire i breakpoint Da linea di comando
17 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 17 Procedere con l esecuzione Da linea di comando: dbstep : procede un passo alla volta dbcont : continua l esecuzione F11 abbreviazione per dbstep
18 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 18 Procedere con l esecuzione >> SyntaxError(2,3) 4 c = 0; K>> dbstep 5 c = c + a; K>> dbstep 6 c = c*2; K>> dbstep 7 c = c/2; K>> dbcont 5 >>
19 STRINGHE Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 19
20 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 20 Manipolazione di stringhe Stringa: qualsiasi sequenza di caratteri delimitata da virgolette singole Le stringhe sono sostanzialmente vettori le cui singole componenti sono caratteri Infatti le operazioni definite sui vettori lavorano quasi tutte anche con le stringhe Esempi: Stringhe: x cat Hello there 123 Sottostringhe (Substrings): there è una sottostringa di Hello there
21 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 21 Tipi di caratteri Una stringa può contenere Lettere Numeri Segni di punteggiatura Spazi bianchi Caratteri di controllo I Caratteri di controllo non sono stampabili ma fanno qualcosa (e.g. tab, new line, cr)
22 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 22 Come creare variabili stringhe
23 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 23 Stringhe come Vettori >> length(word) 3 >> length('cat ) 3 >> length(' ) 1 >> length(' ) 0 >> mystr='hi mystr = Hi >> mystr(1) H >> mystr H i >> sent = 'Hello there sent = Hello there >> sent(4:8) lo th
24 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 24 Matrici di Stringhe >> wordmat=[ 'Hello'; 'Howdy ] wordmat = Hello Howdy >> size( wordmat ) 2 5 >> wordmat( 2, 4 ) d >> wordmat( 1, : ) Hello >> >> greetmat = ['Hello'; 'Goodbye'] Error using vertcat Dimensions of matrices being concatenated are not consistent. >> greetmat = ['Hello '; 'Goodbye ] greetmat = Hello Goodbye
25 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 25 Operazioni sulle stringhe Concatenazione Creazione di stringhe personalizzate Rimozione spazi Conversione minuscole/maiuscole e viceversa Confronti Ricerca
26 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 26 Concatenazione >> f='bird ; >> l='house ; >> [f l] birdhouse >> strcat(f,l) birdhouse strcat e [ ] NON hanno lo stesso comportamento >> s1='xxx ; >> length(s1) 6 >> s2=' yyy'; >> length(s2) 6 >> [s1 s2] xxx yyy >> length(ans) 12 >> strcat(s1,s2) xxx yyy >> length(ans) 9 >> strcat(s2,s1) yyyxxx >> length(ans) 9 Rimuove gli spazi bianchi
27 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 27 Concatenazione(cont d) Char >> clear greatmat >> greatmat=char('hello','goodby'); >> greatmat greatmat = Hello Goodby >> size(greatmat) 2 6 La taglia della matrice dipende dalla stringa più grande tra quelle concatenate
28 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 28 Creazione di stringhe di caratteri blanks Aggiungere spazi bianchi alla fine di una stringa può tornare utile per concatenare righe blanks() >> bs4=blanks(4); >> size(bs4) 1 4 >>tx=[ Yes We can ; I did, bs4] Potrebbe esserci utile anche il processo inverso, ossia la rimozione
29 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 29 Rimozione spazi bianchi >> names=char('sue','cathy','xavier'); >> size(names) 3 6 >> n1=names(1,:) n1 = Sue >> length(n1) 6 >> deblank(n1) Sue >> length(ans) 3 Come implementare il deblank usando un for loop?
30 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 30 mydeblank function [ s1 ] = mydeblank( s ) %Elimina gli spazi bianchi dalla fine della stringa %Stringa in s1 n=length(s); if(size(n,1)==1 size(n,2)==1) for i=1:n if s(i)~=' ' s1(i)=s(i); else break; end end else s1=s; disp( Impossibile rimuovere spazi bianchi'); end end
31 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 31 Errore? Complimenti, n era un errore!!
32 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 32 Homework La funzione appena definita mydeblank non funziona se gli spazi bianchi sono contenuti prima della fine della stringa.esempio: mydeblank( this string is tricky ) Ritornerà this invece di this string is tricky Fatelo voi!
33 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 33 Creare stringhe personalizzate (formattate) sprintf >> s2=sprintf( il valore è %.2f',pi) s2 = Il valore è 3.14 Con sprintf è possibile creare stringhe sulla base dei valori delle variabili e salvare il tutto ancora in una variabile.. Consultate l help di Matlab per ulteriori dettagli
34 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 34 Operazioni sulle stringhe. Punto della situazione Concatenazione Creazione di stringhe personalizzate Rimozione spazi bianchi Conversione maiuscole/minuscole e viceversa Confronto di stringhe Ricerca stringhe
35 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 35 Conversione maiuscole/minuscole e viceversa >> s1='hello s1 = Hello >> s=upper(s1) s = HELLO >> s3=lower(s) s3 = hello
36 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 36 Confronto di stringhe >>s1= Hello ; >>s2= Hillo ; >> s1==s >> sum(s1==s2)==length(s1) 0 >> s2(2)='e s2 = Hello >> sum(s1==s2)==length(s1) 1 >> Se s1 è uguale ad s2 la variabile ans ritorna un vettore riempito di 1. Perciò, la somma degli elementi del vettore sarà uguale alla lunghezza del vettore Altrimenti i due vettori sono differenti
37 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 37 Confronto di stringhe (cont d) >> strcmp(s1,s2) 1 >> strcmp(s2,s1) 1 >> s1=[s1 '3456 ] s1 = Hello3456 >> strcmp(s1,s2) %è sensibile alla lunghezza 0
38 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 38 Homework Scrivere una function che si comporta come strcmp. Dall help di Matlab si evince che: strcmp Compare strings. TF = strcmp(s1,s2) compares the strings S1 and S2 and returns logical 1 (true) if they are identical, and returns logical 0 (false) otherwise. La funzione prevede la gestione di stringhe di taglia differente.
39 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 39 Ricerca stringhe >> s1='this is a string for test'; >> strfind(s1,'s') >> strfind(s1,'for') La funzione ritorna la posizione del carattere, ossia la posizione in s1 del carattere s oppure la posizione iniziale della sottostringa d ingresso 18
40 Fondamenti di Informatica a.a. 2016/17 - A.Accattatis 40 Homework Scrivere una funzione che si comporti come strfind
41 Fondamenti di Informatica a.a. 2016/17- A.Accattatis Algoritmi di ordinamento I procedimenti di ordinamento dei dati rientrano nell insieme dei problemi classici dell informatica. PROBLEMA Partendo da una sequenza di elementi omogenei è necessario ordinarli secondo un criterio prestabilito, p.e. ordine crescente. ALGORITMO RISULTATO Si costruisce un permutazione della sequenza originaria tale che gli elementi costituenti soddisfano il criterio di ordine.
42 Algoritmi di ordinamento (2) Le caratteristiche basilari di un generico algoritmo di ordinamento: Procedimento iterativo Attività principali: Fondamenti di Informatica a.a. 2016/17- A.Accattatis Ripetizione (es. ciclo) Criterio di ordinamento (es. confronto)
43 Fondamenti di Informatica a.a. 2016/17- A.Accattatis Ordinamento Fonte:
44 Fondamenti di Informatica a.a. 2016/17- A.Accattatis Algoritmi di ordinamento (3) Analizziamo i seguenti algoritmi elementari su sequenze numeriche da ordinare in modo ascendente: Ordinamento per selezione (Selection Sort) ad ogni iterazione i si seleziona l elemento più piccolo che viene spostato nella posizione i-esima. Ordinamento ad inserimento (Insertion Sort) Considerando di avere già ordinato una porzione della sequenza da 1 a k, allora alla iterazione k+1 si inserisce l elemento della porzione non ordinata nella posizione corretta. Bubble sort Viene effettuato il confronto tra elementi adiacenti: la relativa coppia viene ordinata
45 Ordinamento per selezione Data la sequenza di numeri di lunghezza n, si assume che questa sia stata parzialmente ordinata, in ordine crescente, fino all elemento k-1. La sotto-sequenza da k a n è da ordinare. [ ] i = Trovare il minimo tra gli elementi della sottosequenza non ordinata (con i da k a n) 2. Sostituire l elemento in posizione k con il minimo trovato 3. Incrementare k 4. Se k < n ripetere dal passo 1 5. Fine Fondamenti di Informatica a.a. 2016/17- A.Accattatis
46 Fondamenti di Informatica a.a. 2016/17- A.Accattatis Ordinamento per selezione (2) I. k = 4 II. k = 5 III.k = 6 IV. k = 7 [ ] [ ] [ ] [ ] [ ] [ ] Fine: sequenza ordinata
47 Fondamenti di Informatica a.a. 2016/17- A.Accattatis Selection Sort Fonte:
48 Ordinamento per selezione (3) function v = SelectionSort( v ) %Ordina il vettore v con l algoritmo per selezione %INPUT: vettore di numeri %OUTPUT: vettore di numeri in ordine ascendente for k = 1 : (length(v) - 1) indicemin = k; %inizializzazione della posizione del minimo for j = (k + 1) : length(v) %trova il minimo tra gli n-k elementi non ordinati if v(j) < v(indicemin) indicemin = j; %posizione dell elemento di valore minimo end end temp = v(indicemin); % scambia la posizione del minimo v(indicemin) = v(k); v(k) = temp; end end Fondamenti di Informatica a.a. 2016/17- A.Accattatis
49 Ordinamento ad inserimento Data la sequenza di numeri di lunghezza n, si assume che questa sia stata parzialmente ordinata, in ordine crescente, fino all elemento k-1. La sotto-sequenza da k a n è da ordinare. [ ] i = Considerato l elemento k, individuare la sua posizione p con 1 < p < (k-1) 2. Se p < k inserire l elemento nella posizione p e spostare gli altri 3. Incrementare k 4. Se k <= n ripetere dal passo 1 5. Fine Fondamenti di Informatica a.a. 2016/17- A.Accattatis
50 Fondamenti di Informatica a.a. 2016/17- A.Accattatis Ordinamento ad inserimento (2) I. k = 5 II. k = 6 III.k = 7 IV. k > 7 [ ] [ ] [ ] [ ] [ ] [ ] Fine: sequenza ordinata
51 Fondamenti di Informatica a.a. 2016/17- A.Accattatis Insertion Sort Fonte :
52 Fondamenti di Informatica a.a. 2016/17- A.Accattatis Ordinamento ad inserimento (3) function v = InsertionSort( v ) %Ordina gli elementi di un vettore con l algoritmo ad inserimento %INPUT: vettore di numeri %OUTPUT: vettore di numeri in ordine ascendente for k = 2:length(v) x = v(k); % elemento da posizionare for j = 1:k % in questo ciclo cerca la posizione if v(j) > x break; % il ciclo viene interrotto: posizione trovata! end end if j < k % è necessario spostare gli elementi for i = (k-1) : -1 : j v(i+1) = v(i); end v(j) = x; end end
53 Fondamenti di Informatica a.a. 2016/17- A.Accattatis Bubble sort Data la sequenza di numeri di lunghezza n, si confrontano due elementi contigui e quello minore viene posizionato prima. Se avviene uno scambio, questo evento viene registrato in una variabile boolena (p.e. scambio=true) 1. Considerata la coppia di elementi in posizione (k, k+1), ne vengono confrontati i valori 2. Se il valore in k+1 è minore del valore in k le posizioni vengono scambiate e scambio=true 3. Se lo scambio è avvenuto incrementare k, ripristinare scambio=false, ripetere dal passo 1 4. Fine
54 Bubble sort (2) Fondamenti di Informatica a.a. 2016/17- A.Accattatis (1) (2) (3) (4) (5)
55 Fondamenti di Informatica a.a. 2016/17- A.Accattatis Bubble sort Fonte:
56 Bubble sort (3) function v = BubbleSort( v ) %Ordina gli elementi di un vettore utilizzando l algoritmo BubbleSort %INPUT: vettore di numeri v %OUTPUT: vettore di numeri in ordine ascendente for i = 1 : (length(v)-1) scambio = false; for j = 2 : (length(v)-(i-1)) if v(j-1) > v(j) %gli elementi non sono ordinati allora scambiali temp = v(j); v(j) = v(j-1); v(j-1) = temp; scambio = true; end end if ~scambio % se non ci sono stati scambi allora il vettore è ordinato end end end break; Fondamenti di Informatica a.a. 2016/17- A.Accattatis % quindi interrompi il ciclo
57 Fondamenti di Informatica a.a. 2016/17- A.Accattatis Esercizi 1. Progettare ed implementare una funzione di ordinamento decrescente che utilizzi l algoritmo dell inserimento ad inserimento opportunamente modificato. 2. Adattare l algoritmo di ordinamento Bubble Sort sostituendo il costrutto for con while. 3. Modificare le funzioni di ordinamento presentate per calcolare il numero totale di iterazioni e il numero di spostamenti per ciascun algoritmo. Considerare come variano queste due quantità per ciascun algoritmo nelle seguenti situazioni: 1. caso migliore (sequenza già ordinata), 2. caso peggiore (sequenza con ordine inverso), 3. caso tipico. Si possono trarre delle conclusioni?
FONDAMENTI DI INFORMATICA
FONDAMENTI DI INFORMATICA Prof. Alfredo Accattatis accattatis@ing.uniroma2.it Fondamenti di Informatica a.a. 2015/16 - A.Accattatis 2 Argomenti di oggi Si parlerà di: Tecniche di debug(capitolo 6, par.
DettagliFONDAMENTI DI INFORMATICA
FONDAMENTI DI INFORMATICA Prof. Alfredo Accattatis accattatis@ing.uniroma2.it Tutor: Prof. Venturino Taggi taggi@ing.uniroma2.it Fondamenti di Informatica - A.Accattatis 2 Argomenti di oggi Si parlerà
DettagliFONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis ( ) Tutor : prof. Marcello Colella (
FONDAMENTI DI INFORMATICA Prof. Alfredo Accattatis ( accattatis@ing.uniroma2.it ) Tutor : prof. Marcello Colella ( mcolella.uniroma2@outlook.it ) STRINGHE Fondamenti di Informatica - A.Accattatis 2 Fondamenti
DettagliFONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis Prof. Venturino Taggi
FONDAMENTI DI INFORMATICA Prof. Alfredo Accattatis Prof. Venturino Taggi accattatis@ing.uniroma2.it taggi@ing.uniroma2.it 2 Fondamenti di Informatica 2015/16 V.Taggi taggi@ing.uniroma2.it Algoritmi di
DettagliUNIVERSITA DEGLI STUDI DI ROMA TOR VERGATA
UNIVERSITA DEGLI STUDI DI ROMA TOR VERGATA Dipartimento di Ingegneria Industriale Corso di studio in Ingegneria Meccanica/Energetica Esame di Fondamenti di Informatica sessione estiva appello I A.A. 2015/16
DettagliFONDAMENTI DI INFORMATICA
FONDAMENTI DI INFORMATICA ESERCITAZIONI Prof. Alfredo Accattatis ( accattatis@ing.uniroma2.it ) Tutor: prof. Marcello Colella ( mcolella.uniroma2@outlook.it ) Fondamenti di Informatica - A.Accattatis -
DettagliIndice Capitolo 1 Capitolo 2 Capitolo 3 Capitolo 4 Capitolo 5 Capitolo 6
1 Indice Capitolo 1... 7 Introduzione al Problem Solving... 7 Computer... 11 Informatica... 13 Capitolo 2... 17 Rappresentazione e Algoritmi... 17 Un esempio di algoritmo... 19 Diagrammi di flusso... 22
DettagliFondamenti di Informatica
Fondamenti di Informatica Sorting Algorithms Prof. Emiliano Casalicchio emiliano.casalicchio@uniroma2.it Sorting algorithms n selection sort n Insertion sort incremental algorithms progressively ext a
DettagliUniversità degli Studi di Ferrara
Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2018 2019 Programmazione Lezione 19 Controllo di Flusso in MATLAB Docente: Michele Ferrari - michele.ferrari@unife.it Nelle lezioni
DettagliRappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
DettagliAppunti di informatica. Lezione 10 anno accademico Mario Verdicchio
Appunti di informatica Lezione 10 anno accademico 2016-2017 Mario Verdicchio Esercizio Scrivere un programma che, data una sequenza di 10 interi (scelta dall utente), la ordini in ordine crescente Soluzione
DettagliEsercitazioni di Fondamenti Informatica - Modulo A 1
Esercitazioni di Fondamenti Informatica - Modulo A 1 Raccolta requisiti Progettazione Implementazione Errori Sintattici Errori Semantici CICLO DI VITA DEL SOFTWARE Debug Test Trasferimento Assistenza Ammodernamento
DettagliAlgoritmi e Strutture Dati. Capitolo 4 Ordinamento: Selection e Insertion Sort
Algoritmi e Strutture Dati Capitolo 4 Ordinamento: Selection e Insertion Sort Ordinamento Dato un insieme S di n elementi presi da un dominio totalmente ordinato, ordinare S in ordine non crescente o non
DettagliErrori di programmazione Università degli Studi di Milano
Errori di programmazione Lo sviluppo di programmi è ovviamente soggetto ad errori da parte del programmatore. Gli errori sono generalmente di due tipi: Errori di sintassi (syntax errors): violazioni della
Dettagliliceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA
INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE PROGRAMMAZIONE BIENNIO: SECONDA DISCIPLINA: INFORMATICA PIANO DI LAVORO DEL DOCENTE / RELAZIONE FINALE Anno scolastico 2014/2015 DOCENTE Prof. PAOLO ARMANI CLASSE:
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case
DettagliErrori di programmazione
Errori di programmazione Lo sviluppo di programmi è ovviamente soggetto ad errori da parte del programmatore. Gli errori sono generalmente di due tipi: Errori di sintassi (syntax errors): violazioni della
DettagliIntroduzione al MATLAB c Parte 3 Script e function
Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://www.ing.unibs.it/gastaldi/ Indice 1 M-file di tipo Script e Function Script Function 2 Gestione
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 3: Istruzioni ed operatori booleani. Vittorio Scarano Corso di Laurea in Informatica Università di Salerno Soluzioni agli esercizi Istruzioni (statement) semplici e di controllo
DettagliMATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA
MATLAB I/O Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA Funzione input valore = input( inserisci un valore ); Matlab stampa a video la stringa inserisci un valore ed aspetta di ricevere
DettagliProgrammazione 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
DettagliIntroduzione al MATLAB c Parte 3 Script e function
Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 M-file di tipo Script e Function Script Function 2 Gestione dell
DettagliIntroduzione al MATLAB c Parte 3 Script e function
Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 M-file di tipo Script e Function Script Function 2 Gestione dell
DettagliRappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
DettagliIntroduzione al MATLAB c Parte 2
Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 24 settembre 2007 Outline 1 M-file di tipo Script e Function Script Function 2 Elementi di programmazione
DettagliInformatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi
Informatica Generale Andrea Corradini 13 - Gli algoritmi e la risoluzione di problemi Sommario Passi per la risoluzione di problemi Problemi di ricerca e ordinamento Algoritmi iterativi: la ricerca lineare
Dettagli8 Introduzione MATLAB
8.1 Basi Per pulire il workspace (eliminare tutte le variabili esistenti): 1 clear Per pulire la finestra dei comandi (command window): 1 clc In MATLAB non è necessario dichiarare le variabili ed esse
DettagliESERCITAZIONE N.2 LINGUAGGIO C. In preparazione alla prova in Itinere
ESERCITAZIONE N.2 LINGUAGGIO C In preparazione alla prova in Itinere ORDINARE UN ARRAY INVERTIRE IL VALORE DI DUE VARIABILI Le due operazioni di assegnamento non possono essere contemporanee (deve esserci
DettagliSilvia Rossi. Cenni sulla complessità. Informatica. Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Programmazione I
Silvia Rossi Cenni sulla complessità 23 Lezione n. Parole chiave: Corso di Laurea: Informatica Insegnamento: Programmazione I Email Docente: srossi@na.infn.it A.A. 2009-2010 Abbiamo visto che dato un problema
DettagliSpecifica, progetto e verifica della correttezza di algoritmi iterativi
Specifica, progetto e verifica della correttezza di algoritmi iterativi Il metodo delle asserzioni Ragionamenti su di un algoritmo Ragionare sulla specifica di un algoritmo data con pre e post-condizioni
DettagliEsercizio: Linear Congruential Generator
Elementi di Informatica e Applicazioni Numeriche T Esercizio: Linear Congruential Generator Esercizio: Linear Congruential Generator Si consideri la successione (linear congruential generator): X n+1 =
DettagliIntroduzione a MATLAB
Università degli Studi di Napoli Federico II CdL Ing. Elettrica Corso di Laboratorio di Circuiti Elettrici Introduzione a MATLAB Dr. Carlo Petrarca Dipartimento di Ingegneria Elettrica Università di Napoli
DettagliFondamenti di Informatica
Fondamenti di Informatica (La Ricorsione e Debugging) Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2017/18 OUTLINE La ricorsione - Principi base Caso Studio
DettagliProgrammare. Condizioni logiche. Condizioni Logiche Costrutti Decisionali Costrutti di Ciclo
Programmare Condizioni Logiche Costrutti Decisionali Costrutti di Ciclo Condizioni logiche Le condizioni logiche sono istruzioni che fanno uso di: operatori relazionali (servono a confrontare il valore
DettagliCominciamo ad analizzare la rappresentazione delle informazioni... di Cassino. C. De Stefano Corso di Fondamenti di Informatica Università degli Studi
Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono l algoritmo Cominciamo ad analizzare la
DettagliUniversità degli Studi di Ferrara Corso di Laurea in Chimica - A.A
Università degli Studi di Ferrara Corso di Laurea in Chimica - A.A. 2018-2019 Programmazione Lezione 12A Esercizi in MATLAB Docente: Lorenzo Caruso lorenzo.caruso@unife.it Nelle lezioni precedenti Matlab:
DettagliI/O e strutture di controllo
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2009/2010 I/O e strutture di controllo La presente dispensa e da utilizzarsi
DettagliPASCAL: I VETTORI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI. Informatica
PASCAL: I VETTORI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI Informatica I dati strutturati: gli array I vettori (o Array) Fino a ora abbiamo memorizzato le informazioni (valori)
DettagliIntroduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09
Introduzione all ambiente MATLAB Richiami II Programmazione MATLAB MATLAB non è un vero e proprio linguaggio di programmazione, ma permette comunque di realizzare programmi utilizzando le classiche strutture
DettagliLab 04 Programmazione Strutturata"
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 04 Programmazione Strutturata" Lab04 1 Valutazione in cortocircuito (1)" In C, le espressioni booleane sono valutate
DettagliMini-Corso di Informatica
Mini-Corso di Informatica CALCOLI DI PROCESSO DELL INGEGNERIA CHIMICA Ing. Sara Brambilla Tel. 3299 sara.brambilla@polimi.it Note sulle esercitazioni Durante le esercitazioni impareremo a implementare
DettagliFondamenti di Informatica T1. Lab 03 Istruzioni. Lab03 1
Fondamenti di Informatica T1 Lab 03 Istruzioni Lab03 1 Esercizio 1 Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media. Lab03 2 #include main()
DettagliDisegnare nell intervallo [0, 1] con precisione 0.01 il grafico delle seguenti quattro funzioni
28 gennaio 2008 Nota: Creare all interno della cartella C:\\ Users una cartella in cui mettere tutti i file. Come nome della cartella usate il vostro cognome Trascinare l icona della cartella col vostro
DettagliFONDAMENTI DI INFORMATICA
FONDAMENTI DI INFORMATICA Prof. Alfredo Accattatis Slide (rielaborate) del prof. Emiliano Casalicchio accattatis@ing.uniroma2.it Esercizio (1) Dati due vettori V1 e V2 scrivere un algoritmo che permetta
DettagliAlgoritmi di ordinamento
Capitolo 7 Algoritmi di ordinamento 7.1 Selection sort L algoritmo di ordinamento per selezione opera nel modo seguente: supponiamo che i primi k elementi siano ordinati; l algoritmo sceglie il minimo
DettagliFondamenti di Informatica T-1 Modulo 2
Fondamenti di Informatica T-1 Modulo 2 Obiettivi di questa lezione 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Valutazione in cortocircuito In C, le espressioni booleane sono
DettagliIntroduzione all ambiente MATLAB. Richiami II. Analisi Numerica - A.A. 2007/08
Introduzione all ambiente MATLAB Richiami II Programmazione MATLAB MATLAB non è un vero e proprio linguaggio di programmazione, ma permette comunque di realizzare programmi utilizzando le classiche strutture
DettagliIl primo programma C++
Il primo programma C++ Un programma in qualsiasi linguaggio evoluto è una sequenza di istruzioni che la CPU dopo opportune conversioni esegue. La sintassi dei linguaggi di programmazione è molto piu rigida
DettagliLaboratorio di Python
Laboratorio di Python Esercizi di debug Lab07 27 Marzo 2018 Outline Correzione esercizi per oggi Debug Strategia Esercizi di debug Esercizi per casa Outline Correzione esercizi per oggi Debug Strategia
DettagliEsercizi su array di array
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E10 C. Limongelli Gennaio 2010 1 Contenuti Fusione di due array ordinati, con eliminazione di duplicati Verifica array bidimensionale
DettagliALGORITMI DI ORDINAMENTO E RICERCA BINARIA. Docente: Giorgio Giacinto AA 2008/2009. problema dell ordinamento in modi diversi
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2
DettagliLaboratorio di Matlab
Laboratorio di Matlab Alessandro Formaglio Dipartimento di Ingegneria dell Informazione, Università di Siena alex@dii.unisi.it http://www.dii.unisi.it/ control/matlab/labmatlab.html 9 Luglio 2009 DII -
DettagliFondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento
Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento
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
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa E04 Esercizi sui problemi di ordinamento C. Limongelli Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Algoritmi di Ordinamento
Dettagli8 Introduzione MATLAB
8.1 Basi Per pulire il workspace (eliminare tutte le variabili esistenti): 1 clear Per pulire la finestra dei comandi (command window): 1 clc In MATLAB non è necessario dichiarare le variabili ed esse
DettagliDIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOIGNEGNERIA. INFORMATICA B Ingegneria Elettrica. Script in Matlab
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOIGNEGNERIA INFORMATICA B Ingegneria Elettrica Script in Matlab Gli script Uno script è un file di testo contenente una sequenza di comandi MATLAB (è un programma
DettagliEsercitazioni di Fondamenti Informatica - Modulo A 1
Esercitazioni di Fondamenti Informatica - Modulo A 1 Da MSDN: The while statement executes a statement or a block of statements until a specified expression evaluates to false while ( expression ) statement
DettagliEsercizio 1" input tre numeri interi e stampi a video la loro somma e la media. n Realizzare un programma che legga da. Lab03 2
Fondamenti di Informatica e Laboratorio T-AB e Fondamenti di Informatica T1 Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione a.a. 2011/2012 Lab 03 Istruzioni" Lab03 1 Esercizio
DettagliCostrutti condizionali e iterativi
Costrutti condizionali e iterativi Introduction to modern Fortran Paolo Ramieri, CINECA Maggio 2017 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle
DettagliINFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 2 Dott. Michele Zanella Ing. Gian Enrico Conti
INFORMATICA A Titolo presentazione sottotitolo A.A. 2018-19 Milano, XX mese 20XX Laboratorio n 2 Dott. Michele Zanella Ing. Gian Enrico Conti Info Logistiche Contatti: michele.zanella@polimi.it (Squadra
DettagliDebug di un programma
Debug di un programma Col termine Debug si intende una fase di sviluppo del software, nella quale si cerca di eliminare gli errori dal programma Due tipi di errori: Errori sintattici, rilevati sempre dal
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 7: Istruzioni ed Operatori Booleani Vittorio Scarano Corso di Laurea in Informatica Soluzioni agli esercizi Istruzioni (statement) semplici e di controllo Operatori relazionali
DettagliFondamenti di Informatica
Algoritmi di ordinamento Gli ordinamenti interni sono fatti su sequenze in memoria centrale Fondamenti di Informatica 18. Algoritmi di ordinamento in C++ Gli ordinamenti esterni sono fatti su sequenze
DettagliStrutture di controllo condizionali in Matlab
Strutture di controllo condizionali in Matlab Informatica B Le strutture condizionali A cosa servono le strutture condizionali? %Inserimento dei parametri della parabola: y=ax^2+bx+c a = input( inserire
DettagliOrdinare un vettore significa ridisporre i suoi elementi in modo tale che siano ordinati tra di loro (l ordinamento più comune è per valore crescente)
Ordinare un vettore significa ridisporre i suoi elementi in modo tale che siano ordinati tra di loro (l ordinamento più comune è per valore crescente) 5 33 23 17 6 9 81 3 i j Confronto a due a due tutte
DettagliFondamenti di informatica T-1 (A K) Esercitazione 6: Eclipse
Fondamenti di informatica T-1 (A K) Esercitazione 6: Eclipse AA 2018/2019 Tutor lorenzo.rosa@unibo.it 2 Esercitazione 6 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del flusso Eclipse
DettagliFondamenti di Informatica A. A. 2018/19
Fondamenti di Informatica Prof. Marco Lombardi A. A. 2018/19 AlgoBuild: Strutture Iterative e Selettive OUTLINE Blocco condizionale (Struttura selettiva IF - IF/ELSE) Esempi Cicli a condizione iniziale
DettagliUniversità degli Studi di Ferrara
Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2018-2019 Programmazione Lezione 5 Controllo di Flusso Docente: Michele Ferrari - michele.ferrari@unife.it Informazioni Inizio tutorato
DettagliAssegnazione di una variabile
Assegnazione di una variabile Per scrivere un valore dentro una variabile si usa l operatore di assegnazione, che è rappresentato dal simbolo =. Quindi, se scrivo int a; a = 12; assegno alla variabile
DettagliFondamenti di Informatica T1. Lab 03 Istruzioni. Lab03 1
Fondamenti di Informatica T1 Lab 03 Istruzioni Lab03 1 Esercizio 1 Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media. Lab03 2 scanf: STRINGA DI FORMATO
DettagliMetodi numerici con elementi di Programmazione A.A
Metodi numerici con elementi di Programmazione A.A. 2013-2014 Introduzione al MatLab VI parte 1 Docente: Vittoria Bruni Email: vittoria.bruni@sbai.uniroma1.it Ufficio: Via A. Scarpa, Pal. B, I piano, Stanza
DettagliAlgebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
DettagliRICONOSCIMENTO DI FORME A.A OBIETTIVI PARTE 1 INTRODUZIONE A MATLAB
RICONOSCIMENTO DI FORME A.A. 2006-2007 PARTE 1 OBIETTIVI Implementare semplici algoritmi di Pattern Recognition utilizzando l ambiente Matlab Svolgere esperimenti di classificazione utilizzando gli algoritmi
DettagliFondamenti di Informatica 6. Algoritmi e pseudocodifica
Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
DettagliStrutture di Controllo
Strutture di Controllo Istruzioni condizionali e cicli http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Fino ad ora, il nostro
DettagliArray e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 17. A. Miola Gennaio 2012
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 17 A. Miola Gennaio 2012 1 Contenuti q Array paralleli q Array e oggetti q Ricerca sequenziale q Ricerca binaria q Fusione di sequenze
DettagliFONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis Slide (rielaborate) del prof. Emiliano Casalicchio
FONDAMENTI DI INFORMATICA Prof. Alfredo Accattatis Slide (rielaborate) del prof. Emiliano Casalicchio Fondamenti di Informatica a.a. 15/16- A. Accattatis 2 Dimensioni (Size) di vettori e matrici Problema:
Dettagliosservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1
Esempio: Leggere due interi positivi e calcolarne il massimo comun divisore. MCD(12, 8) = 4 MCD(12, 6) = 6 MCD(12, 7) = 1 Sfruttando direttamente la definizione di MCD osservazione: 1 MCD(m,n) min(m,n)
DettagliAppunti di informatica. Lezione 8 anno accademico Mario Verdicchio
Appunti di informatica Lezione 8 anno accademico 2016-2017 Mario Verdicchio Il ciclo FOR Molto spesso in un programma bisogna ripetere un operazione per un numero prefissato di volte Si tratta di un iterazione
Dettagli19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso
Dettaglia.a Codice corso: 21012
ESERCIZIO 1 Scrivere un programma in linguaggio C che lette dallo standard input due sequenze vettoriali ordinate di interi V1[n], V2[m] ne crei una terza V3[n+m] anch essa ordinata, che contenga tutti
DettagliProgrammazione I - corso B a.a prof. Viviana Bono
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 2009-10 prof. Viviana Bono Blocco 15 Algoritmi su array: selection sort, insertion sort, fusione
DettagliFondamenti di Informatica
Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile
DettagliLinguaggio C - le strutture di controllo: sequenza, selezione, iterazione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione
DettagliLaboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algebra di Boole Stefano Cagnoni Algebra di Boole L algebra
DettagliIntroduzione a MATLAB
Introduzione a MATLAB Laboratorio 1 Segnali per le Telecomunicazioni Prof. Prati Claudio Maria Autore: Federico Borra Politecnico di Milano, DEIB Email: federico.borra@polimi.it Marzo 17, Ultima revisione:
DettagliCostrutti condizionali e iterativi
Costrutti condizionali e iterativi Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle istruzioni
DettagliFONDAMENTI DI INFORMATICA
FONDAMENTI DI INFORMATICA Prof. Alfredo Accattatis Slide (rielaborate) del prof. Emiliano Casalicchio accattatis@ing.uniroma2.it Fondamenti di Informatica a.a. 2015/16 - A. Accattatis 2 In questa lezione:
DettagliCorso di Laboratorio di Sistemi Operativi
Corso di Laboratorio di Sistemi Operativi Lezione 4 Alessandro Dal Palù email: alessandro.dalpalu@unipr.it web: www.unipr.it/~dalpalu Approfondimento su make http://http://capone.mtsu.edu/csdept/facilitiesandresources/make.htm
DettagliCorso di Laurea Ingegneria Informatica. Dispensa E11. Esercizi su array e. Gennaio 2012
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E11 Esercizi su array e array di array C. Limongelli Gennaio 2012 1 Contenuti Fusione di due array ordinati, con eliminazione di
DettagliINFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 6 Dott. Michele Zanella Ing. Gian Enrico Conti
INFORMATICA A Titolo presentazione sottotitolo A.A. 2018-19 Milano, XX mese 20XX Laboratorio n 6 Dott. Michele Zanella Ing. Gian Enrico Conti Ricorsione La ricorsione è un approccio per la risoluzione
Dettagli