Informatica (CIV) Temi d esame. Andrea Romanoni. 10 dicembre Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Informatica (CIV) Temi d esame. Andrea Romanoni. 10 dicembre Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano"

Transcript

1 Informatica (CIV) Temi d esame Andrea Romanoni Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano 10 dicembre 2013

2 Tema d esame del 24 gennaio 2011 Esercizio 1-8 Punti Una ditta adotta una forma di orario flessibile. Ogni dipendente può entrare quando desidera tra le 7:30 e le 10:00, e può uscire tra le 15:00 e le 21:00, purché lavori almeno 7 ore al giorno, e 40 ore alla settimana. La pausa pranzo deve avere una durata minima di mezz ora e deve essere compresa tra le 11:00 e le 15:00. Scrivere un programma che verifichi se un dipendente ha rispettato i vincoli imposti dall azienda. In particolare il programma dovrà: Per ognuno dei cinque giorni della settimana chiedere l ora di ingresso (ore e minuti), l ora di uscita in pausa pranzo, l ora di rientro da pausa pranzo e l ora d uscita dal lavoro. Dovrà inoltre verificare durante l immissione che tali ore siano all interno degli intervalli ammessi. Calcolare la quantità di tempo lavorata per giorno (escludendo la pausa pranzo), e segnalare qualora questa sia inferiore al minimo stabilito. Calcolare la quantità di tempo lavorata in una settimana, e segnalare qualora essa sia inferiore al minimo stabilito.

3 Tema d esame del 24 gennaio 2011 Soluzione (1/2) MODULE mod_ore IMPLICIT NONE TYPE ora INTEGER :: ore INTEGER :: min END TYPE ora CONTAINS INTEGER FUNCTION diff_ore(i, f) TYPE(ora), INTENT(IN)::i TYPE(ora), INTENT(IN)::f diff_ore = (f%ore * 60 + f%min) - (i%ore * 60 + i%min) END FUNCTION END MODULE mod_ore

4 Tema d esame del 24 gennaio 2011 Soluzione (2/2) PROGRAM controllo_ore USE mod_ore IMPLICIT NONE TYPE(ora) :: ing, usc INTEGER :: i INTEGER :: tot_giorno, tot_settimana tot_settimana = 0 DO i = 1, 5 WRITE(*,*) "giorno ", i WRITE(*,*) "ingresso al mattino (h, min)" READ (*,*) ing IF (ing%ore >= 10) THEN WRITE(*,*) "Sei entrato tardi!!!" IF ((ing%ore < 7).OR. ((ing%ore == 7) &.AND. (ing%min < 30))) THEN WRITE(*,*) "Ingresso non possibile" WRITE(*,*) "inizio pausa pranzo (h, min)" READ(*,*) usc IF (usc%ore < 11) THEN WRITE(*,*) "Pausa iniziata troppo presto" IF (usc%ore > 15) THEN WRITE(*,*) "Pausa iniziata troppo tardi" tot_giorno = diff_ore(ing, usc) WRITE (*,*) "fine pausa pranzo (h, min)" READ (*,*) ing IF (ing%ore < 11) THEN WRITE (*,*) "Pausa finita troppo presto" IF (ing%ore > 15) THEN WRITE (*,*) "Pausa finita troppo tardi" IF (diff_ore(usc, ing) < 30) THEN WRITE (*,*) "Pausa troppo breve" WRITE (*,*) "Fine giornata (h, min)" READ (*,*) usc IF (usc%ore < 15) THEN WRITE (*,*) "Giornata finita troppo presto" IF (usc%ore > 21) THEN WRITE (*,*) "Giornata finita troppo tardi" tot_giorno = tot_giorno + diff_ore(ing, usc) IF (tot_giorno < 7 * 60) THEN WRITE (*,*) "Giornata troppo breve" tot_settimana = tot_settimana + tot_giorno END DO IF (tot_settimana < 40 * 60) THEN WRITE (*,*) "non hai raggiunto il monte ore & settimanale" END PROGRAM controllo_ore

5 Tema d esame del 24 gennaio 2011 Esercizio 2-18 Punti Si vuole realizzare un programma C che gestisca un archivio di CD musicali. Si vogliono però memorizzare gli artisti in un archivio separato rispetto a quello dei dischi. La struttura dati che descrive un artista è composta da tre campi: il nome dell artista (max 99 caratteri), il tipo di artista (cantautore, interprete, gruppo) descritto da un enumerazione, e dal genere di musica praticato (max 35 caratteri). L archivio degli artisti è definito in un tipo di dati a sé, corrispondente a una lista sequenziale capace di contenere le descrizioni di al più 100 artisti differenti. La struttura dati che descrive i CD è invece costituita dalle seguenti informazioni: titolo del disco (max 99 caratteri), riferimento all elemento dell archivio degli artisti corrispondente all autore (riferimento è sinonimo di puntatore), numero dei brani, durata totale del disco (espressa mediante una struttura dati capace di differenziare tra ore, minuti e secondi). Anche l archivio dei CD è contenuto in una lista sequenziale capace di contenere al massimo 500 elementi.

6 Tema d esame del 24 gennaio 2011 Parte A - 3 Punti Definire opportuni tipi di dato per descrivere l archivio di CD musicali. typedef enum {cantautore, interprete, gruppo} TipoArtista; #define LEN_NOME_ARTISTA 99 #define LEN_GENERE 35 #define LEN_LISTA_ARTISTI 100 #define LEN_NOME_DISCO 99 #define LEN_LISTA_CD 500 typedef struct { char nome[len_nome_artista + 1]; TipoArtista tipo; char genere[len_genere + 1]; } Artista; typedef struct { Artista artista[len_lista_artisti]; int n; } ListaArtisti; typedef struct { int ore; int minuti; int secondi; } Durata; typedef struct { char nomedisco[len_nome_disco + 1]; Artista *artista; int nbrani; Durata durata; } CompactDisk; typedef struct { CompactDisk cd[len_lista_cd]; int n; } ListaCD;

