Introduzione al linguaggio C
|
|
- Carla Longo
- 7 anni fa
- Visualizzazioni
Transcript
1 Introduzione al linguaggio C Qualche nota storica C sviluppato da Dennis M. Ritchie agli AT&T Bell Labs fra il 1969 e il 1973 Nato come linguaggio di programmazione per lo sviluppo di Unix e per sopperire alle limitazioni del linguaggio B Ritchie e Brian Kernighan nel 1978 pubblicano il libro "The C Programming Language". Il dialetto descritto nel libro è noto come K&R-Style Grazie alla portabilità, il linguaggio iniziò subito ad essere apprezzato. Ma è mancata una versione standard del linguaggio fino ANSI 1989 (ANSI-C) Ultime revisioni dello Standard risalgono al 1999 e al 2011 e sono dette Standard C99 e Standard C11 1
2 Linguaggio C Linguaggio C Software che forse avete usato e che sono scritti in C: Java virtual machine Linux (ma una piccola parte è in assembly) Kernel di Mac OS X Windows (in C e in C++) Oracle DBMS (in C e in C++) Firmware dei router Cisco 2
3 Caratteristiche di base Linguaggio imperativo, procedurale Linguaggio compilato, ovvero, il codice sorgente viene tradotto interamente da un compilatore in codice eseguibile Variabili 3
4 variabili Per ogni variabile esistono due operazioni fondamentali: Dichiarazione: il compilatore deve sapere quanto spazio riservare per la variabile e come interpretare i bit contenuti in questa area di memoria Assegnamento (modifica) di un valore: calcolo di un nuovo valore e modifica del valore corrente di una variabile. Il valore contenuto in una variabile è l ultimo assegnatole e resta inalterato finché un successivo assegnamento non modifica il valore stesso Una variabile può essere usata (in un espressione, per modificarne il valore) solo dopo essere stata dichiarata variabili Dichiarazione: int fattoriale; Assegnamento: fattoriale = 1; Dichiarazione e inizializzazione: int fattoriale = 1; Il valore assegnato deve essere coerente con il tipo della variabile Il C, come altri linguaggi di programmazione, è fortemente tipato, cioè per ogni espressione utilizzata nel programma il compilatore deve sempre essere in grado di determinarne il tipo 4
5 Dichiarazione di costanti Sintassi const <tipo> <identificatore> = <espr>; Es.: const int N = 100; const float PIGRECO = F; const char SIM = 'A'; Le costanti sono variabili alle quali non è permesso cambiare valore: non possono cioè trovarsi a sinistra dell operatore di assegnamento Convenzione: il nome di costante si scrive interamente con caratteri maiuscoli Dichiarazione di costanti simboliche Per definire una costante simbolica si scrive: Es.: #define <nome> <valore> #define PIGR #define MSG "ciao mondo!" Convenzione: come le costanti, devono essere scritte interamente in maiuscolo Differenza tra #define e const: Una costante definita con const occupa memoria come una variabile, ma non può essere modificata Una costante definita con #define non occupa memoria: il preprocessore del C, prima di compilare il codice, sostituisce ogni simbolo con il suo corrispondente valore (come se fosse un sostituisci tutti in un editor di testo). 5
6 Variabili Una variabile non può essere vuota : a una variabile è sempre associata una locazione di memoria e quindi un valore, che corrisponde al valore dei bit contenuti nella zona di memoria Se, ad esempio, il compilatore associa a una variabile la locazione di memoria con indirizzo 2341, allora la variabile assumerà come valore il valore casuale dei bit all indirizzo 2341 (ad esempio 42) Se non provvedete voi, inizialmente la variabile fattoriale conterrà quindi spazzatura Regola d oro in C: Inizializzare sempre le variabili! Variabili Ogni variabile è caratterizzata da: Nome: nome simbolico con cui si fa riferimento alla variabile all interno di un programma Tipo: definisce l'insieme dei valori che la variabile può assumere Indirizzo: identifica un'area di memoria che mantiene il valore corrente della variabile Valore: valore corrente della variabile Ad esempio: nome: fattoriale tipo: int indirizzo: 2341 valore: 42 6
7 Tipi primitivi Un tipo di dato è caratterizzato da: la rappresentazione in memoria dei dati di quel particolare tipo (es. quanti bit si usano) l insieme di operazioni ammissibili su dati di quel tipo A cosa servono i tipi di dati? Per permettere di effettuare controlli statici (cioè al momento della compilazione e non in fase di esecuzione) sulla correttezza sintattica del programma e quindi prevenire errori di programmazione Tipi primitivi Tipi primitivi del C: char, int, short, long, float, double I tipi char, int, short, long contengono numeri interi, float e double numeri in virgola mobile Specificatori opzionali: signed, unsigned 7
8 Tipi primitivi Lo standard C, che è pensato per una grande varietà di architetture diverse, non specifica esattamente quanto siano grandi i tipi primitivi Per sapere quanti byte occupa un determinato tipo su una macchina specifica, si usa a tempo di esecuzione l operatore sizeof. Ad es. printf("%d", sizeof(int)); Tipo char short int long float double Dimensione di solito 1 byte di solito 2 byte di solito 4 byte di solito 8 byte Singola precisione (di solito 4 byte) Precisione doppia (di solito 8 byte) Tipi interi I tipi int, short e long permettono di rappresentare numeri interi positivi e negativi su un numero di bit che dipende dalla macchina Le operazioni possibili su variabili di tipo intero sono le operazioni aritmetiche +, -, *, / e l operatore % (modulo) Attenzione: la divisione tra due interi è un intero Es.: 16/5 dà come risultato 3 Per avere il resto di questa divisione occorre utilizzare l operatore % (modulo) 16%5 dà come risultato 1 8
9 Tipi interi Si può specificare se si rappresentano interi con segno o senza segno: signed int e unsigned int Per default i tipi int hanno segno (cioè scrivere semplicemente int è equivalente a scrivere signed int) una variabile unsigned è normalmente rappresentata con lo stesso numero di byte della variabile signed, tuttavia i valori memorizzati sono privi di segno (e quindi rappresenta esclusivamente numeri positivi) il numero di bit usato per rappresentare un int varia tra le diverse architetture. Lo standard specifica soltanto che vengano usati almeno 16 bit Nel file header limits.h sono indicati con costanti simboliche il valore minimo e massimo che possono assumere le variabili di un determinato tipo (ad es. INT_MIN, INT_MAX, UINT_MAX) Tipo char Rappresenta un numero; di solito occupa 8 bit Prevede quindi come operatori quelli aritmetici Usato di solito per contenere il codice ASCII di un carattere Nelle operazioni, bisogna inoltre considerare che le tabelle ASCII dei caratteri occidentali rispettano il seguente ordinamento: '0'<'1'<'2'<...<'9'<... <'A'<'B'<'C'<...<'Z'<... <'a'<'b'<'c'<...<'z' 9
10 Tipi interi Tipo Dimensione in byte su x86 a 64 bit Intervallo rappresentabile signed char unsigned char signed short unsigned short signed int unsigned int signed long (9 miliardi di miliardi) unsigned long (18 miliardi di miliardi) Tipi interi Si consideri il seguente programma su una macchina x86 a 64 bit #include <stdio.h> #define BIG //2 miliardi int main(void) { int a, b = BIG, c = BIG; a = b + c; printf("%d\n", a); } Nonostante i due addendi siano rappresentabili con int, la loro somma è superiore al valore massimo rappresentabile da un int. Si ha overflow Il compilatore e il runtime del C non segnalano errori e l esecuzione prosegue con risultati scorretti (in questo caso ) È compito del programmatore assicurarsi che i valori non escano dagli intervalli appropriati 10
11 Tipi float e double Rappresentano (a precisione singola i float e a precisione doppia i double) i numeri reali In realtà sono solo una approssimazione (per precisione e intervallo dei valori rappresentabili) dei numeri reali Le operazioni aritmetiche sui numeri in virgola mobile non sono necessariamente esatte ma sono approssimate Le operazioni possibili sui tipi float e double sono le operazioni aritmetiche Espressioni 11
12 Espressioni numeriche Come abbiamo già visto: 4 è un espressione il cui valore corrisponde alla costante stessa x è una variabile, ma è anche un espressione il cui valore corrisponde al valore assunto dalla variabile (x+y)*3-z è un espressione aritmetica in cui valgono le normali precedenze tra operatori Espressioni con operatori di confronto Uguaglianza espr1 == espr2 è un espressione che assume il valore: 0 quando la valutazione di espr1 restituisce un valore diverso dalla valutazione di espr2 1 altrimenti. Es: int x=5, y=7; l espressione x == y vale 0 (falso) mentre x+2 == y vale 1 (vero) Disuguaglianza espr1!= espr2 è un espressione che vale 1 quando espr1 è diverso da espr2, 0 altrimenti Es.: int x=5, y=7; x!= y vale 1 (vero) x+2!= y vale 0 (falso) 12
13 Espressioni con operatori di confronto Maggiore (minore) espr1 > espr2 vale 1 (vero) quando espr1 è maggiore di espr2, 0 (falso) altrimenti [analogo ma opposto per il minore] Es.: int x=5, y=7; x > y è falsa (0) x+2 > y è ancora falsa (0) x+5 > y è vera (1) Maggiore o uguale (minore o uguale) espr1 >= espr2 vale 1 quando espr1 è maggiore o uguale di espr2, 0 viceversa. Es.: int x=5, y=7; x >= y è falsa (0) x+2 >= y è vera (1) x+5 >= y è vera (1) Espressioni con operatori di confronto Negazione!(x==y) è vera quando x è diverso da y!(x>=3) è vera quando x è minore di 3, ovvero quando l espressione x>=3 è falsa!(!x) doppia negazione afferma: l espressione è vera quando è vera x 13
14 Valori logici In C non esiste un tipo booleano. Quando si valuta un espressione logica (ad esempio in una istruzione if), si assume che sia falso un valore uguale a 0 e vero qualsiasi valore diverso da 0 Quindi in un espressione logica scrivere diverso da zero è opzionale if (trovato) equivale a if (trovato!= 0) È comunque meglio scrivere!=0 se facilita la comprensione del codice L espressione di assegnamento Anche l assegnamento è un espressione x = espr è un espressione il cui valore corrisponde al valore dell espressione espr. In quanto espressione potrebbe essere usata per discriminare una condizione vera da una condizione falsa, infatti: x = 0 è un espressione falsa perché vale 0 x = 8 è un espressione vera perché vale 8, diverso da 0 ATTENZIONE! Questa caratteristica è una potenziale fonte d errore, spesso difficile da scoprire: if (eta=18) { } Una disattenzione di questo tipo non causa alcun tipo di errore di compilazione, ma il comportamento del codice non è quello atteso 14
15 Espressioni complesse Due espressioni possono essere congiunte per mezzo dell operatore && (AND logico) Se x rappresenta l età di un individuo, diremo che è minorenne se: x >= 0 && x < 18 L espressione è vera quando valgono entrambe le condizioni su x Due espressioni possono essere disgiunte per mezzo dell operatore (OR logico) Se x rappresenta il peso di un individuo adulto, diremo che non è normale se: x < 45 x > 180 L espressione è vera quando vale almeno una delle condizioni su x Cast Cambiamenti di tipo impliciti ed espliciti 15
16 Esempio Scriviamo un programma che converte temperature Fahrenheit in temperature Celsius La formula è cels = (fahr - 32) * 5 * 1/9 Sfruttando la proprietà associativa del prodotto possiamo scrivere la formula in due modi equivalenti: cels = ((fahr - 32) * 5) / 9 cels = (fahr - 32) * (5 / 9) Esempio #include <stdio.h> int main(void) { /* stampa la tabella Fahrenheit-Celsius per fahr=0, 40,..., 320 */ int fahr, cels1, cels2, inf, sup, incr; inf = 0; /* estremo inferiore della tabella */ sup = 320; /* estremo superiore della tabella */ incr = 40; /* incremento */ fahr = inf; printf("fahr\tcels1\tcels2\n"); while (fahr <= sup) { cels1 = ((fahr - 32) * 5) / 9; cels2 = (fahr 32) * (5/9); printf("%d\t%d\t%d\n", fahr, cels1, cels2); fahr = fahr + incr; } return 0; } 16
17 Esempio L output del programma è: fahr cels1 cels Osservazione Nel nostro programma che differenza c è tra: cels1 = ((fahr - 32) * 5) / 9; e cels2 = (fahr - 32) * (5 / 9); 17
18 Osservazione Supponiamo fahr = 120 e valutiamo le due espressioni cels1 = ((fahr - 32) * 5) / 9; cels1 = ((120-32) * 5) / 9; cels1 = (88 * 5) / 9; cels1 = 440 / 9; cels1 = 48; cels2 = (fahr - 32) * (5 / 9); cels2 = (120-32) * (5 / 9); cels2 = 88 * (5 / 9); cels2 = 88 * 0; cels2 = 0; Overloading In C (come in molti altri linguaggi) operazioni primitive (+,-,*,/,%) sono definite per tipi omogenei (operandi tutti int, o tutti float, o tutti double, ) Overloading di significati: lo stesso simbolo (/) è utilizzato in contesti diversi e può dare risultati diversi. int x, y; Se x=10 e y=4; x/y vale 2 double x, y; Se x=10 e y=4.0; x/y vale 2.5 /* divisione tra float, il risultato è di tipo float*/ /* divisione tra interi, il risultato è ancora un valore di tipo intero*/ /* divisione tra double, il risultato è ancora di tipo double*/ float x, y; Se x=10.0f e y=4.0f; x/y vale
19 Espressioni con tipi non omogenei Se gli operatori di base sono definiti tra tipi primitivi omogenei, cosa accade quando si scrive un espressione non omogenea? int x = 5; double y = 2.0; Qual è il tipo dell'espressione x/y? Viene eseguita la divisione tra reali o quella tra interi? Conversioni di tipo implicite In C sono possibili operazioni solo tra operandi omogenei, quindi il tipo degli operandi è temporaneamente forzato in modo che l'espressione x/y diventi omogenea Il linguaggio promuove automaticamente, quando necessario, i tipi più piccoli in tipi più grandi seguendo la gerarchia char < short < int < long < float < double Cioè un valore di tipo char può essere visto come un valore di tipo short oppure int oppure long ecc. Analogamente un valore di tipo int può essere visto come di tipo long, float o double Nel nostro esempio, il valore assunto dalla variabile x viene promosso al tipo double. In questo modo l'espressione x/y diventa omogenea di tipo double e la divisione diventa in virgola mobile 19
20 Esempio int x = 5; char y = 7; double r = 5.0; double k =(x+y)/ r; Passo 1: (x+y) y viene convertito da char all intero corrispondente viene effettuata la somma tra interi risultato intero tmp = 12 Passo 2 (tmp / r) tmp viene convertito nel double corrispondente (12.0) viene applicata la divisione tra double risultato double k=2.4 Compatibilità nell assegnamento In generale, sono implicite le conversioni di tipo che non provocano perdita di informazione Tuttavia, le espressioni che possono provocare perdita di informazioni non sono illegali: il compilatore genera un warning. Per tacitare il warning si può fare un cast esplicito Esempio int i=5; float f=2.71f; double d=3.1415; f = f+i; /* int convertito in float */ i = d/f; /* double convertito in int! */ f = d; /* arrotondamento o troncamento */ Al momento della compilazione verrà visualizzato il messaggio: Possible warning: conversion may lose significant digits che avvisa che l assegnamento di un valore float a una variabile intera può causare la perdita di informazioni e che, di per sé, non è un errore 20
21 Casting In qualunque espressione è possibile forzare una particolare conversione utilizzando l operatore di cast Sintassi Esempi ( <tipo> ) <espressione> int i=5; double x=7.77; double y=7.1; i = (int) sqrt(384); //sqrt(384)== x = y*y; i = (int) x % (int) y; Esempio Ricordate. Come il valore 9 rappresenta una costante intera, il valore 9.0 rappresenta una costante in virgola mobile, quindi la divisione i/9 è diversa dalla divisione i/9.0. Infatti la prima è intera e la seconda è in virgola mobile Supponiamo di volere effettuare la divisione in virgola mobile nell espressione double cels3 = ((fahr - 32) * 5) / 9; Non basta dichiarare cels3 di tipo double Infatti la divisione sarebbe pur sempre quella intera e solo successivamente il risultato verrebbe promosso a double: Con fahr = 120, l espressione cels3 = ((fahr - 32) * 5) / 9; assume il valore 48, che verrebbe promosso al tipo double e cioè al valore 48.0 Perché la divisione sia in virgola mobile occorre forzare uno dei due operandi a essere di tipo float o double Esistono diversi modi per ottenere questo risultato. 21
22 Esempio Un primo modo è quello di usare costanti in virgola mobile invece che intere cels3 = ((fahr - 32) * 5) / 9.0; Un secondo modo è quello di forzare il tipo di un espressione con un cast cels3 = (double)((fahr - 32) * 5) / 9; Il cast forza al tipo double il valore dell espressione ((fahr - 32) * 5) Sempre con fahr = 120 l espressione ((fahr - 32) * 5) assume il valore 440, il quale viene forzato al tipo double, quindi 440.0, e successivamente viene valutata l'espressione 440.0/9 Per quanto detto prima, i tipi dei due operandi vengono resi omogenei: 9 viene promosso a double e si ha 440.0/ divisione in virgola mobile! Cast: osservazione sulle precedenze Poiché l operatore di cast ha precedenza rispetto agli operatori aritmetici, nell espressione (double)((fahr - 32) * 5) / 9 solo ((fahr - 32) * 5) è soggetta al cast Attenzione! Nella seguente espressione la divisione non è in virgola mobile: perché? (double)(((fahr - 32) * 5) / 9) 22
23 Overflow Si riconsideri il programma su una macchina x86 a 64 bit #include <stdio.h> #define BIG //2 miliardi int main(void) { int b = BIG, c = BIG; long a; a = b + c; printf("%ld\n", a); return 0; } Rispetto alla versione vista in precedenza, abbiamo cambiato il tipo della variabile a da int a long. In questo caso si ha ancora overflow? Perché? Overflow Si ha overflow anche in questo caso: la somma è tra tipi int e dà un risultato int errato perché in overflow. Solo dopo avviene la promozione a long Una possibile soluzione consiste nel forzare la somma tra long: #include <stdio.h> #define BIG //2 miliardi int main(void) { int b = BIG, c = BIG; long a; a = b + (long) c; printf("%ld\n", a); return 0; } 23
24 Conversioni nei cast Quando si effettua un cast da un tipo a un altro (o quando si assegna un valore di un tipo a una variabile di un altro tipo), viene effettuata una conversione del valore Se la conversione avviene tra tipi per i quali ci può essere perdita di informazione, il compilatore può emettere un warning (per abilitare questo warning su gcc si può usare il flag Wconversion) Se la conversione è voluta, si può tacitare il warning rendendo il cast esplicito Conversioni nei cast Es. (su architettura x86 a 64 bit) int main(void) { int i1, i2 = 12; long l= ; //3 miliardi double d1, d2 = 7.0, d3 = 2.275; i1 = d2; //warning: implicit conversion turns floatingpoint number into integer e assegna 7 i1 = (int) d2; //assegna 7 i1 = (int) d3; //assegna 2 d1 = i2; //assegna 12.0 i1 = l; //warning: implicit conversion loses integer precision e assegna i1 = (int) l; //assegna return 0; } 24
25 Note sulla scrittura di codice Leggibilità del codice sorgente Un aspetto importante nella scrittura dei programmi consiste non solo nella correttezza e nell efficienza del codice, ma anche nella sua leggibilità Un codice sorgente facilmente leggibile è più facile da capire, permette di coglierne la struttura velocemente ed è più semplice da modificare in un secondo tempo, quando si fa la manutenzione del codice Quindi è importante usare nomi di variabile che rispecchino il loro uso e indentare il codice 25
26 L indentazione del codice sorgente Indentare il codice sorgente significa fare iniziare una linea a una certa distanza dal margine Ha lo scopo di mettere in evidenza blocchi di codice Si fa iniziare la linea con un certo numero di spazi (di solito multiplo di 3 o di 4) o di TAB L indentazione viene ignorata dal compilatore C: è utile esclusivamente agli esseri umani che metteranno mano al sorgente del programma Va aumentato il livello di indentazione per il corpo delle funzioni, dei cicli, delle istruzioni if else Il codice va indentato mentre si scrive il codice e non in un secondo momento L indentazione del codice sorgente Si confronti la leggibilità di queste due versioni (il compilatore C genera il medesimo eseguibile): #include <stdio.h> #define SIZE 1000 #define DASTAMPARE 1 #define DANONSTAMPARE 0 #include <stdio.h> #define SIZE 1000 #define DASTAMPARE 1 #define DANONSTAMPARE 0 int main(void) { unsigned int array[size]; unsigned int i, j; for (i = 0; i < SIZE; i++) array[i] = DASTAMPARE; for (i = 2; i < SIZE; i++) if (array[i] == DASTAMPARE) for (j = i + 1; j < SIZE; j++) if (j % i == 0) array[j] = DANONSTAMPARE; int main(void) { unsigned int array[size]; unsigned int i, j; for (i = 0; i < SIZE; i++) array[i] = DASTAMPARE; for (i = 2; i < SIZE; i++) if (array[i] == DASTAMPARE) for (j = i + 1; j < SIZE; j++) if (j % i == 0) array[j] = DANONSTAMPARE; } for (i = 2; i < SIZE; i++) if (array[i] == DASTAMPARE) printf( "%u\n", i); for (i = 2; i < SIZE; i++) if (array[i] == DASTAMPARE) printf( "%u\n", i); } 26
27 Utilizzo di costanti Nel codice sorgente bisogna cercare di non utilizzare valori numerici ma utilizzare delle costanti simboliche. In questo modo si hanno due vantaggi: Se fosse necessario cambiarne il valore, sarebbe più facile farlo perché si evita di modificare il codice sorgente in più punti È più facile comprendere il loro scopo Utilizzo di costanti Si confrontino queste due versioni #include <stdio.h> #define SIZE 1000 #define DASTAMPARE 1 #define DANONSTAMPARE 0 int main(void) { unsigned int array[size]; unsigned int i, j; } for (i = 0; i < SIZE; i++) array[i] = DASTAMPARE; for (i = 2; i < SIZE; i++) if (array[i] == DASTAMPARE) for (j = i + 1; j < SIZE; j++) if (j % i == 0) array[j] = DANONSTAMPARE; for (i = 2; i < SIZE; i++) if (array[i] == DASTAMPARE) printf("%u\n", i); #include <stdio.h> int main(void) { unsigned int array[1000]; unsigned int i, j; } for (i = 0; i < 1000; i++) array[i] = 1; for (i = 2; i < 1000; i++) if (array[i] == 1) for (j = i + 1; j < 1000; j++) if (j % i == 0) array[j] = 0; for (i = 2; i < 1000; i++) if (array[i] == 1) printf("%u\n", i); 27
28 Compilazione gcc produce due tipi principali di messaggio: warning ed errori I warning sono avvertimenti che indicano possibili problemi nel codice ma non pregiudicano la compilazione Non tutti i warning vengono visualizzati, quindi è preferibile utilizzare il flag -Wall: gcc -Wall sorgente.c -o eseguibile Per un warning, gcc riporta il nome del file sorgente, il numero di linea e colonna in cui è stato rilevato il warning e un messaggio Ad es., se nel file sorgente.c alla linea 5 ho un istruzione if (a=0), gcc stampa il messaggio: sorgente:5:8: warning: using the result of an assignment as a condition without parentheses È buona norma correggere il sorgente in modo da eliminare tutti i problemi segnalati dai warning Compilazione Gli errori, invece, interrompono la compilazione e l eseguibile non verrà generato Anche per gli errori, gcc riporta il nome del file sorgente, il numero di linea e colonna in cui è stato rilevato il problema e un messaggio Può succedere che l errore non sia nella linea segnalata ma nelle linee precedenti 28
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
DettagliEspressioni 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
DettagliIl 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
DettagliLINGUAGGI 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
DettagliUn 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
DettagliLinguaggio 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
DettagliElementi 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
DettagliLaboratorio 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
DettagliLab 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
DettagliTipi 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
DettagliTipi 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
DettagliUnità 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
DettagliLinguaggio 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
DettagliTipi 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
DettagliTipi 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
DettagliProgrammazione 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
DettagliUnità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso
Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile
DettagliIl 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
DettagliPrimi 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
DettagliConversioni 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
DettagliCorso 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
DettagliTipi 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,
DettagliCorso 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
DettagliLaboratorio 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,
DettagliELEMENTI 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
DettagliIL 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
DettagliSintassi: 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
DettagliFondamenti di Informatica T-1 Modulo 2
Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa lezione 1. Alcune considerazioni sulla differenza tra warnings ed errors 2. Tipi i semplici i 3. Input e output in linguaggio C 4. Espressioni
DettagliIl 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
DettagliStruttura 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
DettagliIL 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
DettagliEspressione di chiamata di funzione
Avvertenza Quanto segue NON è un libro, ma è una copia dei lucidi usati a lezione che NON sostituisce i libri di testo adottati e consigliati per l insegnamento di Informatica Generale. Questa copia è
DettagliLaboratorio 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
DettagliVariabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico
DettagliProgrammazione 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$QDOLVLGHOSURJUDPPDTXDGUDWR
$QDOLVLGHOSURJUDPPDTXDGUDWR /* */ calcolare l area del quadrato #include main(){ int lato, area; printf("lato "); scanf("%d", &lato); if(lato < 0) printf("errore nei dati \n"); else { area =
DettagliCaratteri e stringhe
Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un
DettagliVBA è 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?
DettagliInput/Output di numeri
Input/Output di numeri I/O di numeri Per utilizzare le funzioni di I/O occorre include il file di intestazione (o file header) stdio.h utilizzando all inizio del sorgente la direttiva #include
DettagliIl linguaggio C Il linguaggio C. Caratteristiche del C. Caratteristiche del C. Linguaggi di Programmazione I. Ferdinando Cicalese
03-10-2003 Il linguaggio C Linguaggio general-purpose Il linguaggio C Creato nel 1972 nei Bell Labs da Dennis Ritchie su PDP11 Usato per il Sistema Operativo Unix da Ken Thompson Negli anni 80 nasce ANSI
DettagliIntroduzione 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)
DettagliSviluppo di programmi
Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla
DettagliLinguaggio 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
DettagliInformatica 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)
DettagliSTORIA E CARATTERISTICHE
IL LINGUAGGIO C STORIA E CARATTERISTICHE STORIA E VERSIONI Sviluppato da Dennis Ritchie ai Bell Labs nel 1972 per realizzare il sistema operativo UNIX K&R C: 1978 (prima versione, K&R dal nome degli autori
DettagliLaboratorio 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
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
DettagliIl 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
DettagliErrori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.
Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente
DettagliESECUZIONE 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
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina)
DettagliConcetti 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,
DettagliLaboratorio di Informatica
Laboratorio di Informatica Ingegneria Meccanica Lezione 3, 8 ottobre 2007 versione 9 ottobre 2007 Renato Menicocci Interi in complemento a 2 (I) Con N bit
DettagliEsercizi Programmazione I
Esercizi Programmazione I 9 Novembre 201 Esercizio 1 Valutare e dare il tipo delle seguenti espressioni condizionali. 1 char a= a, b= b ; // a ha v a l o r e decimale 97 2 i n t i= 1, j= 2 ; 3 double x=
DettagliCorso 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
DettagliVariabili. 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
DettagliCaratteristiche 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
DettagliESECUZIONE 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
DettagliRiprendiamo l esercizio calcolatrice
Riprendiamo l esercizio calcolatrice Scrivere un programma calcolatrice che legga da tastiera due variabili intere a e b, poi Stampi un menu con un valore numerico associato a quattro operazioni possibili:
DettagliElementi di C++ di base
Elementi di C++ di base Corso di Programmazione 3 - Ingegneria dell Informazione e dell Organizzazione 10 ottobre, 2001 Gino Perna Esempi di semplici programmi in C++ Il programma più semplice consiste
DettagliTipi di dato in C. Ogni variabile in C ha associato un tipo, questo permette di:
Tipi di dato Tipi di dato in C Ogni variabile in C ha associato un tipo, questo permette di: Riservare memoria per la codifica dei valori che può assumere Rilevare errori legati all uso di operatori non
DettagliIl linguaggio C - Introduzione
Il linguaggio C - Introduzione Il C è un linguaggio imperativo legato a Unix, adatto all implementazione di compilatori e sistemi operativi. È stato progettato da D. Ritchie per il PDP-11 (all inizio degli
DettagliSomma 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
DettagliLe direttive del Preprocessore
Le direttive del Preprocessore Prof. Orazio Mirabella Direttive Un compilatore traduce le istruzioni di un programma sorgente in linguaggio macchina Talvolta è conveniente prendere coscienza dell esistenza
Dettagli6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it
DettagliOperazioni numeriche - Input
Operazioni numeriche - Input Espressioni, funzioni matematiche, classi involucro, Acquisizione di input 11/11/2004 Laboratorio di Programmazione - Luca Tesei 1 Operazioni fra interi e decimali In Java
DettagliRappresentazione binaria delle variabili (int e char)
Rappresentazione binaria delle variabili (int e char) int e char son i due tipi utilizzati dal linguaggio C per la rappresentazione di valori interi; ai valori delle variabili del primo tipo sono assegnati
DettagliIstruzioni iterative (o cicliche)
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Istruzioni iterative (o cicliche) Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria
DettagliIntroduzione alla programmazione in C(++)
Testi Testi Consigliati: Introduzione alla programmazione in C(++) A. Kelley & I. Pohl C didattica e programmazione A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. D. M. M. Ritchie
DettagliIntroduzione al Linguaggio C ed all IDE DEV-C++
Microsoft Windows e Dev-C++ Introduzione al Linguaggio C ed all IDE DEV-C++ 1 Le Esercitazioni in Laboratorio! MTA + MLAB1/2: Edificio Via Valotti, primo piano e piano interrato! Orario: Giovedì 14:30-17:30!
DettagliUnità 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
DettagliIl linguaggio di programmazione Python
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)
DettagliLezione 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
Dettaglidirettive del preprocessore simboli speciali parole chiave identificatori costanti
5) Elementi di C #include #define TF2TC main() { double tc, tf, offset, conv; offset = 32.; direttive del preprocessore simboli speciali parole chiave identificatori costanti #ifdef TF2TC conv
DettagliVariabili e tipi di dato
Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per
DettagliSi possono applicare solo a variabili (di tipi interi, floating o puntatori), ma non a espressioni generiche (anche se di questi tipi).
Operatori di incremento e decremento: ++ e -- ++ e -- sono operatori unari con la stessa priorità del meno unario e associatività da destra a sinistra. Si possono applicare solo a variabili (di tipi interi,
DettagliIstruzioni Condizionali in C
Concetti chiave Istruzioni Condizionali in C Tipi di Istruzioni Condizionali Espressioni Blocchi d istruzioni Istruzioni Condizionali: if-else Istruzioni Condizionali: switch-case Istruzione break Istruzioni
DettagliInformatica Generale Andrea Corradini I linguaggi di programmazione
Informatica Generale Andrea Corradini 17 - I linguaggi di programmazione Sommario Cos'è un linguaggio di programmazione? Una prospettiva storica: linguaggi di prima, seconda e terza generazione I paradigmi
DettagliUtilizza 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
DettagliLABORATORIO DI INFORMATICA 1
UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA Luca Bernardinello LABORATORIO DI INFORMATICA 1 Corso di laurea in fisica Anno accademico 2015/2016 1 CHE COS È UN PROGRAMMA? Programma = oggetto multiforme. Distinguiamo
DettagliClassificazione 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
DettagliDescrizione 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
DettagliSULL 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)
DettagliAlgoritmi 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
DettagliElementi di informatica
Elementi di informatica Programmare in C 1 Calcolare l area di un rettangolo /* Calcolo area rettangolo */ int base; int altezza; int area; Conosciamo base = 3; altezza = 7; area = base*altezza; printf("%d",
DettagliIntroduzione a Java. Riferimenti
Introduzione a Java Si ringraziano Massimiliano Curcio e Matteo Giacalone 1: Introduction 1 Riferimenti! Java tutorial: http://java.sun.com/docs/books/tutorial/! Il Java tutorial è parte di una più ampia
DettagliLinguaggio C Espressioni e operatori
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing.DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Espressioni e operatori 2001 Pier Luca Montessoro - Davide
DettagliEsiste però anche un ambiente globale: quello dove tutte le funzioni sono definite. Qui si possono anche definire variabili, dette variabili globali
AMBIENTE LOCALE E GLOBALE In C, ogni funzione ha il suo ambiente locale che comprende i parametri e le variabili definite localmente alla funzione Esiste però anche un ambiente globale: quello dove tutte
DettagliProgramma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
DettagliLA 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
DettagliEsempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina
Il compilatore C Astrazione Linguaggio macchina implica la conoscenza dei metodi usati per la rappresentazione dell informazioni nella CPU Linguaggio Assembly è il linguaggio delle istruzioni che possono
DettagliLezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari
Lezione 4 L artimetica binaria: I numeri relativi e frazionari Sommario I numeri relativi I numeri frazionari I numeri in virgola fissa I numeri in virgola mobile 1 Cosa sono inumeri relativi? I numeri
DettagliAPPUNTI DI INFORMATICA
APPUNTI DI INFORMATICA Per il biennio di liceo scientifico scienze applicate Sommario Il calcolo binario... 2 Numerazione Decimale... 2 Numerazione Binaria... 2 Conversione Binario -> Decimale... 2 Conversione
DettagliSviluppare un programma in FORTRAN
Sviluppare un programma in FORTRAN Scrivere il file sorgente Editor di testo (emacs, vi, notepad, etc) Compilare Compilatore (ifort, gfortran, etc) Eseguire il programma Riga di comando, doppio click,
DettagliInformatica 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
DettagliI sistemi di numerazione. Informatica - Classe 3ª, Modulo 1
I sistemi di numerazione Informatica - Classe 3ª, Modulo 1 1 La rappresentazione interna delle informazioni ELABORATORE = macchina binaria Informazione esterna Sequenza di bit Spett. Ditta Rossi Via Roma
DettagliLinguaggio C Variabili e tipi di dato
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Variabili e tipi di dato 2001 Pier Luca Montessoro - Davide
DettagliFondamenti di Programmazione. Sistemi di rappresentazione
Fondamenti di Programmazione Sistemi di rappresentazione Numeri e numerali Il numero cinque 5 V _ Π 五 Arabo Romano Maya Greco Cinese Il sistema decimale Sistemi posizionali 1 10 3 + 4 10 2 + 9 10 1 + 2
DettagliLa "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
DettagliAlgebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
Dettagli