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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 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 da utilizzare in fase di compilazione e degli elementi globali (Costanti, Variabili, ecc.), che hanno cioè valore in tutto il Programma. Il Main Program è individuato dalla parola chiave main ( ). Esso consta di: una DeclarativePart, che contiene la dichiarazione degli elementi disponibili nel programma principale una ExecutablePart, racchiusa tra i simboli { }, che contiene le Istruzioni eseguibili da cui è composto il programma. Le Funzioni e Procedure hanno una struttura analoga a quella del Main Program. Un Commento, che non è influente dal punto di vista esecutivo perchè non considerato dal programma di traduzione, è delimitato dai simboli /* e */ G. Piscitelli Politecnico di Bari pag. 1 di 25

2 LA DECLARATIVE PART DEL MAIN PROGRAM Utilità della dichiarazione degli oggetti che si useranno nella executable part. Diversità delle lettere maiuscole e minuscole. Dichiarazione di costanti const <Tipo> cost1 = valore1, cost2 = valore2,... ; <Tipo> ::= int float char double utilità: rappresentazione simbolica e parametrizzazione esempi Dichiarazione di variabili <Tipo> var1, var2,... ; esempi Altre dichiarazioni Tipi semplici predefiniti Tipi semplici definiti dall utente Tipi strutturati G. Piscitelli Politecnico di Bari pag. 2 di 25

3 LE ISTRUZIONI DELLA EXECUTABLE PART Le Istruzioni sono di due tipi: assegnazione, per assegnare ad una variabile il valore assunto da un espressione. variabile = espressione ; composte, a loro volta distinte in: istruzione condizionale, per eseguire, in alternativa, due diverse sequenze di istruzioni a seconda del valore di verità assunto da una condizione; if (espressione) istruzione1 ; else istruzione2 ; istruzione ripetitiva o ciclica, per ripetere l esecuzione di una sequenza di istruzioni (corpo del ciclo) ogni volta che una condizione è verificata; while (espressione) istruzione ; compound statement o blocco, costituito da una sequenza di istruzioni, racchiusa tra { } ed eventualmente preceduta da una parte dichiarativa; Insieme con le istruzioni il C possiede funzioni per svolgere particolari operazioni, tra cui le funzioni di lettura (scanf) e scrittura (printf), contenute nella Standard Library e capaci di leggere dallo Standard Input e scrivere sullo Standard Output. G. Piscitelli Politecnico di Bari pag. 3 di 25

4 LE ISTRUZIONI DELLA EXECUTABLE PART esempi a = b + 4; c = b div a; c = b/a; divisione con troncamento parte frazionaria (int) { a = b + c; d = 2. * a; e = d/2.;} if (a > b) c = a + b; else c = a - b; if (a > b) c = a + b else c = a - b; if (a > b) {c = a + b; d = a - b;} else {c = a - b; d = a + b;} if (a < b) if (a < c) min = a; else min = c; else min = d; if (x > y) if (y > z) ran = z - x; else ran = y - x; if (x > y) {if (z > x) ran = z - x;} else ran = y - x; while (i = = j i = = 0) x = x + 1; while (somma1!= somma2) somma = (somma1 + somma2)/2.; while (b*b >= 4.*a*c && a > 0) det = det + 1.; while (f <= g &&! f = = 0) { a = b + c; d = 2. * a; e = d/2.;} G. Piscitelli Politecnico di Bari pag. 4 di 25

5 LE FUNZIONI DI LETTURA E SCRITTURA printf (stringa di controllo, insieme elementi da stampare) La stringa di controllo può contenere: caratteri di conversione (o formato) simboli particolari Alcuni caratteri di formato sono %d, %f, %c, %s che indicano, rispettivamente, di dover scrivere un intero decimale, un numero reale, un carattere, una stringa di caratteri. Tra i simboli particolari: \n indica il salto a nuova riga L insieme elementi da stampare è la lista dei nomi di costanti, variabili o espressioni composte di queste. esempi printf ( stringa di controllo che scrive %d e %f, varint, varfloat); printf ( %s %d %c %f, stringa di controllo che scrive, varint, e, varfloat); printf ( questa stringa di controllo scrive A = %f, B = %f, A + B = %f, a, b, somma); G. Piscitelli Politecnico di Bari pag. 5 di 25

