LABORATORIO di INFORMATICA

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "LABORATORIO di INFORMATICA"

Transcript

1 Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto TIPI DI DATI IN C Introduzione! Per tipo di dato si intende un insieme di valori e un insieme di operazioni che possono essere applicate ad essi! Es. i numeri interi sono costituiti dall insieme {,-2,-1, 0,+1,+2, } e dalle operazioni aritmetiche (somma, sottrazione, )! La definizione di tipo di dato consente di trattare i dati in maniera astratta, cioè prescindendo dalla codifica realizzata dalla macchina concreta! Tuttavia in alcuni casi l uso di un tipo di dato piuttosto che un altro è legato alla rappresentazione concreta dei dati nella macchina Giorgio Giacinto 2010 Laboratorio di Informatica 2

2 Introduzione (cont.)! Tutte le variabili di un programma C hanno un tipo associato una volta per tutte alla dichiarazione! Per ogni variabile si conosce l insieme dei valori ammissibili e l insieme delle operazioni che possono essere applicate! Per ogni variabile si conosce a priori la quantità di memoria occupata (es.char: 1 byte, int: 1 parola)! E possibile rilevare eventuali errori nell uso della variabile durante la compilazione del programma! In espressioni che contengono variabili di tipo diverso il compilatore verifica se esiste compatibilità con i valori e le operazioni dei diversi tipi in base a regole predefinite. Giorgio Giacinto 2010 Laboratorio di Informatica 3 Classificazione dei tipi di dati! Tipi semplici: quando la variabile deve rappresentare informazioni semplici (velocità, temperatura)! Il dato non può essere scomposto (indivisibile)! Tipi strutturati: deve rappresentare dati più complessi rappresentati da più dati elementari (es.data)! Il dato può essere scomposto nelle sue componenti (ad es. la data può essere scomposta in tre componenti: giorno,mese, anno)! Tipi definiti dall utente (user-defined): il C offre la possibilità di definire e costruire nuovi tipi di dati da affiancare a quelli già esistenti nel linguaggio (built-in) Giorgio Giacinto 2010 Laboratorio di Informatica 4

3 Tipi semplici predefiniti! Il C prevede quattro tipi di base: char (caratteri), float (reali), int (interi), double (reali in precisione doppia)! I qualificatori di tipo signed, unsigned, short e long condizionano l insieme dei valori che la variabile tipizzata può assumere! I qualificatori di tipo short e long condizionano lo spazio allocato dal compilatore! Lo spazio allocato dipende dalla macchina utilizzata Giorgio Giacinto 2010 Laboratorio di Informatica 5 Tipi semplici predefiniti Giorgio Giacinto 2010 Laboratorio di Informatica 6

4 Tipo int! Il tipo interi è costituito dall insieme {,-2,-1,0,+1,+2, } e dalle operazioni aritmetiche (somma, sottrazione, moltiplicazione, ecc.)! Normalmente un int è memorizzato in una parola (16 o 32 bit)! Il compilatore può prevedere un allocazione di memoria inferiore o superiore rispettivamente nei casi di short int e long int. Vale sempre la regola: spazio_all.(short int)! spazio_all.(int)! spazio_all.(long int) Giorgio Giacinto 2010 Laboratorio di Informatica 7 signed int e unsigned int! signed int La rappresentazione binaria prevede l uso di un bit per il segno! Es. signed int a 16 bit: insieme valori da {-2 15,,2 15-1}! unsigned int Tutti i bit della rappresentazione binaria vengono utilizzati per il valore! Es. unsigned int a 16 bit: insieme valori da {0, }! N.B. spazio_all(signed int) = spazio_all(unsigned int) Giorgio Giacinto 2010 Laboratorio di Informatica 8

5 Intervallo di valori int! La libreria <limits.h> contiene le costanti che definiscono il minimo e il massimo valore di un int relativi all implementazione del linguaggio! Le costanti predefinite INT_MIN e INT_MAX contengono i limiti per int! Se il risultato delle operazioni su interi non forniscono valori appartenenti all insieme di appartenenza della variabile (ad es. valori maggiori di INT_MAX) si produce una segnalazione di errore (Integer Overflow) Giorgio Giacinto 2010 Laboratorio di Informatica 9 Tipi di dati: operazioni di tipo Built-in per dati di tipo int Giorgio Giacinto 2010 Laboratorio di Informatica 10

6 (1) Programma Anno bisestile #include <stdio.h> main() { int anno, resto; printf( Inserire l anno\n ); scanf( %d,&anno); while(anno > 0) { resto = anno%4; if(!resto) printf( L anno %d e bisestile\n,anno); else printf( L anno %d non e bisestile\n,anno); printf( Inserire l anno\n ); scanf( %d,&anno); } }/* Manca il controllo degli anni-secolo*/ Giorgio Giacinto 2010 Laboratorio di Informatica 11 Tipi float e double! I tipi float e double sono un approssimazione dei numeri reali rappresentati in virgola mobile (floating point)! Un numero decimale in virgola mobile viene rappresentato in C come mantissa ed esponente separati dalla lettera E! Ad es diventa 1.75E4! N.B. Non si confonda la rappresentazione interna al calcolatore (binaria) con i tipi del C (pensati per il sistema decimale) Giorgio Giacinto 2010 Laboratorio di Informatica 12

7 Intervallo di valori float e double! In molti calcolatori: float memorizzato su 4 byte! precisione di circa 6 cifre decimali! intervallo di valori: da a double memorizzato su 8 byte! precisione di circa 15 cifre decimali! intervallo di valori: da a In generale: spazio_all.(float)! spazio_all.(double)! spazio_all.(long double) Giorgio Giacinto 2010 Laboratorio di Informatica 13 Operazioni Built-in per dati di tipo float e double Giorgio Giacinto 2010 Laboratorio di Informatica 14

