• Non ci sono risultati.

Fondamenti di Informatica I / Fondamenti di Programmazione Prova scritta del 29 gennaio 2013

N/A
N/A
Protected

Academic year: 2021

Condividi "Fondamenti di Informatica I / Fondamenti di Programmazione Prova scritta del 29 gennaio 2013"

Copied!
1
0
0

Testo completo

(1)

Fondamenti di Informatica I / Fondamenti di Programmazione Prova scritta del 29 gennaio 2013

Esercizio 1 (10 punti)

Una gara di sci a staffetta è organizzata in modo tale che ogni concorrente di una squadra, all’arrivo, debba premere un pulsante per aprire il cancello di partenza del concorrente successivo della propria squadra (tranne l’ultimo, ovviamente). Ogni squadra è composta da tre concorrenti. Il sistema memorizza l’orario di partenza e di arrivo di ogni concorrente in un vettore di strutture di tipo struct concorrente, definito come riportato a lato.

Poiché gareggiano quattro squadre alla volta, il sistema registra orari di partenza e arrivo in ordine cronologico, senza raggrupparli per squadra.

Si scriva una funzione in linguaggio C che riceva come parametri il nome di una squadra, il vettore di strutture sopra descritto e un intero che ne rappresenti la lunghezza. La funzione deve restituire il tempo totale, in secondi (numero reale) impiegato da tale squadra. Se una squadra non ha

terminato la staffetta, cioè nel vettore non compaiono tutti e tre i concorrenti della squadra, la funzione deve restituire -1.0.

Si suggerisce di scrivere la funzione

double differenza_in_secondi (struct ora orario1, struct ora orario2)

che restituisce la differenza in seconti tra i due orari passati come argomenti (orario2 successivo a orario1).

Esercizio 2 (15 punti)

Un file contiene le previsioni del tempo di una giornata, una previsione per riga. Ciascuna riga è formata da orario (ore e minuti nel formato hh:mm), temperatura prevista e previsione atmosferica (una stringa che può contenere anche spazi). La temperatura è un valore reale che può essere scritto sia in gradi Celsius che Fahrenheit (contraddistinti dalla lettera C oppure F). Come esempio, si consideri il seguente file.

01:30 0.8 C coperto con qualche pioggia 04:00 0.7 C pioggia debole

07:30 28.8 F pioggia debole 10:00 2.7 C pioggia debole 13:00 31.9 F pioggia debole 16:20 4.1 C pioggia debole 19:00 2.5 C pioggia e schiarite 21:15 -1.3 C sereno

22:10 0.2 C sereno

Si scriva una funzione in linguaggio C che riceva come parametro il nome di un file siffatto e restituisca, in una opportuna struttura dati, la temperatura minima della giornata (scritta in gradi Celsius), l'ora in cui è prevista e la relativa previsione atmosferica.

Si ricorda che la temperatura in gradi Celsius a partire da quella in gradi Fahrenheit si ottiene con la seguente formula: oC = (oF - 32) / 1,8.

Nell'esempio, la funzione dovrà restituire l'orario 7 e 30, la temperatura -1.778 (corrispondente a 28.8 oF) e la previsione “pioggia debole”.

Esercizio 3 (5 punti)

Facendo riferimento all’esercizio precedente, il nome del file contenente le previsioni è così strutturato:

località_giorno_mese_anno.txt (esempio: udine_29_1_2012.txt). Si scriva un programma in linguaggio C che riceva come argomenti sulla riga di comando il nome della località e una data e chiami la funzione descritta nell’esercizio precedente, stampando sul monitor i dati da essa restituiti.

struct ora {

int h;

int m;

double s;

};

struct concorrente {

char nome[64];

char squadra[32];

struct ora partenza;

struct ore arrivo;

};

Riferimenti

Documenti correlati

"Avatar": Sam Worthington, Zoe Saldana, Sigourney Weaver, Stephen Lang, Michelle Rodriguez. "Everest": Josh Brolin, Jason Clarke, John Hawkes, Robin Wright,

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

Si scriva un programma in linguaggio C che riceva come argomenti sulla riga di comando il nome della località e una data e chiami la funzione descritta nell’esercizio

• Sul dischetto che ti è stato dato trovi già i file delle classi GestoreDiStringhe e TestGestoreDiStringhe e gli scheletri dei metodi che devi implementare.. Dovrai pertanto

Esercizio 2 (6 punti) Scrivi un metodo statico (comprensivo di prototipo) che prende in ingresso (cioè come parametro) tre numeri interi e che restituisce il maggiore

Esercizio 2 (6 punti) Scrivi un metodo statico (comprensivo di prototipo) che prende in ingresso (cioè come parametro) una matrice di interi e che restituisce la somma degli

Si assumano gi` a disponibili la definizione del tipo struct Data (nel classico formato a tre campi) e la funzione int ComparaDate(struct Data d1, struct Data d2), che restituisce -1

La funzione deve inoltre restituire il valore 1 nel caso in cui almeno una delle locazioni del file non sia presente nel vettore; deve restituire 2 nel caso in cui si verifichi