6 LE FUNZIONI DI LETTURA E SCRITTURA scanf (stringa di controllo, insieme elementi da leggere) In questo caso la stringa di controllo specifica l interpretazione (o formato) da attribuire ai caratteri letti da tastiera. I caratteri di formato sono gli stessi della printf. Ciascuno dei nomi delle variabili da leggere è preceduto dall operatore unario & che indica l indirizzo della variabile. esempi scanf ( %d%f, &varint, &varfloat); scanf ( %c%s%f%f%d, &car, &string, &real1, &real2, &intero) M Andrea Per utilizzare le funzioni printf e scanf bisogna dichiararlo nella GlobalDeclarativePart tramite l istruzione # include <stdio.h> G. Piscitelli Politecnico di Bari pag. 6 di 25

7 PRIMO PROGRAMMA IN C Il progetto Problema: calcolo delle radici reali di un equazione di 2 grado Analisi della soluzione: cfr. ANALISI MATEMATICA I L algoritmo: start msg1 Calcolo delle radici di una equazione di grado 2 msg2 Digitare coefficienti reali a, b, c a,b,c discr b*b-4.*a*c msg3 no discr >= 0 radici immaginarie si x1 (-b+sqrt(discr))/(2.*a) x2 (-b-sqrt(discr))/(2.*a) msg3 x1= x2 stop G. Piscitelli Politecnico di Bari pag. 7 di 25

8 La codifica dell algoritmo PRIMO PROGRAMMA IN C /* calcolo delle radici di un equazione di grado 2 */ # include <stdio.h> # include <math.h> main() { float a, b, c, x1, x2, discr; printf ( Calcolo delle radici di una equazione di grado 2 ); printf ( Digitare coefficienti reali a, b, c ); scanf ( %f%f%f, &a, &b, &c); discr = b*b - 4.*a*c; if (discr < 0) printf ( radici immaginarie ); else { x1 = (-b + sqrt(discr))/(2.*a); x2 = (-b - sqrt(discr))/(2.*a); printf ( x1 = %f x2 = %f, x1, x2); } } G. Piscitelli Politecnico di Bari pag. 8 di 25

9 DEFINIZIONE FORMALE DI LINGUAGGIO L Alfabeto è un insieme finito e non nullo di caratteri. Il Vocabolario terminale è l insieme finito dei simboli terminali (o parole) che si possono costruire con i caratteri dell Alfabeto rispettando le regole lessicali. Il Vocabolario non terminale è l insieme finito dei simboli non terminali. Un simbolo non terminale è una stringa σ (o sequenza) di simboli terminali e non terminali, costruita rispettando un insieme finito di regole sintattiche (o di produzione) che costituiscono la Grammatica (G) o Sintassi del Linguaggio. Per le grammatiche e, quindi, i linguaggi non contestuali (context free) tali regole sono del tipo: <simbolo non terminale> ::= σ Un particolare simbolo non terminale è l Assioma o simbolo distintivo o simbolo iniziale. Una stringa β è una derivazione (o produzione) diretta di α (e si scrive α β ) se si può ottenere sostituendo un qualunque simbolo non terminale che compare in α con la parte destra della regola in cui il simbolo in questione appare alla sinistra. Il Linguaggio L(G) è l insieme delle stringhe, costituite di soli simboli terminali, che possono essere ottenute per derivazioni successive partendo dall Assioma. Stringhe che verificano tale condizione vengono dette frasi del linguaggio. G. Piscitelli Politecnico di Bari pag. 9 di 25

10 DESCRIZIONE FORMALE DI UN LINGUAGGIO Per descrivere in maniera rigorosa e compatta un linguaggio di programmazione, o meglio la sua grammatica - context free - è stata introdotta una notazione matematica, detta grammatica formale o BNF (Backus-Naur Form), che si basa sui simboli: < > che racchiude un simbolo non terminale ::= che indica l operazione di composizione che indica l esistenza di una alternativa di composizione [ ] che indica la possibilità che la composizione non comprenda gli elementi racchiusi dalle parentesi { } che indica la possibilità che la composizione non comprenda o comprenda più esemplari degli elementi racchiusi dalle parentesi esempio <Programma C> ::= [GlobalDeclarativePart] <Main Program> [{<Altre Funzioni>}] <Istruzione> ::= <Assegnazione> <Istruzione condizionale> <Istruzione ciclica> <Istruzione composta> G. Piscitelli Politecnico di Bari pag. 10 di 25