8 Osservazioni sull uso dei reali! Le tecniche usate per la rappresentazione e l elaborazione dei reali possono introdurre errori di approssimazione! Es. il numero 1 potrebbe essere sostituito dal valore ! È pericoloso eseguire confronti di uguaglianza esatta tra valori reali.! Ad es. non è detto che (x/y) * y == x sia sempre verificata! È consigliabile considerare un certo margine di approssimazione Ad es.: if (x == y)può essere sostituita da if (x<=y && y<= x ) Questi temi vengono affrontati nei corsi di Calcolo Numerico Giorgio Giacinto 2010 Laboratorio di Informatica 15 (2) Conversione Fahrenheit- Celsius #include <stdio.h> main() { int Ftemp; float Ctemp; printf( Inserire la temperatura in gradi F\n ); scanf( %d,&ftemp); Ctemp = (5.0/9.0)*(Ftemp 32); printf( %d gradi F corrispondono a,ftemp); printf( %f gradi C\n,Ctemp); } N.B. Per ottenere la temperatura in Celsius si è usata la formula 5.0/9.0 perché in C 5/9 verrebbe interpretata come divisione fra interi con risultato intero (in questo caso 0) Giorgio Giacinto 2010 Laboratorio di Informatica 16

9 (3) Calcolo del volume di una sfera #include <stdio.h> main() { const float Pi = ; float volume,raggio; printf( Inserire il raggio della sfera: ); scanf( %f,&raggio); volume=(4.0/3.0)*pi*raggio*raggio*raggio; printf( \nil volume della sfera di raggio ); printf(( %f e %f\n,raggio,volume); } N.B. Le stampe a video sono state divise in diverse istruzioni printf solo per esigenze di visualizzazione della presentazione. Giorgio Giacinto 2010 Laboratorio di Informatica 17 Tipo char! L insieme dei caratteri di tipo char è l insieme dei caratteri ASCII! La codifica ASCII consente la rappresentazione di ciascun carattere attraverso un valore intero! Il compilatore C per un char alloca 1 byte! signed char: valori da 128 a +128! unsigned char: valori da 0 a 255! Il tipo char presenta gli stessi operatori del tipo int! E una conseguenza della codifica dei caratteri tramite interi Giorgio Giacinto 2010 Laboratorio di Informatica 18

10 Tipo char (cont.)! Un altra conseguenza della codifica dei caratteri con interi è l ordinamento dei caratteri! Se x e y sono due variabili di tipo char, l espressione x < y è vera se x precede y nella codifica ASCII! Alcuni caratteri sono caratteri di controllo, cioè la loro scrittura produce l esecuzione di un operazione! \n (newline)! \b (backspace)! \t (horizontal tab)! \r (carriage return) Giorgio Giacinto 2010 Laboratorio di Informatica 19 (4) Minuscole in Maiuscole #include <stdio.h> main() { char C,CM; printf( Inserire un carattere (# per terminare)\n ); scanf( %c,&c); while(c!= # ) { printf( Il codice ASCII del carattere %c è %d\n,c,c); if(c >= a && C <= z ) { CM = C ( a - A ); printf( La maiuscola di %c è %c e il suo codice ASCII è %d\n,c,cm,cm); } printf( Inserire un carattere (# per terminare)\n ); scanf( %c,&c); } } Giorgio Giacinto 2010 Laboratorio di Informatica 20

11 Classificazione dei tipi predefiniti C! Le variabili di tipo char, signed char, unsigned char, short, int, long, unsigned short, unsigned e unsigned long sono sempre rappresentate in memoria da un numero intero! Prendono anche il nome di tipi integral. Da notare che l indice di un array può essere solo di tipo integral In particolare i caratteri vengono trattati come piccoli interi e, viceversa, i piccoli interi possono essere trattati come caratteri. Giorgio Giacinto 2010 Laboratorio di Informatica 21 Classificazione dei tipi predefiniti C! Tutti i tipi arithmetic del C (integral e floating) condividono alcune importanti caratteristiche:! Sono totalmente ordinati, per ogni coppia x, y con x!= y, risulta o x < y o y < x! Sono limitati, cioè sono forniti di un valore minimo e massimo nel caso di numeri reali rappresentati in virgola mobile possono essere ignorati! I tipi integral sono insiemi discreti, cioè possono essere enumerati.! Nota: il tipo astratto floating rappresenta l insieme denso dei reali. Tuttavia in concreto il calcolatore può rappresentare solo un sottoinsieme discreto dei reali. Giorgio Giacinto 2010 Laboratorio di Informatica 22

12 Definizione di nuovi tipi: regole sintattiche! Tutti i tipi di dati non predefiniti utilizzati in un programma devono essere dichiarati come ogni altro elemento del programma Sintassi dichiarazione di tipo (type declaration): typedef <costruzione_tipo><identificatore_tipo>;! costruzione: specifica come è costruito a partire dai tipi esistenti! identificatore: l identificatore del nuovo tipo Es. typedef int anno; rende possibile dichiarare variabili di tipo anno Giorgio Giacinto 2010 Laboratorio di Informatica 23 Dichiarazioni di variabili basate sulla definizione di un nuovo tipo! Dichiarazione di variabile basata su nuovo tipo: <costruzione_tipo><id_variabile>[<costruzione_tipo>]! Scelta fra uso di typedef per definire un nuovo tipo o dichiarazione variabili in base al nuovo tipo:! Se diverse variabili usano un nuovo tipo, la sua definizione mediante typedef può rendere il programma più chiaro! Non vi sono regole precise: dipende dall esperienza e dal gusto personale Giorgio Giacinto 2010 Laboratorio di Informatica 24