7 Tema d esame del 24 gennaio 2011 Parte B - Prototipi delle funzioni - 2 Punti Si diano le dichiarazioni dei prototipi dei seguenti sottoprogrammi trovaartista, che data la lista degli artisti ed una stringa (rappresentata come array di caratteri terminati da \0 ) verifica se esiste un artista col nome specificato. Essa restituisce il puntatore all elemento che contiene i dati dell artista, e NULL se l elemento non è stato trovato. Artista *trovaartista(listaartisti *L, char nome[]);

8 Tema d esame del 24 gennaio 2011 Parte B - Prototipi delle funzioni - 2 Punti Si diano le dichiarazioni dei prototipi dei seguenti sottoprogrammi inseriscicd: dato l archivio dei CD, una stringa (rappresentata come array di caratteri terminati da \0 ) contenente il titolo del disco da inserire, il puntatore alla descrizione dell artista, il numero di brani e la durata, inserisce il disco nell archivio. Essa restituisce 1 se l inserimento è andato a buon fine, 0 altrimenti (ad esempio se l inserimento non è avvenuto perché si supererebbe il massimo numero di dischi inseribili). int inseriscicd(listacd *L, char nome[], Artista *artista, int nbrani, Durata durata);

9 Tema d esame del 24 gennaio 2011 Parte C - Inserisci CD - 5 Punti Si definisca (cioè si implementi) il sottoprogramma inseriscicd descritto al punto precedente. inseriscicd: dato l archivio dei CD, una stringa (rappresentata come array di caratteri terminati da \0 ) contenente il titolo del disco da inserire, il puntatore alla descrizione dell artista, il numero di brani e la durata, inserisce il disco nell archivio. Essa restituisce 1 se l inserimento è andato a buon fine, 0 altrimenti (ad esempio se l inserimento non è avvenuto perché si supererebbe il massimo numero di dischi inseribili).

10 Tema d esame del 24 gennaio 2011 Parte C - Inserisci CD int inseriscicd(listacd *L, char nome[], Artista *artista, int nbrani, Durata durata) { } if(l->n == LEN_LISTA_CD) { return 0; } strcpy(l->cd[l->n].nomedisco, nome); L->cd[L->n].artista = artista; L->cd[L->n].nBrani = nbrani; L->cd[L->n].durata = durata; L->n++; return 1;

11 Tema d esame del 24 gennaio 2011 Parte D - InserisciCDNuovoArtista - 8 Punti Si definisca (cioè si implementi) il sottoprogramma InserisciCDNuovoArtista. Tale sottoprogramma riceve in ingresso l archivio dei CD, una stringa contenente il titolo del disco da inserire, il nome dell artista (eventualmente non compreso nell archivio artisti) unitamente al tipo dell artista e al genere di musica da lui praticato, il numero di brani e la durata. Tale sottoprogramma deve inserire il disco nell archivio, controllando la presenza dell artista nell archivio artisti. Se l artista è già compreso nell archivio, effettua l inserimento del CD; se invece l artista è nuovo, lo inserisce nell archivio artisti e procede poi all inserimento del nuovo disco nell archivio CD. Per svolgere queste operazioni, il sottoprogramma può avvalersi delle funzioni definite al punto precedente dell esercizio. InserisciCDNuovoArtista restituisce 1 se l inserimento è andato a buon fine, 0 altrimenti (ad esempio se il nuovo inserimento non è consentito perché si supererebbe il massimo numero di dischi inseribili).

12 Tema d esame del 24 gennaio 2011 Parte D - InserisciCDNuovoArtista int InserisciCDNuovoArtista(ListaCD *Lc, ListaArtisti *La, char nomecd[], char nomeartista[], TipoArtista tipo, char genere[], int nbrani, Durata durata) { Artista *a; a = trovaartista(la, nomeartista); if(a!= NULL) { return inseriscicd(lc, nomecd, a, nbrani, durata); } else { if(la->n == LEN_LISTA_ARTISTI) { return 0; } strcpy(la->artista[la->n].nome, nomeartista); La->artista[La->n].tipo = tipo; strcpy(la->artista[la->n].genere, genere); La->n++; return inseriscicd(lc, nomecd, &La->artista[La->n - 1], durata); } return 1; } nbrani,

13 Tema d esame del 24 luglio 2012 Esercizio 1-8 Punti Scrivere un programma per controllare l esattezza di una soluzione nel gioco del Sudoku. Il programma chiede in input tutti gli 81 numeri all utente e li memorizza all interno di un array bidimensionale costituito da 9 x 9 interi. Controlla quindi, per ogni cifra da 1 a 9, che essa sia presente: in ogni riga in ogni colonna in ogni gruppo di caselle 3x3, secondo la suddivisione mostrata in figura Se il programma trova un numero mancante, allora segnala la soluzione come errata, altrimenti la soluzione può considerarsi valida, ed il gioco risolto. La segnalazione, sia di soluzione errata che di Sudoku risolto correttamente, avviene attraverso la stampa di un messaggio a video.

14 Tema d esame del 24 luglio 2012 Soluzione (1/2) MODULE funzionicheusasudoku IMPLICIT NONE CONTAINS SUBROUTINE esisteunacifranellamatrice(matricedaconfrontare,cifradaconfrontare,& numrighe, numcolonne, esiste) INTEGER, INTENT(IN) :: numrighe INTEGER, INTENT(IN) :: numcolonne INTEGER, INTENT(IN), DIMENSION (numrighe, numcolonne) :: matricedaconfrontare INTEGER, INTENT(IN) :: cifradaconfrontare LOGICAL, INTENT(OUT) :: esiste INTEGER :: contatoreriga, contatorecolonna, numerocifretrovate LOGICAL, DIMENSION (numrighe, numcolonne) :: confrontocifra confrontocifra = matricedaconfrontare == cifradaconfrontare esiste =.TRUE. numerocifretrovate = COUNT(confrontoCifra) IF (numerocifretrovate == 1) THEN esiste =.TRUE. ELSE esiste =.FALSE. END SUBROUTINE esisteunacifranellamatrice END MODULE funzionicheusasudoku

