Esercizio 1. Esercizio - 1

Documenti analoghi
Lab 13 Strutture e programmi su più file

Lab 13 Strutture e programmi su più file "

Lab 09 Strutture e programmi su più file

Esercizio 1. Esercizio - 1

Lab 9 Strutture e programmi su più file

Lab 9 Strutture e programmi su più file

Fondamenti di Informatica T-1 a.a. 2009/2010

Fondamenti di Informatica T-1. a.a. 2009/2010

Esercizio sintesi (1) Esercizio sintesi (1)

Fondamenti di Informatica T-1

Lab 16 Gestione file binari"

Strutture. struct [<etichetta>] { { <definizione-di-variabile> } } <nomestruttura>

Lab 16 Gestione file binari"

Lab 08 Stringhe e strutture

Fondamenti di Informatica T-1 Modulo 2. Obiettivo di questa esercitazione. File di testo File binari

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)

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

Lab 17 Allocazione dinamica della memoria

Lab 18 Prova d esame

Lab 10 Passaggio per riferimento

ESERCIZIO 1 ESERCIZIO 2

Lab 08 Stringhe e strutture

Lab 12 Allocazione dinamica della memoria

Il compito del 11 novembre 2004

Lab 12 Stringhe e strutture"

giapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL

Lab 11 Gestione file binari

Esercizio 1. Esercizio 1

Fondamenti di Informatica e Laboratorio T-AB Prova Pratica - 16 Giugno 2009 Compito A

1. realizzare una funzione int estraimulte(file *fmutui, FILE *fpagamenti, Mutuo *dest, int dim)

Fondamenti di Informatica T-1 Modulo 2. Obiettivo di questa esercitazione. Files Allocazione dinamica della memoria

Fondamenti di Informatica T-1 Modulo 2

STRUCT - ESERCIZIO 1

Lab 16 Gestione file binari

Ricerca binaria ricorsiva!