13 Definizione di nuovi tipi: osservazioni! La funzione del typedef di fatto è quella di associare un nome a un tipo già esistente o nuovo! typedef non consente la definizione di nuove operazioni applicabili ai valori del nuovo tipo! Grossa limitazione nell uso dei nuovi tipi di dato a livello astratto Per realizzare nuovi tipi astratti di dato, occorrono altri strumenti del linguaggio C: funzioni e procedure (illustrate in un altra sezione) Giorgio Giacinto 2010 Laboratorio di Informatica 25 Tipi semplici definiti dall utente Ridefinizione Un nuovo tipo può essere definito dando un nuovo nome a un tipo già esistente: typedef <TipoEsistente> <NuovoTipo>; <TipoEsistente> può essere sia un built-in (predefinito), sia un tipo user-defined precedentemente definito Es. typedef int tipo1; typedef tipo1 tipo2; Giorgio Giacinto 2010 Laboratorio di Informatica 26

14 Tipi semplici definiti dall utente (cont.) Enumerazione esplicita dei valori Un nuovo tipo può essere costruito elencando i possibili valori Sintassi typedef enum {<valore>{,<valore>}}; Esempio typedef enum {lun,mar,mer,gio,ven,sab,dom} GiornSett; GiornSett x, y; x = lun; y = gio; Giorgio Giacinto 2010 Laboratorio di Informatica 27 Tipi semplici definiti dall utente: osservazioni su enumerazione! Il compilatore associa ai nuovi valori un progressivo valore intero! Questo valore intero viene considerato per la valutazione di espressioni, relazioni ed assegnamenti Ad esempio: x = lun; y = gio; in realtà x assume valore 0, e y assume valore 3! L enumerazione può essere perciò considerata come una ridefinizione del tipo int! Le operazioni su int possono essere applicate ai tipi enumerati! E definita una relazione di ordinamento in base all ordine con cui vengono elencati i valori di tipo Giorgio Giacinto 2010 Laboratorio di Informatica 28

15 Tipi di dati definiti per enumerazione: boolean Tramite il costruttore enum in C e possibile costruire il tipo di dato boolean che non esiste come predefinito Es. typedef enum {false, true} boolean; boolean flag, ok; Flag e ok sono variabili che possono assumere valori vero o falso Giorgio Giacinto 2010 Laboratorio di Informatica 29 TIPI STRUTTURATI

16 Tipi strutturati! Il C non possiede tipi built-in strutturati ma possiede quattro costruttori che consentono la definizione di tipi strutturati anche complessi array, struct, union e pointer (union e pointer non saranno trattati in questo corso) Giorgio Giacinto 2010 Laboratorio di Informatica 31 Array in C! Per array si intende una sequenza di celle di memoria consecutive e omogenee! Omogeneità. Ciascuna cella contiene dati uniformi: solo interi, solo numeri in virgola mobile, ecc.)! Alla sequenza viene dato un unico nome identificatore! Per identificare una cella nella sequenza occorre specificarne l indice! Le celle sono numerate consecutivamente a partire da 0! s[5] indica il 6 elemento dell array s Giorgio Giacinto 2010 Laboratorio di Informatica 32

17 Array in C (cont.)! Un array di 28 elementi ha indici con valori compresi fra 0 e 27.! L indirizzamento s[5] viene tradotto dalla macchina virtuale come la somma dell indice (5) all indirizzo della prima cella (la numero 0)! s[j] può essere trattato come una qualunque variabile e inserita nelle espressioni. Giorgio Giacinto 2010 Laboratorio di Informatica 33 Array in C (cont.) Esempi di istruzioni con array: a[3] = s[1] + x; if(a[4] > s[1] +3) s[2] = a[2] + a[1]; x = a[1]; a[i] = a[i+1]; a[i*x] = = s[a[j+1]-3]*(y-a[y]); NOTA: l indice in genere è il risultato del calcolo di una espressione Giorgio Giacinto 2010 Laboratorio di Informatica 34

18 Costruttore array array Analogamente alle variabili array, il costruttore array permette di costruire tipi di dati i cui elementi sono delle sequenze omogenee di valori appartenenti a un unico tipo, in cui ogni elemento è individuato mediante un indice Sintassi typedef <id_tipo_elem><id_nuovo_tipo>[<dim>]; Es. typedef int anarray[20]; anarray lista1, lista2; Giorgio Giacinto 2010 Laboratorio di Informatica 35 Costruttore array (cont.) <id_tipo_elem> identificatore di tipo degli elementi dell array <id_nuovo_tipo> identificatore del nome dato al nuovo tipo <dim> il numero di elementi contenuti nell array Note:! l indice per accedere agli elementi di un array varia da 0 a dim-1.! La variabile usata come indice deve essere di tipo integral Giorgio Giacinto 2010 Laboratorio di Informatica 36

19 Costruttore array (cont.)! Dichiarazione di una sola variabile di un tipo ottenuto mediante il costruttore array: <id_tipo_elem_><id_variabile>[<dim>]; Esempio: int lista[20];! Osservazioni! L array è un costruttore di tipo, non un tipo (in C è sbagliato parlare di variabili di tipo array)! La dichiarazione di un tipo array può essere implicita nella dichiarazione di una variabile Giorgio Giacinto 2010 Laboratorio di Informatica 37 Costruttore array: osservazioni (cont.)! Agli elementi degli array sono attribuibili tipi arbitrari (built-in, user-defined, semplici o strutturati)! Si possono avere per esempio degli array i cui elementi sono degli array Esempio typedef int Vettore[20]; typedef Vettore Matrice[20]; Matrice matrice1; (dichiarazione di variabile) Sinteticamente: typedef int Matrice[20][20]; int matrice1[20][20]; (dichiarazione di variabile) Giorgio Giacinto 2010 Laboratorio di Informatica 38

