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



Похожие документы
Compito di Fondamenti di Informatica

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Definizione di nuovi tipi in C

1: /* Nome del programma: gestione_articoli_01.cpp 2: Realizzato da: Gaetano Della Cerra 3: Data: 06/02/ III Informatica Serale I.T.I.S.

Esercitazione 10. Strutture ed Enumerazioni. Allocazione dinamica di memoria

RICERCA DI UN ELEMENTO

Laboratorio di programmazione

Introduzione alla programmazione in C

I puntatori e l allocazione dinamica di memoria

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Esercizi di programmazione in C

Esempio: Array di struct

Record in C: il costruttore struct.

Fondamenti di Informatica 2

Alfabeto ed elementi lessicali del linguaggio C

Lezione 9: Strutture e allocazione dinamica della memoria

File di testo e file binari Directory

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

Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente.

Quotazione compareto( ) Quotazione piurecente( ) Quotazione Quotazione Quotazione non trovato count( )

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30'

Gestione delle stringhe in C

Inizializzazione, Assegnamento e Distruzione di Classi

Introduzione al linguaggio C Gli array

Gestione dei File in C

Lab 11 Gestione file di testo"

Esercizi. La funzione swapint() primo tentativo

INFORMATICA - I puntatori Roberta Gerboni

Appello di Informatica B

Linguaggio C. Esercizio 1

2. Spiegare brevemente qual è la funzione del compilatore e la sua importanza per il programmatore.

Alcune regole di base per scrivere un programma in linguaggio C

Esercizi C sui tipi definiti dall utente

Laboratorio di Algoritmi e Strutture Dati

Fondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 4A di Martedì 21 Giugno 2011 tempo a disposizione 2h

Linguaggio C - Stringhe

Esercizio 1. Esercizio 2

Sottoprogrammi: astrazione procedurale

3. La sintassi di Java

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Esame del 3 febbraio 2010

Esercizio 1. Esercizio 1

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C

Fondamenti di Informatica T. Linguaggio C: File

Problem solving avanzato

PROGRAMMI LINGUAGGIO C

Esame di Informatica Generale 9 CFU 21 Giugno 2011 Professori: Carulli, Fiorino, Mazzei

costruttori e distruttori

Funzioni. Corso di Fondamenti di Informatica

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Le operazioni di allocazione e deallocazione sono a carico del sistema.

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Variabili e tipi di dato

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio

Esercizi. Stringhe. Stringhe Ricerca binaria

Il tipo di dato astratto Pila

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Corso di Fondamenti di Informatica

Esempio produttori consumatori. Primitive asincrone

puntatori Lab. Calc. AA 2007/08 1

Richiesta pagina PHP (es: index.php)

AA LA RICORSIONE

MAGAZZINO.CPP January 2, 2008 Page 1

Puntatori Passaggio di parametri per indirizzo

Esercizi. Filtraggio

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2011

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

Allocazione dinamica della memoria - riepilogo

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp KP Cap. 6 pp

Транскрипт:

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

Struct Per aggregare elementi di tipo diverso si utilizza una struttura. struct indirizzo { char via[20]; int numero; }; introduce nel programma il nuovo tipo: indirizzo. Per definire variabili di tipo data: struct indirizzo x; x è una variabile strutturata, composta da due parti; una stringa e un int.

Struct La sintassi per la definizione di una struttura è: struct nomestruttura { tipomembro nomemembro1; tipomembro nomemembro2;... tipomembro nomemembron; }; Si possono allora definire variabili il cui tipo è nomestruttura: struct nomestruttura nomevariabile;

Struct Le variabili si possono definire direttamente quando si definisce il tipo struttura. struct automobile { char marca[10]; char modello[10]; int prezzo; } a1, a2; È equivalente a: struct automobile { char marca[10]; char modello[10]; int prezzo; }; struct automobile a1, a2;

Struct Operatore = applicato alle struct struct automobile { char marca[10]; char modello[10]; int prezzo; } a1, a2; a1=a2; Viene effettuata la copia membro per membro

Struct Per riferirsi a un membro nomevariabilestruttura.nomemembro struct TriangoloRettangolo { float cateto1, cateto2, area; } a; scanf("%f",&a.cateto1); scanf("%f",&a.cateto2); a.area=a.cateto1*a.cateto2/2; printf("\narea del Triangolo = %f ",a.area);

Tipi Derivati composti tramite Struct struct data { int giorno; char mese [20]; int anno; }; struct persona { char nome[30]; char cognome[30]; struct data datanasc; char comunenasc[30]; char telefono[10]; char parentela[2]; }; La struttura persona ha dei membri che sono a loro volta delle variabili struttura.

Tipi Derivati composti tramite Struct struct data { int giorno; char mese [20]; int anno; }; struct persona { char nome[30]; char cognome[30]; struct data datanasc; char comunenasc[30]; char telefono[10]; char parentela[2]; } p1,p2; scanf( %d,&p1.datanasc.giorno); p2.datanac.anno=2013; strcpy(p2.datanasc.mese, "Gennaio"); printf( %d,p2.datanasc.giorno); gets(p1.cognome); printf("\ncognome = %s ",p1.cognome);

Typedef typedef struct { int giorno; char mese [20]; int anno; } data ; struct persona { char nome[30]; char cognome[30]; data datanasc; char comunenasc[30]; char telefono[10]; }; data x,y,z;

Struct e Vettori typedef struct { char cognome[30], nome[30], telefono[15]; } persona; persona vettore[n]; printf("\ninserisci il Cognome "); gets(vettore[0].cognome); printf("\ncognome = %s ", vettore[0].cognome);

Esercizio Programma per la gestione di un vettore di struct (cognome, nome, telefono) Riempimento di un elemento alla volta Visualizzazione di tutto l archivio Ricerca per cognome e nome e visualizzazione del telefono

Svolgimento 1/4 #include<stdio.h> #define FFLUSH while(getchar()!='\n') #define DIM 10 #define N 30 #define T 15 0 DIM-1 Indice_inserimento Indice_inserimento Indice_inserimento typedef struct { char cognome[n], nome[n], telefono[t]; } persona; persona vettore[dim], tmp; unsigned int indice_inserimento, i, j; unsigned short scelta; int main(void) { indice_inserimento=0; do { printf("\n1)inserimento "); printf("\n2)visualizzazione "); printf("\n3)ricerca per cognome e nome "); printf("\n4)fine "); scanf("%u",&scelta); FFLUSH; switch (scelta){

Svolgimento 2/4 case 1: if (indice_inserimento==dim) printf("\narchivio Pieno "); else { printf("\ninserisci il Cognome "); gets(vettore[indice_inserimento].cognome); printf("\ninserisci il Nome "); gets(vettore[indice_inserimento].nome); printf("\ninserisci il Telefono "); gets(vettore[indice_inserimento].telefono); indice_inserimento++; } break;

Svolgimento 3/4 case 2: if (indice_inserimento==0) printf("\narchivio Vuoto "); else for (i=0; i<indice_inserimento; i++) { printf("\ncognome = %s ",vettore[i].cognome); printf("\nnome = %s ",vettore[i].nome); printf("\ntelefono = %s ",vettore[i].telefono); } break;

Svolgimento 4/4 case 3: if (indice_inserimento==0) printf("\narchivio Vuoto "); else { printf("\ninserisci il Cognome "); gets(tmp.cognome); printf("\ninserisci il Nome "); gets(tmp.nome); for (i=0;i<indice_inserimento;i++) if (!strcmp(vettore[i].cognome, tmp.cognome)&&!strcmp(vettore[i].nome,tmp.nome)) { printf("\nil Telefono e' %s ", vettore[i].telefono); break; } if (i==indice_inserimento) printf("\nnon ESISTE "); break; } } }while (scelta<4); }