15 Tema d esame del 24 luglio 2012 Soluzione (2/2) PROGRAM sudoku USE funzionicheusasudoku IMPLICIT NONE INTEGER, PARAMETER :: DIM = 9 INTEGER :: contatoreriga, contatorecolonna INTEGER :: contatorecifresudoku INTEGER, DIMENSION (DIM, DIM)::tabella_sudoku LOGICAL :: sudokuok, temp WRITE(*,*) Inserisci i numeri ; DO contatorecolonna = 1, DIM DO contatoreriga = 1, DIM WRITE(*,*) Elemento (, & contatoreriga,, &,contatorecolonna, ) READ(*,*) tabella_sudoku(contatoreriga, & contatorecolonna) END DO END DO WRITE(*,*) tabella_sudoku sudokuok =.TRUE. DO contatorecifresudoku = 1, DIM DO contatoreriga = 1, DIM CALL esisteunacifranellamatrice& (tabella_sudoku(contatoreriga,:),& contatorecifresudoku,1,dim,temp) IF (temp.eqv..false.) THEN sudokuok =.FALSE. END DO DO contatorecolonna = 1, DIM CALL esisteunacifranellamatrice& (tabella_sudoku(:,contatorecolonna), & contatorecifresudoku, DIM, 1, temp) IF (temp.eqv..false.) THEN sudokuok =.FALSE. END DO DO contatoreriga = 1, DIM, 3 DO contatorecolonna = 1, DIM, 3 CALL esisteunacifranellamatrice & (tabella_sudoku (contatoreriga:contatoreriga+2,& contatorecolonna:contatorecolonna+2), & contatorecifresudoku, 3, 3, temp) IF (temp.eqv..false.) THEN sudokuok =.FALSE. END DO END DO END DO IF (sudokuok.eqv..true.) THEN WRITE(*,*) Sudoku OK ELSE WRITE(*,*) Sudoku KO END PROGRAM sudoku

16 Tema d esame del 24 giugno 2013 Esercizio 1-9 Punti (1/3) Un video è formato dalla successione di singole immagini, dette frame. Se il video è in bianco e nero e rappresentato in forma digitale, ciascun frame è una griglia rettangolare composta da singoli elementi d immagine detti pixel. Per memorizzare un video digitale occorre parecchio spazio di memoria. Tuttavia è in genere possibile ridurre fortemente questa richiesta applicando al video un processo di compressione video prima della memorizzazione. Gli algoritmi di compressione video più semplici si basano sulla rilevazione delle zone di immagine che non sono variate apprezzabilmente al passare da un frame ai successivi: infatti, se al passare dal frame A al frame B una zona non cambia apprezzabilmente, è possibile memorizzare i pixel di tale zona solo una volta, come parte del frame A. Nei frame successivi, fino a B compreso, basterà memorizzare informazione questa zona va copiata dal frame precedente. L esercizio chiede di scrivere una subroutine Fortran che riceve in ingresso due frame e li confronta per valutare le differenze tra essi, al fine di valutare l applicabilità della compressione video. La subroutine riceve in ingresso: le dimensioni dei frame da analizzare, sotto forma di due interi Base e Altezza; i due frame da analizzare, Frame1 e Frame2, rappresentati in modo opportuno (decida lo studente, tenendo conto che ogni pixel è rappresentato da un intero); un intero Soglia che rappresenta la soglia di compressione desiderata, ovvero indica di quanto possono differire due frame per essere ancora considerati identici; il numero di strisce orizzontali in cui suddividere ciascuno dei due frame, rappresentato da un intero NumStrisce compreso tra 2 e il valore di Altezza (>= 2).

17 Tema d esame del 24 giugno 2013 Esercizio 1-9 Punti (2/3) La subroutine deve considerare Frame1 e Frame2 come suddivisi in NumStrisce strisce orizzontali. La larghezza di ciascuna striscia è pari a Base pixel; l altezza (in numero di pixel) di tutte le strisce tranne l ultima si ottiene dividendo Altezza per NumStrisce e prendendo la parte intera del risultato. L ultima striscia rappresenta la parte di frame non coperta dalle strisce precedenti. Dunque, nel caso in cui Altezza non è un multiplo di NumStrisce, essa differisce da quella delle strisce precedenti. Esempio: se Altezza vale 200 e NumStrisce vale 6, 200/6=33, Quindi Frame1 e Frame2 vanno suddivisi in 5 strisce alte 33 pixel e una alta 35 pixel.

18 Tema d esame del 24 giugno 2013 Esercizio 1-9 Punti (3/3) La subroutine deve svolgere le seguenti operazioni: Per ciascuna coppia di strisce corrispondenti (ovvero aventi la stessa posizione) in Frame1 e Frame2, trovare la differenza tra esse. La differenza è una porzione di frame avente la stessa dimensione delle strisce considerate, che va memorizzata in una struttura dati dello stesso tipo di quelle usate per Frame1 e Frame2 (di questa struttura dati verrà dunque utilizzata solo una parte, dal momento che una striscia comprende meno pixel di un frame). Ciascun pixel della differenza ha valore dato dalla differenza tra i valori dei pixel aventi la stessa posizione nelle due strisce in esame: si noti che tale valore può essere positivo, nullo o negativo. Per ciascuna delle coppie di strisce considerate al punto 1, calcolare il totale delle differenze. Tale valore intero si ottiene prendendo il valore di tutti i pixel della differenza, calcolando il valore assoluto di ciascuno di essi, e sommando i valori assoluti. Attenzione: occorre evitare di includere nella somma anche gli elementi della struttura dati che contiene la differenza non effettivamente utilizzati per gli elementi della differenza. Per ciascuna delle coppie di strisce considerate al punto 1, una volta calcolato il totale delle differenze si verifichi se esso è minore o uguale a Soglia. Se ciò avviene, le due strisce vengono considerate identiche. La subroutine deve fornire in uscita un array di NumStrisce dati di tipo LOGICAL, uno per ciascuna delle coppie di strisce analizzate. Se la k-esima coppia di strisce è stata considerata identica, l elemento k-esimo dell array vale.true.. In caso contrario l elemento vale.false..