20 Costruttore array: osservazioni (cont.)! Un array ha dimensioni fisse durante l esecuzione del programma! Il compilatore ha bisogno di conoscere a priori la dimensione di memoria astratta da allocare per la macchina astratta! Il programmatore deve stimare a priori la memoria da allocare per evitare spreco di memoria o il rischio di overflow! Il rischio di overflow, cioè di accedere a elementi di un array che eccedono la sua dimensione, è pericoloso perché si accede ad aree di memoria che non appartengono all array Giorgio Giacinto 2010 Laboratorio di Informatica 39 Costruttore array: osservazioni (cont.)! Nella maggior parte dei casi le dimensioni necessarie per gli array relativi a un programma, variano da esecuzione a esecuzione! Ad es. il numero di fatture emesse da una ditta, il numero di studenti di un corso, ecc.! L allocazione dinamica della memoria in C non sarà oggetto di questo corso! In molti casi è possibile stimare una dimensione ragionevole, che cauteli contro i rischi di overflow e nello stesso tempo non causi spreco di memoria Giorgio Giacinto 2010 Laboratorio di Informatica 40

21 Costruttore array: osservazioni (cont.)! Per facilitare il cambiamento delle dimensioni degli array, è conveniente dichiarare le dimensioni attraverso dei #define! Nel caso si debba ricompilare il codice, è sufficiente cambiare il valore contenuto nella direttiva #define piuttosto che rintracciare nel codice tutte le istruzioni in cui si fa riferimento alle dimensioni dell array! A differenza delle definizione di costanti che riservano spazio in memoria, il preprocessore sostituisce all identificatore, a tempo di compilazione, il valore definito Giorgio Giacinto 2010 Laboratorio di Informatica 41 Operazioni su array! Nota bene: agli elementi di un array posso applicare tutte le operazioni relative al tipo degli elementi! Se ad esempio typedef int anarray[10]; anarray Array1,Array2; Per copiare il contenuto di Array1 in Array2 non è corretto Array1 = Array2 ma devo effettuare un istruzione ciclica che copia gli elementi ad uno ad uno (cfr. esempio Concatena_stringhe.c ) Giorgio Giacinto 2010 Laboratorio di Informatica 42

22 Stringhe di caratteri! Una sequenza ordinata di caratteri forma una stringa! ad es.: una parola, una frase, ecc.! Una stringa viene definita in C come un array di char Esempio typedef char String[30]; String Nome, Cognome; oppure char Nome[30], Cognome [30]; Giorgio Giacinto 2010 Laboratorio di Informatica 43 Costruttore struct! Il costruttore di tipi struct permette di aggregare elementi eterogenei (int, char, float, ) chiamati campi della struttura! Esempio Creazione di una rubrica telefonica. Ogni scheda contiene: Nome e Cognome (stringhe di caratteri) Indirizzo (stringa di caratteri distinta dalla prima) N.ri di telefono (array di interi, uno per ciascun numero): ecc. Giorgio Giacinto 2010 Laboratorio di Informatica 44

23 Sintassi struct typedef struct { <tipo_campo> <id_campo>{; <tipo_campo> <id_campo>} } <id_nuovo_tipo>;! Come per tutti i tipi nuovi, posso dichiarare variabili di tipo nuovo definite mediante struct, senza definire esplicitamente un nuovo tipo con typedef struct { <tipo_campo> <id_campo>{; <tipo_campo> <id_campo>} } <id_variabile>; Giorgio Giacinto 2010 Laboratorio di Informatica 45 Esempi di tipi costruiti con struct typedef struct { int Giorno; int Mese; int Anno; } Data; typedef char String[30]; typedef enum {Dirigente,Impiegato,Operaio} CatType; typedef struct { String Nome; String Cognome; int Stipendio; char CodiceFiscale[16]; Data DataAssunzione; CatType Categoria; } Dipendenti; Giorgio Giacinto 2010 Laboratorio di Informatica 46

24 Accesso agli elementi di un tipo definito con struct Sintassi <id_variabile>.<id_campo> Esempio Dipendenti Dip1, Dip2; Aumento di stipendio pari al 10% per Dip1 Dip1.Stipendio = Dip1.Stipendio + (Dip1.Stipendio*10)/ 100; Dip1.DataAssunzione.Giorno = 3; Dip1.DataAssunzione.Mese = 1; Dip1.DataAssunzione.Anno = 1993: Nota l accesso ai campi DataAssunzione definiti mediante struct Giorgio Giacinto 2010 Laboratorio di Informatica 47 Operazioni su tipi di dati costruiti con struct! Agli elementi di una struttura possono essere applicate tutte le operazioni del tipo che le caratterizza! Diversamente dall array la struttura può essere coinvolta, tramite il suo identificatore, in operazioni globali di confronto (==,!=) o assegnamento (=) Esempio. Dipendenti Dip1, Dip2; Dip2 = Dip1; Giorgio Giacinto 2010 Laboratorio di Informatica 48