ESERCIZIO Grammatiche (1) ESERCIZIO Grammatiche (1) Espressioni algebriche. ESERCIZIO Grammatiche (1) ESERCIZIO Grammatiche (1) P = {

ESERCIZIO Grammatiche (1) ESERCIZIO Grammatiche (1) Espressioni algebriche

strutture e file di testo/binari Esercizio - lettura/filtro/scrittura PEOPLE.TXT PARTNERS.DAT Due persone sono compatibili

Esercizio 1 Domanda di teoria (13 punti)

Fondamenti di Informatica T-1 Modulo 2

Esercizio 1. Liste di interi

Lab 10 Gestione file di testo

Esercitazioni di FONDAMENTI DI INFORMATICA MODULO B

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

Fondamenti di Informatica T-1 Modulo 2

1. Realizzare una funzione: int trovaritardatari(file *fprestiti, FILE *frate, Prestito *dest, int dim)

Linguaggio C - Stringhe

char* titolo= { l, e,, s, t, r, i, n, g, h, e, \0 };

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

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

Esercizio 1 Conta degli elementi distinti (file esercizio1.c e leggi.h/leggi.c - 15 punti)

Lab 11 Allocazione dinamica della memoria

Esercizio 1. Tavola ordinata in memoria centrale

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

Fondamenti di Informatica T-1, 2015/2016 Modulo 2. Prova d Esame 1A di Giovedì 14 Gennaio 2016 tempo a disposizione 2h

Strutture. Array dei nomi degli esami (MAX ESAMI è il massimo numero degli esami). Array con i crediti degli esami.

#include <stdio.h> #include <stdlib.h> #define L 20 void Proc(char [], int); int N=L; main () { char *s; int i;

ESERCIZIO: SHIFT ARRAY (1)

Opinione calcolamedia( ) Opinione inverti( )

PROVA SCRITTA 23 MARZO 2010

Sono variabili il cui valore corrisponde ad un indirizzo di memoria. Puntatori

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 1A di Martedì 22 Dicembre 2009 tempo a disposizione 2h30'

s r t i r n i g n. g h s r t c r p c y s r t c r a c t s r t c r m c p s r t c r h c r s r t s r t s r

char* titolo= Libreria sulle stringhe Esempi: (strcpy) (strstr)... Laboratorio di Informatica L-A 1

Fondamenti di Informatica T1 Prova Pratica - Luglio 2013 Compito

string.h strcpy strc strcat strcmp strcmp strchr strstr strstr i t r ; s r \0 int strlen(char* str) char pippo[]={ p, i, p, p, o, \0 \ };

ESERCIZIO allochi staticamente un vettore V1 di 10 float e allochi dinamicamente un vettore V2 di 10 double;

Gestione degli impegni Requisiti generali Si fissi come ipotesi che la sequenza di impegni sia ordinata rispetto al tempo,, e che ogni lavoratore abbi

Esercizio 1. Esercizio 1 - Soluzione

Stringhe in C. Nicu Sebe. Informatica Nicu Sebe 1 / 14

Passare argomenti al programma

Esercitazioni di FONDAMENTI DI INFORMATICA MODULO B

NOTA SULLA CORREZIONE: Per ottenere un esito positivo è necessario svolgere un elaborato sufficiente in entrambe le parti.

Stringhe e allocazione dinamica della memoria

ESERCIZIO 1 (stringhe)

Lab 15 Gestione file di testo

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

Architettura di Reti

7 Riepilogo. Questa dispensa propone esercizi riepilogativi sui concetti visti finora ovvero: costrutti condizionali (if,switch);

1. Realizzare una funzione int trovaevasori(file * fcatasto, FILE * ftasse, Lotto * dest, int dim)

Fondamenti di Informatica e Laboratorio T-AB Prova Pratica - 12 Dicembre 2008 Compito A

Il compilatore deve conoscere l interfaccia della funzione per fare il check sintattico di un istruzione che la usa, quindi:

Lab 09 Gestione file di testo

Fondamenti di Informatica T-1, 2013/2014 Modulo 2. Prova d Esame 1A di Giovedì 9 Gennaio 2014 tempo a disposizione 2h

Stringhe in C. Luca Abeni. Informatica Luca Abeni 1 / 10

Esercizio 1: funzione con valore di ritorno di tipo puntatore

TIPI DI DATO. T = { D, {F 1,...,F n }, {P 1,...,P m } } Un tipo di dato T è definito come:

Transcript:

Sia data la struttura Esercizio 1 struct time { int hour, minute, second; }; Per semplicità si può definire il tipo Time typedef struct time Time; 1 Esercizio - 1 Si realizzi in un modulo tempo.h/tempo.c un insieme di funzioni per la gestione del tipo Time. In particolare: Si realizzi una funzione Time leggitime() che legga da input ore, minuti e secondi, e restituisca una struttura di tipo Time opportunamente inizializzato coi valori letti Si realizzi una funzione int leggimoretimes(time v[], int dim) La funzione deve leggere da input delle strutture Time (a tal scopo si utilizzi la funzione definita sopra) e salvarle nel vettore v, di dimensione fisica dim. La funzione deve restituire il numero di elementi letti. 2

Esercizio - 1 Si progetti una funzione in grado di calcolare la differenza fra due strutture Time e che restituisca il risultato in termini di una nuova struttura Time L interfaccia della funzione è facilmente desumibile dalle specifiche: Time subtract(time t1, Time t2); Due possibili approcci: 1. Trasformare in secondi, eseguire la differenza, trasformare in ore, minuti, secondi 2. Eseguire la sottrazione direttamente tenendo conto dei riporti 3 Una compagnia di autobus che effettua servizio su lunghe distanze vuole realizzare un programma di controllo delle prenotazioni dei posti. A tal scopo rappresenta ogni prenotazione tramite una struttura booking contenente nome del cliente (al massimo 1023 caratteri, senza spazi) e numero del posto prenotato (un intero). Le prenotazioni effettuate vengono registrate tramite un array (di dimensione prefissata DIM) di strutture booking, di dimensione logica iniziale pari a 0. Si strutturi realizzi il modulo gestione.h/gestione.c, contenente le seguenti funzioni

a) Si realizzi una funzione: int leggi(booking * dest); La funzione legge da input una struttura tt di tipo booking, e provvede a memorizzarla in dest. La funzione deve restituire 1 se è stata letta una nuova prenotazione, 0 altrimenti (cioè nel caso in cui il nome del passeggero è fine ). b) Si realizzi una funzione: int assegna( booking list[], int dim, int * lengthlist, char * name, int pref) La funzione riceve in ingresso l array di prenotazioni e la sua dimensione fisica e logica, e poi il nome del cliente ed il posto da lui indicato. La funzione deve controllare che il posto indicato non sia già stato assegnato, ed in caso contrario deve restituire il valore 1.

Qualora invece il posto sia ancora libero, la funzione deve assegnare tale posto al cliente copiando i dati della prenotazione nell ultima posizione libera nell array, e deve provvedere ad aggiornare correttamente la dimensione logica dell array. In questo secondo caso la funzione deve invece restituire come valore uno 0, indicante il successo nella prenotazione. Al fine di copiare il nome del cliente, si utilizzi la funzione di libreria char * strcpy(char * s, char * ct) che copia ct in s (terminatore compreso). c) Si realizzi un programma main (file main.c) che chieda all operatore il nome di un utente, e di seguito il posto prescelto (a tal fine si usi la funzione di cui al punto a) ). Il programma deve cercare di registrare la prenotazione tramite la funzione assegna; qualora l operazione di prenotazione fallisca (perché il posto risulta essere già assegnato), il programma provveda a chiedere all operatore un nuovo posto, finché non si riesca ad effettuare la prenotazione.

Qualora l operatore inserisca il nome fine, il programma deve terminare; qualora invece venga inserita la stringa stampa, il programma deve stampare a video le prenotazioni già effettuate. A tal scopo si usi la funzione di libreria: int strcmp(char * ct, char * cs) che restituisce 0 se e solo se le due stringhe sono identiche (lessicograficamente).