19 Tema d esame del 24 gennaio 2011 Soluzione SUBROUTINE ConfrontaFrame(b, Altezza, Frame1,& Frame2, Soglia, NumStrisce, Confronto) IMPLICIT NONE INTEGER, INTENT(IN) :: Base, Altezza INTEGER, DIMENSION(Base,Altezza), INTENT(IN) :: & Frame1, Frame2 INTEGER, INTENT(IN) :: Soglia INTEGER, INTENT(IN) :: NumStrisce LOGICAL,DIMENSION(NumStrisce),INTENT(OUT)::Confronto INTEGER :: ContX, ContY INTEGER :: ContStriscia INTEGER :: AltezzaStrisce INTEGER :: AltezzaUltimaStriscia INTEGER :: InizioStriscia, FineStriscia INTEGER, DIMENSION(Base,Altezza) :: DifferenzaPixel INTEGER :: SommaDifferenze AltezzaStrisce = Altezza/NumStrisce AltezzaUltimaStriscia = Altezza - & (NumStrisce-1)*AltezzaStrisce DO ContStriscia = 1, NumStrisce InizioStriscia =(ContStriscia-1)*AltezzaStrisce+1 IF (ContStriscia < NumStrisce) THEN FineStriscia = InizioStriscia+AltezzaStrisce-1 ELSE FineStriscia = Altezza DifferenzaPixel(1:Base,InizioStriscia:FineStriscia)=& Frame2(1:Base, InizioStriscia:FineStriscia) - & Frame1(1:Base, InizioStriscia:FineStriscia) SommaDifferenze = 0 DO ContX = 1, Base DO ContY = InizioStriscia, FineStriscia IF (Frame2(ContX, ContY) >= Frame1(ContX, ContY)) &THEN SommaDifferenze = SommaDifferenze + & Frame2(ContX, ContY) - Frame1(ContX, ContY) ELSE SommaDifferenze = SommaDifferenze + & Frame1(ContX, ContY) - Frame2(ContX, ContY) END DO END DO IF (SommaDifferenze > Soglia) THEN Confronto(ContStriscia) =.FALSE. ELSE Confronto(ContStriscia) =.TRUE. END DO RETURN END SUBROUTINE ConfrontaFrame

20 Tema d esame del 24 luglio 2012 Esercizio 3-3 Punti Date le seguenti dichiarazioni di tipo e di variabile C: float float1; int int1; char char1; int ArrayChar1[3]; int ArrayChar2[3]; typedef struct{ int CampoInt; char CampoChar; } TipoStruct; TipoStruct struct1, struct2; indicare quali tra i seguenti assegnamenti sono SCORRETTI rispetto a quanto consentito dal linguaggio C. Gli assegnamenti scorretti sono quelli che provocherebbero un messaggio di errore da parte del compilatore C. Si ignorino gli eventuali problemi legati alla mancata inizializzazione delle variabili. /*1*/ float1 = 0; /*2*/ int1 = float1; /*3*/ char1 = z; /*4*/ ArrayChar2 = ArrayChar1; /*5*/ char1 = struct1.campochar; /*6*/ struct2 = struct1; /*7*/ ArrayChar2[2]=&char1; linea 3: error: z undeclared (first use in this function) linea 4: error: incompatible types when assigning to type int[3] from type int * linea 7: warning: assignment makes integer from pointer without a cast [enabled by default]

21 Tema d esame del 24 luglio 2012 Esercizio 2-16 Punti Si vuole realizzare un planetario elettronico: un programma in grado di visualizzare la configurazione delle stelle nel cielo che sono visibili ad una determinata ora da una determinata posizione del globo. Una stella è memorizzata attraverso il suo nome, una stringa di massimo 41 caratteri (terminatore incluso), e le sue coordinate angolari theta e phi, entrambe codificate mediante numeri float. Un segmento, utilizzato per disegnare una costellazione, è formato da due puntatori a dati di tipo stella, chiamati rispettivamente inizio e fine. Una listasegmenti, è una lista sequenziale formata da massimo 100 dati di tipo segmento, di cui solamente un numero intero n sono utilizzati. Una costellazione è costituita da un campo nome, di massimo 41 caratteri (terminatore incluso), e da una listasegmenti che la definisce. Il planetario, è infine costituito da un array di 5000 dati di tipo stella e di 200 dati di tipo costellazione.

22 Tema d esame del 24 luglio 2012 Parte A - 3 Punti Si definiscano i tipi di dato stella, segmento, listasegmenti, costellazione e planetario. #define MAX_NOME_STELLA 41 #define MAX_SEGMENTI 100 #define MAX_NOME_COSTELL 41 #define MAX_NUM_STELLE 5000 #define MAX_COSTELL 200 typedef struct{ char nome[max_nome_stella]; float theta, phi; }Stella; typedef struct{ Stella *inizio; Stella *fine; }Segmento; typedef struct{ Segmento segmenti[max_segmenti]; int n; }ListaSegmenti; typedef struct{ char nome[max_nome_costell]; ListaSegmenti listasegmenti; }Costellazione; typedef struct{ Stella stelle[max_num_stelle]; int numstelle; Costellazione costellazioni[max_costell]; int numcostellazioni; }Planetario;

23 Tema d esame del 24 luglio 2012 Parte B - Prototipi delle funzioni - 3 Punti Si diano le dichiarazioni dei prototipi dei seguenti sottoprogrammi: ContaStelle, una funzione che riceve in ingresso quattro coordinate di tipo float, chiamate tmin, tmax, pmin e pmax. La funzione restituisce il numero di stelle la cui coordinate theta è compresa tra tmin e tmax, e la cui coordinata phi è compresa tra pmin e pmax. TracciaSegmento, una procedura che riceve in ingresso un segmento e lo traccia a video. TracciaCostellazione, che riceve in ingresso un puntatore a costellazione e la disegna a video. Per disegnare la costellazione può richiamare la procedura TracciaSegmento prima definita. int ContaStelle(Planetario planetario, float tmin, float tmax, float pmin, float pmax); void TracciaSegmento(Segmento segmento); void TracciaCostellazione(Costellazione *c);