11 I TIPI E LA LORO CLASSIFICAZIONE Un tipo di dato individua un insieme di valori che il dato può assumere ed un insieme di operazioni che su esso sono applicabili. La dichiarazione dei dati, e quindi la dichiarazione del loro tipo, consente di conoscere: l insieme dei valori ammissibili l insieme delle operazioni applicabili la quantità di memoria necessaria gli eventuali errori d uso. Un dato può essere: semplice, quando è costituito da un solo componente strutturato, quando è costituito da più componenti. Dato semplice velocità temperatura altezza larghezza Dato strutturato data anagrafica vettore matrice Il C consente di dichiarare dati semplici di tipo predefinito (o built-in) oppure di tipo definito dall utente (o user-defined). Il C non offre dati strutturati predefiniti, ma possiede alcuni costruttori (array, struct e pointer) di tipi di dati strutturati. G. Piscitelli Politecnico di Bari pag. 11 di 25

12 I TIPI E LA LORO DICHIARAZIONE La dichiarazione dei tipi avviene nella DeclarativePart e va fatta tra la dichiarazione delle costanti e quella delle variabili. Non è ovviamente necessario dichiarare i tipi predefiniti. I tipi semplici predefiniti sono: int, con eventuale qualificatore (signed o unsigned e short o long) float double, con eventuale qualificatore (long) char, con eventuale qualificatore (signed o unsigned) insieme dei valori ammissibili, insieme delle operazioni applicabili, quantità di memoria necessaria, eventuali errori d uso dei vari tipi semplici predefiniti Un tipo semplice definito dall utente richiede la dichiarazione: typedef specifica costruttiva identificatore di tipo; esempi typedef int anno; typedef long double distanza; char sesso; anno y; distanza d; G. Piscitelli Politecnico di Bari pag. 12 di 25

13 I TIPI E LA LORO DICHIARAZIONE I tipi semplici definiti dall utente tramite ridefinizione esempi typedef int intero; typedef float reale; typedef intero dec; typedef reale realtip; tramite il costruttore di enumerazione esplicita dei valori (enum) esempi typedef enum {Gianni, Carlo, Antonio, Gino} nomi; typedef enum {rosso, verde, giallo, nero} colori; nomi nome, nome1, nome2; Pur essendo rappresentati in genere da stringhe di caratteri, i valori delle variabili enumerative sono dal compilatore associati a numeri interi progressivi (a partire da 0). Tale associazione... consente di scrivere istruzioni del tipo nome = Gino; if (nome1= = nome2) nome = Gianni; if (rosso > nero)... ;... può considerarsi come una ridefinizione del tipo int. G. Piscitelli Politecnico di Bari pag. 13 di 25

14 I COSTRUTTORI Il costruttore di enumerazione dei valori di una variabile logica typedef enum {falso, vero} boolean; boolean flag, condizione; Il costruttore di array int alfa[100], beta[100]; costruisce variabili o, in alternativa, typedef int vettore[100]; costruisce tipo vettore alfa,beta; Il tipo degli elementi può essere qualsiasi (built-in o userdefined, semplice o strutturato). La variabile usata per indicare uno degli elementi deve essere un Integral Type (int, char o da essi derivati tramite qualificatori). L array è un costruttore di tipo e non un tipo. La dichiarazione di una variabile può esplicitare un tipo array, per cui la prima forma è di solito la più immediata e semplice da usare. In alcuni casi, però, la seconda forma può consentire migliore leggibilità del programma. Il costruttore array può consentire la costruzione di array di array. Un array ha dimensioni fisse. G. Piscitelli Politecnico di Bari pag. 14 di 25

