INFORMATICA typedef.

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

INFORMATICA Tipi strutturati
INFORMATICA Altre Istruzioni di I/O
LINGUAGGIO DI PROGRAMMAZIONE C
INFORMATICA Algoritmi fondamentali
INFORMATICA Strutture condizionali
/ fax
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (IV)
Introduzione al linguaggio C
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
I DATI I PRINCIPALI TIPI DI DATO UTILIZZATI IN PROGRAMMAZIONE
Algoritmi e Programmazione
Introduzione al linguaggio C
Introduzione al linguaggio C Dr. Francesco Fabozzi Corso di Informatica.
INFORMATICA Strutture iterative
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Maria Teresa PAZIENZA a.a
Funzioni definite dall’utente
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
Process synchronization
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Variabili e tipi primitivi Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Rappresentazione dellinformazione su calcolatore Anno Accademico 2009/2010.
Array Struttura numerate di dati. Memorizzare molti dati In informatica cè spesso bisogno di memorizzare ed elaborare un insieme costituito da molti dati.
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
INFORMATICA Esercizi.
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
Unità Didattica 2 I Linguaggi di Programmazione
Struct, enum, Puntatori e Array dinamici
Strutture di controllo in C -- Flow Chart --
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Dichiarazioni e tipi predefiniti nel linguaggio C
Il Linguaggio C.
Le funzioni.
Espressioni condizionali
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Java base I: Sintassi e tipi di dati
FUNZIONI: IL MODELLO APPLICATIVO 1) Valutazione, nellenvironment corrente, del simbolo che denota il nome della funzione; 2) Valutazione, nellenvironment.
CODIFICA Da flow-chart a C++.
2000 Prentice Hall, Inc. All rights reserved. Capitolo 10 (Deitel) Strutture, unioni ed enumerazioni Sommario Introduzione Definire le strutture.
Maturità professionale sottocenerina
Unità Didattica 3 Linguaggio C
Enumerazioni e Classi 1. Enumerazioni Permettono di definire nuovi tipi che consistono in un insieme di valori costanti (ognuno con un nome) – Migliorano.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
GLI ARRAY MONODIMENSIONALI. Utilizzando le nostre attuali conoscenze, proviamo a risolvere il seguente problema: Calcolare la media dei voti conseguiti.
Il linguaggio Fortran 90: 3. Procedure e Funzioni
Lezione 3 Struttura lessicale del linguaggio
Programmazione ad oggetti
Vettori, indirizzi e puntatori Finora abbiamo usato gli indirizzi nel chiamare  la funzione scanf()  le altre funzioni per riferimento Tuttavia la vera.
1 Corso di Informatica (Programmazione) Lezione 8 (7 novembre 2008) Programmazione in Java: operatori aritmetici, operatori di assegnamento e cast.
Tecnologie di InternetDocument Type Definition Dott. Nicola Dragoni Document Type Definition  Document Type Definition (DTD)  Documento XML valido 
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Università di Torino – Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a prof. Viviana Bono Blocco 7 – Array.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
© Piero Demichelis Tipi strutturati I tipi considerati finora hanno la caratteristica comune di non essere strutturati: ogni elemento è una singola entità.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Codifica binaria dell’informazione Marco D. Santambrogio – Ver. aggiornata al 11.
Informatica 6 Tipi di dato. Nelle celle di memoria di un calcolatore ci sono solo “0” e “1”, fisicamente realizzati tramite due diversi livelli di tensione.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
FI - Algoritmi e Programmazione 1 Variabili Consentono di aumentare notevolmente la potenza espressiva. Una variabile è caratterizzata da:  Un nome 
Codifica binaria dell’informazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Codifica binaria dell’informazione Marco D. Santambrogio – Ver. aggiornata al 11.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Codifica binaria dell’informazione Marco D. Santambrogio – Ver. aggiornata al 24.
LA LOGICA MATEMATICA.
Progetto accoglienza ANNO SCOLASTICO 2011/2012 (DA SETTEMBRE A FINE OTTOBRE) NELL’AMBITO DEL PROGETTO ACCOGLIENZA I BAMBINI COLLABORANO ALLA CREAZIONE.
Transcript della presentazione:

INFORMATICA typedef

Ridefinizione dei tipi: typedef E’ possibile ridefinire un tipo già esistente mediante la parola chiave typedef, cosicché si può utilizzare un nuovo identificatore (sinonimo) al posto del precedente. Formato: typedef tipo_esistente nuovo_nome; Esempio: typedef long int interolungo; /* ridefinizione di tipo */ integerolungo dato_int; /* dato_int e' un intero lungo */ Mediante typedef si possono definire, ad esempio, tipi astratti, integer8, integer16 e integer32, dall'ovvio significato, per poi ridefinirli in funzione del compilatore effettivamente usati.

Il tipo enumerazione

Il tipo enumerazione: enum Nei problemi reali può succedere di dover trattare colori, categorie, dimensioni, ecc., per i quali non esiste un tipo predefinito che si adatti opportunamente alla loro rappresentazione.   In questi casi il C permette di definire le entità su cui il programma deve operare: questa possibilità è data dalla definizione dei tipi enumerati.  La forma generale è: enum [identif_tipo] {identif. [, identif.]} [variabile]; enum identif_tipo variabile; dove le parti opzionali sono tra parentesi quadra.

Il tipo enumerazione: enum Esempio: enum colore {bianco, rosso, blu, giallo, verde, nero}; enum week {lunedi, martedi, mercoledi, giovedi, venerdi, sabato, domenica}; ................................ enum colore col_parete; enum week giorno; La variabile col_parete, di tipo colore, potrà assumere i valori bianco, rosso, blu, ecc.   La variabile giorno di tipo week i valori lunedi, martedi, ecc.

