Progettazione di Algoritmi: Approccio Top-Down e Bottom Up
|
|
|
- Oliviero Pellegrino
- 8 anni fa
- Visualizzazioni
Transcript
1 Progettazione di Algoritmi: Approccio Top-Down e Bottom Up
2 Ci sono due approcci fondamentali per progettare algoritmi Servono ambedue ad aiutarci ad affrontare il problema Si chiamano "top-down" e "bottom-up" Sono logicamente opposti......ma in pratica si usano sempre in modo combinato Nelle prossime slide: Li definiremo in modo concettuale Poi mostreremo un esempio
3 Si parte dal problema iniziale Lo si decompone in sottoproblemi Finché questi non diventano banali da risolvere
4 Si parte dalla funzioni disponibili Le si usano per risolvere problemi semplici Fino a risolvere il problema iniziale
5 Problema: confrontare due stringhe della stessa lunghezza Obiettivo: definire una funzione "strcmp": strcmp('cane', 'casa') Risultato: < 0 se la prima parola precede la seconda 0 se sono uguali > 0 se la seconda parola precede la prima
6 Approccio (tendenzialmente) top-down: Partiamo dal problema: function z = strcmp(p1, p2) z = <confronto>; end
7 Approccio (tendenzialmente) top-down: Per confrontare le parole dobbiamo confrontare le lettere: function z = strcmp(p1, p2) z = 0; % assumo che siano uguali for ii = 1:length(p1) <confronto le lettere in posizione ii> end end
8 Approccio (tendenzialmente) top-down: Le lettere possono essere confrontate direttamente: function z = strcmp(p1, p2) z = 0; for ii = 1:length(p1) if p1(ii) < p2(ii) <gestisci il risultato> end if p1(ii) > p2(ii) <gestisci il risultato> end end end
9 Approccio (tendenzialmente) top-down: A questo punto calcolare il risultato è banale: function z = strcmp(p1, p2) z = 0; for ii = 1:length(p1) if p1(ii) < p2(ii) z = -1 break % interrompo la computazione! end if p1(ii) > p2(ii) z = 1 break % interrompo la computazione! end end end
10 Approccio (tendenzialmente) bottom-up: Le stringhe sono vettori di numeri: possiamo confrontarle function z = strcmp(p1, p2) s1 = p1 < p2 s2 = p1 > p2 end Se provo ad invocare la funzione ottengo: strcmp('cane', 'casa') % stampa [0, 0, 1, 0] % stampa [0, 0, 0, 1] Il risultato dipende da dove (s1 ed s2) si trova l'1 più a sinistra
11 Funzione find Octave offre la funzione: Input: find(v) % denota gli indici dei valori ~= 0 in V find(v, N) % denota i primi N indici di cui sopra Un vettore, oppure un vettore ed un intero Output: Un vettore con gli indici degli elementi non nulli Solo i primi N indici, se viene passato un intero
12 Approccio (tendenzialmente) bottom-up: Posso usare find per trovare la posizione degli 1 function z = strcmp(p1, p2) s1 = p1 < p2; s2 = p1 > p2; n1 = find(s1, 1) n2 = find(s2, 1) end Se provo ad invocare la funzione ottengo: strcmp('cane', 'casa') % stampa 3 % stampa 4
13 Approccio (tendenzialmente) bottom-up: La differenza tra n1 ed n2 fornisce il risultato function z = strcmp(p1, p2) s1 = p1 < p2; s2 = p1 > p2; n1 = find(s1, 1); n2 = find(s2, 1); z = n1 - n2 end Se provo ad invocare la funzione ottengo: strcmp('cane', 'casa') % denota -1 (< 0)
14 Approccio (tendenzialmente) bottom-up: Aggiungiamo una piccola modifica per gestire stringhe identiche: function z = strcmp(p1, p2) s1 = p1 < p2; s2 = p1 > p2; n1 = find(s1, 1); n2 = find(s2, 1); if length(n1) == 0 z = 0 else z = n1 - n2 end end
15 Il metodo top-down Aiuta ad affrontare il problema in modo ordinato (PRO) Facilita la verifica di correttezza del programma (PRO) Può rendere difficile esaminare i risultati parziali (CON) Il metodo bottom-up È un po' disordinato e non facilita la verifica di correttezza (CON) Può essere più veloce, sia da scrivere che da eseguire (PRO) Permette facilmente di esaminare i risultati parziali (PRO) Di fatto, si usano sempre insieme
16 Costruzione Rapida di Vettori e Matrici
17 Vediamo alcune funzioni per costruire vettori/matrici Per ottenere una matrice M x N di zeri: zeros(m, N) Restituisce una matrice M x N di 1: ones(m, N) Per ottenre una matrice M x N di numeri casuali in (0, 1) rand(m, N) Ricorda che un vettore per Octave è una matrice
18 Esercizio: Prodotto di un Vettore (F)
19 Octave fornisce una funzione per calcolare il prodotto di un vettore: prod(x) Definite una nuova funzione: XXX_prod(V) % XXX è un qualunque prefisso Che calcoli il prodotto di un vettore V, passato come argomento Qualche dritta: La funzione deve essere in un file di nome XXX_prod.m Usate rand per ottenere vettori casuali e fare test Confrontate i risultati con quelli di prod
20 Esercizio: Distanza Euclidea (F)
21 Octave fornisce una funzione per calcolare la norma di un vettore: norm(x, P) % usate help per i dettagli X è il vettore P è l'ordine della norma Per P = 2, la funzione calcola la distanza euclidea dall'origine:
22 Definite una nuova funzione: XXX_norm(X) % XXX è un qualunque prefisso Che calcoli la norma di ordine due del vettore X Qualche dritta: La funzione deve essere in un file di nome ch3_prod.m Usate rand per ottenere vettori casuali e fare test La radice quadrata si può calcolare con: La funzione sqrt L'elevamento a potenza.^0.5
23 Esercizio: Argmax (F)
24 Octave permette di trovare il massimo elemento di un vettore con: max(x) La funzione può restituire anche due risultati Se invocata con due elementi a sinistra dell'operatore "=": [V, I] = max(x) La funzione restituisce: Il massimo elemento in V Il primo indice a cui può essere trovato in I Così, svolge anche il ruolo della funzione matematica
25 Definite una nuova funzione: [V, I] = XXX_max(X) % XXX è un qualunque prefisso Che replica il comportamento di max in Octave, restituendo: In V il massimo elemento del vettore X In I l'indice della sua prima occorrenza Per definire una funzione che restituisce più argomenti la sintassi è: function [<r1>, <r2>,...] = <nome>(<p1>, <p2>,...)... end
26 Esercizio: Prodotto Scalare (F)
27 Octave permette di effettuare il prodotto scalare con: X * Y' % HP: vettori riga dot(x, Y) % funzione dedicata X e Y sono due vettori della stessa lunghezza Definite una nuova funzione: XXX_dot(X, Y) % scegliete il prefisso XXX Che replichi la stessa funzionalità Usare sempre i comandi di Octave per controllare se funziona
28 Esercizio: Elementi Non Nulli (M)
29 Octave fornisce la funzione: find(x) che restituisce gli indici degli elementi diversi da 0 Definite una nuova funzione: XXX_find(X) % scegliete il prefisso XXX Che replichi tale funzionalità. Usare sempre i comandi di Octave per controllare se funziona
30 Esercizio: Matrice Diagonale (F/D)
31 Octave permette di costruire una matrice diagonale con: diag(x) Restituisce una matrice diagonale Gli elementi sulla diagonale sono quelli del vettore X
32 Definite una nuova funzione: XXX_diag(X) % XXX è un qualunque prefisso Che replichi il comportamento di diag in Octave Qualche dritta: Ridate un'occhiata alla lista di funzioni per costruire vettori/matrici Usate la funzione di Octave per controllare la correttezza
33 Esercizio: Indicizzazione mediante Vettore (F/M)
34 Abbiamo visto che Octave permette di accedere ad un vettore con: V(I) V è un vettore I è un vettore di indici Definite una nuova funzione: XXX_index(V, I) Che replica la stessa funzionalità Usare sempre i comandi di Octave per controllare se funziona
35 Esercizio: Indicizzazione con Valori Logici (M/D)
36 Abbiamo visto che Octave permette di accedere ad un vettore con: V(I) V è un vettore I è un vettore di valori logici Definite una nuova funzione: XXX_index2(V, I) Che replica la stessa funzionalità Usare sempre i comandi di Octave per controllare se funziona
37 Esercizio: Elementi Distinti (D)
38 Octave fornisce la funzione: unique(x) X che restituisce gli elementi distinti del vettore X Definite una nuova funzione: XXX_unique(X, Y) % scegliete il prefisso XXX Che replichi la stessa funzionalità Octave ordina anche l'array di uscita: noi non lo faremo Usare sempre i comandi di Octave per controllare se funziona
39 Esercizio: Identificazione di Numeri Primi (D)
40 Octave fornisce la funzione: isprime(n) che individua se il numero N è primo Definite una nuova funzione: XXX_isprime(N) % scegliete il prefisso XXX Che replichi tale funzionalità Un numero è primo se è divisibile sono per 1 e per se stesso Si intende: divisibile secondo la divisione intera
41 Octave permette di calcolare la divisione intera con: idivide(x, y) E il resto della divisione intera con: mod(x, y) Esempio: idivide(5, 2) % denota 2 mod(5, 2) % denota 1 x è divisibile per y sse il resto è 0
Laboratorio di Informatica
Laboratorio di Informatica Seconda lezione a Python Dottore Paolo Parisen Toldin - [email protected] Dottoressa Sara Zuppiroli - [email protected] L'importanza di capire Perché non dobbiamo dichiarare
Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A
Esercizi di MatLab Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, AA 2017 2018 Gli esercizi sono divisi in due gruppi: fondamentali ed avanzati I primi sono
Fondamenti di Informatica
Fondamenti di Informatica Strutture Selettive, Iterative e Gestione File in MATLAB: Esercitazione 2 Prof. Arcangelo Castiglione A.A. 2016/17 Esercizio 1 Scrivere una funzione che prenda in input una matrice
Confronto tra stringhe. (modulo) Calcolo della media e della varianza. Ecco un elenco di codici Matlab: - Calcolo valore assoluto (modulo)
Ecco un elenco di codici Matlab: - Calcolo valore assoluto (modulo) - Calcolo media e varianza - Concatenare stringhe e conversione da numero a stringa - Numero di Eulero - Modificare un file fig in Matlab
CORSO DI LAUREA IN INGEGNERIA ELETTRICA
CORSO DI LAUREA IN INGEGNERIA ELETTRICA Informatica B anno accademico 2013-2014 Prof. Danilo ARDAGNA Esercitazione 05.06.2014 Esercizio 1. (Agenzia di viaggi - accesso ai file) Un'agenzia di viaggi possiede
Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione
Algoritmi greedy Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Gli algoritmi greedy sono algoritmi basati sull idea
Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1
Matlab 5 Funzioni Slide basate sul corso di C. Blundo A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 1 Funzioni Le funzioni sono utili quando occorre ripetere una serie di comandi più
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
Esercizi su Python. 14 maggio Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che:
Esercizi su Python 14 maggio 2012 1. Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che: 1. conti quanti elementi pari sono presenti nella lista; 2. conti quanti quadrati
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
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[]
Il 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
Introduzione 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
MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)
MATLAB c M-file. Lucia Gastaldi Dipartimento di Matematica http://dm.ing.unibs.it/gastaldi/ Lezione 4 (15 ottobre 2003) Esercizio Problema 3: la successione di funzioni f n (x) = (x 2 x) n per 0 x 1 è
Progetto Matlab N 2. Calcolo Numerico 6 CFU. Corso di Laurea in Ingegneria delle Comunicazioni 31/05/2014
Progetto Matlab N 2 Calcolo Numerico 6 CFU Corso di Laurea in Ingegneria delle Comunicazioni 31/05/2014 Procedimento 1. Scrivere una function che implementi il prodotto matrice-vettore AX con A matrice
Laboratorio di Python
Laboratorio di Python Matrici con Liste Lab09 5 Aprile 2017 Outline Correzione esercizi per oggi Matrici Teoria Esercizi Esercizi per casa Esercizio 1 per casa Scrivere una funzione che verifica se una
1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.
Esercizi di Matlab L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi. Esempio Consideriamo la matrice A formata da n = righe e m = colonne M = 5 6 7 8. 9 0
I. Foglio di esercizi su vettori linearmente dipendenti e linearmente indipendenti. , v 2 = α v 1 + β v 2 + γ v 3. α v 1 + β v 2 + γ v 3 = 0. + γ.
ESERCIZI SVOLTI DI ALGEBRA LINEARE (Sono svolti alcune degli esercizi proposti nei fogli di esercizi su vettori linearmente dipendenti e vettori linearmente indipendenti e su sistemi lineari ) I. Foglio
Laboratorio di Python
, Input da tastiera, Iterazione incondizionata 7 marzo 2014 Sommario 1 2 3 Outline 1 2 3 Definizione di funzione import modulo Si importa il modulo specificato def nome_f(par 1,, par n ) : Si definiscono
Esercitazioni con GNU Octave
appendice A Esercitazioni con GNU Octave GNU Octave può essere scaricato dalla seguente pagina: https://www.gnu.org/software/octave/download.html L elenco dei concetti, delle funzioni e degli operatori
Le funzioni in JavaScript. Modularizzazione
Modularizzazione Quando abbiamo a che fare con un problema complesso spesso lo suddividiamo in problemi più semplici che risolviamo separatamente, per poi combinare insieme le soluzioni dei sottoproblemi
Note per la Lezione 6 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 6 Ugo Vaccaro Ancora sulla tecnica Programmazione Dinamica Nella lezione scorsa abbiamo appreso che la tecnica Divide-et-Impera,
Laboratorio di Python
25 marzo 2015 Sommario 1 2 Esercizi a casa Scrivere un unico programma, che attraverso un menù di selezione restituisca i risultati delle funzioni che seguono, senza uscire dal programma se non selezionando
Problemi, istanze, soluzioni
lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un
2. Risolvere con il metodo di eliminazione di Gauss con pivoting parziale il seguente sistema lineare:
Esercizi sui metodi diretti per la risoluzione di sistemi lineari 1. Data la matrice 1 0 2 1 3 1 5 2 1 determinare la sua fattorizzazione P LR. Risolvere il sistema Ax = b con b = (3, 5, 6) T mediante
Sviluppo di programmi
Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla
Introduzione 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
Laboratorio di Calcolo Numerico
Laboratorio di Calcolo Numerico Lezione 3 Padova, April 4th 2016 F. Piazzon Department of Mathematics. Doctoral School in Mathematical Sciences, Applied Mathematics Area Outline Lab. 3-2 of 16 1 Costrutti
MATLAB Elementi di grafica Costrutti di programmazione
MATLAB Elementi di grafica Costrutti di programmazione Operazioni punto Le operazioni punto agiscono su array che abbiano le stesse dimensioni:.* prodotto elemento per elemento./ divisione elemento per
A.S Classe III H Informatica. Programma didattico finale e indicazioni per il recupero estivo relativi all'insegnamento di Informatica
O. BELLUZZ I - L. DA VINCI Prot.8480/6.3 del 05/07/2017 A.S. 2016-2017 Classe III H Informatica Programma didattico finale e indicazioni per il recupero estivo relativi all'insegnamento di Informatica
MATLAB (II parte) Commenti. Input/Output (I/O) Istruzioni di Input/Output (I/O)
Commenti (II parte) Sequenze di caratteri precedute da % Es. % Questo è un commento Vengono ignorati nell'esecuzione di un programma ma servono a chiarire il significato del programma Possono essere inseriti
LABORATORIO DI INFORMATICA ESERCITAZIONE VIII
LABORATORIO DI INFORMATICA ESERCITAZIONE VIII Cercate di eseguire gli esercizi da soli. Se non ci riuscite, cercate di capire i messaggi di errore. Se non ci riuscite, provateci di nuovo. Poi chiamate
PROVETTE D ESAME. Algoritmi e Strutture Dati
PROVETTE D ESAME Algoritmi e Strutture Dati ESERCIZIO 1 Si ottengano limiti superiori e inferiori per la seguente ricorrenza ESERCIZIO 1 ESERCIZIO 2 Dato un albero binario T, il grado di sbilanciamento
osservazione: 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)
3. Matrici e algebra lineare in MATLAB
3. Matrici e algebra lineare in MATLAB Riferimenti bibliografici Getting Started with MATLAB, Version 7, The MathWorks, www.mathworks.com (Capitolo 2) Mathematics, Version 7, The MathWorks, www.mathworks.com
Mini-Corso di Informatica
Mini-Corso di Informatica CALCOLI DI PROCESSO DELL INGEGNERIA CHIMICA Ing. Sara Brambilla Tel. 3299 [email protected] Note sulle esercitazioni Durante le esercitazioni impareremo a implementare
Laboratorio di algoritmi e strutture dati
Laboratorio di algoritmi e strutture dati Docente: Violetta Lonati Giovedì 6 ottobre 206 Esercizi introduttivi. Rovescia Scrivete un programma che legga una sequenza di numeri interi terminata da 0 e li
Algoritmi e dintorni: La radice quadrata Prof. Ettore Limoli. Formule iterative
Algoritmi e dintorni: La radice quadrata Prof. Ettore Limoli Formule iterative L algoritmo che, comunemente, viene presentato a scuola per l estrazione della radice quadrata è alquanto laborioso e di scarsa
Caratteri e stringhe
Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un
Rappresentazione dell Informazione
Rappresentazione dell Informazione Rappresentazione delle informazioni in codice binario Caratteri Naturali e Reali positivi Interi Razionali Rappresentazione del testo Una stringa di bit per ogni simbolo
Programmazione di INFORMATICA e Laboratorio
ISIUO ECNICO SAALE settore ECNOLOGICO ad indirizzo: Elettronica ed Elettrotecnica - Informatica e elecomunicazioni Meccanica, Meccatronica ed Energia "VIORIO EMANUELE III" Via Duca della Verdura, 48-90143
Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso
Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura
Anno 4 Matrice inversa
Anno 4 Matrice inversa 1 Introduzione In questa lezione parleremo della matrice inversa di una matrice quadrata: definizione metodo per individuarla Al termine della lezione sarai in grado di: descrivere
Lezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo [email protected] Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
Complementi di Matematica e Calcolo Numerico A.A Laboratorio 4 - Polinomi e Interpolazione polinomiale
Complementi di Matematica e Calcolo Numerico A.A. 2013-2014 Laboratorio 4 - Polinomi e Interpolazione polinomiale Polinomi e vettori Matlab non prevede un oggetto particolare di tipo polinomio, ma rappresenta
Inversa di una matrice quadrata. L operatore inv() inverte una matrice quadrata non singolare (cioè in cui il determinate è diverso da zero).
Inversa di una matrice quadrata L operatore inv() inverte una matrice quadrata non singolare (cioè in cui il determinate è diverso da zero). richiami di algebra lineare TRASPOSIZIONE DI MATRICE Il calcolo
Algoritmi e strutture di dati 2
Paola Vocca Lezione 4: Programmazione dinamica 1 Caratteristiche Programmazione dinamica: paradigma basato sullo stesso principio utilizzato per il divide et impera o il problema viene decomposto in sotto-problemi
C: panoramica. Violetta Lonati
C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati
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
Costrutti 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
Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base
Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1. Sia T una stringa arbitraria di lunghezza n 1 su un alfabeto Σ. È sempre possibile
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
% Dato un vettore in ingresso ed un numero a (entrambi float) % controllare quante occorrenze del numero sono presenti % nel vettore.
ESERCIZIO 1 Dato un vettore in ingresso ed un numero a (entrambi float) controllare quante occorrenze del numero sono presenti nel vettore. In seguito elencare i numeri diversi da a presenti nel vettore
= < < < < < 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
Laboratorio di Python
Problem solving, Ricorsione, Università di Bologna 13 e 15 marzo 2013 Sommario 1 2 3 4 Errore di semantica Esercizio def vocali(s): voc='' for c in s: if c in 'aeiou': voc=voc+c return voc Cerchiamo di
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):
Fondamenti 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
Sistemi lineari. Lucia Gastaldi. DICATAM - Sez. di Matematica,
Sistemi lineari Lucia Gastaldi DICATAM - Sez. di Matematica, http://www.ing.unibs.it/gastaldi/ Indice 1 Risoluzione di sistemi lineari Risoluzione di sistemi lineari in Matlab Metodi di risoluzione Fattorizzazione
Codice Gray. (versione Marzo 2007)
Codice Gray (versione Marzo 27) Data una formula booleana con n variabili, per costruire una tavola di verità per questa formula è necessario generare tutte le combinazioni di valori per le n variabili.
MATLAB - Programmazione - 2. Antonino Polimeno
MATLAB - Programmazione - 2 Antonino Polimeno [email protected] Manipolazione di matrici - 1 Input di matrici Definizione manuale: A = [1, 2, 3; 7, 8, 9] Generazione da funzioni Lettura da file
Programmazione dinamica
Programmazione dinamica Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Programmazione
Laboratorio di Python
Problem solving, Ricorsione, 14 marzo 2014 Sommario 1 2 3 4 Sintassi ed Esempi Esercizi Lunedì il numero di studenti che avevano consegnato gli esercizi era 13. Martedì il numero di esercizi ricevuti,
ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa.
3 ITI - a.s. 2007-2008 Compiti di Informatica ESTATE 2008 ARRAY E STRINGHE Scrivere una funzione che carica da tastiera un array di n elementi e lo stampa invertendo il primo elemento con l'ultimo, il
char* titolo= Libreria sulle stringhe Esempi: (strcpy) (strstr)... Laboratorio di Informatica L-A 1
char* titolo= l, e,, s, t, r, i, n, g, h, e, \0 ; 1 Libreria sulle stringhe La libreria string.h contiene una ricca serie di funzioni per operare sulle stringhe Esempi: copiare una stringa in un altra
Esercizi su algebra lineare, fattorizzazione LU e risoluzione di sistemi lineari
Esercizi su algebra lineare, fattorizzazione LU e risoluzione di sistemi lineari 4 maggio Nota: gli esercizi più impegnativi sono contrassegnati dal simbolo ( ) Esercizio Siano 3 6 8 6 4 3 3 ) determinare
Esercitazione 12. Esercizi di Ricapitolazione
Esercitazione 12 Esercizi di Ricapitolazione Esercizio Scrivere un programma che, dato un numero intero positivo, stampa la sua rappresentazione binaria. ALGORITMO Scriviamo una procedura stampa_bin che,
Modularizzazione del software
Modularizzazione del software Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica
Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 12 Array e Oggetti A. Miola Dicembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Array e Oggetti 1 Contenuti Array paralleli
A lezione sono stati presentati i seguenti passi per risolvere un problema:
Calcolo delle radici di un polinomio Problema: Dati i coefficienti a,b,c di un polinomio di 2 grado della forma: ax^2 + bx + c = 0, calcolare le radici. A lezione sono stati presentati i seguenti passi