15 LE ACCORTEZZE NEL GESTIRE GLI ARRAY Il valore dell indice di un array di N elementi varia da 0 ad N-1. Indicare valori dell indice al di fuori di tale intervallo produce un errore di indirizzamento. Tali estremi di variabilità non possono cambiare durante l esecuzione del programma. L allocazione della memoria richiesta dal programma - e quindi anche dalle variabili - viene infatti eseguita, salvo casi particolari, prima dell inizio dell esecuzione (allocazione statica). La rigida e preliminare definizione delle dimensioni dell array può comportare spreco di memoria (se si utilizzano solo alcuni degli elementi dell array) oppure errore di indirizzamento (se non si controlla che il valore dell indice rimanga nell intervallo fissato). Un uso parzialmente più flessibile dell array può essere realizzato facendo uso della parametrizzazione. Questa consiste nell uso di costanti per definire le dimensioni di array, eventualmente ricorrendo alla clausola # define. esempio # include <stdio.h> # define dimensione 30 main ( ) { int vettore [dimensione];... } Un array non prevede operazioni globali. G. Piscitelli Politecnico di Bari pag. 15 di 25

16 IL COSTRUTTORE STRUCT Esso permette di definire una struttura di dati aggregando elementi anche eterogenei (di tipi diversi). I vari elementi si dicono campi della struttura. Come il costruttore array, anche il costruttore struct può essere usato per definire un tipo o direttamente per definire una variabile strutturata. esempio typedef char String[30]; typedef struct { int giorno; int mese; int anno; } Data; typedef enum {Dirigente, Impiegato, Operaio} Cat; Dipendente struct { String nome; String cognome; int stipendio; char codice_fiscale[16]; Data data_assunzione; Cat categoria;} o, in alternativa, typedef struct { String nome; String cognome; int stipendio; char codice_fiscale[16]; Data data_assunzione; Cat categoria; } Personale; Personale Dipendente, Lavoratore; o, in alternativa, struct Personale {...} Dipendente, Lavoratore; G. Piscitelli Politecnico di Bari pag. 16 di 25

17 LE ACCORTEZZE NEL GESTIRE LE STRUTTURE Per accedere ai singoli campi di una struttura si usa la cosiddetta dot notation. esempi Dipendente.data_assunzione.anno = 1998; Dipendente.stipendio = Dipendente.stipendio * 1.1; Si possono costruire array i cui elementi sono variabili strutturate. esempi Personale Dipendenti[300]; Dipendenti[20].stipendio = Dipendente.stipendio; Oltre alle operazioni sui singoli campi, una variabile strutturata prevede operazioni globali. esempi Dipendenti[20] = Dipendente; G. Piscitelli Politecnico di Bari pag. 17 di 25

18 IL COSTRUTTORE PUNTATORE Esso permette di costruire il tipo puntatore ad un tipo di oggetto (variabile semplice o strutturata). typedef tipobj *tipopunt; Ciò consente di dichiarare variabili di tipo puntatore: tipopunt P, Q; Una variabile di tipo puntatore può far riferimento ad un oggetto del tipo indicato nella costruzione. tipobj entity, s, t; A variabili di tipo puntatore può essere assegnato un valore tramite l operatore unario & (indirizzo di). P = &entity; valore indirizzo P valore entity Una variabile di tipo puntatore ha un valore costituito dall indirizzo della entità puntata. Forma abbreviata per dichiarare una variabile di tipo puntatore: tipobj *P; G. Piscitelli Politecnico di Bari pag. 18 di 25

19 IL COSTRUTTORE PUNTATORE esempio Se P è una variabile puntatore che si riferisce ad una entità di nome entity (supposta di tipo intero), valore 25 e indirizzo di memoria 10000, allora il valore di P sarà P entity esempio typedef float *tipopunt; tipopunt P, Q; float a, b; a = 110.5; b = 240.3; P = &a; Q = &b; P a Q b G. Piscitelli Politecnico di Bari pag. 19 di 25

20 esempio... P = Q; IL COSTRUTTORE PUNTATORE P a Q b esempio... tipobj... D = &P; **D; P a D Q b G. Piscitelli Politecnico di Bari pag. 20 di 25

21 IL COSTRUTTORE PUNTATORE Il simbolo * davanti al nome di una variabile di tipo puntatore (ad es. P) viene detto operatore di dereferenziazione e serve ad indicare la cella di memoria il cui indirizzo è contenuto in P. *P indica quindi la cella puntata da P.... *P = b + a; oppure *P = *P + a; P a D Q b L assegnazione di un valore ad una variabile di tipo puntatore deve rispettare i vincoli imposti dalla tipizzazione delle variabili. float *F; tipobj *O; float a; /* se tipoobj float */ F = O; warning message a = *O; error message *F = *O; error message G. Piscitelli Politecnico di Bari pag. 21 di 25

