• Non ci sono risultati.

Prova scritta del 1 luglio 2019 di Fondamenti di Programmazione e Strutture Dati e Algoritmi

N/A
N/A
Protected

Academic year: 2021

Condividi "Prova scritta del 1 luglio 2019 di Fondamenti di Programmazione e Strutture Dati e Algoritmi"

Copied!
2
0
0

Testo completo

(1)

Prova scritta del 1 luglio 2019 di Fondamenti di Programmazione e Strutture Dati e Algoritmi Per studenti di Ing. Elettronica e Ing. Gestionale immatricolati a partire dall’anno 2017-18 DURATA DELLA PROVA: 3 ORE

A pena di annullamento immediato della prova:

1) non è possibile consultare libri o appunti (in qualunque forma) né utilizzare calcolatrici, telefoni cellulari, ecc.;

2) non è consentito comunicare (con qualunque mezzo);

3) non è consentito uscire dall’aula.

Lo studente è tenuto a scrivere, correggere, compilare ed eseguire su computer (a casa o in laboratorio) gli esercizi di programmazione prima della prova orale. Alla prova orale lo studente deve portare una memory pen USB contenente i sorgenti dei programmi corretti e le stampe dei relativi file.

Esercizio 1 (17 punti)

Un file contiene i tragitti e gli orari dei treni che partono da una certa località (Valpisello di sotto, nell’esempio). Il formato del file prevede una riga per ogni stazione in cui il treno si ferma e può essere dedotto dal seguente esempio:

Treno FX27728, 4 fermate:

Valpisello di sotto, 8:10 Valpisello di sopra, 8:27 Arancini sottocolle, 9:45 Rangone, 10:27

Treno LZ12, 2 fermate:

Valpisello di sotto, 15:33 Arancini sottocolle, 16:40

Si scriva un programma che riceva sulla riga di comando il nome di un file siffatto e una destinazione e stampi i codici di tutti i treni che raggiungono tale destinazione in ordine di tempo di percorrenza (stampato anch’esso, in minuti).

Nell’esempio, il programma dovrà stampare:

LZ12 67 minuti FX27728 95 minuti

Se la destinazione cercata non fosse presente nel file il programma deve segnalare un errore

(2)

Esercizio 2 (5 punti)

Si consideri la libreria in linguaggio C per manipolare file bitmap vista a lezione, così definita:

typedef unsigned char byte;

typedef unsigned short int word;

typedef unsigned long int dword;

#define BMPFILETYPE 0x4D42 typedef struct tagCOLORTRIPLE {

byte blue;

byte green;

byte red;

} COLORTRIPLE;

typedef struct tagFILEHEADER {

word ImageFileType;

dword FileSize;

word Reserved1;

word Reserved2;

dword ImageDataOffset;

} FILEHEADER;

typedef struct tagBMPHEADER {

dword HeaderSize;

dword ImageWidth;

dword ImageHeight;

word NumberOfImagePlanes;

word BitsPerPixel;

dword CompressionMethod;

dword SizeOfBitmap;

dword HorizonalResolution;

dword VerticalResolution;

dword NumberOfColorsUsed;

dword

NumberOfSignificantColors;

} BMPHEADER;

typedef struct tagBITMAP {

dword width;

dword height;

COLORTRIPLE *pixel;

FILEHEADER fileheader;

BMPHEADER bmpheader;

} BITMAP;

#define PIXEL(image, row, column) \ image.pixel [(row( * image.width +

(column)]

BITMAP ReadBitmap (FILE *fp);

void WriteBitmap (BITMAP bitmap, FILE *fp);

BITMAP CreateEmptyBitmap

(dword height, dword width);

void ReleaseBitmapData (BITMAP *bitmap);

Si scriva un programma in linguaggio C che riceva sulla linea di comando il nome di un file bitmap di ingresso e il nome di un file bitmap di uscita. Il programma deve scrivere nel file di uscita l’immagine ruotata di 90

o

verso destra (come nell’esempio a lato.

(svolgere sul retro)

Esercizio 3 (8 punti)

(chiedere prof. Di Gaspero)

Riferimenti

Documenti correlati

(5 punti) Si scriva un programma in linguaggio C che riceva sulla linea di comando il nome di un file bitmap di ingresso e il nome di un file. bitmap

Si scriva una funzione in linguaggio C che riceva come argomento una struttura dati di tipo BITMAP, già allocata e rappresentante un’immagine di 1000 x 1000 pixel, e vi

Si scriva un programma in linguaggio C che riceva sulla linea di comando il nome del file contenente il dizionario dei sinonimi, il nome del file contenente il testo originale e

Una matrice

• void elimina_matrice_tridiagonale(matrice_tridiagonale* A) che elimina le eventuali strutture dati dinamiche utilizzate nella rappresentazione della matrice A... Si

Si scriva un programma in linguaggio C che riceva sulla linea di comando il nome di un file bitmap di uscita e crei l’immagine sopra descritta.. (svolgere

(5 punti) Si scriva un programma in linguaggio C che riceva sulla linea di comando il nome di un file bitmap di ingresso e il nome di un file bitmap di uscita. Il programma

Si scriva un programma in linguaggio C che legga dalla linea di comando la dimensione N, in pixel, di una bitmap quadrata (NxN) e crei un file contenente una circonferenza rossa