24 Tema d esame del 24 luglio 2012 Parte C - ContaStelle - 5 Punti Si definisca (cioè si implementi) il sottoprogramma ContaStelle. ContaStelle è una funzione che riceve in ingresso quattro coordinate di tipo float, chiamate tmin, tmax, pmin e pmax. La funzione restituisce il numero di stelle la cui coordinate theta è compresa tra tmin e tmax, e la cui coordinata phi è compresa tra pmin e pmax. int ContaStelle(Planetario planetario, float tmin, float tmax, float pmin, float pmax){ int i, contstelle; contstelle = 0; for (i = 0; i < planetario.numstelle; ++i){ if ((tmin <= planetario.stelle[i].theta) && (planetario.stelle[i].theta <= tmax) && (pmin <= planetario.stelle[i].theta) && (planetario.stelle[i].theta <= pmax)){ contstelle++; } } return contstelle; }

25 Tema d esame del 24 luglio 2012 Parte D - TracciaCostellazione - 5 Punti Si definisca (cioè si implementi) il sottoprogramma TracciaCostellazione, che riceve in ingresso un puntatore a costellazione e la disegna a video. Per disegnare la costellazione può richiamare la procedura TracciaSegmento prima definita. void TracciaCostellazione(Costellazione * c){ ListaSegmenti listacorrentedisegmenti; int i; listacorrentedisegmenti = c->listasegmenti; } for ( i = 0; i < listacorrentedisegmenti.n; ++i){ TracciaSegmento(listaCorrenteDiSegmenti.segmenti[i]); }

Esercitazioni di Informatica (CIV)

Esercitazioni di Informatica (CIV) Esercitazioni di Informatica (CIV) Fortran Andrea Romanoni e-mail: andrea.romanoni@polimi.it website: http://home.deib.polimi.it/romanoni/ 17 dicembre 2015 Fortran Scrittura formattata Possiamo scrivere

Dettagli

Informatica (CIV) Esercitazione su FORTRAN. Andrea Romanoni

Informatica (CIV) Esercitazione su FORTRAN. Andrea Romanoni Informatica (CIV) Esercitazione su FORTRAN Andrea Romanoni andrea.romanoni@polimi.it Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano 3 dicembre 2013 Esercizio istogrammi

Dettagli

Esercitazioni di Informatica (CIV)

Esercitazioni di Informatica (CIV) Esercitazioni di Informatica (CIV) e Temi d esame Andrea Romanoni e-mail: andrea.romanoni@polimi.it website: http://home.deib.polimi.it/romanoni/ 10 dicembre 2015 Compilare il codice La sequenza di azioni

Dettagli

RICORSIONE, PUNTATORI E ARRAY. Quarto Laboratorio

RICORSIONE, PUNTATORI E ARRAY. Quarto Laboratorio RICORSIONE, PUNTATORI E ARRAY Quarto Laboratorio 16 DICEMBRE 2011 SCADENZA TERZA ESERCITAZIONE FUNZIONI RICORSIVE ESERCIZIO Scrivere una funzione ricorsiva che, assegnati due interi N1 ed N2, restituisca

Dettagli

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...

Dettagli

Fortran. Funzioni e Subroutine.

Fortran. Funzioni e Subroutine. Fortran Funzioni e Subroutine http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Dal Fortran II del 1958, Fortran consente di

Dettagli

- int nbrani = 0; //numero di brani presenti in archivio. int creaplaylist(tipobrano[] playlist, int n, TipoGenere g, TipoFile t);

- int nbrani = 0; //numero di brani presenti in archivio. int creaplaylist(tipobrano[] playlist, int n, TipoGenere g, TipoFile t); Appello 12.09.2007-1- punti 15 (4+6+5) a) ctunes è un programma per la gestione di archivi musicali; serve per raccogliere informazioni riguardanti tutti i file musicali presenti su un computer e per creare

Dettagli

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere

Dettagli

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per

Dettagli

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per

Dettagli

Informatica (CIV) Appello 12 gennaio 2010

Informatica (CIV) Appello 12 gennaio 2010 Politecnico di Milano Dipartimento di Elettronica e Informazione Proff. Vincenzo Caglioti, Matteo Rossi Informatica (CIV) Appello 12 gennaio 2010 Matricola Cognome Nome Sezione: Caglioti Rossi Il punteggio

Dettagli

Introduzione alle Procedure

Introduzione alle Procedure Introduzione alle Procedure Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Organizzazione del programma Schema di un unità di programma Fortran 90 PROGRAM, FUNCTION, SUBROUTINE, MODULE nome

Dettagli

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica Array in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 1 / 25 Cosa vedremo

Dettagli

Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.

Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola. Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello 2 Settembre 2013 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 3 esercizi e

Dettagli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Dati Parte 4 Conclusioni G. Mecca M. Samela Università della Basilicata Strutture di Dati: Conclusioni >> Sommario Sommario Ricapitolazione Alcune

Dettagli

Dati aggregati. Violetta Lonati

Dati 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

Dettagli

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2 Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Array 2 Esercizio 1 Creare un programma che legga da input un numero non noto a priori di interi (al più 10) terminati da 0.

Dettagli

Informatica (CIV) Appello 8 settembre 2010

Informatica (CIV) Appello 8 settembre 2010 Politecnico di Milano Dipartimento di Elettronica e Informazione Proff. Vincenzo Caglioti, Matteo Rossi Informatica (CIV) Appello 8 settembre 2010 Matricola Cognome Nome Sezione: Caglioti Rossi Il punteggio

Dettagli

Introduzione al linguaggio C Dati aggregati

Introduzione 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

Dettagli

Esercitazione 11. Liste semplici

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

Dettagli

Esercitazioni di Fondamenti di Informatica - Lez. 5 30/10/2018

Esercitazioni di Fondamenti di Informatica - Lez. 5 30/10/2018 Esercitazioni di Fondamenti di Informatica - Lez. 30/10/018 Esercizi sulle funzioni in C I codici e le soluzioni degli esercizi sono nella cartella parte1 1. Scrivere i prototipi delle seguenti funzioni.

Dettagli