25 Tipi costruiti mediante array di struct Esempio Elenco di dipendenti Dipendenti ElencoDipendenti[100]; definisce una sequenza di 100 elementi di tipo dipendenti. Per accedere al codice fiscale del 23 dipendente ElencoDipendenti[22].CodiceFiscale Per accedere al mese di nascita ElencoDipendenti[22].CodiceFiscale[8] Giorgio Giacinto 2010 Laboratorio di Informatica 49 Il C e la tipizzazione forte! Le regole di tipizzazione del C sono basate sulle linee guida seguenti! Si considerino le espressioni e gli assegnamenti che coinvolgono variabili eterogenee in tipo! Sono eseguibili se tutti i tipi referenziati risultano compatibili dopo l applicazione delle regole di conversione implicita messe a disposizione dal sistema! Sono non eseguibili se le variabili risultano ancora eterogenee anche dopo l applicazione delle regole di conversione implicita messe a disposizione dal sistema Giorgio Giacinto 2010 Laboratorio di Informatica 50

26 Il C e la tipizzazione forte! Le regole per la gestione dei tipi delle variabili sono verificate al momento della compilazione senza richiedere l esecuzione del programma! Questa proprietà viene chiamata tipizzazione forte! Conseguenza: un certo numero di errori può essere individuato durante la compilazione! Nel seguito si riportano le regole implicite di conversione.! Il programmatore può forzare una conversione fra tipi (operazione di cast) che non verrà illustrata in questo corso. Giorgio Giacinto 2010 Laboratorio di Informatica 51 Espressioni che coinvolgono elementi eterogenei in tipo! Regole di conversione implicita per espressioni aritmetiche del tipo x op y 1. Variabili di tipo char o short (signed o unsigned) vengono convertite in variabili di tipo int 2. Se l espressione è ancora eterogenea, si converte temporaneamente l operando di tipo inferiore facendolo dvenire di tipo superiore secondo la gerarchia int < long < unsigned < unsigned long < float < double < long double 3. Se L espressione risultante dopo il passo 2. è omogenea, l espressione viene eseguita e il risultato è di tipo uguale a quello di più alto livello gerarchico usato nella conversione Giorgio Giacinto 2010 Laboratorio di Informatica 52

27 Assegnamenti che coinvolgono elementi eterogenei in tipo! Vengono ancora usate le regole di conversione implicita Esempio double d; int i; d = i; (il sistema converte i in double e lo assegna a d) i = d; (il sistema tronca d alla parte intera) Giorgio Giacinto 2010 Laboratorio di Informatica 53 Organizzazione di tipi in altri linguaggi! In molti moderni linguaggi di programmazione l organizzazione dei tipi ha molte caratteristiche comuni a quelle del C.! Esistono linguaggi meno convenzionali (LISP, Prolog, Snobol, Smalltalk) che consentono la tipizzazione dinamica! Il tipo di una variabile può cambiare durante l esecuzione, per cui spesso è inutile dichiararlo all inizio.! Come in altri casi, gli elementi di flessibilità di un linguaggio da un lato consentono di scrivere programmi più efficienti, d altro lato possono essere fonte di errori. Giorgio Giacinto 2010 Laboratorio di Informatica 54

Tipi di dato semplici

Tipi di dato semplici Tipi di dato semplici Perché dichiarare una variabile? 2 Una variabile rappresenta uno spazio di memoria centrale Prima dell esecuzione del programma deve essere chiaro quanto spazio serve al programma

Dettagli

Linguaggio C - sezione dichiarativa: costanti e variabili

Linguaggio C - sezione dichiarativa: costanti e variabili Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente

Dettagli

Tipo di dato. Ci siamo già imbattuti in questo concetto. Definizione generale di tipo di dato

Tipo di dato. Ci siamo già imbattuti in questo concetto. Definizione generale di tipo di dato Tipi di dati Tipo di dato Ci siamo già imbattuti in questo concetto tipo di dato = tipo di informazione alcuni tipi: interi, reali, caratteri, array, ma anche: fatture, conti correnti, pagine web, Quanti

Dettagli

Struttura dei programmi C

Struttura dei programmi C Programmi C Struttura dei Programmi C Dichiarazione delle variabili Operazioni di Ingresso/Uscita Fondamenti di Informatica 1 Struttura dei programmi C Un programma C deve contenere, nell'ordine: una parte

Dettagli

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147-00161 Roma Università degli Studi La Sapienza Fondamenti di

Dettagli

Il linguaggio C. Notate che...

Il linguaggio C. Notate che... Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione

Dettagli

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: Tipi di dato Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: esprimere in modo sintetico la loro rappresentazione in memoria, e un insieme di operazioni ammissibili permettere

Dettagli

Laboratorio di informatica Ingegneria meccanica

Laboratorio di informatica Ingegneria meccanica Interi in complemento a 2 () Laboratorio di informatica Ingegneria meccanica Lezione 5 29 ottobre 2007 Con N bit sono rappresentabili tutti gli interi nell'intervallo [-2^(N-), 2^(N-)-] Esempio: 6 bit,

Dettagli

Linguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin

Linguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin Linguaggio C Tipi predefiniti Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Il concetto di tipo (reprise) Nome che indica

Dettagli

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C Tipi predefiniti e operatori Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 RICHIAMI char 8 bit Valori interi

Dettagli

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Dettagli

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010 Tipi di dati scalari (casting e puntatori) Alessandra Giordani agiordani@disi.unitn.it Lunedì 10 maggio 2010 http://disi.unitn.it/~agiordani/ I tipi di dati scalari I tipi aritmetici, i tipi enumerativi

Dettagli

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout

Dettagli

LINGUAGGI DI PROGRAMMAZIONE!

