Programmazione I - Laboratorio
|
|
|
- Giorgiana Amore
- 8 anni fa
- Visualizzazioni
Transcript
1 Programmazione I - Laboratorio Esercitazione 6 - Liste Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa mezzetti mezzetti di.unipi.it 2. Dipartimento di Informatica, Università di Pisa milazzo milazzo di.unipi.it Corso di Laurea in Informatica A.A. 2012/2013 G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
2 Liste Usare la seguente definizione negli esercizi seguenti: struct el int info ; struct el * next ; typedef struct el ElementoDiLista ; typedef ElementoDiLista * ListaDiElementi ; G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
3 Esercizio 1 Scrivere una funzione stampalista che ricevuta una ListaDiElementi, la stampi a video in questo modo: 1 -> 2 -> 3 -> 4 -> // G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
4 Esercizio 1 - esercizio1.c /* esercizio1.c */ # include <stdio.h> # include < stdlib.h> # include " definizione_lista. h" # include " esercizio1. h" void stampalista ( ListaDiElementi l) if (l== NULL ) printf (" //\ n"); else printf ("%d -> ",l-> info ); stampalista (l- > next ); G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
5 Esercizio 2 Definire una funzione (fornirne due versioni, una iterativa e una ricorsiva) lunghezzalista che data una ListaDiElementi, restituisca la sua lunghezza G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
6 Esercizio 2 - esercizio2.c /* esercizio2.c */ # include < stdlib.h> # include " definizione_lista. h" # include " esercizio2. h" int lunghezzalista_iterativa ( ListaDiElementi l) int len =0; while (l!= NULL ) l=l-> next ; len ++; return len ; int lunghezzalista_ricorsiva ( ListaDiElementi l) if ( l== NULL ) return 0; else return lunghezzalista_ricorsiva (l- > next )+1; G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
7 Esercizio 3 Definire una funzione deallocalista che riceve una ListaDiElementi e ne dealloca tutti gli elementi. G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
8 Esercizio 3 - esercizio3.c /* esercizio3.c */ # include < stdlib.h> # include " definizione_lista. h" # include " esercizio3. h" void deallocalista ( ListaDiElementi l) if (l!= NULL ) deallocalista (l- > next ); free (l); G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
9 Esercizio 4 Definire una funzione (fornirne due versioni, una iterativa e una ricorsiva) primopari che data una ListaDiElementi, restituisca il puntatore al primo elemento pari nella lista (restituisce NULL se la lista e vuota o non contiene elementi pari) G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
10 Esercizio 4 - esercizio4.c /* esercizio4.c */ # include < stdlib.h> # include " definizione_lista. h" # include " esercizio4. h" ListaDiElementi primopari_iterativo ( ListaDiElementi l) while ((l!= NULL )&&(l-> info %2!=0)) /* notare ordine condizioni in and * l=l-> next ; return l; ListaDiElementi primopari_ricorsivo ( ListaDiElementi l) if ((l== NULL ) (l-> info %2==0)) return l; else primopari_ricorsivo (l- > next ); G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
11 Esercizio 5 Definire una funzione (fornirne due versioni, una iterativa e una ricorsiva) minimopari che data una ListaDiInteri, restituisca il puntatore al minimo elemento pari nella lista (restituisce NULL se la lista e vuota o non contiene elementi pari) G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
12 Esercizio 5 - esercizio5.c /* esercizio5.c */ # include < stdlib.h> # include " definizione_lista. h" # include " esercizio5. h" ListaDiElementi minimopari_iterativo ( ListaDiElementi l) ListaDiElementi min = NULL ; while (l!= NULL ) /* come primopari ( esercizio4 ) */ while (( l!= NULL )&&( l- > info %2!=0)) /* notare ordine condizioni in an l=l-> next ; if ( min == NULL ) min =l; else if ((l!= NULL )&&(l->info <min -> info )) min =l; if (l!= NULL ) l=l-> next ; return min ; ListaDiElementi minimopari_ricorsivo ( ListaDiElementi l) if (l== NULL ) return NULL ; /* un solo elemento pari */ else if ((l-> next == NULL )&&(l-> info %2==0)) return l; /* un solo elemento dispari */ else if (l- > next == NULL ) return NULL ; else G. Mezzetti ListaDiElementi & P. Milazzo (Univ. di Pisa) rest = minimopari_ricorsivo Esercitazione 6 (l- > next A.A. ); 2012/ / 23
13 Esercizio 6 Definire una procedura (sia iterativa che ricorsiva) elimina che ricevuta una ListaDiElementi e un intero X, elimini (senza deallocare) i primi X elementi e ritorni il puntatore alla testa della lista modificata G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
14 Esercizio 6 - esercizio6.c /* esercizio6.c */ # include < stdlib.h> # include " definizione_lista. h" # include " esercizio6. h" ListaDiElementi elimina_iterativo ( ListaDiElementi l, int X) while ((l!= NULL )&&(X >0)) l=l-> next ; X - -; return l; ListaDiElementi elimina_ricorsivo ( ListaDiElementi l, int X) if (l== NULL X ==0) return l; else return elimina_ricorsivo (l- >next,x -1); G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
15 Esercizio 7 Definire una funzione ordinalista che modifica una ListaDiElementi data ordinandola in modo crescente. La funzione non deve usare allocazione dinamica della memoria (malloc e free), ne modificare il campo info degli elementi. La funzione restituisce il puntatore al primo elemento ottenuto dopo l ordinamento G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
16 Esercizio 7 - esercizio7.c I /* esercizio7.c */ # include < stdlib.h> # include " definizione_lista. h" # include " esercizio7. h" ListaDiElementi ordinalista ( ListaDiElementi l) ListaDiElementi l1,tmp, prec_tmp ; if ((l== NULL ) (l-> next == NULL )) return l; else l1 = ordinalista (l- > next ); /* l1 e di sicuro non vuota */ tmp = l1; prec_tmp = l; /* ATTENZIONE : l ordine delle condizioni in && e importante! */ while (( tmp!= NULL )&&( tmp ->info <l-> info )) prec_tmp = tmp ; tmp =tmp -> next ; /* devo piazzare il primo elemento di l dentro a l1 */ if ( tmp == NULL ) /* inserimento in coda */ l-> next = NULL ; prec_tmp -> next =l; G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
17 Esercizio 7 - esercizio7.c II return l1; else if ( tmp == l1) /* inserimento in testa */ l-> next =l1; return l; else /* inserimento in mezzo */ l-> next = tmp ; prec_tmp - > next = l; return l1; G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
18 Esercizio 8 Definire una funzione merge che date due ListaDiElementi ordinate, restituisca una nuova ListaDiElementi ordinata contenente tutti gli elementi delle due liste. Le liste originali devono restare immutate G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
19 Esercizio 8 - esercizio8.c I /* esercizio8.c */ # include < stdlib.h> # include " definizione_lista. h" # include " esercizio8. h" ListaDiElementi merge ( ListaDiElementi l1, ListaDiElementi l2) ListaDiElementi risultato = NULL ; ListaDiElementi new = NULL ; int primavolta = 1; /* scorre le due liste simultaneamente */ while (( l1!= NULL )&&( l2!= NULL )) if ( primavolta ) new = ( ListaDiElementi ) malloc ( sizeof ( ElementoDiLista )); risultato = new ; primavolta =0; else new -> next = ( ListaDiElementi ) malloc ( sizeof ( ElementoDiLista )); new =new -> next ; if (l1 ->info <l2 -> info ) new -> info =l1 -> info ; l1=l1 -> next ; else G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
20 Esercizio 8 - esercizio8.c II new -> info =l2 -> info ; l2=l2 -> next ; /* uno ( e solo uno ) dei seguenti due cicli viene eseguito */ while (l1!= NULL ) new -> next = ( ListaDiElementi ) malloc ( sizeof ( ElementoDiLista )); new =new -> next ; new -> info = l1 -> info ; l1 = l1 -> next ; while (l2!= NULL ) new -> next = ( ListaDiElementi ) malloc ( sizeof ( ElementoDiLista )); new =new -> next ; new -> info = l2 -> info ; l2 = l2 -> next ; /* mette NULL in fondo alla lista */ if ( new!= NULL ) new -> next = NULL ; return risultato ; G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
21 Il main di questa esercitazione - main.c I L insieme degli esercizi di questa esercitazione e il main seguente sono un esempio di programmazione modulare a cui si può applicare la compilazione separata dei moduli /* programma che esegue tutti gli esercizi sulle liste di questa lezion */ # include <stdio.h> # include < stdlib.h> # include <time.h> # include " definizione_lista. h" # include " esercizio1. h" # include " esercizio2. h" # include " esercizio3. h" # include " esercizio4. h" # include " esercizio5. h" # include " esercizio6. h" # include " esercizio7. h" # include " esercizio8. h" ListaDiElementi generalista (); int main () G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
22 Il main di questa esercitazione - main.c II ListaDiElementi l1,l2, lord1, lord2, ltmp ; srand ( time (0)); l1 = generalista (10); l2 = generalista (14); printf (" Esercizio 1:\ n"); printf (" Lista l1\n"); stampalista ( l1 ); printf (" Lista l2\n"); stampalista ( l2 ); printf ("\n"); printf (" Esercizio 2:\ n"); printf (" Lunghezze l1: % d\ n", lunghezzalista_iterativa ( l1 )); printf (" Lunghezze l2: % d\ n", lunghezzalista_ricorsiva ( l2 )); printf ("\n"); printf (" Esercizio 3:\ n"); ltmp = generalista (3); deallocalista ( ltmp ); printf (" Niente da visualizzare per questo esercizio \ n"); printf ("\n"); G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
23 Il main di questa esercitazione - main.c III printf (" Esercizio 4:\ n"); printf (" Primo pari l1: %d\n",primopari_iterativo (l1)-> info ); printf (" Primo pari l2: %d\n",primopari_ricorsivo (l2)-> info ); printf ("\n"); printf (" Esercizio 5:\ n"); printf (" Minimo pari l1: %d\n",minimopari_iterativo (l1)-> info ); printf (" Minimo pari l2: %d\n",minimopari_ricorsivo (l2)-> info ); printf ("\n"); printf (" Esercizio 6:\ n"); printf (" Elimina i primi 3 da l1\ n"); ltmp = elimina_iterativo ( l1,3); stampalista ( ltmp ); printf (" Elimina i primi 3 da l2\ n"); ltmp = elimina_ricorsivo ( l2,3); stampalista ( ltmp ); printf ("\n"); printf (" Esercizio 7:\ n"); printf (" Ordina l1\n"); lord1 = ordinalista (l1 ); stampalista ( lord1 ); printf (" Ordina l2\n"); G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
24 Il main di questa esercitazione - main.c IV lord2 = ordinalista (l2 ); stampalista ( lord2 ); printf ("\n"); printf (" Esercizio 8:\ n"); printf (" Fusione di l1 e l2\ n"); ltmp = merge ( lord1, lord2 ); stampalista ( ltmp ); printf ("\n"); return 0; ListaDiElementi generalista ( int numelem ) if ( numelem ==0) return NULL ; else ListaDiElementi new = ( ListaDiElementi ) malloc ( sizeof ( ElementoDiLi new -> info = rand ()%100; new -> next = generalista ( numelem -1); return new ; G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 6 A.A. 2012/ / 23
Programmazione I - Laboratorio
Programmazione I - Laboratorio Esercitazione 3 - Array Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti di.unipi.it 2. Dipartimento
Laboratorio di Programmazione
Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 21 Strutture dinamiche Gli array ci permettono di memorizzare un insieme di dati dello stesso tipo Deve essere noto staticamente il
Esercitazione 11. Liste semplici
Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene
Strutture Dinamiche. Fondamenti di Informatica
Strutture Dinamiche Fondamenti di Informatica 1 Indice Allocazione e de-allocazione di memoria Liste e loro gestione Companies, srl 2 Allocazione e cancellazione di memoria malloc (sizeof (TipoDato));
Strutture dati dinamiche in C (II)
Strutture dati dinamiche in C (II) Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi [email protected] Sommario Le liste concatenate (ancora ma in modo più formale) L
Inserimento in una lista ordinata
Inserimento in una lista ordinata Vogliamo inserire un nuovo elemento in una lista in cui gli elementi sono memorizzati in ordine crescente: Passo 1: creare un nuovo nodo della lista Passo 2: trovare il
Programmazione I - Laboratorio
Programmazione I - Laboratorio Esercitazione 4 - Puntatori, vettori e stringhe Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti
4 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
Il linguaggio C. Puntatori e dintorni
Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;
Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007
Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 08/03/07 Nota Questi lucidi sono tratti
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,
Esercizio 1: funzione con valore di ritorno di tipo puntatore
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 7 Esercitazione: 14 dicembre 2005 Esercizi su ricorsione, manipolazione stringhe, strutture dinamiche Problema: Esercizio
5. Quinta esercitazione autoguidata: liste semplici
22 5. Quinta esercitazione autoguidata: liste semplici 5.1. Liste rappresentate mediante strutture e puntatori (LISTE1.C, LISTE2.C) Scrivere un programma che - costruisce una lista di k interi (con k letto
PILE E CODE. Pile (stack):
PILE E CODE Sono tipi di dato che consentono di rappresentare sequenze di elementi in cui gli inserimenti e le cancellazioni sono eseguiti con particolari modalita` (politiche o discipline). Pile (stack):
Consideriamo un vettore allocato dinamicamente
Libreria per per la la gestione/manipolazione dei dei vettori Consideriamo un vettore allocato dinamicamente int * v; v = (int *) malloc (n * sizeof (int) ); Conversione di tipo da void * a int * Numero
Hash Table. Hash Table
Hash Table La ricerca di un elemento su una lista (semplice o doppia) presenta una complessità di tipo O(n), dato che occorre scandire (al più) l intera lista per poter trovare l elemento desiderato. Le
Laboratorio di Informatica
Liste semplici (semplicemente linkate) Una lista semplice e costituita da nodi Laboratorio di Informatica 7. Strutture complesse di dati in C++ Ogni nodo e una struttura che contiene : Dati Un riferimento
I puntatori e l allocazione dinamica di memoria
I puntatori e l allocazione dinamica di memoria L allocazione delle variabili Allocazione e rilascio espliciti di memoria Le funzioni malloc e free 2 2006 Politecnico di Torino 1 Allocare = collocare in
L'Allocazione Dinamica della Memoria nel linguaggio C
L'Allocazione Dinamica della Memoria nel linguaggio C Prof. Rio Chierego [email protected] http://www.riochierego.it/informatica.htm Sommario Questo documento tratta l'allocazione dinamica della memoria
Esercizi Strutture dati di tipo astratto
Salvatore Cuomo Esercizi Strutture dati di tipo astratto Lezione n. 20 Parole chiave: Strutture dati, pile code, liste Corso di Laurea: Informatica Insegnamento: Programmazione II, modulo di Laboratorio
Gestione dinamica della memoria
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Gestione dinamica della memoria Pietro Di Lena - [email protected] A pessimistic programmer sees the array as half empty.
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
La struttura dati CODA
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 La struttura dati CODA Pietro Di Lena - [email protected] Introduzione Una coda (o queue) è una struttura dati astratta
Implementazione di Liste puntate
Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Implementazione di Liste puntate 2 1 Indice Liste puntate semplici: Gli elementi sono logicamente
Informatica 1. Prova di recupero 21 Settembre 2001
Informatica 1 Prova di recupero 21 Settembre 2001 Si risolvano i seguenti esercizi. Ai fini della determinazione del voto finale il loro punteggio andrà sommato al punteggio del laboratorio. Il tempo complessivo
Linguaggio C. Esercizio 1
Linguaggio C Esercizi su puntatori e liste Walter Didimo (e-mail:[email protected]) supplemento al Corso di Calcolatori Elettronici (Riccardo Torlone) 1 Esercizio 1 Siano p e q due puntatori a variabili
Rappresentazione di liste mediante puntatori in linguaggio C
Rappresentazione di liste mediante puntatori in linguaggio C Specifica del tipo degli elementi typedef... TipoElemLista; struct StructLista TipoElemLista key; struct StructLista *next; ; typedef struct
Esercizio 1: Puntatori impiegati che sono manager
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 10 Esercitazione: 25 gennaio 2006 Esercizi di riepilogo Problema: Esercizio 1: Puntatori impiegati che sono manager Si
LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve
LE STRUTTURE DATI DINAMICHE: GLI ALBERI Cosimo Laneve 1 argomenti 1. definizione di alberi e nozioni relative 2. implementazione degli alberi, creazione, visita 3. algoritmo di visita iterativa e sua implementazione
fondamenti di informatica 2 programmazione in C++ Riccardo Galletti - tratto da
Riccardo Galletti - tratto da www.riccardogalletti.com pag. 1 #include #include #include /*siano date in ingresso due liste ordinate di numeri interi L1 e L2. Scrivere
Strutture Dati Dinamiche
Strutture Dati Dinamiche Motivazioni Le variabili considerate fino a questo punto devono essere dichiarate staticamente, ossia la loro esistenza, il loro nome e la loro dimensione devono essere previsti
Implementazione dell albero binario in linguaggio C++
Implementazione dell albero binario in linguaggio C++ Costruire il programma per gestire le operazioni su un albero binario. Ogni nodo dell albero contiene un codice e una descrizione; il programma deve
Lezione 8 Struct e qsort
Lezione 8 Struct e qsort Rossano Venturini [email protected] Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 3 QuickSort strambo Modificare il Quicksort
Laboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Operazioni su Liste Doppie e Circolari 2 1 Indice Liste puntate semplici: Gli elementi sono
Alberi binari e alberi binari di ricerca
Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
Liste a puntatori: un esercizio passo passo
Liste a puntatori: un esercizio passo passo Prof. Orazio Mirabella Liste a puntatori: un esercizio passo passo (for dummies) Prof. Orazio Mirabella 1 Ripassiamo le Liste lineari Una lista lineare è una
Definizione Allocazione e deallocazione di variabili Allocazione e deallocazione di vettori
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Meccanica, Elettrica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011
Puntatori. Un puntatore contiene un numero che indica la locazione di memoria dove è presente la variabile puntata
Puntatori int i = 10; int * pi = &i; pi i = 10 116 int * pi = pi contiene un informazione che mi permette di accedere ( puntare ) ad una variabile intera Un puntatore contiene un numero che indica la locazione
Algoritmi di ordinamento: Array e ricorsione
Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Algoritmi di ordinamento: Array e ricorsione 2 1 Indice Algoritmi di ordinamento: Insertion
Esercizi. La funzione swapint() primo tentativo
Politecnico di Milano Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio di array. #include
Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);
Fondamenti di Informatica L-A (A.A. 004/005) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista I Prova Intermedia del 11/11/004 - durata h - COMPITO B Esercizio 1 (punti 1) Una associazione di
Strutture. 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
Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo.
Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo. int a = 5; a 5 α=&a Esistono in C particolari variabili dette puntatori che possono
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
PUNTATORI A STRUTTURE
PUNTATORI A STRUTTURE È possibile utilizzare i puntatori per accedere a variabili di tipo struct Ad esempio: typedef struct { int Campo_1, Campo_2; TipoDato; TipoDato S, *P; P = &S; Operatore. di selezione
ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }
ERRATA CORRIGE Pulizia del buffer di input: come fare? (1) Dopo aver richiamato getchar() per prelevare un carattere dal buffer di input, inseriamo una seconda chiamata a getchar(), senza assegnare il
9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
9 - Array 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 di Laurea
Esercizio 1 Liste: calcolo perimetro di un poligono
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 12 Esercitazione: 28 gennaio 2005 Esercizi su liste, ricorsione, file. Scaletta Esercizio 1 Liste: calcolo perimetro di
Informatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi
Informatica 1 Corso di Laurea Triennale in Matematica Gianluca Rossi [email protected] Dipartimento di Matematica Università di Roma Tor Vergata 11: Stringhe (www.informatica-uno.blogspot.com)
La 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 [email protected] HTTP://WWW.DII.UNISI.IT/~RIGUTINI/
Corso di Informatica 1 (IN1) Tutorato n. 11
Corso di Informatica 1 (IN1) Tutorato n. 11 Marco Liverani Esercizio n. 1 Leggere in input una lista di numeri interi ordinati in ordine crescente. Dopo aver letto la sequenza, inserire nella posizione
Fondamenti di Programmazione
A.A. 08/09 Fondamenti di Programmazione (canale E-O) Docente: Prof.ssa Tiziana Calamoneri [email protected] Esercitatore: Dott. Roberto Petroccia [email protected] Pagina del corso: http://twiki.di.uniroma1.it/twiki/view/programmazione1/eo/webhome
La gestione della memoria dinamica Heap
Laboratorio di Algoritmi e Strutture Dati La gestione della memoria dinamica Heap Prof. Luigi Lamberti 2005 Cenni sui Processi Un Programma è un insieme di Istruzioni memorizzato in un file con le costanti