Il tipo enumerazione: enum La definizione può apparire in varie forme:   a) enum {identif. [, identif.]} variabili; variabile può assumere uno dei valori della lista (espressi in modo simbolico); esempio: enum colore {bianco, rosso, blu, giallo, verde, nero} col_parete; b) enum nome_tipo {identif. [, identif.]}; ............................... enum nome_tipo variabili; In questo modo si identifica con nome_tipo la lista dei valori assunti, successivamente si definisce variabile di quel tipo enumerativo che potrà assumere soltanto i valori indicati nella lista precedente.

Il tipo enumerazione: enum Ad esempio: enum colore {bianco, rosso, blu, giallo, verde, nero}; ................................ enum colore col_parete; c) enum nome_tipo {ident. [, ident.]} variabile_1; ..................................... enum nome_tipo variabile_2, ......, variabile_n;   è una combinazione delle precedenti; esempio: enum colore {bianco, rosso, blu, giallo, verde, nero} parete_A; enum colore parete_B;

Il tipo enumerazione: enum In un programma si possono pertanto avere istruzioni del tipo: col_parete = verde; giorno = mercoledi; Nella definizione di tipo si evidenziano due elementi: l’ identificatore di tipo, detto tag, e gli identificatori che verranno usati per esprimere i valori assunti da quel tipo.   I valori assunti da quel tipo corrispondono a delle costanti intere definite in modo automatico dal compilatore, che pertanto devono essere uniche nel programma. Ad esempio, enum festivo {sabato, domenica}; enum feriale {lunedi, martedi, mercoledi, giovedi, venerdi, sabato}; è errato perché sabato è presente in due tipi; analogamente è illecito usare, per esempio, l'identificatore domenica come nome di una variabile.

Il tipo enumerazione: enum La lista degli identificatori che denotano i valori assunti da un tipo enumerato forma un insieme ordinato che il compilatore codifica con valori interi crescenti a partire da 0.   Nella definizione del tipo colore, l'identificatore bianco viene codificato con 0, rosso con 1, blu con 2, ecc. Si possono modificare questi valori, assegnati automaticamente, imponendo i valori interi che si vogliono assegnare direttamente nella definizione. Si fa seguire al nome dell'identificatore il segno uguale e il valore che si intende assegnare. Il compilatore assumerà questo numero come nuovo valore di partenza per le assegnazioni successive.

Il tipo enumerazione: enum Esempio: enum colore {bianco, rosso, blu = 20, giallo, verde, nero};   In questo caso bianco vale 0, rosso vale 1, blu vale 20, giallo vale 21, ecc. E’ possibile attribuire a più identificatori valori identici, o esplicitamente (ad esempio, blu = 20, giallo = 20), o implicitamente: se, ad esempio, si pone blu = 0 (lo stesso valore di bianco che a questo punto è già stato codificato), giallo assumerà lo stesso valore di rosso, cioé 1).

Il tipo enumerazione: enum In generale quindi questi identificatori agiscono come costanti intere e possono essere usati dovunque è appropriata una costante. Un'applicazione interessante è la definizione del tipo logico (assente in C) ottenuta combinando la definizione di tipo enumerato con la creazione di un tipo simbolico mediante typedef: typedef enum {FALSO, VERO} boolean; /*boolean è definito come sinonimo di un tipo enumerato a due valori*/ boolean finito, trovato; /* definizione di due variabili logiche */ Si noti che FALSO e VERO sono definite in un modo implicito e assumono rispettivamente i valori 0 e 1.

Il tipo enumerazione: enum Il linguaggio C definisce gli enumerati come una forma particolare del tipo intero: ne consegue che i valori definiti in tipi enumerati differenti sono a tutti gli effetti dei valori interi.   Sono pertanto lecite (sintatticamente, non semanticamente!) assegnazioni di valori di un tipo enumerato a una variabile di un altro tipo enumerato. Un'altra conseguenza è che per le operazioni di I/O dei dati di tipo enumerato non sono previsti specificatori ad hoc, in quanto sono a tutti gli effetti degli interi.

Il tipo enumerazione: enum Esempio: main() { enum materia {italiano, latino, storia, geografia}; enum giorni {lunedi, martedi}; enum materia corso; enum giorni domani; corso = storia; /* corso assume il valore 2 */ corso = 3; /* corso assume il valore 3, cioè geografia */ domani = latino; /* domani assume il valore 1 */ }

enum: esempio Esempio: programma per introdurre da terminale i voti acquisiti in ogni materia di insegnamento e calcolo della media.   #include <stdio.h> main() { enum materia {italiano, latino, storia, geografia}; float sommavoti, voto, numvoti; enum materia corso; numvoti = 0; sommavoti = 0; printf (“\nCalcola la media dei voti. Introdurre i voti.\n");

enum: esempio for (corso = italiano; corso <= geografia; corso++) { printf(“\nVoto di "); /* costruisce il messaggio di richiesta voto */ switch (corso) case italiano: printf ("italiano: "); break; case latino: printf ("latino: "); break; case storia: printf ("storia: "); break; case geografia: printf ("geografia: "); } scanf ("%f", &voto); sommavoti += voto; /* accumula in sommavoti (per la media) */ numvoti++; /* incrementa numvoti (per la media) */ printf (“\n\nMedia dei voti: %5.2f\n", sommavoti/numvoti);