IL LINGUAGGIO C++ Michele Marchesi. Appunti per un corso. Libri consigliati, da cui sono stati prese idee ed esempi:
|
|
- Raimondo Pagano
- 8 anni fa
- Visualizzazioni
Transcript
1 IL LINGUAGGIO C++ Michele Marchesi Appunti per un corso Libri consigliati, da cui sono stati prese idee ed esempi: R. Winder, Guida al C++ Corso completo di programmazione, Jackson Libri, 1993 B. Flamig, Turbo C++, a self-teching guide, Wiley, 1991 B. Stroustrup, Il linguaggio C edizione, Addison-Wesley, 1992 M.A. Ellis, B. Stroustrup, The annotated C++ reference manual, Addison- Wesley, 1990 K. Gorlen, S. Orlow, P. Plexico, Data abstraction and OO programming in C++, Wiley, R.B. Murray, C++ Strategies and Tactics, Addison-Wesley, 1993.
2 1. Fondamenti La programmazione Lo sviluppo di un qualsiasi nuovo sistema software è un'attività di risoluzione di problemi che richiede allo sviluppatore di: Analizzare il problema in oggetto. Progettare una soluzione al problema. Realizzare la soluzione. Collaudare la realizzazione. Un programma è un sistema che trasforma i dati inclusi nel programma stesso, o introdotti dall'utente quando il programma è eseguito. Il C++ è un linguaggio imperativo: le istruzioni del linguaggio controllano direttamente l'elaborazione. Vi sono due vedute principali moderne della programmazione imperativa: 1. Le istruzioni eseguono e cambiano i valori dei dati: Tipi di Dati Astratti (ADT). 2. I valori dei dati si passano messaggi l'un l'altro per richiedere trasformazioni di valore: programmazione orientata agli oggetti. I programmi C++ si possono scrivere in entrambi gli stili. Un semplice programma C++ Un programma che stampa Ciao sul terminale. File di intestazione per operazioni di ingresso-uscita #include <iostream.h> La funzione principale. void main() { cout << "Ciao.\n" ; } C++ 1.1
3 Le caratteristiche degne di nota: La maggior parte del codice sorgente è un commento La riga # include <iostream.h> fa sì che sia inclusa un'informazione essenziale per poter eseguire input/output, e cioé la libreria IOSTREAM. Il programma Ciao utilizza la libreria IOSTREAM per far uscire qualcosa con l'istruzione: cout << "Ciao.\n"; dove cout rappresenta il terminale video, << rappresenta l'operazione di uscita e la stringa "Ciao.\n" è ciò che effettivamente viene stampato. Il \n nella stringa rappresenta "ritorno carrello, a capo". Ciò serve a rendere leggibile l'uscita. Il costrutto che comprende l'istruzione di uscita: void main() { cout << "Ciao.\n" ; } è una funzione, quella particolare funzione chiamata main. Tutti i programmi C++ debbono avere una ed una sola funzione chiamata main, che inizia l'esecuzione del programma quando questo gira sul calcolatore. Il void associato alla funzione è il tipo della funzione. Il tipo void ci dice che questa funzione farà soltanto delle azioni ma non restituirà un valore. Le parentesi tonde ( ) dopo il nome della funzione mostrano che è effettivamente una funzione e le parentesi graffe { } delimitano il codice sorgente che costituisce la funzione, cioé in questo caso la singola funzione di uscita. C++ 1.2
4 Aspetto esterno del codice e commenti Il C++, è un linguaggio con formato libero. Al compilatore non importa quanto il codice sorgente sia formattato purché sia sintatticamente corretto. I caratteri di a capo, spazio e tabulazione sono esempi di spazio bianco, e il compilatore tratta tutti gli spazi bianchi contigui come un singolo carattere di spazio bianco. Per gli esseri umani, il codice sorgente deve essere formattato in modo strutturato. Vi sono vari metodi di formattazione "standard" che sono stati proposti per la programmazione in C++. Il criterio principale è quello per cui tutti i frammenti di software vanno scritti nello stesso stile. Il codice sorgente ben formattato, oltre ad aiutare la comprensibilità e la ricerca degli errori, è di solito più corretto e perciò richiede meno correzioni. Le caratteristiche critiche della formattazione sono l'indentazione, le spaziature e il posizionamento delle istruzioni, l'uso di lettere maiuscole e minuscole e l'uso dei commenti. In C++, tutto quello che segue il fino alla fine della riga corrente è un commento. Vi è un'altra forma: il tipo /*...*/, come in C. Tutto ciò che si trova tra questi due simboli, non importa su quante righe di codice, è un commento. Questa forma di commento non è annidabile. Alcuni dei possibili stili di commento: Lo stile di commento "standard" usato negli esercizi per gruppi di commenti. / Una variante molto appariscente. Usata per lo piu' per commenti all'inizio di file o di funzioni. / /* * Uno stile alternativo per blocchi di commenti * usato da molti. Questo stile e' comune * nella programmazione in C. */... C++ 1.3
5 Commento interno come usato negli esercizi cout << "Un uscita.\n" ; Un commento su una riga. /* * Commento interno con asterischi! */ cout << "Altra uscita.\n"; /* Altro commento su una riga */ Astrazione e programmazione Uno dei problemi principali nella scrittura di grandi programmi, è che il programmatore non può comprendere il programma nel suo insieme a meno che il software non sia in qualche modo modulare. Modularità è la scomposizione in parti più piccole che possano essere comprese e su cui si possa ragionare indipendentemente. La scomposizione di un problema complesso in sottoproblemi più semplici è il modo fondamentale usato dagli uomini per affrontare la complessità del mondo che ci circonda. I buoni linguaggi di programmazione forniscono delle caratteristiche per rendere il software modulare. Modularità ed astrazione La modularità viene raggiunta assicurandosi che gli elementi del sistema abbiano contorni ben definiti e ben definite interfacce attraverso le quali gli elementi interagiscono. I moduli interagiscono solamente tramite le proprie interfacce. La corretta separazione delle funzionalità delle varie parti di un sistema permette di considerare i moduli come "scatole nere". In un linguaggio di programmazione l'atto di ignorare i dettagli di un componente di un programma e di ragionare soltanto sulla sua interfaccia si chiama astrazione. Vi sono due tipi di astrazione: una riguarda le azioni, l'astrazione funzionale (talora chiamata astrazione procedurale), e l'altra riguardante i dati, l'astrazione dei dati. C++ 1.4
6 L'astrazione funzionale permette di scomporre un sistema in funzioni,a loro volta scomposte in sottofunzioni. Tutto è basato sulle azioni del programma, cioè sull'elaborazione dei dati. L'astrazione dei dati permette all'utente di costruire strutture dati a partire da strutture più primitive, e poi di poterle utilizzare come se fossero primitive. L'astrazione dei dati di solito comporta il progetto di nuovi tipi di dati (struttura interna del nuovo tipo più operazioni che si possono utilizzare su quel tipo). Un'astrazione dei dati è modulare, cioè i dettagli interni sono nascosti, ma il tipo si può usare tramite l'interfaccia ed è chiamato tipo di dato astratto (Abstract Data Type, ADT). Il C++ supporta il processo di astrazione dei dati col costrutto di classe e supporta l'astrazione funzionale col costrutto di funzione. L'uso delle astrazioni dei dati e funzionale come unità di programmazione accresce la produttività dei programmatori, che devono sviluppare ogni volta soltanto piccoli pezzi di codice. Inoltre l'astrazione riduce il numero di errori introdotti nel software poiché la dimensione e la complessità di ciascuna unità collaudabile indipendentemente risulta piccola. Specifica ed implementazione I termini specifica ed implementazione sono usati per descrivere le parti che compongono la descrizione di un'astrazione. Una specifica presenta delle informazioni circa l'interfaccia di un'astrazione dei dati o funzionale e indica lo scopo dell'astrazione. Essa include tutte le informazioni richieste dal programmatore per usare un'astrazione. La specifica non dà nessuna informazione su come è fatta l'astrazione. Un'implementazione descrive come l'astrazione ottiene le proprietà descritte nella specifica, il suo interno. Le implementazioni possono cambiare, ma se le specifiche rimangono le stesse, il comportamento di tutti i programmi che usano quell'astrazione non viene modificato. C++ 1.5
7 Tipi e supporto per le astrazioni I buoni linguaggi di programmazione sono fortemente tipizzati, cioè ciascun elemento, dato o funzione del programma, ha un tipo. Questa tipizzazione di tutti gli elementi di un programma aiuta il programmatore ad evitare errori, permette ai compilatori di controllare la correttezza di un programma, specialmente quanto viene utilizzato materiale di libreria, ed aiuta la scoperta di errori potenziali. Il C++ è un linguaggio fortemente tipizzato: tutte le strutture dati e le funzioni di un programma devono avere un tipo dichiarato esplicitamente. Il compilatore controlla accuratamente la coerenza dei tipi in tutto il codice sorgente e se scopre un conflitto emette messaggi di errore. Un esempio di astrazione funzionale Il seguente programma è un estensione del programma Ciao che fa uso dell'astrazione funzionale: Un programma che stampa una serie di messaggi sul terminale. Include le informazioni di ingresso-uscita. #include <iostream.h> Una funzione che stampa Ciao. Non ha parametri. void stampaciao() { cout << "Ciao.\n" ; } La parte principale del programma. Stampa molte cose sul terminale per mostrare l'ordine in cui sono fatte le cose. void main() { cout << "Sto per stampare Ciao.\n" ; stampaciao() ; cout << "Ho appena stampato Ciao.\n" ; } Quando il programma viene compilato ed eseguito l'output prodotto è: C++ 1.6
8 prompt> a.out Sto per stampare Ciao. Ciao. Ho appena stampato Ciao. prompt> Questo programma evidenzia il fatto che le istruzioni nella funzione main sono eseguite in maniera sequenziale. Il programma ha tre elementi oltre ai commenti: #include stampaciao main Questa istruzione di controllo è necessaria per permettere al programmatore di usare il sistema predefinito di ingressouscita IOSTREAM. Il file d'intestazione incluso iostream.h contiene tutte le informazioni di tipo per il compilatore, perché il compilatore possa fare tutti i suoi controlli di consistenza. Una funzione di tipo void. Questa funzione è chiamata da main. E' un'esempio di astrazione funzionale anche se banale. All'interno di main la funzione stampaciao è chiamata senza sapere che cosa essa fa internamente. La specifica della funzione era: una funzione che stampa Ciao. e che non restituisce alcun valore. Questa semantica è indicata dal nome della funzione stampaciao. La funzione ha tipo void per evidenziare il fatto che non restituisce alcun valore. Come già detto, questa è la funzione che controlla tutto, ed è la prima funzione che viene eseguita. I tipi di dati primitivi Per poter costruire le astrazioni vi devono essere degli strumenti di costruzione da cui partire. Nel caso della programmazione essi sono i tipi di dati primitivi ed alcune opportune operazioni su questi. C++ 1.7
9 Costanti letterali e variabili In tutti i programmi i dati, primitivi o definiti dall'utente, sono presenti in due forme: costanti letterali e variabili. Le costanti letterali sono rappresentazioni dei valori di un dato tipo. Le variabili sono "scatole" con un nome nelle quali si possono mettere dei valori che possono essere cambiati durante l'esecuzione di un programma. Nel C++ sia le costanti letterali che le variabili sono tipizzate. Le costanti letterali hanno un tipo che dipende dal loro valore. Per le variabili, occorre che il programmatore dia esplicitamente un tipo utilizzando un'istruzione di dichiarazione. Dare un nome alle variabili Così come deve avere un tipo, una variabile deve avere un nome, in modo da poter essere usata dentro un programma. Vi sono le seguenti regole (come in C): I nomi delle variabili devono iniziare con un carattere alfabetico. Si possono utilizzare, come altri caratteri, i caratteri alfabetici minuscoli e maiuscoli, le cifre numeriche ed il carattere _. Alcuni compilatori permettono di usare anche il carattere $ nei nomi delle variabili. I nomi delle variabili possono essere di lunghezza arbitraria. Purtroppo, qualche compilatore insiste col dare un limite superiore alla lunghezza delle variabili. Non si possono utilizzare come nomi di variabili le parole chiave del linguaggio C++: C++ 1.8
10 asm do if register typedef auto double inline return union break else int short unsigned case enum long signed virtual char extern new sizeof void class float operator static volatile const for overload struct while continue friend private switch default goto protected template delete handle public this Queste regole si applicano anche ai nomi delle funzioni, delle classi, delle etichette. ecc. Vi sono due modi principali di dare un nome composto alle variabili. Una possibilità è quella di utilizzare nomi aventi come separatore tra le parole il carattere _, ad esempio: una_variabile, una_funzione_utile e un_tipo L'altro schema consiste nell'utilizzare lettere maiuscole per indicare l'inizio di una nuova parola all'interno di un nome. In tale schema, i nomi delle variabili e delle funzioni iniziano tutti con una lettera minuscola mentre i nomi di un tipo definito dall'utente cominciano con una lettera maiuscola, ad esempio: unavariabile, unafunzioneutile e UnTipo. La maggior parte degli autori del linguaggio C++ usa questo secondo schema, che sta diventando uno standard de facto. In ogni caso, dato il sistema di generazione automatica dei nomi delle funzioni da parte del compilatore C++ (type-safe linkage), occorre evitare di usare il doppio "underscore" nei nomi. L'inizializzazione delle variabili Il linguaggio C++ permette di dare un valore alle variabili quando queste sono definite, cioè le variabili possono essere inizializzate. E' sempre una buona pratica farlo. C++ 1.9
11 E' anche bene non definire una variabile fino a che questa non sia necessaria. L'inizializzazione di una variabile si può effettuare ponendola uguale a un'espressione arbitraria, utilizzante anche variabili e funzioni precedentemente definite: int i = 7 ; float x = 5. + sqrt(i * 7.) ; I tipi primitivi: valori e definizioni Numeri interi I tipi interi in C++ sono: char, short, int e long. Il tipo char serve a rappresentare i caratteri piuttosto che i numeri interi, e quindi sarà descritto separatamente. Il C++ consente anche di utilizzare tipi senza segno, per esempio il tipo unsigned int. Invece di essere numeri complementati a 2, i tipi senza segno implementano numeri modulo 2 n, cioè gli interi sono sempre interi positivi con valore che va da 0 a 2 n -1. Esempi di definizioni: int i = 24, j = 35 ; short int s1 = 5555 ; short s2 = 7463 ; long int l1 = ; long l2 = i ; unsigned int ui = 12, uj = 444 ; unsigned short us = 444 ; unsigned short int ut = us ; unsigned long ul = ; unsigned long int um = ; Lunghezza tipica e campo di valori dei tipi interi C
12 Tipo 16 bit (short e talora int) 32 bit (long e talora int) signed (-2 15 ) (2 15-1) (-2 31 ) (2 31-1) unsigned (2 16-1) (2 32-1) Rappresentazione dei valori interi Le costanti letterali intere sono di solito a base dieci. Vi sono però anche rappresentazioni ottali, ed esadecimali dei valori interi. Le costanti decimali iniziano con una cifra da 1 a 9 e continuano con cifre nell'intervallo da 0 a 9. Esempi di costanti decimali sono: 134, Le costanti letterali ottali sono quelle che cominciano con uno 0 (carattere zero). Le cifre 8 e 9 non possono essere usate. Esempi di costanti letterali ottali sono: 0156, 010, Le costanti letterali esadecimali del C++ iniziano con i due caratteri 0x o 0X (0 poi x). Le cifre degli esadecimali sono da 0 a 9, a-f, A-F, ove a rappresenta il numero 10, b rappresenta 11 ecc. fino a f che rappresenta il 15. Esempi di costanti esadecimali sono: 0xff, -0x24d5, 0x01F4da4. Le costanti letterali hanno assegnato il tipo a seconda del loro valore. Si può forzare che una costante letterale sia di valore long appendendo una L o una l alla costante stessa. Si possono imporre costanti letterali senza segno appendendo una U o una u alla costante stessa. Usando entrambi i simboli si può definire un valore unsigned long. C
13 Caratteri Ci deve essere una corrispondenza riconosciuta tra i valori dei caratteri immagazzinati nella macchina e la notazione scritta comune. Vi sono molte corrispondenze diverse, ma la più comune è il codice ASCII. Così il tipo char è in effetti una forma di intero. C'è perciò una sintassi per rappresentare i caratteri nel codice dei programmi indipendentemente dai codici utilizzati per metterli in corrispondenza ai numeri interi (costanti letterali carattere). Tutti i caratteri stampabili sono rappresentati racchiudendo il carattere stesso tra apici singoli. Le prime quattro lettere dell'alfabeto sono scritte: 'a' 'b' 'c' 'd' Vi sono però alcuni caratteri molto utili che richiedono una speciale sintassi per essere rappresentati. La tabella seguente mostra i cosiddetti codici di "escape" per questi caratteri: Nome del carattere Nome ASCII Rappresentazione C++ a capo NL \n tabulazione orizzontale HT \t tabulazione verticale VT \v spazio indietro BS \b ritorno carrello CR \r form feed FF \f campanello (bell) BEL \a barretta rovesciata \ \\ apice ' \' C
14 Vi sono due altre sequenze di escape che permettono al programmatore di immettere direttamente valori numerici come costanti carattere: Base letterale Rappresentazione Ottale Esadecimale \ooo \xhhh ove ooo indica 1, 2 o 3 cifre ottali senza uno zero iniziale hhh indica 1, 2 o 3 cifre esadecimali, di nuovo senza zero iniziale. Qualunque sia la lunghezza di un char, essa è l'unità di misura standard di lunghezza per tutti i tipi. Nella maggior parte delle macchine i caratteri sono interi di 8 bit. L'intervallo dei loro valori va da -128 a 127. Con l'avvento dei terminali grafici e con l'estensione delle tabelle dei caratteri per comprendere simboli grafici, il tipo unsigned char può essere molto utile. L'intervallo intero va da 0 a 28-1 (0-255). Si tenga presente che anche un char può contenere un carattere di codice v > 127, solo che in tal caso il valore intero in esso contenuto è negativo, e vale v Un unsigned char invece contiene il valore v inalterato. Alcune definizioni di variabili di tipo carattere: char c1 = 'A', c2 = '\160' ; unsigned char u1 = '\xa9' ; C
15 Numeri reali Sono di due tipi: float (in genere di 32 bit) e double (in genere 64 bit). I numeri reali si possono rappresentare in due modi in un programma C++: come sequenza di cifre che comprendono un punto decimale, o in termini di mantissa e di esponente, per esempio:.1, 0.4, 1., 1.3, -.1, -0.4, -1., e4, 1.9e4, 1.4E-3, -1e4, -1.9E4, -1.4e-3 Per default, tutte le costanti reali del C++ sono di tipo double. Se si inizializza una variabile float con tale costante, allora il compilatore garantisce la corretta conversione. Volendo che una costante sia di tipo float, occorre aggiungere una F o una f a tale costante, ma ciò non si può fare nel caso di forma esponenziale. Esempi di definizioni e di inizializzazioni di variabili reali: float f1 = ; float f2 =.32e-3 ; double d1 = ; double d2 = e43 ; Campo di valori dei tipi reali secondo lo standard IEEE Tipo Bit mantissa / Cifre Intervalli dei valori bit caratteristica significative float 23 / 8 circa 7 [-1.7 x , x ], 0, [0.29 x 10-38, 1.7 x ] double 52 / 11 circa 15 [-0.9 x , x ], 0, [0.86 x , 0.9 X ] C
16 Ingresso e uscita dei tipi di dati primitivi A causa del sistema di tipizzazione forte del C++, la libreria IOSTREAM è capace di distinguere il tipo di input o di output. Così nel frammento di programma: cout << x ; cout << y ; il compilatore utilizza i tipi delle variabili x e y per essere sicuro che la libreria IOSTREAM esegua il tipo corretto di uscita. Quello che segue è un breve programma che mostra come definire ed inizializzare un int ed un double. Questi valori sono poi stampati sul video-terminale. Un programma che mostra la definizione, l'inizializzazione e l'uscita delle variabili. #include <iostream.h> void main() { Dichiara due variabili e le inizializza int valint = 4 ; double valreal = ; Fa uscire i valori delle variabili. cout << "valoreintero = " << valint << ", " ; cout << "valorereale = " << valreal << "\n" ; } Si può anticipare che le variabili cout e cin, definite nel file iostream.h, appartengono alle classi ostream e istream, rispettivamente. Esse denotano istanze di tali classi, associate all'unità standard di output e di input. Gli operatori << e >> (che nel linguaggio standard rappresentano operatori "shift" con due operandi interi) sono sovrapposti, cioé ridefiniti, avendo come primo parametro un ostream o un istream, rispettivamente. In tal modo il programma dato sopra funziona. Questi operatori sono stati scelti perché rappresentano delle "freccette" che rendono bene il flusso dei dati verso cout e da cin. C
17 Ingresso dei dati: nella libreria IOSTREAM, cin (di solito) rappresenta la tastiera, e >> rappresenta l'operazione d'ingresso. Le stesse regole riguardanti il controllo di tipo che valgono per l'uscita valgono anche per l'ingresso. Perciò nel programma seguente: Un programma che da' in eco il numero che l'utente digita alla tastiera. #include <iostream.h> void main() { double val ; cout << "Digita un numero: " ; cin >> val ; cout << "Hai battuto: " << val << "\n" ; } la libreria IOSTREAM fa entrare un double poiché riconosce che la variabile val nel quale il valore viene inserito è di tipo double. La concatenazione degli operatori << e >> è possibile perché tali operatori sono associativi a sinistra, ed inoltre perché restituiscono lo stream che hanno come primo argomento: cout << "Hai battuto: " << val << "\n" ; equivale a: ((cout << "Hai battuto: ") << val) << "\n" ; C
18 I puntatori Un puntatore è un dato che non contiene un'entità, ma un puntatore ad un'entità. Esso fornisce un altro meccanismo per accedere all'informazione contenuta in una variabile. Ciò introduce un nuovo termine: de-riferimento (de-referencing). Un puntatore è un riferimento a un dato. Quando usa un puntatore il programmatore deve de-riferire esplicitamente il puntatore per scoprire il valore del dato puntato. È spesso utile pensare in termini di "indirizzo" quando si tratta di puntatori: un puntatore è una variabile che contiene l'indirizzo dell'area di memoria che contiene effettivamente il dato puntato. I puntatori sono un tipo di dato primitivo. Qualunque sia il tipo di dato che è puntato, primitivo o definito dall'utente, un puntatore al dato è qualcosa di primitivo. Dichiarazione e definizione dei puntatori Si consideri il seguente esempio: #include <iostream.h> void main() { Dichiara una variabile int int varint = 46; Dichiara un puntatore e lo fa puntare alla variabile di lavoro. int * pint = &varint; cout << "variabileint = " << varint << "\n" ; *pint = 72 ; cout << "variabileint = " << varint << "\n" ; } La variabile varint è semplicemente una classica variabile intera inizializzata a 46. C
19 La variabile pint è un puntatore a un intero, e lo stabilisce l'* nella definizione. Il pint è inizializzato per puntare a varint, prendendo l'indirizzo a varint usando l'operatore unario &. L'operatore unario * ovunque tranne che in una dichiarazione è l'operatore di de-riferimento, e fa sì che *pint nell'istruzione di assegnazione stia a significare la variabile a cui punta pint. In questo caso, poiché *pint appare alla sinistra di un'assegnazione, la variabile varint ha il proprio valore cambiato. I simboli * e & sono usati qui come operatori unari, ed il compilatore può distinguere il loro uso dai simboli di * (moltiplicazione) e dall'& (and bit a bit) usati come operatori binari. Dopo l'esecuzione delle due definizioni del programma dato prima abbiamo la situazione; varint 46 pint L'istruzione di assegnazione porta al diagramma: varint 72 pint C
20 Il seguente codice: int * p1, p2 ; dichiara un puntatore a un intero, p1, ed un intero, p2. Se p2 doveva essere un puntatore, allora la dichiarazione avrebbe dovuto essere: int * p1, * p2 ; oppure: int * p1 ; int * p2 ; I tipi derivati del C++, oltre al tipo puntatore, sono: Vettori long vl [20] ; Riferimenti (... double & dd...) Tipi enumerati enum colori {rosso, blu, nero}; Tipi di classe class complex {... }; complex s, z; Costanti const int dimbuf = 512; Verranno tutti trattati nel seguito Occupazione di memoria dei tipi primitivi Il linguaggio C++ non prescrive lunghezza e modo di rappresentazione dei tipi primitivi. Esso prescrive solo alcuni vincoli relativi: 1 sizeof(char) sizeof(short) sizeof(int) sizeof(long) sizeof(float) sizeof(double) sizeof(long double) C
Introduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
DettagliCorso Programmazione 1 Capitolo 01: Concetti Elementari
Corso Programmazione 1 Capitolo 01: Concetti Elementari Docente: Roberto Sebastiani - roberto.sebastiani@unitn.it Esercitatori: Mario Passamani - mario.passamani@unitn.it Alessandro Tomasi - alessandro.tomasi@unitn.it
DettagliAlfabeto ed elementi lessicali del linguaggio C
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2015-2016 Alfabeto ed elementi lessicali del linguaggio C Pietro Di Lena - pietro.dilena@unibo.it s t a t i c s h o r t l e g s ; i n
DettagliISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++
ISTITUTO TECNICO INDUSTRIALE STATALE G A L I L E O F E R R A R I S DIISPENSA DII IINFORMATIICA E SIISTEMII AUTOMATIICII LA GESTIONE DEI FILE DI TESTO IN C++ Le classi per la gestione dei file. Il C++ è
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
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica I tipi strutturati: gli array e le strutture Claudio De Stefano - Corso di Fondamenti di Informatica 1 arrays un array (o vettore) è una sequenza di oggetti dello stesso
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 di
DettagliNascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti
Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del
DettagliCodifica: dal diagramma a blocchi al linguaggio C++
Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU
DettagliJava:Struttura di Programma. Fabio Scanu a.s. 2014/2015
Java:Struttura di Programma Fabio Scanu a.s. 2014/2015 Altre Attenzioni da riservare Java è Case Sensitive: La variabile «a» e la variabile «A» sono diverse Java ha alcune regole di scrittura: I nomi delle
DettagliParte 1. Vettori di bit - AA. 2012/13 1.1
1.1 Parte 1 Vettori di bit 1.2 Notazione posizionale Ogni cifra assume un significato diverso a seconda della posizione in cui si trova Rappresentazione di un numero su n cifre in base b: Posizioni a n
DettagliStrutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)
Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi
DettagliAlcune regole di base per scrivere un programma in linguaggio C
Alcune regole di base per scrivere un programma in linguaggio C Un programma il linguaggio C (listato) viene scritto in formato testo ed archiviato in un file: *.c Per scrivere un listato C si utilizza
DettagliGli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori
Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine
DettagliEsercizi su. Funzioni
Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità
DettagliAPPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL
APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL In informatica il Pascal è un linguaggio di programmazione creato da Niklaus Wirth ed é un linguaggio di programmazione strutturata. I linguaggi di programmazione
DettagliDefinire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};
ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca
DettagliInizializzazione, Assegnamento e Distruzione di Classi
Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della
DettagliLe variabili. Olga Scotti
Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.
DettagliArduino: Programmazione
Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite
DettagliTipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
Dettagli4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
DettagliFondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 02 Tipi semplici in C
Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009 Lab 02 Tipi semplici in C Obiettivo dell esercitazione Acquistare familiarità con i tipi di dato semplici supportati
DettagliLABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B
LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B 23.XI.2012 VINCENZO MARRA Indice Esercizio 1 1 Menu 1 Tempo: 35 min. 2 Commento 1 2 Esercizio 2 2 Ordinamento e ricerca binaria con la classe
DettagliCapitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.
Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2
DettagliBreve riepilogo della puntata precedente:
Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta
DettagliUniversità degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella
Corso di Informatica Puntatori Anno Accademico 2010/2011 Francesco Tortorella Variabili, registri ed indirizzi Abbiamo visto che la definizione di una variabile implica l allocazione (da parte del compilatore)
DettagliAlessandro Pellegrini
Esercitazione sulle Rappresentazioni Numeriche Esistono 1 tipi di persone al mondo: quelli che conoscono il codice binario e quelli che non lo conoscono Alessandro Pellegrini Cosa studiare prima Conversione
DettagliDispensa 3. 1.1 YACC: generalità
Dispensa 3 1.1 YACC: generalità Il tool Yacc (acronimo per Yet Another Compiler Compiler) è uno strumento software che a partire da una specifica grammaticale context free di un linguaggio scritta in un
DettagliSISTEMI DI NUMERAZIONE E CODICI
SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema
DettagliConcetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
DettagliJava: Compilatore e Interprete
Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT
DettagliLa struttura dati ad albero binario
La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,
DettagliLe stringhe. Le stringhe
Informatica: C++ Gerboni Roberta Stringhe di caratteri (esempi di utilizzo dei vettori) Nel linguaggio C++ una stringa è semplicemente un vettore di caratteri Vettori di caratteri La stringa "hello" è
DettagliLinguaggio C. Fondamenti. Struttura di un programma.
Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C La nascita del linguaggio C fu dovuta all esigenza di disporre di un Linguaggio ad alto livello adatto alla realizzazione
DettagliDati testuali. Caratteri e stringhe. Tipi di dato testuali. Dati testuali. Il sistema dei tipi C. Rappresentazione dei testi
Tipi di dato testuali Caratteri Stringhe Caratteri e stringhe 5 Tipi di dato testuali I programmi visti finora erano in grado di elaborare esclusivamente informazioni numeriche Numeri eri (), numeri reali
DettagliInformatica. Rappresentazione dei numeri Numerazione binaria
Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione
DettagliInformatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1)
Informatica 3 LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Modulo 1: Introduzione: oggetti e classi Modulo 2: Link e associazioni Modulo 3: Aggregazione Informatica 3 Lezione 7 -
DettagliINFORMATICA - I puntatori Roberta Gerboni
1 2 I puntatori in C++ Il puntatore un tipo di dato scalare, che consente di rappresentare gli indirizzi delle variabili allocate in memoria. Dominio: Il dominio di una variabile di tipo puntatore è un
DettagliRichiesta pagina PHP (es: index.php)
PHP PHP = personal home page SERVER Richiesta pagina PHP (es: index.php) Server Web (Apache) in ascolto sulla porta 80, si accorge che la pagina richiesta è una pagina PHP in base all'estensione o con
DettagliI sistemi di numerazione
I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono
DettagliProgrammazione in Java Parte I: Fondamenti
Programmazione in Java Parte I: Fondamenti Lezione 1 Dott. Marco Faella Riferimenti Testi consigliati: Progettazione del software e design pattern in Java di C.S. Horstmann Apogeo Gli esempi di codice
DettagliIntroduzione al MATLAB c Parte 2
Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione
Dettagli11010010 = 1*2^7 + 1*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 210
Il sistema BINARIO e quello ESADECIMALE. Il sistema di numerazione binario è particolarmente legato ai calcolatori in quanto essi possono riconoscere solo segnali aventi due valori: uno alto e uno basso;
DettagliMATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c
Caratteristiche MATLAB Linguaggio di programmazione orientato all elaborazione di matrici (MATLAB=MATrix LABoratory) Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione
DettagliFONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
DettagliCapitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti
Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta
DettagliAppunti sulla Macchina di Turing. Macchina di Turing
Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso
DettagliInformazione analogica e digitale
L informazione L informazione si può: rappresentare elaborare gestire trasmettere reperire L informatica offre la possibilità di effettuare queste operazioni in modo automatico. Informazione analogica
Dettaglivoid funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }
FUNZIONI 57. Cosa servono le funzioni? A spezzare il programma in diverse parti relativamente indipendenti fra loro, ovvero interagenti sono attraverso i parametri di input ed IL VALORE di uscita. In questo
Dettagli12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
DettagliGestione dei File in C
Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte
DettagliMatematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE
Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE NOME: COGNOME: ============================================================== Esercizio 1 ci sono tante "righe"; non è detto servano tutte...
DettagliAlgoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.
Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito
DettagliModulo 4: Ereditarietà, interfacce e clonazione
Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo
DettagliProgrammazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
Dettagli2. Spiegare brevemente qual è la funzione del compilatore e la sua importanza per il programmatore.
1 Esercizio 1 1. Immaginate di avere una calcolatore che invece che poter rappresentare i classici due valori per ogni bit (0/1) possa rappresentare 7 valori per ogni bit. (a) Quanti bit gli occorreranno
DettagliCodifica dei numeri negativi
E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-1 Rappresentazione in complemento a 2 Codifica dei numeri negativi Per rappresentare numeri interi negativi si usa la cosiddetta rappresentazione
DettagliComplemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno
Rappresentazione di numeri Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno Un numero e un entità teorica,
Dettaglicostruttori e distruttori
costruttori e distruttori Costruttore E un metodo che ha lo stesso nome della classe a cui appartiene: serve per inizializzare un oggetto all atto della sua creazione Ce ne possono essere uno, più di uno,
DettagliIntroduzione al Linguaggio C
Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C
DettagliPer scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.
DettagliSiamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.
DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti
DettagliVisibilità dei Membri di una Classe
Visibilità dei Membri di una Classe Lezione 10 Ogni classe definisce un proprio scope racchiude il codice contenuto nella definizione della classe e di tutti i suoi membri ogni metodo della classe definisce
DettagliFasi di creazione di un programma
Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma
DettagliINFORMATICA 1 L. Mezzalira
INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello
DettagliRappresentazione dei numeri in un calcolatore
Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri
DettagliCorso di Informatica
Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down
Dettaglipuntatori Lab. Calc. AA 2007/08 1
puntatori Lab. Calc. AA 2007/08 1 parametri delle funzioni (dalla lezione scorsa) gli argomenti in C vengono passati by value dalla funzione chiamante alla funzione chiamata la lista degli argomenti viene
DettagliUniversità di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
Dettaglihttp://www.programmiamo.altervista.org/c/oop/o...
PROGRAMMIAMO Programma per la gestione di un conto corrente C++ - Costruttore e distruttore C++ Home Contatti Supponiamo ora di voler scrivere un programma a menu per la gestione di un conto corrente bancario.
DettagliDall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere
DettagliAPPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI
APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................
Dettaglidall argomento argomento della malloc()
Allocazione dinamica Quando? Tutte le volte in cui i dati possono crescere in modo non prevedibile staticamente a tempo di sviluppo Un array con dimensione i fissata a compile-time non è sufficiente È
DettagliUn ripasso di aritmetica: Rappresentazione binaria - operazioni. riporti
Un ripasso di aritmetica: Rappresentazione binaria - operazioni A queste rappresentazioni si possono applicare le operazioni aritmetiche: riporti 1 1 0 + 1 0 = 1 0 0 24 Un ripasso di aritmetica: Rappresentazione
DettagliLaboratorio di Informatica
Laboratorio di Informatica Introduzione a Python Dottore Paolo Parisen Toldin - parisent@cs.unibo.it Argomenti trattati Che cosa è python Variabili Assegnazione Condizionale Iterazione in una lista di
DettagliDatabase. Si ringrazia Marco Bertini per le slides
Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida
DettagliInformatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter
Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Architettura del Calcolatore Macchina di von Neumann Il calcolatore moderno è basato su un architettura
DettagliInforma(ca Appun% dal laboratorio 2
Informa(ca Appun% dal laboratorio 2 Conce- fondamentali Esistono programmi, come Microso8 Word oppure Acrobat Reader, che vengono usa% dagli uten% per far eseguire al computer determinate operazioni (come
DettagliProgrammazione I / Informatica generale Prova scritta 11 Giugno 2008
Programmazione I / Informatica generale Prova scritta 11 Giugno 2008 NOTA: Si trascuri ogni problema legato al tipo ed al valore di ritorno della funzione main. Inoltre, nei programmi è da sottintendere
DettagliFondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main
Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli
DettagliSommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.
Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell
DettagliDefinizione di nuovi tipi in C
Definizione di nuovi tipi in C typedef Ancora sui tipi di dato Ogni elaboratore è intrinsecamente capace di trattare domini di dati di tipi primitivi numeri naturali, interi, reali caratteri e stringhe
DettagliSoluzione dell esercizio del 2 Febbraio 2004
Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo
DettagliESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 27 Gennaio 2015
COGNOME E NOME: MATRICOLA: Civile Ambiente e Territorio Non si possono consultare manuali, appunti e calcolatrici. Esercizio 1: [3 punto] Rappresentare i numeri 36 e 91 (in base 10) in notazione binaria
DettagliAXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio
AXO Architettura dei Calcolatori e Sistema Operativo processo di assemblaggio linguaggio assembly è il linguaggio simbolico che consente di programmare un calcolatore utilizzando le istruzioni del linguaggio
DettagliUso di base delle funzioni in Microsoft Excel
Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce
DettagliCOS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle
DettagliAutomatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione
Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento
Dettagli3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
3 - Variabili 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 Corso di
DettagliEsercizi di programmazione in C
Esercizi di programmazione in C Esercizio 1 Scrivere un programma in linguaggio C che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi. Il programma, a partire dal
DettagliLezione 8. La macchina universale
Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione
DettagliLogica e codifica binaria dell informazione
Politecnico di Milano Corsi di Laurea in Ingegneria Matematica e Ingegneria Fisica Dipartimento di Elettronica ed Informazione Logica e codifica binaria dell informazione Anno Accademico 2002 2003 L. Muttoni
DettagliAPPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)
ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1) Un insieme è una collezione di oggetti. Il concetto di insieme è un concetto primitivo. Deve esistere un criterio chiaro, preciso, non ambiguo, inequivocabile,
DettagliProgettaz. e sviluppo Data Base
Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo
DettagliLA RAPPRESENTAZIONE DELLE INFORMAZIONI
ISTITUTO TECNICO E LICEO SCIENTIFICO TECNOLOGICO ANGIOY LA RAPPRESENTAZIONE DELLE INFORMAZIONI Prof. G. Ciaschetti DATI E INFORMAZIONI Sappiamo che il computer è una macchina stupida, capace di eseguire
DettagliTipi di dato-prima parte
Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) Tipi di dato-prima parte Ing. Agnese Pinto 1 di 15 Tipi di dato Sommario Tipi di dato Classificazione dei tipi di dato Tipi
DettagliCREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS
CONTENUTI: CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS Creazione database vuoto Creazione tabella Inserimento dati A) Creazione di un database vuoto Avviamo il programma Microsoft Access. Dal menu
Dettagli