LINGUAGGI DI PROGRAMMAZIONE! LINGUAGGI DI PROGRAMMAZIONE! Il potere espressivo di un linguaggio è! caratterizzato da:! quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente)! quali istruzioni

Dettagli

Costanti e Variabili

Costanti e Variabili Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli

Dettagli

Caratteristiche di un linguaggio ad alto livello

Caratteristiche di un linguaggio ad alto livello Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono

Dettagli

Tipi di dato primitivi

Tipi di dato primitivi Tipi di dato primitivi (oltre int) Tipi di dato primitivi int (già trattati) Valori logici (ricordati) Valori reali Valori carattere Informatica - A.A. 2009/2010 - Tipi di dato 2 1 Valori logici (il caso

Dettagli

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 24/01/07 Nota Questi lucidi sono tratti

Dettagli

Introduzione al Linguaggio C

Introduzione al Linguaggio C INFORMATICA 1 Lezione 3 (Introduzione al Linguaggio C, Introduzione ai Tipi di dato, Cenni alla codifica binaria) Introduzione al Linguaggio C 1 Passi fondamentali del C Definito nel 1972 (AT&T Bell Labs)

Dettagli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del

Dettagli

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

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C Tipi di dati strutturati e Linguaggio C Record o strutture Il costruttore struct in C Dati strutturati Record Un record o struttura è una struttura dati ottenuta aggregando elementi di tipo diverso che

Dettagli

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

Classificazione Tipi semplici predefiniti Definizione di nuovi tipi Tipi strutturati

Classificazione Tipi semplici predefiniti Definizione di nuovi tipi Tipi strutturati Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Elettrica e Meccanica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011

Dettagli

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010 Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi MASTER Information Technology Excellence Road (I.T.E.R.) Programmare in C Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di Dati Valori Un insieme

Dettagli

4 - Tipi di dato primitivi

4 - Tipi di dato primitivi 4 - Tipi di dato primitivi Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Fondamenti di Informatica Il linguaggio C (parte 1) IL LINGUAGGIO C

Fondamenti di Informatica Il linguaggio C (parte 1) IL LINGUAGGIO C IL LINGUAGGIO C I PRIMI ELEMENTI Un Programma consta di: una Global Declarative Part il Main Program le Funzioni e le Procedure Commenti La Global Declarative Part contiene la dichiarazione delle Librerie

Dettagli

Le parole chiave char, int, float, double, ed enum descrivono i. che modificano i tipi base

Le parole chiave char, int, float, double, ed enum descrivono i. che modificano i tipi base Il linguaggio C I tipi di dati scalari Il casting Le dichiarazioni di tipo I puntatori I tipi di dati scalari 1 2 I tipi di dati scalari 1 Una delle caratteristiche più importanti dei linguaggi di alto

Dettagli

Tipi interi lo standard (1)

Tipi interi lo standard (1) Tipi interi lo standard (1) Lo standard C lascia al compilatore la decisione di quanti bit assegnare a ogni tipo (char, short int, int, long int). Quello che è sempre garantito è: (signed) char può esprimere

Dettagli

Dati aggregati. Violetta Lonati

Dati aggregati. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture

Dettagli

IL LINGUAGGIO C TIPI DI DATO

IL LINGUAGGIO C TIPI DI DATO IL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura fisica di ogni elaboratore è intrinsecamente capace di trattare vari domini di dati, detti tipi primitivi dominio dei

Dettagli

Gli array, le stringhe e le strutture

Gli array, le stringhe e le strutture INFORMATICA B Ingegneria Elettrica Gli array, le stringhe e le strutture Limiti dei tipi di dato semplici Utilizzare solo i tipi di dato semplici può essere limitante e rendere il programma poco flessibile

Dettagli

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: 1 Tipi di dati 1 Tipi di dati Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: Tutto è un oggetto Tutto eredita implicitamente

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Università di Camerino Corso di Laurea in Informatica (12 CFU) I periodo didattico Emanuela Merelli email:emanuela.merelli@unicam.it Argomenti della lezione Elementi di un linguaggio

Dettagli

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati Caratteristiche Il Linguaggio C Linguaggio sequenziale (lineare), imperativo, strutturato a blocchi usabile anche come linguaggio di sistema software di base sistemi operativi compilatori... FI - Algoritmi

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

Conversioni fra Tipi di Dati. Luca Abeni

Conversioni fra Tipi di Dati. Luca Abeni Conversioni fra Tipi di Dati Luca Abeni Tipi di Dato e Conversioni In C, ogni variabile è caratterizzata da un tipo I valori che la variabile può assumere dipendono dal tipo È possibile mescolare variabili

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato

Algoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato Algoritmi, Strutture Dati e Programmi : Dati e Tipi di Dato Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Dati: Variabili e Costanti Un algoritmo (e il programma che ne è rappresentazione)

Dettagli

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Dettagli

Linguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C tipi di dati definiti dall utente Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Tipi di dati in C Predefiniti

Dettagli

Tipi di dati. una parola di memoria (16 o 32 bit), float. possibile rilevare errori nell uso di variabili mediante compilazione

Tipi di dati. una parola di memoria (16 o 32 bit), float. possibile rilevare errori nell uso di variabili mediante compilazione Tipi di dati tipo di dato insieme di valori + insieme di operazioni esempio, tipo intero..., 2, 1, 0, +1, +2,... + somma, sottrazione,... In C tutte variabili hanno un tipo associato stabilmente mediante

Dettagli

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola.

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola. Tipi di dato Le variabili in C KP Cap.3 pp.95-129 Cap.5 pp.190-193 DD Cap. 9 pp.352-355 Abbiamo già parlato delle variabili, ed abbiamo fin ora usato il tipo int, ma abbiamo molte altre possibiltà I tipi

Dettagli

Il linguaggio C. Caratteristiche generali

Il linguaggio C. Caratteristiche generali Il linguaggio C Caratteristiche generali Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni

Dettagli

Un elaboratore è un manipolatore di simboli (segni) intrinsecamente capace di trattare vari. caratteri char caratteri ASCII unsigned char

Un elaboratore è un manipolatore di simboli (segni) intrinsecamente capace di trattare vari. caratteri char caratteri ASCII unsigned char IL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura tt fisica i di ogni elaboratore è intrinsecamente capace di trattare vari domini i di dati, detti tipi i primitivi iti

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni

Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Rappresentazione della memoria

Rappresentazione della memoria Lezione 9 e 10 - Segmenti di memoria e puntatori Aritmetica dei puntatori Formattazione dei dati Significato ed impiego del cast Tipi di dato strutturato Fabio Scotti Laboratorio di programmazione per

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII.

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII. Tipi di dati fondamentali Tipi di dati fondamentali Linguaggi di Programmazione I Ferdinando Cicalese caratteri: char signed char unsigned char interi short int long interi unsigned short unsigned unsigned

Dettagli

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input

Dettagli

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma. Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti

Dettagli

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

Dettagli

Variabili. Tipi di dati di base. Variabili. Variabili

Variabili. Tipi di dati di base. Variabili. Variabili Variabili 2 Tipi di dati di base Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C Porzioni di memoria RAM usate per mantenere dati variabili nel tempo La definizione di una variabile riserva

Dettagli

Somma di numeri binari

Somma di numeri binari Fondamenti di Informatica: Codifica Binaria dell Informazione 1 Somma di numeri binari 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 Esempio: 10011011 + 00101011 = 11000110 in base e una base Fondamenti di

Dettagli

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2 LA CODIFICA DELL INFORMAZIONE Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2 Codifica dati e istruzioni Per scrivere un programma è necessario rappresentare istruzioni

Dettagli

Tipi di dato-prima parte

Tipi di dato-prima parte Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) Tipi di dato-prima parte Ing. Agnese Pinto 1 di 15 Tipi di dato Sommario Tipi di dato Classificazione dei tipi di dato Tipi