22 IL COSTRUTTORE PUNTATORE Il simbolo -> dopo il nome di una variabile di tipo puntatore ad un oggetto strutturato serve per accedere ad un campo della struttura. esempio struct Data { int giorno; int mese; int anno; } Data_assunzione; Data *I; I = &Data_assunzione; I->giorno = 22; equivalente a (*I).giorno = 22; o anche a Data_assunzione.giorno = 22; Ad una variabile di tipo puntatore si possono applicare le operazioni di: assegnazione valore tramite l operatore & assegnazione valore di un altro puntatore assegnazione di indirizzi di memoria conseguenti ad allocazione dinamica della memoria stessa assegnazione valore NULL. La variabile non ha valore definito dereferenziazione tramite l operatore * operazioni aritmetiche operazioni di confronto P G. Piscitelli Politecnico di Bari pag. 22 di 25

23 ARRAY E PUNTATORI Gli elementi di un array occupano posizioni di memoria contigue. Il numero di byte di un elemento e dell intero array può essere ricavato con l operatore sizeof. esempio int alfa[20]; int a,b; a = sizeof(alfa[3]); b = sizeof(alfa); Il nome di una variabile di tipo array punta (in maniera non modificabile) al primo elemento dell array. Esso cioè opera come una variabile dichiarata di tipo puntatore. Quindi la notazione alfa[i] equivale a *(alfa + i) Si possono eseguire operazioni aritmetiche sulle variabili di tipo puntatore. Se P punta ad un particolare tipo di dato, l espressione P+1 indica l indirizzo del prossimo dato di quel tipo. Allora: P+i indica l indirizzo dell i-esimo dato di quel tipo P[i] indica il valore dell i-esimo dato di quel tipo ed è equivalente a *(P+i) se Q punta ad un altro elemento dello stesso array, allora P-Q fornisce un intero pari al numero di elementi (e non al numero di byte!) compresi tra quelli puntati da P e Q. G. Piscitelli Politecnico di Bari pag. 23 di 25

24 EFFETTI COLLATERALI DEI PUNTATORI L uso delle variabili di tipo puntatore può determinare effetti collaterali (side effects) non facilmente e completamente prevedibili. esempio *P = 120; *Q = 20; P = Q; *P è uguale a 20 *Q = 7; *P è uguale a 7 G. Piscitelli Politecnico di Bari pag. 24 di 25

25 LA TIPIZZAZIONE FORTE DEL C Il C consente di eseguire tutte le espressioni e le assegnazioni che coinvolgono variabili di tipo diverso, a condizione che: i tipi siano compatibili vengano applicate le regole di conversione implicita. Poiché il compilatore verifica le due condizioni esposte, si dice che il linguaggio persegue l obiettivo della tipizzazione forte. Le regole di conversione implicita... per le espressioni aritmetiche x y ove il simbolo indica un operazione aritmetica e le variabili sono di tipo diverso 1) ogni variabile di tipo char o short (incluse le versioni signed o unsigned) viene convertita in variabile di tipo int; 2) se dopo il passo 1 le variabili sono ancora di tipo diverso, si converte temporaneamente l operando inferiore della seguente gerarchia int < long < unsigned < unsigned long < float < double < long double in operando di tipo superiore; 3) se dopo il passo 2 i tipi sono dello stesso tipo, viene eseguita l operazione relativa a quel tipo. Il risultato dell espressione è quindi del tipo superiore.... per le assegnazioni double vardop; int varint; vardop = varint; varint = vardop; G. Piscitelli Politecnico di Bari pag. 25 di 25

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

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

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

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

Introduzione alla programmazione in linguaggio C

Introduzione alla programmazione in linguaggio C Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008

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

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

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

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

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

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

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

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

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 Il linguaggio C I linguaggi di programmazione ad alto livello sono linguaggi formali ( sintassi e semantica formalmente definite) però sono compatti e comprensibili. Le tipologie di linguaggi sono: procedurali

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

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

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

Verso i puntatori: Cosa è una variabile?

Verso i puntatori: Cosa è una variabile? Verso i puntatori: Cosa è una variabile? Quando si dichiara una variabile, ad es. int a; si rende noto il nome e il tipo della variabile. Il compilatore alloca l opportuno numero di byte di memoria per

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

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