Esercizio 1: media di numeri reali (uso funzioni e struct)

Esercizio 1: media di numeri reali (uso funzioni e struct) Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 5 Esercitazione: 2 novembre 2005 Esercizi sulle funzioni Esercizio 1: media di numeri reali (uso funzioni e struct) Le

Dettagli

Esercizio 1: funzione con valore di ritorno di tipo puntatore

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

Dettagli

Fondamenti di Informatica 12. Linguaggio C -4

Fondamenti di Informatica 12. Linguaggio C -4 Strutture Dati in C Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Fondamenti di Informatica 12. Linguaggio C -4 Strutture Dati

Dettagli

ARRAY DI PUNTATORI. ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori

ARRAY DI PUNTATORI. ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere

Dettagli

Lab 12 Allocazione dinamica della memoria

Lab 12 Allocazione dinamica della memoria Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 12 Allocazione dinamica della memoria Lab17 1 Esercizio 0 Un file di testo di nome bambini.txt, contiene informazioni

Dettagli

Modularizzazione del software

Modularizzazione del software Modularizzazione del software Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica

Dettagli

Fortran per Ingegneri

Fortran per Ingegneri Fortran per Ingegneri Lezione 6 A.A. 2013/2014 Ing. Davide Vanzo davide.vanzo@unitn.it Ing. Simone Zen simone.zen@unitn.it ufficio: Laboratorio didattico di modellistica ambientale (2 piano) Tel interno:

Dettagli

I tipi strutturati e i record in C++

I tipi strutturati e i record in C++ I tipi strutturati e i record in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi

Dettagli

Soluzioni seconda prova intermedia del 30 gennaio 2006 temi 1 e 2. Siano date le seguenti definizioni di costanti e tipi in linguaggio C:

Soluzioni seconda prova intermedia del 30 gennaio 2006 temi 1 e 2. Siano date le seguenti definizioni di costanti e tipi in linguaggio C: Fondamenti Informatica B Soluzioni seconda prova intermedia del 30 gennaio 2006 temi 1 e 2 Esercizio 1 tema 1 Siano date le seguenti definizioni di costanti e tipi in linguaggio C: #define MAX_LENGTH 40

Dettagli

Il linguaggio C. Istruzioni, funzioni, dati strutturati

Il linguaggio C. Istruzioni, funzioni, dati strutturati Il linguaggio C Istruzioni, funzioni, dati strutturati Istruzioni Servono a dirigere il flusso di esecuzione di un programma controllano l ordine di esecuzione delle espressioni, quindi dei loro side effects

Dettagli

Lab 17 Allocazione dinamica della memoria

Lab 17 Allocazione dinamica della memoria Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione a.a. 2009/2010 Lab 17 Allocazione dinamica della memoria Lab17 1 Esercizio 1 È dato

Dettagli

Es. 1. interi, li stampi a video ponendo prima i numeri pari e poi i numeri dispari. Es. 1. int readlength(file *f, int *even, int *odd)

Es. 1. interi, li stampi a video ponendo prima i numeri pari e poi i numeri dispari. Es. 1. int readlength(file *f, int *even, int *odd) Es. 1 È dato un file binario, di nome valori.dat, contenente una sequenza di int; non è noto a priori quanti interi siano presenti nel file. I valori sono disposti in ordine casuale. Si realizzi un programma

Dettagli

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna: Prova di Laboratorio del 12.1.2005 [durata 90 min.] Corso A-B di Programmazione (A.A. 2004/05) 1. Leggere da tastiera un insieme di numeri interi ed inserirli in un vettore A 2. Calcolare tramite una funzione

Dettagli

Stringhe e tipi di dati strutturati

Stringhe e tipi di dati strutturati Stringhe e tipi di dati strutturati Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 21 Marzo 2013 Info sui Labs http://tinyurl.com/ieimlabextra Ricordate di portare un adattatore!

Dettagli

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 21 Luglio 2010 COGNOME E NOME RIGA COLONNA MATRICOLA

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 21 Luglio 2010 COGNOME E NOME RIGA COLONNA MATRICOLA Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 21 Luglio 2010 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 4 esercizi,

Dettagli

Lab 13 Strutture e programmi su più file "