Dettagli

Corso sul linguaggio C Modulo Tipi di dato

Corso sul linguaggio C Modulo Tipi di dato Corso sul linguaggio C Modulo 1 1.3 - Tipi di dato 1 Prerequisiti Concetto di espressione Cenni sulla struttura del calcolatore 2 1 Introduzione In questa lezione si esaminano i tipi di dato. I tipi di

Dettagli

Informatica A. Il linguaggio C. A.a. 2006/2007. Allievi Ingegneria Gestionale

Informatica A. Il linguaggio C. A.a. 2006/2007. Allievi Ingegneria Gestionale Informatica A A.a. 2006/2007 Allievi Ingegneria Gestionale Il linguaggio C Tecnologia Software Il SW come Interfaccia Tra Utente e Macchina Fisica Programma dell utente (software applicativo) Gestione

Dettagli

1 PANORAMICA SUL LINGUAGGIO C

1 PANORAMICA SUL LINGUAGGIO C 1 PANORAMICA SUL LINGUAGGIO C 1.1 Le origini del linguaggio C Il C fu inventato e implementato da Dennis Ritchie negli anni 70 su una macchina che impiegava il sistema operativo Unix. Il C è il risultato

Dettagli

Il linguaggio C. Puntatori e dintorni

Il linguaggio C. Puntatori e dintorni Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;

Dettagli

Introduzione a Matlab

Introduzione a Matlab INFORMATICA B Ingegneria Elettrica Introduzione a Matlab Introduzione a Matlab Matlab (MATrix LABoratory) è uno strumento per il calcolo scientifico ed ingegneristico Matlab facilita lo sviluppo di programmi

Dettagli

Introduzione al linguaggio C Puntatori

Introduzione al linguaggio C Puntatori Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2016

Dettagli

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)

Dettagli

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Descrizione delle operazioni di calcolo. Espressioni costanti semplici Descrizione delle operazioni di calcolo Come abbiamo detto l interprete è in grado di generare nuovi valori a partire da valori precedentemente acquisiti o generati. Il linguaggio di programmazione permette

Dettagli

Linguaggio C: introduzione

Linguaggio C: introduzione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi

Dettagli

IL PROBLEMA DEL PROGETTO

IL PROBLEMA DEL PROGETTO IL PROBLEMA DEL PROGETTO La descrizione del problema, in genere, non indica direttamente il modo per ottenere il risultato voluto (il procedimento risolutivo) Occorrono metodologie per affrontare il problema

Dettagli

Sintassi: Per la dichiarazione di variabili dei tipi fondamentali:

Sintassi: Per la dichiarazione di variabili dei tipi fondamentali: Sintassi: Per la dichiarazione di variabili dei tipi fondamentali: declaration ::= type declarator list ; declarator list ::= declarator {, declarator} opt declarator ::= identif ier identif ier = initializer

Dettagli

Capitolo 2 Introduzione alla programmazione in C

Capitolo 2 Introduzione alla programmazione in C Capitolo 2 Introduzione alla programmazione in C Introduzione Un semplice programma C: Stampa di una linea di testo Un altro semplice programma C: Sommare due interi Concetti sulla Memoria Aritmetica in

Dettagli

La "macchina" da calcolo

La macchina da calcolo La "macchina" da calcolo Abbiamo detto che gli algoritmi devono essere scritti in un linguaggio "comprensibile all'esecutore" Se il nostro esecutore è il "calcolatore", questo che linguaggio capisce? che

