Aggregati di dati eterogenei: il tipo struct. Esercizi risolti

Documenti analoghi
2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.

SPECIFICHE OPERATIVE X LA CONTABILITA DEI PROFESSIONISTI

Input/output in C e in C++

Esercitazione 4. Comandi iterativi for, while, do-while

Linguaggio C: introduzione

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

IMPORTANTE: compilare e consegnare anche il testo del compito! Cognome e Nome -Matricola

Modello da inviare all'autorità regionale competente

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Concetti chiave. Struct. Variabili strutturate: il tipo struct Elementi di una struttura typedef e struct Array di strutture

Fondamenti di Informatica 2

Array multidimensionali e stringhe

Gestione di files Motivazioni

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Accreditamento al portale di Roma Capitale

Files in C++ Fondamenti di Informatica. R. Basili. a.a

4 GLI ARRAY E LE STRINGHE

Esercizi di programmazione in C

La disposizione estetica della lettera commerciale

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre Negli esercizi proposti si utilizzano le seguenti classi:

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

TRACCIATO RECORD DI TESTA. Tipo di dato. Codice numerico NU Vale sempre "53" TIPOLOGIA DI INVIO

Stringhe di caratteri

Guida per il cittadino

ATTI COSTITUTIVI DI S.R.L. DI START-UP INNOVATIVE GUIDA RAPIDA

Esercizio 1. Esercizio 2

Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x.

RICERCA DI UN ELEMENTO

PLIDA Progetto Lingua Italiana Dante Alighieri Certificazione di competenza in lingua italiana

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Classi. Oggetti e classi. Creazione e inizializzazione di oggetti in C++ Distruzione di oggetti in C++

I puntatori e l allocazione dinamica di memoria

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Manuale Utente CMMG Corso Medici Medicina Generale

Certificati Anagrafe - Stato Civile

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati.

Progettazione logica

Procedura tecnica di accreditamento dei Registrar

8.1 Anagrafica Imprese

File di testo e file binari Directory

IL DIRETTORE DELL AGENZIA

Shell BASH. Variabili Redirezione

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

Fiscal News La circolare di aggiornamento professionale

ATTI COSTITUTIVI DI S.R.L. DI START-UP INNOVATIVE GUIDA RAPIDA

elicaweb manuali - logistica magazzino - pagina 1 di 5

SQL Server Architettura Client-Server. SQL Server Introduzione all uso di SQL Server Dutto Riccardo.

Specifiche tecniche per la trasmissione telematica dei dati relativi alle forniture di documenti fiscali

Lavoro & Previdenza La circolare su temi previdenziali e giuslavoristici

Specifiche tecniche e di formato Presentazione comunicazione unica per la nascita d impresa

MODELLO DI COMUNICAZIONE POLIVALENTE

Lezioni di Ricerca Operativa 2 Dott. F. Carrabs

Fabbisogno Finanziario partite contabili aperte effetti a scadere le partite presunte le scadenze ricorrenti Fabbisogno Finanziario

Esempi di attribuzione dei seggi

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 28 Giugno 05 Nome: Cognome: Matricola: Esercizio 1

Prova Scritta del 19/07/10

Università per Stranieri di Siena

Scheda Rilevazione legge Anno

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

SEZIONE 1 DATI ANAGRAFICI E MODALITA DI PAGAMENTO a.a. 2015_2016. Il/la sottoscritto/a, ai sensi del D.P.R. 28/12/2000, n. 445 dichiara quanto segue:

Guida a SacramentiWeb 1.2

Guida Compilazione Questionario SCUOLA DELL INFANZIA PARITARIA

Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio

Gestione delle autorizzazioni per l accesso al "cassetto fiscale" su Entratel. Manuale operativo

Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro;

Gestione delle stringhe in C

Scheda Rilevazione legge Anno

Capitolo 9. Esercizio 9.1. Esercizio 9.2

IL MODELLO ENTITY RELATIONSHIP. il modello ER 1

Prova di recupero di Informatica B Corsi di Laurea in Ingegneria Meccanica prof. Francesco Amigoni 20 febbraio 2004

REGIONE EMILIA-ROMAGNA

Analisi Curve di Carico

Indice. Introduzione Collegamento iniziale Identificazione della sede operativa (sede di lavoro) 5

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

ESERCIZIO: CODICE FISCALE

Guida alla compilazione del questionario on-line

RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di

file://f:\fulvia\messaggio%20numero% %20del% htm

ALLEGATO C. Specifiche tecniche per la trasmissione telematica Modello F24

Anagrafe Nazionale Studenti aggiornamento sincronizzato. Guida Operativa

GRIGLIA DI CORREZIONE 2012 Matematica Classe II Scuola Primaria

Transcript:

Esercizi risolti 1 Esercizio Si vuole realizzare un tipo utilizzato per informazioni su operazioni di vendita, avente i seguenti campi: codice: numero intero indicante il codice di riferimento dell articolo venduto nome: stringa di lunghezza inferiore a 20 caratteri prezzo: numero reale (float) corrispondente ap prezzo unitario dell articolo npezzi: numero (intero) di pezzi venduti Di tale tipo si vogliono successivamente dichiarare due variabili scalari (x, y) e un vettore (v) di dimensione 100 Si definiscano in C il tipo e le variabili x,y,v, utilizzando le varie alternative possibili. Schema di dichiarazione 1: definizione del tipo, definizione delle variabili utilizzando il tipo x, y, v[100] Schema di dichiarazione 2: dichiarazione contestuale di tipo e variabili x, y, v[100]; Schema di dichiarazione 3: dichiarazione contestuale di tipo e variabili, senza nome per il tipo x, y, v[100]; 2006 Politecnico di Torino 1

Schema di dichiarazione 4: generazione del tipo operazione_t, mediante typedef typedef operazione_t; operazione_t x, y, v[100]; Schema di dichiarazione 4-bis: generazione del tipo operazione_t, mediante typedef typedef operazione_t; operazione_t x, y, v[100]; 2 Esercizio Siano date le seguenti dichiarazioni di tipi e variabili (con eventuale inizializzazione). Si individuino gli eventuali errori, proponendo le relative correzioni. int codice = 201; char nome[20] = video al plasma ; float prezzo = 634.5; int npezzi = 7; op; int x, int y, int x; a, b; volo char partenza[20], arrivo[20]; float durata 2006 Politecnico di Torino 2

I commenti indicano le parti errate e/o le correzioni. Il tipo di inizializzazione proposta (nella definizione di ) non e legale. E invece possibile inizializzare esplicitamente la variabile op, come riportato nel seguito. op = 201, video al plasma, 634.5, 7 la dichiarazione multipla di campi dello stesso tipo non e corretta. Sono possibili due schemi alternativi: dichiarazioni separate, terminanti ognuna con ;, oppure variabili separate da virgole, con tipo di dati riportato una volta sola (vedi sotto) int x, y, x; a, b; la dichiarazione multipla e corretta. Manca un ; prima di volo char partenza[20], arrivo[20]; float durata; 3 Esercizio Si vuole realizzare un tipo adatto a contenere informazioni anagrafiche di persone (cognome, nome, data di nascita, indirizzo di residenza). In particolare, i campi relativi a cognome e nome possono essere realizzati come stringhe di lunghezza inferiore a 30 caratteri, mentre data di nascita e indirizzo di residenza sono sotto-strutture, caratterizzate, a loro volta, da campi: Data: giorno, mese, anno (valori interi) Indirizzo: via (stringa), numero civico (intero), codice postale (stringa di 5 caratteri), città (stringa di meno di 30 caratteri), provincia (due caratteri). Si definiscano in C i tipi adatti a rappresentare tali dati (si realizzino i 3 tipi definendoli mediante costrutto typedef). 2006 Politecnico di Torino 3

#define MAXS 30 #define NCAP 6 #define NPROV 3 int g, m, a; data_t; char via[maxs]; int numero; char cap[ncap], citta[maxs, prov[nprov]; indirizzo_t; char cognome[maxs], nome[maxs]; data_t datadinascita; indirizzo_t indirizzo; persona_t; 4 Esercizio Si ridefinisca la struttura (a due livelli) dell esercizio precedente, utilizzando un unica definizione (senza, cioè, definire separatamente i tipi relativi a data e indirizzo). #define MAXS 30 #define NCAP 6 #define NPROV 3 char cognome[maxs], nome[maxs]; int g, m, a; datadinascita; char via[maxs]; int numero; char cap[ncap], citta[maxs, prov[nprov]; indirizzo; persona_t; 2006 Politecnico di Torino 4

5 Esercizio Sia dato il tipo dell esercizio 3 (oppure 4). Si scrivano due funzioni leggipersona e scrivipersona, rispettivamente per acquisire da tastiera e stampare a video i dati relativi a una. Per l input, si prevede che vengano stampati come prompt i nomi di ognuno dei campi per i quali si fa input. Analogamente per l output. persona_t leggipersona (void) persona_t p; printf( cognome: ); scanf( %s, p.cognome); printf( nome: ); scanf( %s, p.nome); printf( data di nascita (g m a): ); scanf( %d%d%d, &p.datadinascita.g, &p.datadinascita.m, &p.datadinascita.a); printf( indirizzo - via (sono ammessi spazi): ); gets(p.indirizzo.via); printf( indirizzo - numero: ); scanf( %d, &p.indirizzo.via); printf( indirizzo - numero: ); scanf( %d, &p.indirizzo.via); printf( indirizzo - cap: ); scanf( %s, &p.indirizzo.cap); printf( indirizzo citta (sono ammessi spazi): ); gets(p.indirizzo.citta); printf( indirizzo - provincia: ); scanf( %s, &p.indirizzo.prov); return p; 6 Esercizio Si scriva una funzione in grado di contare il numero di giorni intercorsi tra due date, ricevute come parametri in ingresso. Si faccia riferimento ad un tipo data_t, realizzato mediante, quale quello utilizzato nell esercizio 3. La funzione realizza il conteggio valutando la differenza tra anni, mesi e giorni. int contagiorni (data_t d0, data_t d1) int i, n, nm; conta anni nm = d1.a d0.a; n = nm*365; conta anni bisestili for (i=d0.a+1; i<d1.a; i++) if (i%4==0) n++; 2006 Politecnico di Torino 5