a.a Codice corso: 21012
|
|
- Flaviana Coco
- 5 anni fa
- Visualizzazioni
Transcript
1 Riepilogo sulla ricorsione Un algoritmo o una funzione matematica sono definiti ricorsivamente quando possono essere definiti facendo riferimento a se stessi. Si tratta cioè di un applicazione del principio di induzione matematica: Data una proprietà P, parametrica in n, 1. Si verifica che P è vera per n=n0 (CASO BASE) 2. Fatta l ipotesi che P sia valida per un (n-1) generico, se si può provare che P è vera anche per il caso n, allora P è vera per ogni n>n0. (PASSO DI INDUZIONE) Operativamente, risolvere un problema con un approccio ricorsivo comporta: 1. identificare un caso base la cui soluzione sia nota 2. e riuscire a esprimere la soluzione del caso generico (n) in termini dello stesso problema formulato su casi più semplici (n-1, n-2, ) Le chiamate ricorsive decompongono via via il problema. Un modo di procedere è quello di non calcolare nulla durante questa scomposizione, ma sintetizzare il risultato a partire dalla fine, dopo essere arrivati al caso banale. Il caso banale fornirà il valore di partenza con il quale sintetizzare (comporre), a ritroso, i successivi risultati parziali. Pagina 1 di 13
2 ESERCIZIO 1 Scrivere un programma C che, dato un numero calcola la somma dei primi N numeri pari positivi in maniera ricorsiva. Specifica Liv 1: La somma dei primi N numeri pari è data dalla seguente, Specifica Liv 2: S N = 2*1 + 2*2 + 2* *i + + 2*(N-1) + 2*N. se N =1, S N = 2, (CASO BASE) se N >1, S N = 2 * N + S N-1 (PASSO INDUTTIVO) (somma dell N-esimo numero pari + la somma dei primi N-1 numeri pari.) int somma_pari(int N){ if (N <= 1) return 2; else return 2*N + somma_pari(n-1); Pagina 2 di 13
3 ESERCIZIO 2 Scrivere una funzione che calcoli il valore M N, dove M è un numero in virgola mobile e N un numero intero. 1mo caso: Hp: M intero, N intero con N>=0 Specifica Liv 1: M N = M*M*M* *M; N volte. Specifica Liv 2: Se N = 0, allora M N = 1 (caso base) Se N è pari, allora M N = (M N/2 ) 2 (passo induttivo) Se N è dispari, allora M N = (M N-1 )*M (passo induttivo) per considerare anche il caso di potenze negative cosa occorrerebbe fare? Soluzione: double myexp(double M, int N) { if (N < 0) return myexp(1.0/m, -N); if (N == 0) return 1; if (N % 2 == 0) { long t = myexp(m, N/2); return t*t; if (N % 2 == 1) return M*myExp(M, N-1); Pagina 3 di 13
4 ESERCIZIO 3 Scrivere una funzione ricorsiva void BoomBang(int k) che stampa k volte la stringa Boom seguita dalla stampa della stringa Bang anche essa k volte. Esempio: BoomBang(3) output: Boom Boom Boom Bang Bang Bang void BoomBang(int k) { if (k == 0) return; cout << "Boom "; BoomBang(k-1); cout << "Bang "; Pagina 4 di 13
5 ESERCIZIO 4 Scrivere un sottoprogramma che restituisca il valore massimo di un vettore di interi con procedimento ricorsivo. Specifica Liv 1: Si pensi di assegnare il primo elemento dell array come massimo e confrontarlo con tutti gli altri cambiando il valore del massimo se questo è minore della cella corrente del vettore. Specifica Liv 2: Detta N la lunghezza del vettore array Se N = 1, allora max = array[0] (caso base) Se N > 1, allora il massimo del vettore di N elementi (max) sarà uguale al risultato del confronto tra array[0] e il massimo degli elementi del sottovettore che che va da array[1] a array[n]. (N.B.: quindi è lungo N-1) (passo induttivo) int mymaxarray(int v[], int N) { if (N <= 0) return 0; // valore massimo convenzionale! if (N == 1) return v[0]; else { int t = mymaxarray(&v[1], N-1); if (t > v[0]) return t; else return v[0]; Chiamata nel main(): int vett[3] = {18, 21, 27, lung = 3, m; m = mymaxarray(vett, lung); Pagina 5 di 13
6 Soluzione con prototipo alternative: main(): int mymaxarray(int v[], int indiceinizio, int indicefine) { if (indiceinizio > indicefine) return 0; // valore massimo // convenzionale! if (indiceinizio == indicefine) return v[indiceinizio]; else { int t = mymaxarray(v, 1+indiceInizio, indicefine); if (t > v[indiceinizio]) return t; else return v[indiceinizio]; Chiamata nel main(): int vett[3] = {18, 21, 27, lung = 3, m; m = mymaxarray(vett, 0, lung-1); Pagina 6 di 13
7 ESERCIZIO 5.1 Scrivere un sottoprogramma che inverta un vettore di interi con procedimento ricorsivo. Svolgere l esercizio, considerando i due prototipi alternativi, mostrati di seguito. void invertivettore(int v[], int n) { Chiamata nel main(): int vett[3] = {18, 21, 27, lung = 3, m; invertivettore(vett, lung); Prototipo alternativo: void invertivettore(int v[], int indiceinizio, int indicefine) { Chiamata nel main(): int vett[3] = {18, 21, 27, lung = 3, m; invertivettore(v, 0, lung-1); Pagina 7 di 13
8 ESERCIZIO 5.2 Scrivere un sottoprogramma ricorsivo che preso come parametro una stringa ritorni 1 se la stringa è palindroma e 0 altrimenti. Pagina 8 di 13
9 ESERCIZIO 6 Calcolo del coefficiente binomiale Scrivere un programma C/C++ che stampi sullo standard output tutti i valori del triangolo di Tartaglia per un certo ordine N, utilizzando una funzione ricorsiva per il calcolo dei coefficienti binomiali, avente il seguente prototipo: int cobin(int n, int k); La costruzione del triangolo di Tartaglia è mostrata di seguito. Si ricorda inoltre che ognuno dei coefficienti del triangolo prende il nome di coefficiente binomiale cobin(n, k) k= n = n = n = n = n = n = 5. Soluzione: Leggendo la figura del triangolo di Tartaglia riga per riga, è possibile dedurre come il calcolo di ognuna di esse sia funzione della riga precedente. Il calcolo dei coefficienti binomiali segue dunque le seguenti regole: calcolo dei coefficienti agli estremi di una riga: con k == 0 e k == n, cobin(n,k) == 1 (caso base) calcolo dei coefficienti per valori non validi dei parametri: con n < 0 e k < 0 e n < k, cobin(n,k) == 0 (caso base) Ogni coefficiente è la somma del suo "soprastante" e del predecessore di quest' ultimo. (passo induttivo) /* Nota: #include <iomanip> Larghezza campo di output (n colonne): cout << setw(n); Numero di cifre decimali dopo la virgola (n cifre): cout << setprecision(n); */ Pagina 9 di 13
10 Esercizio 7 memoria dinamica. Media Mobile Scrivere un programma che, data una sequenza arbitraria di numeri in virgola mobile immessi uno alla volta dall utente, stampi man mano la media degli ultimi n valori immessi, dove anche n viene immesso dall utente all avvio del programma. In ogni momento l'utente può scegliere se a) aggiungere un valore alla sequenza, b) modificare il valore di n, oppure c) terminare il programma. I numeri sono immessi fino all immissione del valore "sentinella" 0 che termina il programma. Ogni volta che è immesso un numero il programma mostra la media mobile aggiornata. Quando, all'inizio, sono stati inseriti meno di n numeri, o quando n viene aumentato, la media viene comunque calcolata sui valori disponibili. Si badi a trattare correttamente anche il caso in cui n viene diminuito. Suggerimenti: Si usi come "buffer circolare" un array di n elementi allocato dinamicamente per memorizzare gli ultimi n valori inseriti: i valori sono aggiunti uno dopo l altro, ripartendo dall inizio quando si raggiunge la fine dell array. Si scomponga il problema in sottofunzioni Pagina 10 di 13
11 Esercizio 8 Lista palindroma Sia data una lista semplicemente concatenata i cui nodi contengano un singolo carattere. Verificare se la parola rappresentata dalla lista sia palindroma o meno. Attenzione: esistono moltissimi modi di procedere, utilizzando variamente ogni combinazione di strutture dati ausiliarie o funzioni di supporto, magari combinando più scansioni della lista. Si cerchi di trovare una soluzione ragionevolmente semplice ed efficace. Pagina 11 di 13
12 Esercizio 9 Somma di interi (in lista) Dato un intero positivo espresso in base 10, possiamo convertirlo in una lista semplicemente concatenata, fatta di elementi che contengono solo interi compresi tra 0 e 9, che rappresentano le cifre decimali che lo codificano in modo che la cifra più significativa sia in coda alla lista e la meno significativa sia in testa: 1) Scrivere una funzione che converta un intero in una lista di cifre. 2) Scrivere una funzione che data una lista di cifre restituisce l'intero rappresentato 3) Scrivere una funzione di somma, che, date due liste, restituisca una terza lista, che rappresenti il numero ottenuto dalla somma delle prime due, simulando l algoritmo di addizione in colonna. 4) Scrivere un sottoprogramma che riporti in una riga vuota di un file il numero intero corrispondente a quanto memorizzato nella lista. 5) Scrivere un sottoprogramma che legge i numeri interi memorizzati ciascuno su una diversa riga di un file, il cui nome è passato come parametro, ed effettua la loro somma utilizzando i sottoprogrammi 1) e 3). NOTA: Non «vale» (se volete giocare a questo gioco ) una soluzione "easy" che converta le liste in intero, esegua la somma, e la converta nuovamente in lista! Pagina 12 di 13
13 Esercizio 10 Print(f)-a-Ring-o-Roses Dovendo intrattenere e tenere a bada dei bambini (un po selvaggi), organizzate un semplice girotondo: ogni bimbo che arriva deve prender posto nel cerchio in ordine alfabetico, dando una mano al bambino immediatamente precedente e l altra a quello immediatamente successivo. Quando un bambino se ne va, i suoi due vicini si danno la mano per chiudere il cerchio. I bambini guardano sempre verso il centro del cerchio. Nel momento in cui sono annunciati un nome e una direzione (destra/sinistra), tutti i bambini devono gridare (su stdout) il proprio nome, in ordine, a partire da quello chiamato e avanzando via via nel cerchio, passando di mano destra in mano destra (senso antiorario), o di mano sinistra in mano sinistra (senso orario). Scrivere un sotto-programma fun( ) che implementi questo scenario, assumendo che il gruppo di bambini sia rappresentato con una lista dinamica doppiamente concatenata in cui ciascun nodo contiene il nome del bambino, un puntatore per il nodo a sinistra e un puntatore per nodo a destra e che la funzione riceva come parametri: la lista, il nome del bambino che parla per primo, e un numero intero per indicare il verso in cui devono parlare gli altri bambini (0 sinistra, 1 destra). Pagina 13 di 13
Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante
Esercizio 0 Scambio lettere Scrivere la funzione void scambiolettere(char *dest, char *lettere, int p_o_d) che modifichi la stringa destinazione (dest), sostituendone i caratteri pari o dispari (a seconda
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
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?
DettagliAA 2006-07 LA RICORSIONE
PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella
DettagliRICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di
RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di esempio CERCA 90 NEL SACCHETTO = estrai num Casi num 90 Effetti CERCA 90 NEL
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
Dettagli3. Terza esercitazione autoguidata: progetto gestione voli
9 3. Terza esercitazione autoguidata: progetto gestione voli Qui ci occupiamo di scrivere un programma abbastanza lungo, dedicato alla gestione di una tabella di dati. Una tabella e una struttura dati
DettagliESERCIZIO 1 (Definizione funzioni passaggio parametri per copia)
ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia) Scrivere una funzione per definire se un numero è primo e un programma principale minimale che ne testa la funzionalità. #include
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)
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
DettagliRicorsione. Corso di Fondamenti di Informatica
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Ricorsione Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti e
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)
Dettagli2. Spiegare brevemente qual è la funzione del compilatore e la sua importanza per il programmatore.
1 Esercizio 1 1. Immaginate di avere una calcolatore che invece che poter rappresentare i classici due valori per ogni bit (0/1) possa rappresentare 7 valori per ogni bit. (a) Quanti bit gli occorreranno
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
DettagliSottoprogrammi: astrazione procedurale
Sottoprogrammi: astrazione procedurale Incapsulamento di un segmento di programma presente = false; j = 0; while ( (j
DettagliMatematica con il foglio di calcolo
Matematica con il foglio di calcolo Sottotitolo: Classe: V primaria Argomento: Numeri e operazioni Autore: Guido Gottardi, Alberto Battaini Introduzione: l uso del foglio di calcolo offre l opportunità
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)
DettagliEsercitazione 7. Procedure e Funzioni
Esercitazione 7 Procedure e Funzioni Esercizio Scrivere un programma che memorizza in un array di elementi di tipo double le temperature relative al mese corrente e ne determina la temperatura massima,
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
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
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
DettagliCARATTERI E STRINGHE Caratteri e stringhe Funzioni della libreria standard I/O Funzioni della libreria di gestione delle stringhe
CARATTERI E STRINGHE Caratteri e stringhe Funzioni della libreria standard I/O Funzioni della libreria di gestione delle stringhe Caratteri e stringhe Caratteri Sono i blocchi costitutivi di ogni programma:
DettagliMatematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE
Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE NOME: COGNOME: ============================================================== Esercizio 1 ci sono tante "righe"; non è detto servano tutte...
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
DettagliLe Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31
Le Liste Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Le Liste 1 / 31 Cos è una Lista Una lista è una collezione di elementi omogenei che: potrebbero
DettagliESERCIZI DI PROGRAMMAZIONE C/C++ per le classi terza
ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi terza vers.0 in lavorazione Docente SAFFI FABIO Contenuti Implementazione delle operazioni di base mediante main in un unico file sorgente... 2 Struttura
DettagliINFORMATICA E PROGRAMMAZIONE PROF. M. GIACOMIN ESPERIENZA IN AULA: ELABORAZIONE DI IMMAGINI A COLORI IN LINGUAGGIO C
INFORMATICA E PROGRAMMAZIONE PROF. M. GIACOMIN ESPERIENZA IN AULA: ELABORAZIONE DI IMMAGINI A COLORI IN LINGUAGGIO C DESCRIZIONE GENERALE In questa esperienza il C verrà utilizzato per elaborare immagini
DettagliFondamenti di Informatica 2
Fondamenti di Informatica 2 della prova scritta del 28 Febbraio 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int min = 3; int i; Scrivere la porzione di codice
DettagliBreve riepilogo della puntata precedente:
Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta
Dettagli1 Automi Cellulari (Rev. 2.0.3)
1 Automi Cellulari (Rev. 2.0.3) Gli automi cellulari sono una classe di modelli introdotti originariamente da von Neumann e Ulam nel 1948 come una semplice idealizzazione dell evoluzione delle cellule
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
DettagliDefinire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};
ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca
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,
DettagliI file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002
I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi lisi@di.uniba.it Sommario Generalità sui file in C I file ad accesso sequenziale I file di testo Riferimenti
DettagliINFORMATICA 1 L. Mezzalira
INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello
DettagliLaboratorio di Algoritmi e Strutture Dati
Realizzazione di Liste Laboratorio di Algoritmi e Strutture Dati Domenico Redavid redavid@di.uniba.it Materiale di base gentilmente concesso dal dott. Nicola Di Mauro Ricercatore presso l'univ. di Bari
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.
DettagliAppello di Informatica B
Politecnico di Milano Facoltà di Ingegneria Industriale 19 febbraio 2004 Appello di Informatica B Prof. Angelo Morzenti - Prof. Vincenzo Martena Cognome e nome: Matricola: Tipo di prova: recupero I prova
Dettagli3) Il seguente numerale A1F0 in base 16 a quale numero in base 10 corrisponde?
Leggete attentamente le domande del test e date la/le vostra/e risposta/e. 1) Per quanto tempo la memoria RAM di un personal computer conserva le informazioni? Finchè lo hard disk funziona in modo corretto
DettagliLe funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.
Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni
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
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
DettagliEsercitazione 10. 21 Dicembre 2010 (2 ore)
Esercitazione 10 21 Dicembre 2010 (2 ore) Riassunto Nell'esecitazione di oggi abbiamo lavorato ancora sulle funzioni. Abbiamo inoltre introdotto alcune delle seguenti funzioni per tracciare i grafici.
DettagliLinguaggio C - Funzioni
Linguaggio C - Funzioni Funzioni: Il linguaggio C è di tipo procedurale; ogni programma viene suddiviso in sottoprogrammi, ognuno dei quali svolge un determinato compito. I sottoprogrammi si usano anche
Dettaglivoid funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }
FUNZIONI 57. Cosa servono le funzioni? A spezzare il programma in diverse parti relativamente indipendenti fra loro, ovvero interagenti sono attraverso i parametri di input ed IL VALORE di uscita. In questo
DettagliAllocazione dinamica della memoria - riepilogo
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della
DettagliLa struttura dati ad albero binario
La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,
DettagliEsercizio 1. Esercizi 5. Esercizio 3. Esercizio 2 CICLI
Esercizi 5 Esercizio 1 Realizzare una funzione che, chiesto all utente un numero intero pari a N, ricavi e stampi a video tutte le terne pitagoriche con i cateti minori o uguali ad N. CICLI Una terna pitagorica
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,
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
DettagliLaboratorio di Algoritmi e Strutture Dati. La gestione della memoria dinamica Heap
Laboratorio di Algoritmi e Strutture Dati La gestione della memoria dinamica Heap Proff. Francesco Cutugno e Luigi Lamberti 2009 Cenni sui Processi Si definisce Programma un insieme di Istruzioni destinate
DettagliGestione dei File. dischi nastri cd
Gestione dei File Per mantenere disponibili i dati tra le diverse esecuzioni di un programma, questi si devono archiviare in file su memoria di massa (dati persistenti): dischi nastri cd Un file è un astrazione
DettagliUniversità degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella
Corso di Informatica Puntatori Anno Accademico 2010/2011 Francesco Tortorella Variabili, registri ed indirizzi Abbiamo visto che la definizione di una variabile implica l allocazione (da parte del compilatore)
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
Dettaglipuntatori Lab. Calc. AA 2007/08 1
puntatori Lab. Calc. AA 2007/08 1 parametri delle funzioni (dalla lezione scorsa) gli argomenti in C vengono passati by value dalla funzione chiamante alla funzione chiamata la lista degli argomenti viene
DettagliManuale XML SERVICE FATTURA ELETTRONICA EASY. Version Description Author Date Approved Approved date V1 30/06/2014 V2 01/12/2014
Manuale XML SERVICE FATTURA ELETTRONICA EASY Version Description Author Date Approved Approved date V1 30/06/2014 V2 01/12/2014 V2 Split payment 18/2/2015 V3 Ditte individuali 23/4/2015 Sommario Xml Service
DettagliGli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori
Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliBontà dei dati in ingresso
COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.2006/07 Prof. V.L. Plantamura Dott.ssa A. Angelini Il costo puo' dipendere dal valore dei dati in ingresso Un tipico esempio è dato
DettagliLaboratorio di Algoritmi e Strutture Dati II Semestre 2005/2006. Ordinamenti: mergesort e quicksort
Laboratorio di Algoritmi e Strutture Dati II Semestre 2005/2006 Ordinamenti: mergesort e quicksort Marco Antoniotti Mergesort e Quicksort Due importantissimi algoritmi di ordinamento La conoscenza completa
DettagliCorso di Informatica
Corso di Informatica Modulo T Scorrimento-Rotazione-Ricerca Prerequisiti Programmazione elementare Conoscenza ed uso di vettori Introduzione Lo scopo di questa Unità è approfondire il concetto di vettore
DettagliPolinomio di secondo grado: Calcolo delle soluzioni di una equazione di secondo grado: import GraphicIO.*; public class Polinomio2 {
Polinomio di secondo grado: public class Polinomio2 GraphicConsole.println ("Inserisci i coefficienti interi del polinomio di secondo grado"); int a = GraphicConsole.readInt("a ="); int b = GraphicConsole.readInt("b
DettagliAnalisi. Calcolo Combinatorio. Ing. Ivano Coccorullo
Analisi Ing. Ivano Coccorullo Prof. Ivano Coccorullo ü Molti dei problemi classici di calcolo delle probabilità si riducono al calcolo dei casi favorevoli e di quelli possibili. Quando le situazioni diventano
DettagliAppunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio
Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio 1-La memoria dinamica La scrittura di un programma (indipendentemente dal linguaggio adottato) deve sempre tener conto
DettagliDue algoritmi di ordinamento. basati sulla tecnica Divide et Impera: Mergesort e Quicksort
Due algoritmi di ordinamento basati sulla tecnica Divide et Impera: Mergesort e Quicksort (13 ottobre 2009, 2 novembre 2010) Ordinamento INPUT: un insieme di n oggetti a 1, a 2,, a n presi da un dominio
DettagliLezione 6 Le pile. Informatica. 28 Aprile 2016
Lezione 6 Le pile Informatica 28 Aprile 2016 Il porto di Anversa Il terminal del porto merci di Anversa usa delle gru a cavaliere per movimentare i container: I container arrivano per nave e vengono messi
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
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
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione VI Tatiana Zolo tatiana.zolo@libero.it 1 LE STRUCT Tipo definito dall utente i cui elementi possono essere eterogenei (di tipo diverso). Introduce un nuovo tipo di
DettagliProf.ssa Laura Pagnozzi Prof. Ivano Coccorullo. Calcolo Combinatorio
Prof.ssa Laura Pagnozzi Prof. Ivano Coccorullo Calcolo Combinatorio Calcolo Combinatorio ü Molti dei problemi classici di calcolo delle probabilità si riducono al calcolo dei casi favorevoli e di quelli
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
DettagliProva Scritta del 19/07/10
Avvertenze Usare ESCLUSIVAMENTE penne ad inchiostro nero o blu (NO MATITE). Consegnare solo fogli formato A4 scritti da un solo lato. In testa a ciascun foglio scrivere: cognome, nome, numero progressivo
DettagliStudente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008
Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008 Si noti che le soluzioni ai quesiti saranno considerate valide
DettagliFONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
DettagliAlgoritmi e Strutture Dati
schifano@fe.infn.it Laurea di Informatica - Università di Ferrara 2011-2012 [1] Strutture dati Dinamiche: Le liste Una lista è una sequenza di elementi di un certo tipo in cui è possibile aggiungere e/o
DettagliIntroduzione al Linguaggio C
Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C
DettagliLa gestione della memoria
La gestione della memoria DOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA 56 53100 SIENA UFF. 0577234850-7102 RIGUTINI@DII.UNISI.IT HTTP://WWW.DII.UNISI.IT/~RIGUTINI/
DettagliTUTORATO di LINGUAGGI I
TUTORATO di LINGUAGGI I Enrico Vianello TUTORATO di LINGUAGGI I contatti utili LE LEZIONI SI TERRANNO: VENERDI 12.30-14.30 PER INFORMAZIONI e DOMANDE: enrico.vianello@student.unife.it IL MATERIALE UTILIZZATO
DettagliRicerca sequenziale di un elemento in un vettore
Ricerca sequenziale di un elemento in un vettore La ricerca sequenziale o lineare è utilizzata per ricercare i dati in un vettore NON ordinato. L algoritmo di ricerca sequenziale utilizza quan non ha alcuna
DettagliUna funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente.
Ricorsione Funzioni ricorsive Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente. Un esempio di funzione ricorsiva
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
Dettagli0.1 Esercizi calcolo combinatorio
0.1 Esercizi calcolo combinatorio Esercizio 1. Sia T l insieme dei primi 100 numeri naturali. Calcolare: 1. Il numero di sottoinsiemi A di T che contengono esattamente 8 pari.. Il numero di coppie (A,
DettagliCorso di Laurea in Matematica
Corso di Laurea in Matematica Laboratorio di Informatica (a.a. 2002-03) Esercizi 1 Docente: Monica Nesi 1. Scrivere un programma in C che, dati in ingresso due numeri naturali, calcola il loro prodotto
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
DettagliDisconnessione Utente
Home Page La home page di Smart Sales contiene due sezioni per indicare quali criteri di ricerca applicare alle offerte per identificare con facilità quelle che il cliente desidera acquistare. I valori
DettagliConnessione ad internet
Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità
DettagliLISTE, INSIEMI, ALBERI E RICORSIONE
LISTE, INSIEMI, ALBERI E RICORSIONE Settimo Laboratorio LISTE E RICORSIONE SVUOTALISTA: CONSIDERAZIONI Per svuotare una lista si devono eliminare i singoli nodi allocati con la malloc... Come fare? Per
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
DettagliRICORSIVITA. Vediamo come si programma la soluzione ricorsiva al problema precedente: Poniamo S 1 =1 S 2 =1+2 S 3 =1+2+3
RICORSIVITA 1. Cos è la ricorsività? La ricorsività è un metodo di soluzione dei problemi che consiste nell esprimere la soluzione relativa al caso n in funzione della soluzione relativa al caso n-1. La
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
DettagliFunzioni e procedure
Funzioni e procedure DOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA 56 53100 SIENA UFF. 0577234850-7102 RIGUTINI@DII.UNISI.IT HTTP://WWW.DII.UNISI.IT/~RIGUTINI/
DettagliFondamenti di Internet e Reti 097246
sul livello di Rete Instradamento. o Si consideri la rete in figura.. Si rappresenti, mediante un grafo, la rete per il calcolo dei cammini minimi (solo i nodi e gli archi no reti). Si calcoli il cammino
DettagliProgrammazione I / Informatica generale Prova scritta 11 Giugno 2008
Programmazione I / Informatica generale Prova scritta 11 Giugno 2008 NOTA: Si trascuri ogni problema legato al tipo ed al valore di ritorno della funzione main. Inoltre, nei programmi è da sottintendere
DettagliLinguaggio C - Stringhe
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - Stringhe La presente dispensa e da utilizzarsi ai
DettagliProssime lezioni. Dai TDA agli oggetti. Riassunto. Riassunto TDA. Oggi. Stefano Mizzaro 1
Prossime lezioni Dai TDA agli oggetti Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione, lezione 18 19 gennaio
DettagliProf. Pagani Corrado HTML
Prof. Pagani Corrado HTML IPERTESTI E MULTIMEDIALITÀ Un ipertesto è un insieme di documenti messi in relazione tra loro per mezzo di parole chiave sensibili (link). Può essere visto come una rete; i documenti
DettagliGestione dei File in C
Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte
DettagliGestione dinamica di una pila
Gestione dinamica di una pila Una pila o stack è una lista lineare a lunghezza variabile in cui inserimenti (push) ed estrazioni (pop) vengono effettuate ad un solo estremo, detto testa (top) della pila.
DettagliPuntatori Passaggio di parametri per indirizzo
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Puntatori Passaggio di parametri per indirizzo Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica
Dettagli