Esercizio 1. Programmazione I e Informatica II
|
|
- Gianluigi Coco
- 5 anni fa
- Visualizzazioni
Transcript
1 Esercizi Programmazione I e Informatica II Dicembre 015 Esercizio 1 Utilizzo della memoria dinamica Scrivere un programma in C che esegue le seguenti istruzioni in ordine. Leggere un valore n intero da tastiera e utilizzare calloc() per creare un array di n variabili intere. Utilizzare un ciclo per inizializzare tutto l array con valori presi da tastiera, utilizzando l artimetica dei puntatori (p + i). Utilizzare un ciclo per stampare l array, questa volta utilizzando l operatore p[ ]. Liberare la memoria occupata dall array. Con malloc allocare un array di n variabili intere. Stampare il contenuto di tutto l array per vedere come é stato automaticamente inizializzato. Assegnare ad ogni elemento dell array l indice della sua posizione nell array (p[i] = i). Stampare nuovamente il contenuto di tutto l array. Ridimensionare l array da n ad n elementi (realloc). Stampare il contenuto del nuovo array. Ridimensionarlo nuovamente portandolo a n elementi. Stampare solo gli elelementi da n a ( n) 1 (la seconda metà). #i n c l u d e <s t d l i b. h> 5 i n t main ( void ) { 7 i n t n= 0 ; 9 p r i n t f ( Dammi numero e l e m e n t i d e l l array : ) ; 10 s c a n f ( %d, &n ) ; 1 i n t p= c a l l o c ( n, s i z e o f ( i n t ) ) ; 1 15 f o r ( i n t i= 0 ; i < n ; i ++) { 1 p r i n t f ( Dammi elemento %d\n, i +1) ; 17 s c a n f ( %d, p+i ) ; 1 } 0 f o r ( i n t i= 0 ; i < n ; i ++) 1 p r i n t f ( Elemento %d : %d\n, i +1, p [ i ] ) ; f r e e ( p ) ; 5 i n t q= malloc ( n s i z e o f ( i n t ) ) ; Soluzione dell esercizio 1 7 p r i n t f ( Stampa contenuto memoria a l l o c a t o con malloc, non i n i z i a l i z z a t o \n ) ; f o r ( i n t i= 0 ; i < n ; i ++) 9 p r i n t f ( Elemento %d = %d\n, i, q [ i ] ) ; 0 1 f o r ( i n t i= 0 ; i < n ; i ++) q [ i ]= i ; p r i n t f ( Stampa contenuto memoria a l l o c a t o con malloc, i n i z i a l i z z a t o \n ) ; 5 f o r ( i n t i= 0 ; i < n ; i ++) p r i n t f ( Elemento %d = %d\n, i, q [ i ] ) ; 7 p= r e a l l o c ( q, n ) ; 9 0 i f ( p!= q ) 1
2 1 p r i n t f ( I l b l o c c o puntato da q s p o s t a t o i n memoria! ) ; p r i n t f ( Prima r e a l l o c \n ) ; f o r ( i n t i= 0 ; i < n ; i ++) 5 q [ i ]= i ; 7 f o r ( i n t i= 0 ; i < n ; i ++) p r i n t f ( Elemento %d = %d\n, i, q [ i ] ) ; 9 50 p r i n t f ( Seconda r e a l l o c \n ) ; 51 5 p= r e a l l o c ( p, n ) ; 5 5 f o r ( i n t i= n ; i < n ; i ++) 55 p r i n t f ( Elemento %d = %d\n, i, q [ i ] ) ; 5 57 f r e e ( p ) ; 5 59 } 0 Esercizio Artimetica dei puntatori Dato il seguente programma, (senza implementarlo) dire se genera errori (o warning) al momento della compilazione. #i n c l u d e <s t d l i b. h> 5 i n t main ( void ) { 7 i n t n= 0 ; 9 p r i n t f ( Dammi numero e l e m e n t i d e l l array : ) ; 10 s c a n f ( %d, &n ) ; 1 i n t p= c a l l o c ( n, s i z e o f ( i n t ) ) ; // Quanti byte d i memoria a l l o c o qui? 1 15 f o r ( i n t i= 0 ; i < n ; i ++) { 1 p r i n t f ( Dammi elemento %d\n, i +1) ; 17 s c a n f ( %d, p+i ) ; 1 } 0 s h o r t q= ( s h o r t ) p ; 1 f o r ( i n t i= 0 ; i < n ; i ++) p r i n t f ( Elemento %d : %d\n, i +1, ( q+i ) ) ; } 5 f r e e ( p ) ; 7 } Spiegare cosa come mai accade Dammi numero elementi dell array: Dammi elemento 1 7 Dammi elemento Elemento 1: -7 Elemento : 0 Elemento : Elemento : 0 Dammi numero elementi dell array: Dammi elemento 1 57
3 Dammi elemento Elemento 1: Elemento : 1 Elemento : Elemento : 0 Soluzione dell esercizio Leggo gli elementi dell array come interi, ma poi scorro l array utilizzando un puntatore a short. In questo caso leggo la memoria a blocchi di byte invece che di ((sizeof(int))). Per esempio, nel primo caso assegnando il primo intero a, 7 setto i primi bit a Questo valore, letto come short (nel secondo for) viene interpretato come, 7 dato che viene letto come (vengono presi solo i primi due byte). Da questo esempio si vede anche che il bit meno significativo di una variabile viene memorizzato per primo all interno di una variabile: per esempio, il valore precedente viene memorizzato come (da sinistra verso destra ). Esercizio Cosa stampa? Dato il seguente programma (senza implementarlo), scrivere cosa stampa se viene passato n =. #i n c l u d e <s t d l i b. h> 5 i n t main ( void ) { 7 i n t n= 0 ; 9 p r i n t f ( Dammi numero e l e m e n t i d e l l array : ) ; 10 s c a n f ( %d, &n ) ; 1 i n t p= malloc ( n s i z e o f ( i n t ) ) ; f o r ( i n t i= 0 ; i < n ; i ++) 17 p [ i ]= i ; 1 i n t q= ( i n t ) p ; 0 1 f r e e ( q ) ; i n t r= c a l l o c ( n, s i z e o f ( i n t ) ) ; 5 f o r ( i n t i= 0 ; ( i < n ) ; i ++) 7 i f ( i% == 0) ( r+i )= i ; 9 0 f o r ( i n t i= 0 ; i < n ; i ++) 1 i f ( i%!= 0) r [ i ]= r [ i 1] + 1 ; f o r ( i n t i= 0 ; i < n ; i ++) 5 p r i n t f ( %d, ( r+i ) ) ; 7 puts ( ) ; 9 f r e e ( r ) ; 0 1 } Soluzione dell esercizio
4 Esercizio Trova gli errori Segnare quali comandi generano un errore o un warning a tempo di compilazione, e dire perché. i n t main ( void ) { 5 i n t a=, b= 7 ; c o n s t i n t p= &a ; 7 i n t c o n s t q= &a ; i n t r= &b ; 9 10 q= a+1; 1 p r i n t f ( a= %d\n, a ) ; 1 a= a++; 15 1 p r i n t f ( a= %d\n, a ) ; 17 1 p= a+1; 0 p r i n t f ( a= %d\n, a ) ; 1 q= r ; a= r ; 5 p r i n t f ( a= %d\n, a ) ; 7 } 9 Gli errori a tempo di compilazione sono: Soluzione dell esercizio a = a++; ritorna un warning: due effetti collaterali nello stesso comando (warning: multiple unsequenced modifications to a ). p = a + 1; ritorna un errore: p è dichiarato come un puntatore a costante e questo comando modifica la varbiabile da esso puntato (error: read-only variable is not assignable). q = r; ritorna un errore: q è dichiarato come una costante puntatore e questo comando assegna il valore di p a q (error: read-only variable is not assignable). Esercizio 5 Cosa stampa? Dato il seguente programma (senza implementarlo), scrivere cosa stampa. i n t main ( void ) { 5 i n t a=, b= 7, c= 1 ; 7 do { i f ( a<b ) i f ( b%!=0) i f ( ) b++; i f ( c == a ) c++; e l s e c ; i f ( a+b>=c? 1 : 0 ) a ;} w h i l e ( a>0) ; 9 10 p r i n t f ( a= %d, a ) ; p r i n t f ( b= %d, b ) ; 1 p r i n t f ( c= %d, c ) ; 1 } 15 a= 0, b=, c= 7 Soluzione dell esercizio 5
5 Esercizio Trova gli errori in queste dichiarazioni di variabili. 1 i n t main ( void ) { f l o a t p = n u l l ; i n t a= ; 5 double a=. ; i n t b= 0 ; 7 long i n t B= 0 ; 9 } 10 Trova gli errori 1 #i n c l u d e <s t d l i b. h> i n t main ( void ) { Soluzione dell esercizio 5 f l o a t p = NULL; // e r r o r i d i s i n t a s s i : l a s t e r i s c o dopo l i d e n t i f i c a t o r e d e l l a v a r i a b i l e puntatore p, e n u l l non e s i s t e. i n t a= ; 7 double a=. ; // c i sono due v a r i a b i l i con l o s t e s s o i d e n t i f i c a t o r e a i n t b= 0 ; 9 long i n t B= 0 ; 10 } Esercizio 7 Struttura Creare una piccola libreria (mylib.c, mylib.h). In mylib.h definire la struttura struct Song { char title[]; char artist[]; char composer[]; short duration; struct Date published; }; e dargli un alias Song t con typedef (sempre in mylib.h). Inserire anche le dichiarazioni delle funzioni, poi definite in mylib.h. Queste funzioni sono Song t* allocsong(void) crea spazio in memoria dinamica per un tipo Song t e ne assegna i campi con i valori presi da tastiera (per ogni campo separatamente). Controllare se i valori in ingresso sono corretti, per esempio se month dentro published è compreso tra 1 e 1. void printsong(song t*), stampa su schermo i campi delal struttura. void deallocsong(song t* p) libera lo spazio di memoria dinamica occupato da Song t. Ricordarsi di includere mylib.h in mylib.c. Compilare la libreria con gcc -c mylibrary.c. Scrivere un ulteriore file prog.c che contiene una funzione main() che utilizza in sequenza le tre funzioni. Linkare con la libreria ed eseguire prog. 1 // FILE MYLIB.H s t r u c t Date { s h o r t month, day, year ; } ; 5 s t r u c t Song { char t i t l e [ ] ; char a r t i s t [ ] ; 7 char composer [ ] ; s h o r t d u r a t i o n ; 9 s t r u c t Date p u b l i s h e d ; 10 } ; Soluzione dell esercizio 7 5
6 1 t y p e d e f s t r u c t Song Song t ; 1 Song t a l l o c S o n g ( void ) ; 15 void printsong ( Song t ) ; 1 void d e a l l o c S o n g ( Song t p ) ; 1 // FILE MYLIB. C #i n c l u d e <s t d l i b. h> #i n c l u d e <s t d i o. h> 5 #i n c l u d e mylibrary. h 7 Song t a l l o c S o n g ( void ) { 9 10 Song t p= malloc ( s i z e o f ( Song t ) ) ; 1 i f ( p == NULL) { puts ( Errore a l l o c a z i o n e memoria dinamica ) ; 1 r e t u r n NULL; 15 } 1 17 // Chiedere da t a s t i e r a i campi d e l l a s t r u t t u r a a l l u t e n te e c o n t r o l l a r e s e c o r r e t t i 1 // Per esempio s e i l mese d i Date e compreso t r a 1 e 1 0 r e t u r n p ; 1 } void printsong ( Song t p ) { 5 // Stampare i campi d e l l a s t r u t t u r a p a s s a t a t r a m i t e p 7 } 9 0 void d e a l l o c S o n g ( Song t p ) { 1 f r e e ( p ) ; } Esercizio Disegno figure geometriche 1. Si realizzi un programma in linguaggio C che legga un numero intero N e visualizzi un quadrato di asterischi di lato N (vedi esempio con N = 5).. Si realizzi una variante del programma per visualizzare solo i lati del quadrato (vedi esempio con N = 5).. Si realizzi una variante del programma per visualizzare un triangolo isoscele rettangolo di lato N (vedi esempio con N = 5).. Si realizzi una variante del programma per visualizzare un quadrato di lato N come nell esempio del caso (con N = 5).
Esercizi Programmazione I
Esercizi Programmazione I Novembre 06 Esercizio Valutazione espressioni con puntatori Valutare e definire il tipo delle seguenti espressioni. Inserire le parentesi per sotolineare l ordine della valutazione
DettagliEsercizi Programmazione I
Esercizi Programmazione I 9 Novembre 201 Esercizio 1 Valutare e dare il tipo delle seguenti espressioni condizionali. 1 char a= a, b= b ; // a ha v a l o r e decimale 97 2 i n t i= 1, j= 2 ; 3 double x=
DettagliLa 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
DettagliIntroduzione al C Lez. 4
Introduzione al C Lez. 4 Allocazione Dinamica della memoria http://www.di.unipi.it/~rossano/algo1/lez4.pdf Allocazione dinamica memoria In C la memoria può essere anche gestita in modo dinamico, attraverso
DettagliCorso di Informatica A.A
Corso di Informatica A.A. 2009-2010 Lezione 11 Corso di Informatica 2009-2010 Lezione 11 1 Utilizzo dei puntatori Funzioni Perche i Puntatori? I puntatori hanno tre importanti applicazioni: 1. Passaggio
DettagliL'Allocazione Dinamica della Memoria nel linguaggio C
L'Allocazione Dinamica della Memoria nel linguaggio C Prof. Rio Chierego riochierego@libero.it http://www.riochierego.it/informatica.htm Sommario Questo documento tratta l'allocazione dinamica della memoria
DettagliAritmetica dei puntatori
Aritmetica dei puntatori Marco Alberti Programmazione e Laboratorio, A.A. 2016-2017 Dipartimento di Matematica e Informatica - Università di Ferrara Ultima modifica: 7 dicembre 2016 sizeof L operatore
DettagliCorso di Informatica A.A
Corso di Informatica A.A. 2009-2010 Lezione 9 Lezione 9 1 Il linguaggio C Istruzioni di input/output Arrays La funzione printf() La funzione printf() consente di mostrare sullo standard output (normalmente
DettagliPassare argomenti al programma
Passare argomenti al programma Quando si invoca un programma è possibile passare degli argomenti ad esso durante la chiamata. Gli argomenti ricevuti saranno stringhe (array di char) quindi l insieme di
DettagliUnità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.
Unità Didattica 4 Linguaggio C Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. 1 Vettori Struttura astratta: Insieme di elementi dello stesso tipo, ciascuno individuato da un indice;
DettagliAllocazione dinamica della memoria
Allocazione dinamica della memoria Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati
DettagliIl 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;
DettagliGestione dinamica della memoria
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Gestione dinamica della memoria Pietro Di Lena - pietro.dilena@unibo.it A pessimistic programmer sees the array as half empty.
DettagliDati aggregati. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture
DettagliEsercitazione 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
DettagliStrutture. Array dei nomi degli esami (MAX ESAMI è il massimo numero degli esami). Array con i crediti degli esami.
Consideriamo l esercizio assegnato la scorsa lezione per rappresentare il libretto di uno studente. Per memorizzare i dati si sono utilizzati tre array: char* nomiesami[max ESAMI] Array dei nomi degli
DettagliInformatica per Statistica Riassunto della lezioni del 14/11/2012 e 16/11/2012
Informatica per Statistica Riassunto della lezioni del 14/11/2012 e 16/11/2012 Igor Melatti Cenni sui puntatori in C Per ogni variabile normale dichiarata, il compilatore riserva una precisa quantità di
DettagliEsercitazioni di Fondamenti di Informatica - Lez. 7 20/11/2018
Esercitazioni di Fondamenti di Informatica - Lez. 7 0/11/018 Esercizi sull allocazione dinamica della memoria in C 1. Cosa stampa il seguente programma? 1 #d e f i n e MAXLENGTH 0 4 typedef struct { char
DettagliDati due punti sul piano calcolare la loro distanza
Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12
DettagliEsercitazione Programmazione I con Laboratorio
Esercitazione Programmazione I con Laboratorio Basi e Rappresentabilità Esercizio 1 Conversione e modulo a segno Tradurre in base 10 i seguenti numeri rappresentati in base due e modulo a segno (sign-module),
DettagliTipi di dato personalizzati Array di struct. Tipi di dato utente. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.
Array di Tipi di dato utente Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Array di Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione
DettagliFondamenti di Informatica 2
Fondamenti di Informatica 2 della prova scritta del 6 Aprile 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int x = -1; Scrivere la porzione di codice che inserisce
DettagliL Allocazione Dinamica della Memoria
L Allocazione Dinamica della Memoria Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario Questo documento
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
Dettaglipuntatori Lab. Calc. AA 2006/07 1
puntatori Lab. Calc. AA 2006/07 1 Attributi di un oggetto nome o identificatore; tipo; valore (o valori); indirizzo; Lab. Calc. AA 2006/07 2 Indirizzo Consideriamo la dichiarazione con inizializzazione:
DettagliJAVA. import java.util.*; #include <stdio.h> public static class test { int variable; private int variable; int main (int argc, char *argv[]) {
JAVA C import javautil*; public static class test { private int variable; public void main (String[] args) { variable = 0; Systemoutprintln( Variable is: + variable); #include int variable; int
DettagliIntroduzione al C. Lezione 4 Allocazione dinamica della memoria. Rossano Venturini. Pagina web del corso
Introduzione al C Lezione 4 Allocazione dinamica della memoria Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Lezioni di ripasso
DettagliEsercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018
Esercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018 Esercizi sull allocazione dinamica della memoria in C Il codice di questi esercizi é contenuto nella cartella parte1 1. Implementare una lista
DettagliLe strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.
Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura
DettagliFile binari e file di testo
I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file
DettagliIntroduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati
DettagliIntroduzione al linguaggio C Dati aggregati
Introduzione al linguaggio C Dati aggregati Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 5 ottobre
DettagliIl linguaggio C Strutture
Il linguaggio C Strutture Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C -- Strutture 2 Ringraziamenti Questi
DettagliLe strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.
Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura
DettagliLinguaggio C: puntatori
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica A - GES Prof. Plebani A.A. 2006/2007 Linguaggio C: puntatori La presente dispensa e da utilizzarsi ai soli fini didattici previa
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 4 24/10/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University
DettagliEsercizi di programmazione in linguaggio C English Dictionary
Esercizi di programmazione in linguaggio C English Dictionary Il file di testo wordnet.txt contiene un certo numero di parole (word) e il corrispondente significato (meaning) secondo il seguente formato:
DettagliLinguaggio C: PUNTATORI
Linguaggio C: PUNTATORI I puntatori sono una delle più importanti caratteristiche del linguaggio C. Permettono di lavorare a basso livello, mantenendo flessibilità e praticità. Il C utilizza molto i puntatori
DettagliL'allocazione statica: L'allocazione automatica L'allocazione dinamica:
Allocazione L'allocazione statica: e' quella con cui sono memorizzate le variabili globali e le variabili statiche, queste vengono allocate all'avvio nel segmento dati da exec, con le distizioni che abbiamo
DettagliEsercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)
Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici
DettagliIl sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto.
Sistema C e organizzazione del codice Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto. Un programma C è costituito da un insieme
DettagliUso avanzato dei puntatori Allocazione dinamica della memoria
Uso avanzato dei puntatori Allocazione dinamica della memoria Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
Dettagli9 - 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
DettagliEsercizi Programmazione I
Esercizi Programmazione I 0 Ottobre 016 Esercizio 1 Funzione valore assoluto Il file.c di questo esercizio deve contenere nell ordine, il prototipo (dichiarazione) di una una funzione abs, che prende in
DettagliProgrammazione (imperativa)
Programmazione (imperativa) Corso di Laurea in Informatica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Lunedì 12.00-13.00 e 14.00-16.00 Mercoledì 14.00-17.00 Laboratorio: Giovedì 12.00-13.00
DettagliGestione della memoria
Gestione della memoria Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2017 2018 Allocazione di memoria A una variabile puntatore si può assegnare
DettagliFondamenti di Programmazione
A.A. 08/09 Fondamenti di Programmazione (canale E-O) Docente: Prof.ssa Tiziana Calamoneri calamo@di.uniroma1.it Esercitatore: Dott. Roberto Petroccia petroccia@di.uniroma1.it Pagina del corso: http://twiki.di.uniroma1.it/twiki/view/programmazione1/eo/webhome
DettagliIl linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
DettagliStringhe e allocazione dinamica della memoria
Stringhe e allocazione dinamica della memoria Esercizio Scrivere un programma strings.c che legge da standard input una sequenza di parole separate da uno o più spazi, e stampa le parole lette, una per
DettagliLABORATORIO DI INFORMATICA. Prof.ssa Patrizia Tarantino
LABORATORIO DI INFORMATICA Prof.ssa Patrizia Tarantino 1. Modulo 1 Puntatori in C++ 2. Modulo 2 Introduzione al linguaggio Java INDICE MODULO 1 - PUNTATORI Concetto di PUNTATORE Una variabile, di qualunque
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
DettagliI/O da tastiera + Alessandra Giordani Lunedì 2 maggio
I/O da tastiera + costrutti while e if Alessandra Giordani agiordani@disi.unitn.it Lunedì 2 maggio 2011 http://disi.unitn.it/~agiordani/ Ripasso funzione printf() Usata per stampare il contenuto di una
DettagliLezione 6 programmazione in Java
Lezione 6 programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Le costanti I vettori Cos è un vettore Come si usa I vari tipi di vettori Esempi
DettagliESERCIZIO: SHIFT ARRAY (1)
ARRAY E STRINGHE ARRAY ESERCIZIO: SHIFT ARRAY (1) Utilizzando le funzioni scrivere un programma che: genera una sequenza di N = 20 numeri interi e li memorizza in un array ( riempi_array( )) visualizza
DettagliVariabili e input/ Alessandra Giordani Lunedì 18 marzo
Variabili e input/ output da tastiera Alessandra Giordani agiordani@disi.unitn.it Lunedì 18 marzo 2013 http://disi.unitn.it/~agiordani/ Es. compilazione helloworld.c 2 Variabili e valori Una variabile
DettagliCorso di Fondamenti di Programmazione canale E-O. Strutture. Strutture. Definizione di strutture (2) Definizione di strutture (1)
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Strutture e Unioni DD Cap. 10, pp. 379-391, 405-406 KP Cap. 9, pp. 361-379 Strutture Strutture Collezioni di variabili correlate (aggregati)
DettagliIntroduzione al C++ (continua)
Introduzione al C++ (continua) I puntatori Un puntatore è una variabile che contiene un indirizzo di memoria pi_greco 3.141592 pi_greco_ptr indirizzo di 3.141592 & DEREFERENZIAZIONE RIFERIMENTO * se x
DettagliIndirizzi e tipi puntatore a
Linguaggio C Indirizzi e tipi puntatore a Università degli Studi di Brescia Prof. Massimiliano Giacomin Indirizzo e tipo puntatore a TIPO Indirizzo NOME Valore Indirizzo 0101011110011001 1101011110011111
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 12 Riepilogo e complementi sui tipi Ripasso del sistema di tipi
DettagliLaboratorio 1. 15/16 marzo 2018
Laboratorio 1. 15/16 marzo 2018 Attivitá Professionalizzante A.A. 2017/18 Premessa Quando avete finito gli esercizi, inviatemeli in un unico file compresso chiamato lab1 CognomeNome (zip, rar,...), all
DettagliIntroduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2016
DettagliInformatica ed Elementi di Informatica Medica
Titolo presentazione sottotitolo Informatica ed Elementi di Informatica Medica A.A. 2018-19 Milano, XX mese 20XX Laboratorio n 4 Ing. Gian Enrico Conti Info Logistiche Contatti: gianenrico.conti@mail.polimi.it
DettagliChar. Unità 2. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi
Corso di Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Via Ariosto
DettagliCostruiamo un programma per crittografare del testo
Costruiamo un programma per crittografare del testo Per codificare un messaggio in modo tale che il suo testo non risulti leggibile a persone che non siano in possesso dell'opportuna procedura di decodifica,
DettagliPuntatori. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico
Puntatori Stefano Ferrari Università degli Studi di Milano stefanoferrari@unimiit Programmazione anno accademico 2016 2017 Puntatori I processori organizzano la memoria in N celle di dimensione fissata
DettagliIntroduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2017
DettagliTitolo presentazione INFORMATICA. sottotitolo A.A Milano, XX mese 20XX Laboratorio n 6 Ing. Gian Enrico Conti Dott.
Titolo presentazione INFORMATICA A sottotitolo A.A. 2017-18 Milano, XX mese 20XX Laboratorio n 6 Ing. Gian Enrico Conti Dott. Michele Zanella Info Logistiche (cont d) Calendario laboratori Data Orario
DettagliBasi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi
Basi della programmazione in Java Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Anteprima Il concetto di variabile Uso delle variabili Dichiarazione Assegnamento Visualizzazione
DettagliLaboratorio Informatica Classe 4A Serale Venerdì 18/02/2011. Gruppo. Cognome Riontino Nome Raffaele. Cognome Nome
Laboratorio Informatica Classe 4A Serale Venerdì 18/02/2011 Gruppo Cognome Riontino Nome Raffaele Cognome Nome TRACCIA 2 ARGOMENTO: LISTE TEMPO: 4h 1. Utilizzando Typedef definire un nuovo tipo di dato
DettagliAllocazione dinamica della memoria
Allocazione dinamica della memoria Allocazione statica: limiti Per quanto sappiamo finora, in C le variabili sono sempre dichiarate staticamente la loro esistenza deve essere prevista e dichiarata a priori
DettagliLaboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Prof. Aniello Murano Implementazioni di Liste Puntate Semplici Corso di Laurea Codice insegnamento Email docente Anno accademico Informatica 13917 murano@na.infn.it
DettagliAPPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO II.2017
APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2015 2016 22.II.2017 VINCENZO MARRA Indice Esercizio 1 1 Strutture dati e prime funzioni. 1 Punti: 8.
DettagliCapitolo 11. Puntatori
1 Capitolo 11 Puntatori 2 Variabili puntatore Cerchiamo di capire come le informazioni sono memorizzate nella memoria del computer La memoria è un sequenza di byte Ogni byte è composto da 8 bit: Ogni byte
DettagliCompendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica)
Compendio sottoinsieme del C++ a comune col C (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica) Librerie 1/2 Il solo insieme di istruzioni di un linguaggio di programmazione
DettagliEsercitazione di Reti degli elaboratori
Esercitazione di Prof.ssa Chiara Petrioli Christian Cardia, Gabriele Saturni Cosa vedremo in questa lezione? Gli Array Gli array multidimensionali Le stringhe I puntatori Esercizi Pagina 1 Gli Array Definizione
DettagliIl linguaggio C Strutture
Il linguaggio C Strutture Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Copyright Mirko Viroli Copyright 2017, 2018 Moreno
DettagliArray. Maurizio Palesi Salvatore Serrano. In C si possono definire tipi strutturati Vi sono due costruttori fondamentali
MASTER Information Technology Excellence Road (I.T.E.R.) Array Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di dato stutturati In C si possono
DettagliPuntatore. Ritorniamo sul problema dell accesso alle variabili
Puntatori Puntatore Ritorniamo sul problema dell accesso alle variabili Nel linguaggio di von Neumann attraverso il loro indirizzo Nei linguaggi di alto livello attraverso il loro nome Però in taluni casi
DettagliBasi della programmazione in Java
Basi della programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Il concetto di variabile Uso delle variabili Dichiarazione Assegnamento Visualizzazione
DettagliOgni 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
Dettagli! Per quanto sappiamo finora, in C le variabili sono sempre definite staticamente
! Per quanto sappiamo finora, in C le variabili sono sempre definite staticamente!!la loro esistenza deve essere prevista e dichiarata a priori! Questo può rappresentare un problema soprattutto per variabili
DettagliAllocazione dinamica della memoria
Allocazione dinamica della memoria Memoria stack ed heap (1) L'area di memoria stack é quella in cui viene allocato un pacchetto di dati non appena l'esecuzione passa dal programma chiamante a una funzione.
Dettagli#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main()
Primi passi Il mio primo programma #include /* l esecuzione comincia dalla funzione main */ int main() { printf( Hello World!\n" ); return 0; /* il programma termina con successo */ } /* fine
DettagliLezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22
Lezione 21 e 22 - Allocazione dinamica delle matrici - Generazione di numeri pseudocasuali - Funzioni per misurare il tempo - Parametri del main - Classificazione delle variabili Valentina Ciriani (2005-2008)
DettagliPrimi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
DettagliElementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 4
DettagliIntroduzione al linguaggio C Primi programmi
Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
DettagliInformatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento
Dettagli4 GLI ARRAY E LE STRINGHE
13 4 GLI ARRAY E LE STRINGHE 4.1 Gli array monodimensionali Un array è un insieme di variabili dello stesso tipo, cui si fa riferimento mediante uno stesso nome. L accesso ad un determinato elemento si
DettagliEsercizi. 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
DettagliFondamenti di Informatica 2
Fondamenti di Informatica 2 della prova scritta del 27 Giugno 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int i; Scrivere la porzione di codice che sostituisca
DettagliEsonero di Informatica I. Ingegneria Medica
Di seguito sono elencati una serie di domande tipo esonero ; i quiz vogliono dare un sistema di autovalutazione e di confronto allo studente che deve prepararsi alla prova di metà corso. Il numero e l
DettagliPROGRAMMA = ALGORITMO
Corso di Laurea Scienze Prof. San. Tec., Area Tecnico-Assistenziale SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Anno Accademico 2005-2006 Prof. Fausto Passariello Corso Integrato Metodologia della Ricerca
Dettagli