Qualche nota storica
|
|
- Davide Rossetti
- 6 anni fa
- Visualizzazioni
Transcript
1 Introduzione al linguaggio C Qualche nota storica C sviluppato da Dennis M. Ritchie ai AT&T Bell Labs fra il 1969 e il 1973 Nato come linguaggio di programmazione per lo sviluppo di Unix e 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) L ultima revisione dello Standard risale al 1999 ed è detta Standard C99 (ISO) Lo standard non specifica ogni dettaglio del linguaggio e ci sono differenze tra compilatori diversi e tra architetture diverse (ad es. la dimensione degli interi varia tra architetture diverse) 1
2 Linguaggio C p-programming-languages 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 app di ios (Objective C) 2
3 Caratteristiche di base Linguaggio imperativo, procedurale Linguaggio compilato, ovvero, il codice sorgente viene tradotto interamente da un compilatore in codice eseguibile Princìpi del C (dallo Standard ANSI C): 1. Trust the programmer. 2. Don t prevent the programmer from doing what needs to be done. 3. Keep the language small and simple. 4. Provide only one way to do an operation. 5. Make it fast, even if it is not guaranteed to be portable (cioè privilegiare l efficienza rimanendo vicini all hardware rispetto all astrazione). Variabili 3
4 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: v tipo: int indirizzo: 0xbacd7a1c valore: 42 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 0xbacd7a1c, allora la variabile assumerà come valore il valore dei bit all indirizzo 0xbacd7a1c 0xbacd7a1c 42 v 4
5 Variabili Mentre in alcuni linguaggi di programmazione viene garantita l inizializzazione automatica delle variabili, in C, se non provvedete voi, inizialmente una variabile conterrà spazzatura, cioè ciò che si trova casualmente nella zona di memoria assegnata alla variabile Regola d oro in C: Inizializzare sempre le variabili! Tipi primitivi Un tipo di dato è caratterizzato: dalla rappresentazione in memoria dei dati di quel particolare tipo (es. quanti bit si usano) dall insieme di operazioni ammissibili su dati di quel tipo A cosa servono i tipi di dati? Permettono 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 5
6 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 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) 6
7 Tipi interi I tipi int, short e long permettono di rappresentare numeri interi positivi e negativi su un numero di bit che dipende dall architettura della macchina Le operazioni possibili su variabili di tipo intero sono le operazioni aritmetiche +, -, *, / e l operatore % (modulo) Attenzione: il risultato di un operazione è dello stesso tipo degli operandi. Ad es. la divisione tra due interi è un intero Quindi, in C, 16/5 dà come risultato 3 Per avere il resto di questa divisione occorre utilizzare l operatore % (modulo) 16%5 dà come risultato 1 Tipi interi Si può specificare se si intendono rappresentare 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) 7
8 Tipi interi Nel file header limits.h sono indicati con costanti simboliche il valore minimo e massimo che possono assumere le variabili di un determinato tipo Verifichiamo i limiti con questo programma: #include <stdio.h> #include <limits.h> int main(void) { printf("shrt_min=%d\n", SHRT_MIN); printf("shrt_max=%d\n", SHRT_MAX); printf("int_min=%d\n", INT_MIN); printf("int_max=%d\n", INT_MAX); printf("long_min=%d\n", LONG_MIN); printf("long_max=%d\n", LONG_MAX); printf("ushrt_max=%u\n", USHRT_MAX); printf("uint_max=%u\n", UINT_MAX); printf("ulong_max=%u\n", ULONG_MAX); return 0; } 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' 8
9 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 Perché parliamo di dimensione degli interi? Perché il runtime C, per motivi di efficienza, NON effettua nessun controllo sull overflow e lascia proseguire l esecuzione 9
10 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 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 10
11 Valori logici In C non esiste un tipo booleano che rappresenti i valori di verità. Quando si valuta un espressione logica (ad esempio in un istruzione if), si assume che sia falso un valore uguale a 0 e e che sia 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: attenzione a non confonderlo con l uguaglianza 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, che è un valore 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 11
12 L espressione di assegnamento Qual è l output del seguente programma? #include <stdio.h> int main(void) { int x = 10; } if (x=8) printf("8!\n"); else printf("non 8\n"); return 0; 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 12
13 Cast Cambiamenti di tipo impliciti ed espliciti 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) 13
14 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); 14
15 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; Operazioni su tipi omogenei In C (come in molti altri linguaggi) operazioni primitive (+,-,*,/,%) sono definite per tipi omogenei (operandi tutti int, o tutti float, o tutti double, ) Lo stesso simbolo, quindi, utilizzato in contesti diversi può dare risultati diversi int x, y; Se x=10 e y=4; x/y vale 2 /* divisione tra interi, il risultato è ancora un valore di tipo intero */ double x, y; Se x=10 e y=4.0; x/y vale 2.5 /* divisione tra float, il risultato è di tipo float */ float x, y; /* divisione tra double, il risultato è ancora di tipo double */ Se x=10.0f e y=4.0f; x/y vale
16 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 è omogenea di tipo double e la divisione diventa in virgola mobile 16
17 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 17
18 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 18
19 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) 19
20 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 perché la somma è tra tipi int e dà un risultato int errato perché in overflow. Solo in un secondo momento 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; } 20
21 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 visualizzarlo occorre abilitare i warning su gcc con i flag Wall oppure pedantic) 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 floating-point 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; } 21
22 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 22
23 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 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> #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); } 23
24 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); 24
25 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 -o eseguibile sorgente.c Per essere ancora più severi, si può usare il flag pedantic: gcc -pedantic -o eseguibile sorgente.c Compilazione Per ogni warning, gcc riporta il nome del file sorgente, il numero di linea e colonna in cui è stato rilevato il possibile problema 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 possibili problemi segnalati dai warning 25
26 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 Attenzione: può succedere che l errore, anche se viene segnalato in una determinata linea, in realtà sia nelle linee precedenti Esercizio Scriviamo un programma che calcoli la media dei voti degli esami. Partiamo da una versione di base e ampliamo e raffiniamo progressivamente il programma. Versione 1: il numero di esami viene inserito dall utente Versione 2: controlliamo che l input sia corretto Versione 3: generalizziamo il programma per un numero qualunque di studenti (numero inserito dall utente) calcolando la media per ognuno 26
Introduzione al linguaggio C
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
DettagliTipi 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
DettagliIL 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
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
DettagliTipi 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
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
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
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
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
DettagliLezione 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,
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
DettagliTipi 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
DettagliTipi interi lo standard (1)
Tipi interi lo standard (1) Lo standard C lascia al compilatore la decisione di quanti bit assegnare a ogni tipo (char, short int, int, long int). Quello che è sempre garantito è: (signed) char può esprimere
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 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,
DettagliTipi di dato. Funzioni. Il sistema dei tipi C. Tipi di dato. Quanti bit? I tipi interi in C
I tipi scalari in C Input/output dei tipi scalari Conversioni di tipo Funzioni 5 Il sistema dei tipi C di dato Tipi Scalari Tipi Strutturati void Tipi eri Tipi reali Enumerazioni Vettori Strutture Union
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. 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
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
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
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
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
DettagliVerso 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
Dettagli4 - Tipi di dato primitivi
4 - Tipi di dato primitivi Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
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
DettagliProgrammare 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
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
DettagliCodifica dei Tipi di Dati in Linguaggio C
Codifica dei Tipi di Dati in Linguaggio C In questa dispensa verrà illustrato come vengono codificati i tipi semplici del linguaggio C. In particolare considereremo i seguenti tipi di dato: il tipo intero
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
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
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
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
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
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
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
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
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
DettagliPuntatori 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
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
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
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
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,
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
DettagliEsonero di Informatica I. Ingegneria Medica
Di seguito sono elencati una serie di domande tipo esonero ; i quiz vogliono dare un sistema di autovalutazione e di confronto allo studente che deve prepararsi alla prova di metà corso. Il numero e l
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
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
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
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
DettagliLe parole chiave char, int, float, double, ed enum descrivono i. che modificano i tipi base
Il linguaggio C I tipi di dati scalari Il casting Le dichiarazioni di tipo I puntatori I tipi di dati scalari 1 2 I tipi di dati scalari 1 Una delle caratteristiche più importanti dei linguaggi di alto
DettagliLinguaggio C: Espressioni
Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Ringraziamenti prof. Mirko Viroli, Università
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Dipartimento di Informatica Università di Pisa Corso Informatica I - 2012/2013 Outline Introduzione alla compilazione C 1 Introduzione alla compilazione C 2 Ricapitolando...
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
DettagliLe 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
Dettagli1 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
Dettagli3) Descrivere l architettura di un elaboratore tramite astrazione a livelli
Di seguito sono elencati una serie di domande tipo esonero ; i quiz vogliono dare un sistema di autovalutazione e di confronto allo studente che deve prepararsi alla prova di metà corso. Il numero e l
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
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 è
DettagliPerché il linguaggio C?
Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare
DettagliCostanti 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
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)
DettagliVariabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
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)
DettagliLinguaggio 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
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
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
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 =
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
DettagliTipi di dato. 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
DettagliAssociazione 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
DettagliIl sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto.
Sistema C e organizzazione del codice Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto. Un programma C è costituito da un insieme
Dettagli- Dispensa III - PROGRAMMAZIONE C (Parte I)
Elementi di Informatica e Programmazione - Dispensa III - PROGRAMMAZIONE C (Parte I) Alessandro Saetti (email: alessandro.saetti@unibs.it) Università degli Studi di Brescia 1 Linguaggi di Programmazione
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
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
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
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
Dettagli18/01/16. Soluzione degli esercizi svolti in aula alla lavagna. Seconda lezione. Cast
Soluzione degli esercizi svolti in aula alla lavagna Seconda lezione Cast 1 Esempio Scriviamo un programma che converte temperature Fahrenheit in temperature Celsius La formula è cels = (fahr 32) * 5 *
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
DettagliBasi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi
Basi della programmazione in Java Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Anteprima Il concetto di variabile Uso delle variabili Dichiarazione Assegnamento Visualizzazione
DettagliGestione dinamica della memoria
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Gestione dinamica della memoria Pietro Di Lena - pietro.dilena@unibo.it A pessimistic programmer sees the array as half empty.
DettagliVariabili, tipi, espressioni in C. Emilio Di Giacomo
Variabili, tipi, espressioni in C Emilio Di Giacomo Richiami generali tipo di dato: specifico dominio di valori variabile: "contenitore" che può memorizzare valori di uno specifico tipo di dato, detto
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:
DettagliIl 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;
DettagliLaboratorio di linguaggi
lezioni: lunedi 9-11, aula A al corso Laboratorio di linguaggi laboratorio in tre turni: martedi 11-13 () giovedi 9-11 () venerdi 11-13 (Andrea Grosso) laboratorio: iscriversi all esame Corso A LABORATORIO
DettagliTipo carattere. Campo di variabilità. Intervallo finito. Tipo. Dimensione (byte) char
Tipo carattere Finora abbiamo lavorato con valori numerici. I numeri costituiscono molta parte del lavoro dei computer, ma non tutta. I computer sono macchine per il trattamento dell informazione e l informazione
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
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=
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni
Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni Marco Liverani (liverani@mat.uniroma3.it)
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
DettagliEsercizi su. Istruzioni di scelta multipla. Overflow
Esercizi su Istruzioni di scelta multipla Overflow 2 Scelta multipla 3 Esercizio 1/2 Scrivere un programma che chieda all'utente di scegliere tra varie opzioni e stampi il nome dell'opzione scelta Esempio
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
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
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
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,
DettagliC O P Y R I G H T ( C ) W W W. F O N D A M E N T I. I N F O
Il linguaggio C C O P Y R I G H T ( C ) 2 0 0 8 W W W. F O N D A M E N T I. I N F O P E R M I S S I O N I S G R A N T E D T O C O P Y, D I S T R I B U T E A N D / O R M O D I F Y T H I S D O C U M E N
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
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
DettagliUn esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);
Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i
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!
DettagliProgrammazione con il linguaggio LibreOffice Basic
Programmazione con il linguaggio LibreOffice Basic L ambiente di programmazione Il software LibreOffice possiede un ambiente di programmazione in linguaggio Basic, che consente di creare procedure software
Dettagli