Dettagli

SULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI

SULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI SULL USO DEI CARATTERI Ricordiamo che: int x; si legge con ( %d,&x) e si stampa con ( %d,x) float x; si legge con ( %f,&x) e si stampa con ( %f,x) double x;si legge con ( %lf,&x) e si stampa con ( %f,x)

Dettagli

Un esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore)

Un esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore) Un esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore) Macchina astratta: un linguaggio di programmazione trasforma un calcolatore in una macchina

Dettagli

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi Basi della programmazione in Java Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Anteprima Il concetto di variabile Uso delle variabili Dichiarazione Assegnamento Visualizzazione

Dettagli

Espressioni ed operatori in C

Espressioni ed operatori in C Espressioni ed operatori in C Espressioni Il C è un linguaggio basato su espressioni Una espressione è una notazione che denota un valore mediante un processo di valutazione Una espressione può essere

Dettagli

Il linguaggio C. I tipi di dati scalari. Il casting Le dichiarazioni di tipo I puntatori

Il linguaggio C. I tipi di dati scalari. Il casting Le dichiarazioni di tipo I puntatori Il linguaggio C I tipi di dati scalari Il casting Le dichiarazioni di tipo I puntatori 1 I tipi di dati scalari 2 I tipi di dati scalari 1 Una delle caratteristiche più importanti dei linguaggi di alto

Dettagli

1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio

1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio soluzione di un problema 1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio rappresentazioni disponibili in C++:

Dettagli

Linguaggio C: puntatori

Linguaggio C: puntatori Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica A - GES Prof. Plebani A.A. 2006/2007 Linguaggio C: puntatori La presente dispensa e da utilizzarsi ai soli fini didattici previa

Dettagli

Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011

Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011 Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011 Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147 00161 Roma I puntatori Variabili e parametri Parametri formali

Dettagli

Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit

Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione

Dettagli

Linguaggi, Traduttori e le Basi della Programmazione

Linguaggi, Traduttori e le Basi della Programmazione Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi

Dettagli

Compendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica)

Compendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica) Compendio sottoinsieme del C++ a comune col C (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica) Librerie 1/2 Il solo insieme di istruzioni di un linguaggio di programmazione

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Introduzione alla programmazione in C++

Introduzione alla programmazione in C++ Introduzione alla programmazione in C++ Fondamenti di Informatica Roberto BASILI Marzo, 2007 La Programmazione Programmare significa: Determinare la natura del problema (analisi) Definire una decomposizione

Dettagli

C: panoramica. Violetta Lonati

C: panoramica. Violetta Lonati C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati

Dettagli

LABORATORIO di INFORMATICA

LABORATORIO di INFORMATICA Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto FUNZIONI E PROCEDURE http://www.diee.unica.it/giacinto/lab

Dettagli

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base Cambiamenti di base Tecniche Informatiche di Base TIB 1 Il sistema posizionale decimale L idea del sistema posizionale: ogni cifra ha un peso Esempio: 132 = 100 + 30 + 2 = 1 10 2 + 3 10 1 + 2 10 0 Un numero

Dettagli

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per

Dettagli

Linguaggio C: Espressioni

Linguaggio C: Espressioni Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Ringraziamenti prof. Mirko Viroli, Università

Dettagli

Tipi di Dati Avanzati

Tipi di Dati Avanzati Linguaggio C Tipi di Dati Avanzati! I tipi di dati scalari! Il casting! Le dichiarazioni di tipo! I puntatori 2 I tipi di dati scalari 3 ! Una delle caratteristiche più importanti dei linguaggi di alto

Dettagli

Tipi e Valori. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Tipi e Valori. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna Tipi e Valori Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C - Tipi e Valori 2 Ringraziamenti prof. Mirko Viroli,

Dettagli

Questa dispensa propone esercizi riepilogativi sui concetti visti finora ovvero:

Questa dispensa propone esercizi riepilogativi sui concetti visti finora ovvero: Questa dispensa propone esercizi riepilogativi sui concetti visti finora ovvero: costrutti condizionali (if,switch); costrutti iterativi (for,while); dichiarazione di vettori e matrici; dichiarazione di

Dettagli

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio

Dettagli

Lab 02 Tipi semplici in C

Lab 02 Tipi semplici in C Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione a.a. 2009/2010 Lab 02 Tipi semplici in C Lab02 1 Obiettivo dell esercitazione Acquistare

Dettagli

Corso di Fondamenti di Programmazione canale E-O. Tipi di dato. Un esempio

Corso di Fondamenti di Programmazione canale E-O. Tipi di dato. Un esempio Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Le variabili in C KP Cap. 3, pp. 95-129 Cap. 5, pp. 190-193 DD Cap. 9, pp.352-355 Tipi di dato Abbiamo già parlato delle variabili, ed

Dettagli

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

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Concetti base programmazione. Antonio Gallo

Concetti base programmazione. Antonio Gallo Concetti base programmazione Antonio Gallo info@laboratoriolibero.com Programma Insieme di istruzioni: Strtturato Ad oggetti Strutturato Ha una struttura più lineare Basato sui concetti di sequenza, selezione,

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi

Dettagli

Esercizi. La funzione swapint() primo tentativo

Esercizi. La funzione swapint() primo tentativo Politecnico di Milano Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio di array. #include

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Prima prova intermedia - 11 Novembre 2009 Si risolvano i seguenti esercizi. Il compitino prevede un punteggio massimo di 15/14-esimi, cui andranno sommati i punti ottenuti nel

Dettagli