Lab 13 Strutture e programmi su più file Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 13 Strutture e programmi su più file " Lab13 1 n Sia data la struttura Esercizio 1" struct time { int hour, minute,

Dettagli

Informatica 1. Prova di recupero 21 Settembre 2001

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

Dettagli

Lab 09 Strutture e programmi su più file

Lab 09 Strutture e programmi su più file Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 09 Strutture e programmi su più file Lab13 1 Alcune Informazioni Utili Funzioni per manipolare stringhe (in string.h)!

Dettagli

Prova scritta di Fondamenti di Informatica - 4 aprile Fila A

Prova scritta di Fondamenti di Informatica - 4 aprile Fila A Università degli Studi di Firenze - Scuola di Ingegneria Corso di laurea in Ingegneria Elettronica e delle Telecomunicazioni Esercizio 1 (6 punti) Prova scritta di Fondamenti di Informatica - 4 aprile

Dettagli

INFORMATICA - CdL in FISICA. COMPITO del 28/05/2003 SOLUZIONI PROPOSTE

INFORMATICA - CdL in FISICA. COMPITO del 28/05/2003 SOLUZIONI PROPOSTE INFORMATICA - CdL in FISICA COMITO del 28/5/23 SOLUZIONI ROOSTE ESERCIZIO 1 Indicare i valori stampati dal seguente programma C. #include main() int *p, **q, x=, y=; p = &x; q = &p; *q = &y;

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Prima prova intermedia - 11 Novembre 2009 Si risolvano i seguenti esercizi. Il compitino prevede un punteggio massimo di 15/14-esimi, cui andranno sommati i punti ottenuti nel

Dettagli

Istruzioni condizionali di diramazione in Fortran 90

Istruzioni condizionali di diramazione in Fortran 90 Istruzioni condizionali di diramazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: Istruzioni di diramazione DIS - Dipartimento

Dettagli

Politecnico di Milano - Dipartimento di Elettronica, informazione e Bioingegneria Prof. Mauro Negri

Politecnico di Milano - Dipartimento di Elettronica, informazione e Bioingegneria Prof. Mauro Negri Politecnico di Milano - Dipartimento di Elettronica, informazione e Bioingegneria Prof. Mauro Negri Fondamenti di Informatica II prova 13 febbraio 2015 Matricola/codice persona Cognome Nome Durata prova:

Dettagli

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 06 Array" Lab06 1

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 06 Array Lab06 1 Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 06 Array" Lab06 1 Esercizio 1" n Creare un programma che legga da input un numero non noto a priori di interi

Dettagli

definisce un vettore di 4 puntatori a carattere (allocata memoria per 4 puntatori)!

definisce un vettore di 4 puntatori a carattere (allocata memoria per 4 puntatori)! " Non ci sono vincoli sul tipo degli elementi di un vettore " Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere (allocata

Dettagli

Esercitazioni di Informatica (CIV)

Esercitazioni di Informatica (CIV) Esercitazioni di Informatica (CIV) Puntatori, Tema d esame Andrea Romanoni e-mail: andrea.romanoni@polimi.it website: http://home.deib.polimi.it/romanoni/ 26 novembre 2015 Esame del 21 luglio 2014 Testo

Dettagli

I tipi di dato strutturato sono dichiarabili in C tramite la parola chiave typedef

I tipi di dato strutturato sono dichiarabili in C tramite la parola chiave typedef Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione della definizione di matrici, strutture e di tipi, oltre ad un riepilogo sulla codifica dei numeri

Dettagli

Esercizio 1 File: ordinamento di un archivio di studenti (file binario)

Esercizio 1 File: ordinamento di un archivio di studenti (file binario) Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 9 Esercitazione: 19 gennaio 2005 Esercizi sui file e sulle liste. Scaletta Esercizio 1 File: ordinamento di un archivio

Dettagli

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione. Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 20 Luglio 2011 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 3 esercizi

Dettagli

Variabili e Funzioni. Informatica 1 / 19

Variabili e Funzioni. Informatica 1 / 19 Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:

Dettagli

Informatica (A-K) 5. Algoritmi e pseudocodifica

Informatica (A-K) 5. Algoritmi e pseudocodifica Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Lab 16 Gestione file binari"

Lab 16 Gestione file binari Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 16 Gestione file binari" Lab16 1 Esercizio 1" n Un registratore di cassa registra su di un file binario alcuni

Dettagli

C: panoramica. Violetta Lonati

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

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Array n-dimensionali e tipi di dati strutturati

Array n-dimensionali e tipi di dati strutturati Array n-dimensionali e tipi di dati strutturati Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 8 Aprile 2016 Logistica Laboratori Lunedì (3.30pm 6pm) EG7 (No portatili e basta) L26.1.3

Dettagli

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: 1 Tipi di dati 1 Tipi di dati Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: Tutto è un oggetto Tutto eredita implicitamente

Dettagli

Argomenti della lezione. Introduzione agli Algoritmi e alle Strutture Dati. Lista Lineare. Lista Lineare come Tipo di Dato Astratto

Argomenti della lezione. Introduzione agli Algoritmi e alle Strutture Dati. Lista Lineare. Lista Lineare come Tipo di Dato Astratto Argomenti della lezione Introduzione agli Algoritmi e alle Strutture Dati Operazioni su Liste Dr. Emanuela Merelli Tipi di Dato Astratto Lista Lineare Pila Coda Concetto di Struttura dati dinamiche Lista

Dettagli

Informatica A (per gestionali) A.A. 2004/2005. Esercizi C e diagrammi a blocchi. Preparazione prima prova intermedia

Informatica A (per gestionali) A.A. 2004/2005. Esercizi C e diagrammi a blocchi. Preparazione prima prova intermedia Informatica A (per gestionali) A.A. 2004/2005 Esercizi C e diagrammi a blocchi Preparazione prima prova intermedia Indice 1 Array... 3 1.1 Filtraggio...3 1.2 Trasformazione...3 2 Struct e array... 5 2.1

Dettagli

Esercitazioni di Elementi di Informatica

Esercitazioni di Elementi di Informatica Esercitazioni di Elementi di Informatica Docente: Prof. Angelo Chianese angelo.chianese@unina.it Tutor: Ing. Antonio Picariello antonio.picariello@unina.it Interpreti e Compilatori Interprete Es. Qbasic

Dettagli

Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 8 Esercitazione: 11 gennaio 2006 Esercizi su strutture dinamiche

Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 8 Esercitazione: 11 gennaio 2006 Esercizi su strutture dinamiche Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 8 Esercitazione: 11 gennaio 2006 Esercizi su strutture dinamiche Esercizio 1 Liste: calcolo del numero di elementi ripetuti

Dettagli

Passaggio dei parametri Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei paramet

Passaggio dei parametri Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei paramet Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei parametri così passati non si riflettono sull environment esterno Per riferimento

Dettagli

Passaggio dei parametri. Passaggio dei parametri

Passaggio dei parametri. Passaggio dei parametri Per valore Il valore viene copiato dal mondo esterno all environment della funzione o procedura Cambiamenti dei parametri così passati non si riflettono sul mondo esterno rimangono circoscritti all environment

Dettagli

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari 7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa

Dettagli

Introduzione al linguaggio C Puntatori

Introduzione 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

Dettagli

Lab 16 Gestione file binari"

Lab 16 Gestione file binari Fondamenti di Informatica e Laboratorio T-AB e Fondamenti di Informatica T1 Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione a.a. 2010/2011 Lab 16 Gestione file binari" Lab16 1

Dettagli

INFORMATICA 2010/11 - CdL in FISICA TERZO APPELLO 8/09/2011: SOLUZIONI PROPOSTE

INFORMATICA 2010/11 - CdL in FISICA TERZO APPELLO 8/09/2011: SOLUZIONI PROPOSTE INFORMATICA 2010/11 - CdL in FISICA TERZO APPELLO 8/09/2011: SOLUZIONI PROPOSTE Scrivere in stampatello COGNOME, NOME e MATRICOLA su ogni foglio consegnato N.B.: In tutti gli esercizi viene valutata anche

Dettagli

Gli Array. Dichiarazione di un array

Gli Array. Dichiarazione di un array Gli Array Un array rappresenta una variabile indicizzata (ovvero contenente un indice) che viene utilizzata per contenere più elementi dello stesso tipo. Ogni array ha un nome al quale viene associato

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

Esercizio 1: parole nel testo

Esercizio 1: parole nel testo Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 6 Esercitazione: 11 novembre 2005 Esercizi di riepilogo in preparazione alla prima prova intermedia Problema (tratto da

Dettagli

Lezione 8: Stringhe ed array multidimensionali

Lezione 8: Stringhe ed array multidimensionali Lezione 8: Stringhe ed array multidimensionali Vittorio Scarano Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione AVVISO: la lezione di laboratorio di 28/5 non si

Dettagli

Informatica A (Informatica Grafica) I Recupero

Informatica A (Informatica Grafica) I Recupero Politecnico di Milano I Facoltà di Ingegneria 17 settembre 2003 Informatica A (Informatica Grafica) I Recupero Corso di laurea in Ingegneria Civile Proff. Franca Garzotto e Gian Pietro Picco Cognome e

Dettagli

Verso i puntatori: Cosa è una variabile?

Verso i puntatori: Cosa è una variabile? Verso i puntatori: Cosa è una variabile? Quando si dichiara una variabile, ad es. int a; si rende noto il nome e il tipo della variabile. Il compilatore alloca l opportuno numero di byte di memoria per

Dettagli

Array multidimensionali e stringhe

Array multidimensionali e stringhe Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Array uni-dimensionali (richiami) Dichiarazione: int vet[100]; float x[50]; Gli elementi

Dettagli

Il compito del 11 novembre 2004

Il compito del 11 novembre 2004 Alcuni errori frequenti riscontrati durante la correzione del compito: 1. In alcuni elaborati il typedef/struct non è stato utilizzato correttamente 2. Molti hanno confuso la dichiarazione di un array,

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2018/2019 Argomenti del Corso Ogni lezione consta di una spiegazione assistita da slide,

Dettagli

Operazioni su file di caratteri

Operazioni su file di caratteri Operazioni su file di caratteri Apertura fopen Chiusura fclose Scrittura fprintf Lettura fscanf Controllo fine file feof Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 Apertura di un file: Si

Dettagli

Lab 2 Info B. Diego Carrera Ing. Gian Enrico Conti 7 Novembre 2016

Lab 2 Info B. Diego Carrera Ing. Gian Enrico Conti 7 Novembre 2016 Lab 2 Info B Diego Carrera diego.carrera@polimi.it Ing. Gian Enrico Conti gianenrico.conti@mail.polimi.it 7 Novembre 2016 Per macchine PoliMI https://virtualdesktop.polimi.it 2 Richiami: Stringhe Le stringhe

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 4 Conclusioni G. Mecca M. Samela Università della Basilicata Strutture di Controllo >> Sommario Sommario Ricapitolazione Alcune

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Array. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Array. Anno Accademico 2010/2011 Francesco Tortorella Corso di Informatica Tipi strutturati: Array Anno Accademico 2010/2011 Francesco Tortorella Gli array In alcuni casi, l informazione che bisogna elaborare consiste di un aggregazione di valori, piuttosto

Dettagli

I tipi di dato strutturato sono dichiarabili in C tramite la parola chiave struct

I tipi di dato strutturato sono dichiarabili in C tramite la parola chiave struct Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione della definizione di matrici, strutture e di tipi, oltre ad un riepilogo sulla codifica dei numeri

Dettagli

Informatica/ Ing. Meccanica e Ing. Edile/ Prof. Verdicchio/ 16/07/2013 / Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica e Ing. Edile/ Prof. Verdicchio/ 16/07/2013 / Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica e Ing. Edile/ Prof. Verdicchio/ 16/07/2013 / Foglio delle domande / VERSIONE 1 1) In un diagramma di flusso, la rappresentazione di un ciclo WHILE include sicuramente almeno:

Dettagli

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);

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

Dettagli

ESERCIZIO 1. Si considerino le seguenti definizioni:

ESERCIZIO 1. Si considerino le seguenti definizioni: ESERCIZIO 1 Si considerino le seguenti definizioni: #define N 4 struct Casella{ unsigned int r, c; ; typedef Casella TappetoElastico[N][N]; Pare che tra le discipline degli ottocenteschi circhi delle pulci

Dettagli

Laboratorio n 6 del Ing. Dario Cogliati

Laboratorio n 6 del Ing. Dario Cogliati Laboratorio n 6 del 07-11-2017 Ing. Dario Cogliati Es1 Piloti Si studino le strutture dati, che permettono di memorizzare le informazioni di 20 piloti che partecipano ad una gara automobilistica di 50

Dettagli

Ripasso R1. Dati strutturati. Esempi. Array. Dichiarazione di un array. Dichiarazione di un array in C

Ripasso R1. Dati strutturati. Esempi. Array. Dichiarazione di un array. Dichiarazione di un array in C Ripasso R1 Dati strutturati Aggregazione di dati omogenei: gli array Spesso gli algoritmi lavorano su insiemi di dati omogenei. o l insieme dei valori reali che rappresentano le temperature medie delle

Dettagli

Strutture, Unioni, Enumerazioni in C. Emilio Di Giacomo

Strutture, Unioni, Enumerazioni in C. Emilio Di Giacomo Strutture, Unioni, Enumerazioni in C Emilio Di Giacomo Strutture Una struttura è una collezione di variabili raggruppate sotto uno stesso nome da questo punto di vista è simile a un array Le variabili

Dettagli

Fondamenti di Informatica 2

Fondamenti 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

Dettagli

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

Dettagli

Il linguaggio C. Puntatori e dintorni

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;

Dettagli

Informatica (A-K) 14. Linguaggio C -4

Informatica (A-K) 14. Linguaggio C -4 Strutture Dati in C Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Informatica (A-K) 14. Linguaggio C -4 Strutture Dati tipiche

Dettagli