Puntatori in C. Puntatori. Variabili tradizionali Esempio: int a = 5; Proprietà della variabile a: nome: a

Puntatori in C. Puntatori. Variabili tradizionali Esempio: int a = 5; Proprietà della variabile a: nome: a Puntatori in C Puntatori Variabili tradizionali indirizzo int a = 5; A00E... Proprietà della variabile a: nome: a A010 A012 5 tipo: int A014 valore: 5 indirizzo: A010 Finora abbiamo usato solo le prime

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

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

La sintassi del C APPENDICE H

La sintassi del C APPENDICE H APPENDICE H La sintassi del C Nella notazione della sintassi utilizzata, le categorie sintattiche (non terminali) sono state indicate da uno stile tipografico in corsivo, mentre le parole letterali e i

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

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

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

Tipi di dato, Alessandra Giordani Lunedì 7 maggio 2011

Tipi di dato, Alessandra Giordani Lunedì 7 maggio 2011 Tipi di dato, memoria e conversioni Alessandra Giordani agiordani@disi.unitn.it Lunedì 7 maggio 2011 http://disi.unitn.it/~agiordani/ Il linguaggio C è esplicitamente tipato: occorre esplicitamente associare

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

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

Associazione Variabile-Indirizzo

Associazione Variabile-Indirizzo I puntatori Associazione Variabile-Indirizzo Tutte le volte che in un programma si dichiarano delle variabili, l'esecutore associa alla variabile un indirizzo. Es. Dato il programma #include

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

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

Le basi del linguaggio Java

Le basi del linguaggio Java Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del

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

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

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 TIPI DI DATI IN C http://www.diee.unica.it/giacinto/lab

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

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

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere

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

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...

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

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

Array k-dimensionali

Array k-dimensionali Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Array k-dimensionali In C è possibile definire array con più dimensioni (ANSI C massimo k=12), per

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

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

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

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. Unità Didattica 4 Linguaggio C Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. 1 Vettori Struttura astratta: Insieme di elementi dello stesso tipo, ciascuno individuato da un indice;

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

Strutture Dati Dinamiche

Strutture Dati Dinamiche Strutture Dati Dinamiche Motivazioni Le variabili considerate fino a questo punto devono essere dichiarate staticamente, ossia la loro esistenza, il loro nome e la loro dimensione devono essere previsti

Dettagli

POINTERS. Una variabile pointer è una variabile che ha come valore un indirizzo di memoria.

POINTERS. Una variabile pointer è una variabile che ha come valore un indirizzo di memoria. POINTERS Una variabile pointer è una variabile che ha come valore un indirizzo di memoria. Es. Sia y una variabile intera di valore e sia yptr una variabile pointer avente come valore l indirizzo di y.

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

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

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

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

Alfabeto ed elementi lessicali del linguaggio C

Alfabeto ed elementi lessicali del linguaggio C Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Alfabeto ed elementi lessicali del linguaggio C Pietro Di Lena - pietro.dilena@unibo.it s t a t i c s h o r t l e g s ; i n

Dettagli

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C Introduzione 2 Introduzione al C Linguaggio di programmazione ad alto livello (HLL) Sviluppato negli anni 70 (C standard ANSI) Molto diffuso e adatto ad un ampio spettro di applicazioni: Scientifiche Gestionali

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Introduzione Istruzioni

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

Introduzione al linguaggio C

Introduzione al linguaggio C Introduzione al linguaggio C Abbiamo già visto come un programma non sia altro che un algoritmo codificato in un linguaggio di programmazione. Problema: quale linguaggio scegliere per la codifica di un

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

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

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

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

Un excursus: le variabili e la memoria

Un excursus: le variabili e la memoria Un excursus: le variabili e la memoria Il nostro esecutore C per come lo avevamo introdotto qualche lezione fa aveva, tra i suoi componenti, la memoria centrale: La memoria centrale contiene: i programmi

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

Linguaggi e Ambienti di Programmazione

Linguaggi e Ambienti di Programmazione Linguaggi e Ambienti di Programmazione Principi e tecniche diffuse che si incontrano spesso nelle applicazioni dell informatica. Compilatori Editor di struttura: riceve in input una sequenza di comandi

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

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

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

Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. 1 Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa a valori delle variabili

