La programmazione ad oggetti (Parte 1)
|
|
- Armando Pappalardo
- 4 anni fa
- Visualizzazioni
Transcript
1 La programmazione ad oggetti (Parte 1) Algoritmicamente November 21, Introduzione Una proprietà importante del C++ è quella che denisce questo linguaggio come linguaggio orientato agli oggetti. Uno dei tanti strumenti di cui fa uso la programmazione ad oggetti è l'astrazione. Denizione 1.1 L'astrazione, in informatica, è un processo tramite cui si descrivono dei modelli concettuali soermandosi sulle proprietà che questi posseggono. Denizione 1.2 Un oggetto è un ente composto da attributi e comportamenti utili alla rappresentazione di un concetto. Ricordiamo anche che un oggetto non è altro che un'area di memoria allocata. Una volta dichiarato un oggetto(o variabile) il computer non fa altro che destinare un area di memoria dedicata, contraddistinta da un indirizzo. 2 Le classi Altro strumento fondamentale della programmazione ad oggetti sono le classi. Denizione 2.1 Una classe è uno strumento utile alla costruzione di strutture dati che comprendono non solo i dati ma anche i metodi per gestirli. Una classe ci aiuta nella costruzione degli oggetti, accorpando i dati necessari alla rappresentazione dell'oggetto(attributi o dati membro) e il codice necessario a gestirne il comportamento(metodi o funzioni membro). Denizione 2.2 Un membro di una classe è un elemento, sia esso dato o funzione, dichiarato nel corpo della classe. Denizione 2.3 Il corpo della classe è la parte interna della classe stessa, ed è racchiuso tra parentesi grae, di cui l'ultima è seguita da un punto e virgola. 1
2 Per semplicità, possiamo vedere una classe come un tipo di variabile(int, char, bool,... ), e un oggetto come una variabile di quel tipo. Infatti, durante la dichiarazione di una variabile(o oggetto) come per esempio int numero; notiamo che numero è una variabile di tipo int (intero), ma int, difatti, è un tipo di variabile. Quando siamo noi a creare un tipo di oggetto, accade la stessa cosa. Per questo motivo le classi sono anche chiamate tipi deniti dall'utente. La sintassi per la costruzione di una classe è la seguente: class Character ; Dunque, il nuovo tipo di variabile si chiamerà Character, e facendo una dichiarazione otterremo Character personaggio; dove personaggio sarà il nome del nuovo oggetto di tipo Character. Come già detto in precedenza, abbiamo bisogno degli attributi e dei metodi per poter creare un oggetto, di conseguenza dobbiamo inserire questi dati nel corpo della classe. Il corpo della classe può essere suddiviso in 3 sottoparti: public, protected, private. Ogni sottoparte rappresenta un livello di accesso(pubblico, protetto o privato) riferito ai dati inseriti al suo interno. Non è tuttavia vietato dichiarare dei membri fuori dai livelli di accesso, vedremo infatti in seguito come le funzioni friend non vengano inserite in nessuno di questi livelli. La sintassi per la dichiarazione dei livelli di accesso è la seguente: class Character ; public: protected: private: Nota: Non è obbligatorio inserire tutti i livelli di accesso. Questi, inoltre, non hanno un ordine di inserimento prestabilito. Introduciamo qui il concetto di information hiding o di incapsulamento dei dati. Poiché vogliamo proteggere i dati membro della classe dall'accesso diretto da parte di qualsiasi altra funzione del programma, non dichiarata nel corpo della classe, utilizziamo i livelli di accesso: 2
3 I membri pubblici sono accessibili da qualsiasi punto del programma. In questo livello di accesso vengono generalmente inserite le funzioni membro che possono essere utilizzate dal programma per gestire gli oggetti di quella classe. I membri protetti vengono trattati principalmente assieme all'ereditarietà(argomento di cui parleremo in seguito), ma per ora li considereremo come privati. I membri privati sono accessibili solo dalle funzioni membro e dalle funzioni friend (di cui parleremo in seguito) della classe. In questo livello di accesso, applicando sempre l'incapsulamento dei dati, vengono dichiarati gli attributi della classe e le funzioni di utilità, ovvero delle funzioni che vengono chiamate da funzioni pubbliche. Le classi vengono generalmente create in documenti a parte, ovvero in un le.h, detto le header, dove si crea la classe con i suoi dati e le sue funzioni membro, e un le.cpp dove viene incluso il le.h e si implementano i suoi metodi. Quando vorremo utilizzare le classi da noi create, nel main includeremo i le.h necessari. Da notare che per includere i le.h dobbiamo utilizzare il doppio apice e non le parentesi angolari: #include Character.h Inoltre, nei le.h, viene utilizzata una direttiva che ci assicura che il codice all'interno di questa, nel nostro caso l'intero le.h, venga compilato solo una volta anche se viene incluso più volte in diversi punti del nostro codice; una volta compilato quindi, se il compilatore ritroverà incluso il le.h in questione, salterà tutto il codice all'interno della direttiva. La direttiva è la seguente: #ifndef CHARACTER_H #define CHARACTER_H class Character ; #endif Nota: Il nome del le.h deve essere necessariamente inserito tutto a caratteri maiuscoli, e al posto del punto '.' ci va un underscore '_'. 3 Il costruttore Esiste una funzione membro particolarmente importante che viene chiamata costruttore. Denizione 3.1 Il costruttore è una funzione membro, denita come pubblica che deve avere lo stesso nome della classe. 3
4 Il costruttore viene utilizzato per inizializzare le variabili della classe stessa e per allocare aree di memoria; può inoltre prendere in input argomenti, come per qualsiasi funzione. Una volta denita una classe, quando andiamo a dichiarare un oggetto di quel tipo, viene chiamato il costruttore, che può essere quello da noi denito oppure, nel caso in cui non lo avessimo fatto, viene chiamato il costruttore di default generato dal compilatore. Proviamo ora a denire qualche costruttore: Character::Character() name = ; //variabile di tipo string hp = 0; mp = 0; //variabile di tipo int //variabile di tipo int Character::Character(string n, int h, int m) name = n; hp = h; mp = m; Abbiamo denito due costruttori diversi per la stessa classe. Il primo, non prende in input alcun argomento e inizializza le variabili della classe a 0, mentre il secondo, prendendo in input degli argomenti, li assegna ai dati membro. Notiamo inoltre come la sintassi per la denizione di una funzione membro, compreso il costruttore, richieda la denizione della classe di appartenenza, ovvero: Character:: Dichiarando dunque degli oggetti di tipo Character: Character personaggio1; Character personaggio2(p2, 100, 50 ); osserviamo che nel momento in cui dichiariamo l'oggetto personaggio1, non avendo passato alcun argomento, verrà chiamato il primo costruttore che abbiamo denito, inizializzando tutti i dati membro a 0, mentre dichiarando l'oggetto personaggio2 verrà chiamato il secondo costruttore, assegnando rispettivamente P2 alla variabile name, 100 ad hp, e 50 ad mp. Non esistono dunque limiti per il numero di costruttori che possiamo denire, possiamo denirne per esempio due, come in questo caso, oppure nessuno, e in tal caso verrà generato automaticamente un costruttore di default da parte del compilatore. 4 Le funzioni set e get Le funzioni set e get sono delle funzioni che ritroveremo spesso nella programmazione ad oggetti, in quanto verranno utilizzate rispettivamente per assegnare 4
5 un valore ad ogni singola variabile della classe e per prenderne il contenuto. Sono funzioni semplicissime nella loro struttura, ma è comunque utile descriverle anchè se ne apprenda bene l'utilizzo. Qui di seguito deniamo la funzione set e la funzione get per la variabile name della classe Character : void Character::setName(string n) name = n; string Character::getName() return name; Si noti bene il tipo con cui sono state dichiarate queste funzioni. Le funzioni set vengono denite come void in quanto il loro unico scopo è quello di assegnare la variabile passata come argomento alla variabile destinataria prescelta, in questo caso name, e quindi non viene richiesto di ritornare alcun valore. Le funzioni get invece, necessitano di essere denite del tipo della variabile di cui desideriamo estrarne il valore; in questo caso, dato che ci interessa il valore della variabile name, la funzione get sarà denita di tipo string, e non prenderà nessun parametro in input dato che dobbiamo seplicimente fare un return. Per utilizzare qualsiasi funzione implementata per un tipo di oggetto, su un oggetto sempre di quel tipo (Character nel nostro caso) che abbiamo in un main, si utilizza la seguente sintassi: nomeoggetto.nomemetodo( ); che nel nostro caso diventa per esempio: personaggio1.setname(p1); Per concludere questa prima parte, vediamo un esempio completo di denizione di classe con implementazione dei vari metodi e un main dimostrativo. // Character.h #ifndef CHARACTER_H #define CHARACTER_H #include <string> using namespace std; class Character private: string name; 5
6 ; int hp; int mp; public: Character( ); Character(string n, int h, int m); void setname(string n); void sethp(int h); void setmp(int m); string getname(); int gethp(); int getmp(); #endif //Character.cpp #include Character.h #include <iostream> using namespace std; Character::Character() name = ; hp = 0; mp = 0; Character::Character(string n, int h, int m) name = n; hp= h; mp = m; void Character::setName(string n) name = n; void Character::setHp(int h) hp = h; void Character::setMp(int m) 6
7 mp = m; string Character::getName() return name; int Character::getHp() return hp; int Character::getMp() return mp; //main.cpp #include Character.h #include <iostream> using namespace std; int main() Character personaggio1; Character personaggio2(p2, 100, 50); //Caratteristiche del personaggio1 solo con il primo costruttore cout << Caratteristiche personaggio1 (solo con il costruttore) : \n\n; cout << Nome: << personaggio1.getname() << endl; cout << Hp: << personaggio1.gethp() << endl; cout << Mp: << personaggio1.getmp() << endl; cout << endl; personaggio1.setname(p1); personaggio1.sethp(150); personaggio1.setmp(75); //Caratteristiche del personaggio1 dopo le funzioni set e get cout << Caratteristiche personaggio1 (dopo i metodi set e get) : \n\n; cout << Nome: << personaggio1.getname() << endl; cout << Hp: << personaggio1.gethp() << endl; cout << Mp: << personaggio1.getmp() << endl; 7
8 cout<<endl; //Caratteristiche personaggio2 con il secondo costruttore cout << Caratteristiche personaggio2: \n\n; cout << Nome: << personaggio2.getname() << endl; cout << Hp: << personaggio2.gethp() << endl; cout << Mp: << personaggio2.getmp() << endl; return 0; Output: Caratteristiche personaggio1 (solo con il costruttore) : Nome: Hp: 0 Mp: 0 Caratteristiche personaggio1 (dopo i metodi set e get) : Nome: P1 Hp: 150 Mp: 75 Caratteristiche personaggio2: Nome: P2 Hp: 100 Mp: 50 8
La programmazione ad oggetti (OOP)
Oggetti e Classi (CAP 10) Alberto Garfagnini, Marco Mazzocco Università degli studi di Padova 30 Novembre 2011 La programmazione ad oggetti (OOP) È un approccio concettuale alla programmazione (indipendente
DettagliOOP in C++ ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi
OOP in C++ Classi e Oggetti Una classe èuntipochehavariabili ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi Una variabile ab di un tipo
DettagliIntroduzione ai puntatori
Introduzione ai puntatori Algoritmicamente November 19, 2009 http://algoritmicamente.wordpress.com/ 1 Concetti fondamentali Nei linguaggi quali C, C++, il concetto e l'uso dei puntatori è estremamente
DettagliClasse Squadra. #include <iostream> using namespace std;
Classe Squadra Si vuole scrivere un programma che gestisce la classifica di un campionato tra squadre di calcio, ognuna identificata dal proprio nome. Il programma deve essere in grado di assegnare un
DettagliAGGIORNAMENTI RECENTI IN C++ Programmazione ad Oggetti Corso di Laurea in Informatica Università della Calabria
AGGIORNAMENTI RECENTI IN C++ Programmazione ad Oggetti Corso di Laurea in Informatica Università della Calabria C++0x/C++11/C++14/C++17 : Cosa sono? C++ ha subito molti miglioramenti da quando è stato
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout
DettagliProgrammazione modulare
Programmiamo in.. Programmazione modulare Un programma complesso si suddivide in più sottoprogrammi o funzioni. Un programma suddiviso in piccoli pezzi, è più semplice da gestire da aggiornare da correggere
DettagliIl paradigma OO e le Classi
Oggetti e Classi (CAP 10) Alberto Garfagnini Università degli studi di Padova 1 Dicembre 2009 Il paradigma OO e le Classi La programmazione ad Oggetti () è una filosofia di programmazione che si basa sui
DettagliFondamenti di Informatica
Programmazione modulare (top-down) Fondamenti di Informatica 15. Funzioni in C++ (parte 1) Problemi complessi Conviene suddividere il programma in sottoprogrammi piu semplici mediante la metodologia di
DettagliInformatica e Laboratorio di Programmazione C++ Object Oriented Programming Alberto Ferrari
Informatica e Laboratorio di Programmazione C++ Object Oriented Programming Alberto Ferrari oggetti o in C++ la definizione della classe è separata dalla implementazione dei metodi o definizione fornita
DettagliFile: /home/peppino/area_lavori/ese enti/oggetti/timbro_classe.cpp Pagina 1 di 5
File: /home/peppino/area_lavori/ese enti/oggetti/timbro_classe.cpp Pagina 1 di 5 * esempi_c++/sorgenti/timbro_classe.cpp * * Una classe semplice per apprendere la programmazione * ad oggetti ( OOP ). *
DettagliTipi strutturati - struct
Fondamenti di Programmazione A Appunti per le lezioni Gianfranco Rossi Tipi strutturati - struct Struttura dati (concreta) struct: sequenza di n elementi (n 0), rispettivamente di tipo t1,,tn (non necessariamente
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)
Dettagli1.1 of :05:39
/home/mgm/mydropbox/dropbox/peano/libri Peano/INFO3/es78/main.cpp 1 #include "mylib.h" 2 3 int main() { 4 unsigned short code[dim]; 5 bool book; 6 7 // carico il codice a barre 8 LoadCode(code); 9 // calcolo
DettagliIntroduzione alle classi
Introduzione alle classi Corso di Programmazione 3 - Ingegneria dell Informazione e dell Organizzazione 23 ottobre, 2001 Gino Perna Esempi di semplici classi in C++ INTRODUZIONE AGLI OGGETTI Fin dall'inizio
DettagliUniversità degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella
Corso di Informatica Tipi strutturati: Stringhe Anno Accademico 2010/2011 Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri quali
DettagliDefinizione di classi
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
DettagliCorso di Fondamenti di Informatica Tipi strutturati: Stringhe
Corso di Fondamenti di Informatica Tipi strutturati: Stringhe Anno Accademico Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri
DettagliCorso di Informatica
Corso di Informatica Modulo T1 B1 Il concetto di classe 1 Prerequisiti Programmazione elementare Conoscenza dell uso delle funzioni Utilizzo della UML 2 1 Introduzione Gli oggetti reali sono una infinità
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma #include main() { printf("ciao Mondo!"); } Il file deve essere salvato con estensione.c Il primo programma in C++ #include using
DettagliNel seguito, istruzione1 e istruzione2 possono essere un blocco di codice { }, cioè più istruzioni
INTRODUZIONE A C++ Nel seguito, istruzione1 e istruzione2 possono essere un blocco di codice, cioè più istruzioni Istruzione - Esempi Significato int a; float f; double d; char c; int x=0; variabile =
DettagliConcetto di stream. c i a o \0. c i a o \0. c i a o \0
Concetto di stream Uno stream è un flusso di byte che permette al programma di comunicare con l esterno (es. con periferiche di input/output) c i a o \0 c i a o \0 c i a o \0 Stream di uscita standard
DettagliUNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI MATEMATICA E FISICA
UNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI MATEMATICA E FISICA Laboratorio di Programmazione e Calcolo Cognome:... A.A. 2017-18 Nome:... Test Finale con Soluzioni Matricola:... Roma, 18 gennaio 2018
DettagliDichiarazione di una classe. Dichiarazione ereditarietà
Introduzione Il Java è un linguaggio di programmazione orientato agli oggetti (OOL), perché permette di realizzare in un programma tutti i concetti alla base dell OOP quali: l astrazione dei dati, mediante
DettagliLaboratorio Informatica Classe 4A Serale Venerdì 18/02/2011. Gruppo. Cognome Riontino Nome Raffaele. Cognome Nome
Laboratorio Informatica Classe 4A Serale Venerdì 18/02/2011 Gruppo Cognome Riontino Nome Raffaele Cognome Nome TRACCIA 2 ARGOMENTO: LISTE TEMPO: 4h 1. Utilizzando Typedef definire un nuovo tipo di dato
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
DettagliC++ funzioni Alberto Ferrari. Alberto Ferrari Programmazione di applicazioni SW
C++ funzioni Alberto Ferrari http://en.cppreference.com FUNZIONI le funzioni caratterizzate da nome, parametri (numero, ordine e tipo) e tipo di ritorno le funzioni hanno un prototipo il prototipo non
DettagliCompilazione e Makefile
Compilazione e Makefile Indice Il preprocessore Le istruzioni per il preprocessore Le MACRO L ambiente linux: alcuni comandi Editor ed il compilatore g++ I makefile Il comando make I flag Il preprocessore
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE IN C++ PRIMA LEZIONE
INTRODUZIONE ALLA PROGRAMMAZIONE IN C++ PRIMA LEZIONE ALGORITMO SEQUENZA FINITA DI OPERAZIONI ISTRUZIONE OPERAZIONE ESEGUIBILE DALLA MACCHINA LINGUAGGIO INSIEME DI SIMBOLI E REGOLE CHE PERMETTONO DI COMUNICARE
DettagliStrutture come parametri di funzioni
Strutture come parametri di funzioni int main() { struct PolReg { int numlati; float lunghezzalato; PolReg p1; p1.numlati = 3; p1.lunghezzalato = 10.0; float perimetro = p1.numlati * p1.lunghezzalato;
DettagliLe funzioni: la dichiarazione
Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Le regole di visibilità (scope) Il passaggio degli argomenti per valore e riferimento La funzione main() Le funzioni: la dichiarazione
DettagliLe funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità
Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità Le funzioni: la dichiarazione
DettagliElementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 1
DettagliIntroduzione al C++ (continua)
Introduzione al C++ (continua) I puntatori Un puntatore è una variabile che contiene un indirizzo di memoria pi_greco 3.141592 pi_greco_ptr indirizzo di 3.141592 & DEREFERENZIAZIONE RIFERIMENTO * se x
DettagliFondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012
Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Operatore? Tipo di dato: struct La ricorsione Funzioni ricorsive Esercizi proposti 26/04/2012 2 Operatore? L'operatore? può essere
DettagliLaboratorio di Programmazione e Calcolo
UNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI FISICA E. AMALDI Laboratorio di Programmazione e Calcolo 6 crediti a cura di Severino Bussino Anno Accademico 2018-19 0) Struttura del Corso 1) Trattamento
DettagliLaboratorio di Informatica
Strutture di dati Laboratorio di Informatica 5. Strutture / Array di oggetti / Pila&Coda in C++ Una struttura è un insieme finito di variabili (dette campi) non necessariamente dello stesso tipo, ognuna
DettagliProgrammazione con Java
Programmazione con Java Classi e istanze in Java Definizione di classe in Java A meno che non si usino classi già scritte da altri, prima di poter creare un qualsiasi oggetto devo creare la sua rappresentazione:
DettagliFondamenti di Informatica II 3. Funzioni in C++ (parte 1)
Introduzione alle funzioni in C++ Fondamenti di Informatica II 3. Funzioni in C++ (parte 1) Corso di Laurea in Ingegneria Informatica A.A. 2008-2009 2 Semestre Corso (A-M) int main() int n, fattoriale=1;
DettagliAncora sulle Classi in C++ e Java. this
Ancora sulle Classi in C++ e Java this Classe: riepilogo gestione memoria ogg1: oggetto di invocazione del metodo ogg: parametro fornito al metodo!"# ogg1 ogg2 ogg metodoa metodob varv varw varx varv varw
Dettagli-- class -- Verso gli oggetti. struct + metodi = classi?... No!
-- class -- Verso gli oggetti struct + metodi = classi?... No! nell uso delle struct non ci sono praticamente regole: gli attributi sono visibili da tutti e modificabili da tutti è utile limitare/controllare
DettagliIntroduzione alle stringhe e algoritmi collegati
Introduzione alle stringhe e algoritmi collegati Algoritmicamente August 15, 2009 1 Introduzione 1.1 Introduzione ai caratteri In informatica o più generalmente in una terminologia scientifica, il carattere
DettagliLaboratorio di Algoritmi e Strutture Dati
Realizzazione di Liste (II) Laboratorio di Algoritmi e Strutture Dati Domenico Redavid redavid@di.uniba.it Materiale di base gentilmente concesso dal dott. Nicola Di Mauro Ricercatore presso l'univ. di
Dettaglii Vettori Alessandra Giordani Lunedì 15 aprile
i Vettori Alessandra Giordani agiordani@disi.unitn.it Lunedì 15 aprile 2013 http://disi.unitn.it/~agiordani/ Dichiarazione di un Array La dichiarazione di un array di n elementi di tipo T causa l'allocazione
DettagliLaboratorio di Programmazione e Calcolo
UNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI FISICA E. AMALDI Laboratorio di Programmazione e Calcolo 6 crediti a cura di Severino Bussino Anno Accademico 2016-17 0) Struttura del Corso 1) Trattamento
DettagliOggetti. La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto.
Classi e oggetti Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto. OOP Vantaggi facilità di lettura e di comprensione
DettagliVariabili e Funzioni. Informatica 1 / 19
Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:
DettagliSommario. Introduzione... xv. Giorno 1 Elementi base del linguaggio C
Sommario Introduzione... xv Organizzazione del volume... xv Argomenti...xvi Domande...xvi Verifiche...xvi Domande e risposte...xvi Esercizi...xvi Non è richiesta alcuna precedente esperienza di programmazione...
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione VIII Tatiana Zolo tatiana.zolo@libero.it 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono
DettagliFondamenti di Informatica
Fondamenti di Informatica Capitolo 3 Funzioni Federico Ceriani federico.ceriani@nulltech.it ITS Meccatronico di Legnago A.S. 2016-2017 Contenuti Concetto di funzione Sintassi Tipo di ritorno Argomenti
DettagliProgrammazione ad oggetti
Programmazione ad oggetti OOP La programmazione orientata agli oggetti (Object Oriented Programming) ha l obiettivo di formalizzare gli oggetti del mondo reale e di costruire con questi un mondo virtuale.
DettagliUNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI MATEMATICA E FISICA
UNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI MATEMATICA E FISICA Laboratorio di Programmazione e Calcolo A.A. 2018-19 Test Finale Roma, 17 gennaio 2019 1) Le variabili A, B e C sono dichiarate int.
DettagliIntroduzione alla programmazione. Alice Pavarani
Introduzione alla programmazione Alice Pavarani Il linguaggio C Creato da Dennis Ritchie nel 1972 presso i Bell Laboratories Linguaggio di programmazione procedurale, strutturato Linguaggio ad alto livello
DettagliIntroduzione al C++ Corso di C++ INFN LNS 13 Dicembre Corrado Santoro
Introduzione al C++ Corso di C++ INFN LNS 13 Dicembre 2010 Corrado Santoro Concetto di Oggetto Proposto del 1966 nell'ambito dell'ai per rappresentare l' universo del discorso (ambiente di riferimento
DettagliLettura da tastiera e scrittura su monitor
Lettura da tastiera e scrittura su monitor Per poter leggere UN SINGOLO CARATTERE dalla tastiera e visualizzare UN SINGOLO CARATTERE sul monitor si possono utilizzare le funzioni: int getchar (void) (per
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
DettagliInformatica Applicata
Ing. Irina Trubitsyna Elementi di base di un programma Dichiarazione dei dati in un programma Sommario Panoramica Elementi di Base di un Programma Struttura Direttive Elementi Sintattici di Base Commenti
DettagliStruttura di un programma C++
Struttura di un programma C++ // Programma semplice in C++ #include using namespace std; int main() { cout
DettagliLe classi. Costruttori
Costruttori Le classi Usare una funzione per inizializzare membri di una classe viene considerato poco elegante. Ci si potrebbe dimenticare di invocare la funzione di inizializzaione o, peggio, chiamarla
DettagliFondamenti di Informatica Ing. Biomedica
Fondamenti di Informatica Ing. Biomedica Esercitazione n.8 Matrici Antonio Arena antonio.arena@ing.unipi.it Fondamenti di Informatica - Esercitazione n.8 2 Matrici In C++ viene trattata come array multi-dimesionale.
DettagliLaboratorio di Algoritmi e Strutture Dati. Esercizi
Laboratorio di Algoritmi e Strutture Dati Esercizi Teresa M.A. Basile basile@di.uniba.it Dipartimento di Informatica Università degli Studi di Bari Aldo Moro 1 Operatori Indispensabili Ogni Classe che
DettagliHo raggiunto la fine del file Provo a leggere un intero, ma il dato che prelevo dal file non è un intero
Stato di uno stream Uno stream possiede uno stato, che può essere corretto o errato. Quando lo stream è in stato di errore, non posso utilizzarlo. In lettura: Apertura di un file che non esiste X Ho raggiunto
DettagliIL COSTRUTTO SEQUENZA
IL COSTRUTTO SEQUENZA La programmazione strutturata Le istruzioni sono scritte una di seguito all altra nell ordine in cui vogliamo che siano interpretate dal compilatore e poi eseguite. Non sono contemplate
DettagliDal C al C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi
Dal C al C++ Corso di Linguaggi di Programmazione ad Oggetti 1 a cura di Giancarlo Cherchi 1 Commenti Non aumentano la dimensione del programma eseguibile ma si rivelano utili per riassumere il comportamento
DettagliLezione 5 Namespace e JavaDoc
Lezione 5 Namespace e JavaDoc Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Il namespace di Java: i package
DettagliJava Gli array. Array
Java Gli array 1 Gli array In generale un array è una sequenza di locazioni di memoria, che contengono entità dello stesso tipo, e a cui si può fare riferimento con un nome comune Le entità che compongono
DettagliI/O da tastiera e direttive processore. Alessandra Giordani Lunedì 3 maggio
I/O da tastiera e direttive processore Alessandra Giordani agiordani@disi.unitn.it Lunedì 3 maggio 2010 http://disi.unitn.it/~agiordani/ Ripasso funzione printf() Usata per stampare il contenuto di una
DettagliJava Gli array. Array
Java Gli array 1 Gli array In generale un array è una sequenza di locazioni di memoria, che contengono entità dello stesso tipo, e a cui si può fare riferimento con un nome comune Le entità che compongono
DettagliArray. Unità 7. 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
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
DettagliOggetti e classi. La classe è un modello (un contenitore) che definisce la forma di un oggetto, specificando:
Classi Oggetti e classi La classe è un modello (un contenitore) che definisce la forma di un oggetto, specificando: Come è fatto (i dati) Quali operazioni si possono fare con- e sull oggetto (le funzioni)
DettagliUniversità degli Studi di Ferrara
Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2018-2019 Programmazione Lezione 10 Esercizi in C Docente: Michele Ferrari - michele.ferrari@unife.it Nelle lezioni precedenti Abbiamo
DettagliEsercitazioni sulle classi
Esercitazioni sulle classi Armando Stellato stellato@info.uniroma2.it 1 Classi Possiamo vederle, da un punto di vista sintattico, come una estensione delle strutture, ma sono caratterizzate da notevoli
DettagliLaboratorio di Programmazione e Calcolo
UNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI FISICA E. AMALDI Laboratorio di Programmazione e Calcolo 6 crediti a cura di Severino Bussino Anno Accademico 2018-19 0) Struttura del Corso 1) Trattamento
DettagliEreditarietà gerarchica
Ereditarietà Ereditarietà L ereditarietà è importante per la creazione di software riutilizzabile e per controllare la complessita del codice Le classi nuove sono progettate sulla base di classi pre-esistenti
Dettagli#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
DettagliQualsiasi programma in C++ segue lo schema:
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: C# versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca
DettagliLaboratorio di Algoritmi e Strutture Dati. Pile
Laboratorio di Algoritmi e Strutture Dati Pile Teresa M.A. Basile basile@di.uniba.it Dipartimento di Informatica Università degli Studi di Bari Aldo Moro Materiale di base gentilmente concesso dal dott.
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Il tipo puntatore; l allocazione dinamica della memoria Claudio De Stefano - Corso di Fondamenti di Informatica 1 puntatori una variabile di tipo puntatore al tipo x
DettagliLe stringhe in C++ Utilizzo della classe string in un programma C++ Alessandro Bugatti 31 ottobre 2007
Le stringhe in C++ Alessandro Bugatti 31 ottobre 2007 Tutto dovrebbe essere fatto nel modo più semplice possibile, ma non più semplicemente di così. Albert Einstein Le stringhe nel linguaggio C vengono
DettagliFondamenti di Programmazione Prof.ssa Elisa Tiezzi. Programmazione orientata a oggetti
Fondamenti di Programmazione Prof.ssa Elisa Tiezzi Programmazione orientata a oggetti 1 Programmazione OO Concetti base: dati istruzioni Dati: variabili tipi Istruzioni: istruzioni base strutture di controllo
DettagliA. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas
Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),
DettagliInformatica e Laboratorio di Programmazione C++ stream Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione
Informatica e Laboratorio di Programmazione C++ stream Alberto Ferrari Alberto Ferrari Informatica e Laboratorio di Programmazione stream o l input/output del C++ è basato sugli stream o gli stream sono
DettagliIntroduzione alla programmazione orientata agli oggetti (prima parte) Rel 1.0
Introduzione alla programmazione orientata agli oggetti (prima parte) Rel 10 a cura del prof Francesco Tappi Il paradigma orientato agli oggetti implica lo sviluppo di unità di programmazione attive, chiamate
DettagliESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde
ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde vers.0 in lavorazione Docente SAFFI FABIO Contenuti Struttura del file sorgente...2 Organizzazione della directory di lavoro...2 Esercizi sulle funzione
DettagliPROGRAMMIAMO Classi predefinite standard: la classe string C++ - Il contenitore string C++ Home Contatti Così come le funzioni di library standard del C++ mettonoa disposizione del programmatore codice
DettagliOggetti. Definizioni di Classi II
Programmazione a Oggetti Definizioni di Classi II Sommario Costruzioni di oggetti Campi e metodi di classe Overloading Istanziazione di oggetti Costruzione di un oggetto Processo complesso che comprende
DettagliInformatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento
Dettagliciclo di vita della soluzione (informatica) di un problema
Università di Roma Tor Vergata L2-1 ciclo di vita della soluzione (informatica) di un problema errori run-time errori sintattici codice editor codice C++ compilatore esegui eseguibile OK risultati scorretti
DettagliProgrammazione Java Struttura di una classe, Costruttore, Riferimento this
Programmazione Java Struttura di una classe, Costruttore, Riferimento this Davide Di Ruscio Dipartimento di Informatica Università degli Studi dell Aquila diruscio@di.univaq.it. Sommario 2 2» Struttura
DettagliLe funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità
Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità Le funzioni Tutti i linguaggi
DettagliClient - Interfaccia - Implementazione
Client - Interfaccia - Implementazione Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati
DettagliStringhe in C. Nicu Sebe. Informatica Nicu Sebe 1 / 14
Stringhe in C Nicu Sebe Informatica Nicu Sebe 1 / 14 Stringhe in C Stringhe: tipo di dato strutturato Sequenze di caratteri Linguaggio C: progettato per la semplicità No supporto nativo per le stringhe
DettagliLaboratorio di Algoritmi e Strutture Dati
Realizzazione di Liste Laboratorio di Algoritmi e Strutture Dati Domenico Redavid redavid@di.uniba.it Materiale di base gentilmente concesso dal dott. Nicola Di Mauro Ricercatore presso l'univ. di Bari
DettagliIstruzioni Condizionali
Istruzioni Condizionali Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione
DettagliCorso di Fondamenti di Informatica Prof. Aldo Franco Dragoni Prova scritta del 21/06/2010. Avvertenze. Specifiche
Avvertenze Usare ESCLUSIVAMENTE penne ad inchiostro nero o blu (NO MATITE). Consegnare solo fogli formato A4 scritti da ambo le parti. In testa a ciascun foglio scrivere: cognome, nome, numero progressivo
DettagliStringhe in C. Luca Abeni. Informatica Luca Abeni 1 / 10
Stringhe in C Luca Abeni Informatica Luca Abeni 1 / 10 Stringhe in C Stringhe: tipo di dato strutturato Sequenze di caratteri Linguaggio C: progettato per la semplicità No supporto nativo per le stringhe
DettagliEreditarietà. Unità 9. 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
Dettagli