Dettagli

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere Tipi elementari, costanti 1 Tipi di dati VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori Tipi Semplici intero reale carattere Strutturati 2 1 Tipo intero Gli interi servono

Dettagli

Variabili e Istruzioni

Variabili e Istruzioni Exit Menù Variabili e Istruzioni 1 Le Variabili Una VARIABILE è un oggetto identificato da un NOME e da uno STATO, detto CONTENUTO o VALORE. Possiamo immaginarla come una scatola contenuto Pippo 11 nome

Dettagli

Lezione 10. L arte della programmazione

Lezione 10. L arte della programmazione Lezione 10 Linguaggi di programmazione: il C Le variabili e le costanti L assegnazione Gli operatori La documentazione L input/output L arte della programmazione La soluzione di un problema tramite un

Dettagli

Esercitazione 11. Liste semplici

Esercitazione 11. Liste semplici Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene

Dettagli

Algoritmi e basi del C Struttura di un programma

Algoritmi e basi del C Struttura di un programma Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione II Tatiana Zolo zolo@cs.unipr.it 1 IL PROGRAMMA C++ Istruzioni (espressioni terminate da ; ) istruzioni di dichiarazione (es. int x = 0;); istruzioni di assegnamento

Dettagli

IL TEOREMA DI BOEHM-JACOPINI

IL TEOREMA DI BOEHM-JACOPINI IL TEOREMA DI BOEHM-JACOPINI Un qualunque algoritmo può essere descritto unicamente attraverso le tre strutture: Sequenza Diramazione Ciclo o iterazione Le tre strutture sono complete. Un qualunque linguaggio

Dettagli

Puntatori in C Lucidi della Pof.ssa Pazienza

Puntatori in C Lucidi della Pof.ssa Pazienza Puntatori in C Lucidi della Pof.ssa Pazienza http://www.uniroma2.it/didattica/foi2/ Puntatori L operatore di indirizzo & Indirizzi, puntatori Aritmetica dei puntatori L operatore di dereferenziazione *

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

Linguaggio C Informatica Grafica

Linguaggio C Informatica Grafica Linguaggio C Informatica Grafica Corsi di Informatica Grafica Prof. Manuel Roveri Dipartimento di Elettronica e Informazione roveri@elet.polimi.it Linguaggio C Breve storia Struttura di un programma Variabili

Dettagli

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere Tipi elementari, costanti 1 Tipi di dati VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori Tipi Semplici intero reale carattere Strutturati 2 1 Tipo intero Gli interi servono

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

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

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare

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

<programma> ::= {<unità-di-traduzione>} <main> {<unità-di-traduzione>}

<programma> ::= {<unità-di-traduzione>} <main> {<unità-di-traduzione>} STRUTTURA DI UN PROGRAMMA C In prima battuta, la struttura di un programma C è definita nel modo seguente: ::= {} {} Intuitivamente un programma

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

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

Puntatori. Fondamenti di Programmazione

Puntatori. Fondamenti di Programmazione Puntatori Fondamenti di Programmazione Funzioni utili stdio.h c = getchar(); restituisce un carattere letto da tastiera. Equivale a: scanf( %c, &c); putchar(c); scrive un carattere sullo schermo. Equivale

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

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

I Linguaggi di Programmazione

I Linguaggi di Programmazione I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio

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

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

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

L'Allocazione Dinamica della Memoria nel linguaggio C

L'Allocazione Dinamica della Memoria nel linguaggio C L'Allocazione Dinamica della Memoria nel linguaggio C Prof. Rio Chierego riochierego@libero.it http://www.riochierego.it/informatica.htm Sommario Questo documento tratta l'allocazione dinamica della memoria

Dettagli

Struct, enum, Puntatori e Array dinamici

Struct, enum, Puntatori e Array dinamici Struct, enum, Puntatori e Array dinamici Tratti dal corso del Dr. Francesco Fabozzi Corso di Informatica Tipi di dato in C Abbiamo esaminato diversi tipi di dato che il C mette a disposizione dell utente

Dettagli

Istruzioni, algoritmi, linguaggi

Istruzioni, algoritmi, linguaggi Istruzioni, algoritmi, linguaggi 1 Algoritmo per il calcolo delle radici reali di un equazione di 2 o grado Data l equazione ax 2 +bx+c=0, quali sono i valori di x per cui l equazione è soddisfatta? 2

Dettagli