Estratto del documento

PROGRAMMAZIONE 2 DIANA INGRID PUTELLI

INDICE

MODULO 1 – INTRODUZIONE AL CORSO E OOP

OBIETTIVI FORMATIVI

TESTI DI RIFERIMENTO

STRUMENTI (G++, WSL, VISUAL STUDIO CODE)

PERCHÉ LA PROGRAMMAZIONE ORIENTATA AGLI OGGETTI (INCAPSULAMENTO,

RIUTILIZZO, POLIMORFISMO, MANUTENIBILITÀ)

IL CONCETTO DI ASTRAZIONE (ESEMPI: PIANTINA STRADALE, CAFFÈ)

OGGETTI E CLASSI (ATTRIBUTI, OPERAZIONI, STATI)

PROGRAMMAZIONE PROCEDURALE VS OOP (ALGORITMO VS SISTEMA)

FASI OO: ANALISI (OOA), DESIGN (OOD), PROGRAMMAZIONE (OOP)

ESEMPIO DELL’AUTOMOBILE: AUTO_1.FERMATI(), AUTO_1.ACCELERA

SCAMBIO DI MESSAGGI

CONCETTI FONDAMENTALI: INCAPSULAMENTO/OCCULTAMENTO, EREDITARIETÀ,

POLIMORFISMO

BINDING DINAMICO (RUN-TIME)

ESERCIZI PRESENTI :

PROGETTARE UNA SOLUZIONE CHE SIMULI LA GESTIONE DI UNA BIBLIOTECA

(PRESTITO LIBRI).

PROGETTARE UNA SOLUZIONE CHE SIMULI IL FUNZIONAMENTO DI UNA FLOTTA DI

VEICOLI (NOLEGGIO AUTO, MOTO, CAMION).

PROGETTARE UNA SOLUZIONE CHE SIMULI IL FUNZIONAMENTO DI UN CONTO

BANCARIO (DEPOSITO, PRELIEVO, TRASFERIMENTO).

PROGETTARE UNA SOLUZIONE CHE SIMULI LA GESTIONE DELLE PRENOTAZIONI

DI UN HOTEL (AGGIUNTA CLIENTI, PRENOTAZIONE CAMERE, CHECK-IN, CHECK-

OUT).

MODULO 2 – C VS C++

SIMILARITÀ TRA C E C++ (SYNTAX, KEYWORDS, MEMORY MODEL)

ESTENSIONI DEL C++ RISPETTO AL C (OOP, TEMPLATE, OVERLOADING,

NEW/DELETE, NAMESPACE, 97 KEYWORD)

SOSTITUZIONI: .C VS .CPP, PRINTF/SCANF VS CIN/COUT, STDIO.H VS IOSTREAM

TIPI DI BASE C++ (INT, FLOAT, DOUBLE, CHAR, WCHAR_T, BOOL, VOID,

PUNTATORI)

TIPI NON DI BASE (ARRAY, OGGETTI, STRING)

TYPE MODIFIERS (SIGNED, UNSIGNED, SHORT, LONG)

CONSTANT/VOLATILE QUALIFICATION

TYPE CASTING: TYPE(VALUE), CONST_CAST, STATIC_CAST, DYNAMIC_CAST,

REINTERPRET_CAST

MODULO 3 – CLASSI E OGGETTI

DEFINIZIONE DI CLASSE (DICHIARAZIONE, ATTRIBUTI, METODI, INTERFACCIA)

SPECIFICATORI DI ACCESSO (PUBLIC, PROTECTED, PRIVATE)

INFORMATION HIDING / INCAPSULAMENTO

BUONE PRASSI (METODI PUBBLICI, DATI PRIVATI)

OGGETTI (ISTANZE DELLA CLASSE, OPERATORE .)

DATI MEMBRO (NON INIZIALIZZABILI DIRETTAMENTE)

FUNZIONI MEMBRO (DICHIARAZIONE E DEFINIZIONE)

FUNZIONI INLINE E OFFLINE (OPERATORE ::)

COSTRUTTORI (DEFAULT E CON PARAMETRI)

VETTORE DI INIZIALIZZAZIONE DEI MEMBRI (PER ATTRIBUTI CONST E

RIFERIMENTI)

DISTRUTTORE (~NOMECLASSE)

ESEMPIO: CLASSE MIASTRINGA (ALLOCAZIONE DINAMICA, NEW[], DELETE[])

HEADER FILE (.H) E FILE DI IMPLEMENTAZIONE (.CPP)

MODULO 4 – EREDITARIETÀ E POLIMORFISMO

CLASSI DERIVATE: SINTASSI (CLASS DERIVATA : PUBLIC BASE)

TIPI DI EREDITARIETÀ: PUBLIC, PROTECTED, PRIVATE (TABELLA DI ACCESSO)

ESEMPI: PUBBLICAZIONE → RIVISTA, LIBRO

ESEMPIO: OGG_GEOM → CERCHIO, QUADRATO

EREDITARIETÀ PRIVATA (DEFAULT)

COSTRUTTORI ED EREDITARIETÀ (ORDINE DI CHIAMATA)

COSTRUTTORE DI UNA CLASSE DERIVATA (PASSAGGIO PARAMETRI ALLA BASE)

DISTRUTTORI ED EREDITARIETÀ (ORDINE INVERSO)

EREDITARIETÀ MULTIPLA (SINTASSI, PROBLEMA DELL’AMBIGUITÀ)

BINDING STATICO VS DINAMICO

FUNZIONI VIRTUALI (VIRTUAL)

ESEMPIO DI FUNZIONI VIRTUALI: FIGURA → CERCHIO, RETTANGOLO

POLIMORFISMO (STESSO MESSAGGIO A OGGETTI DIFFERENTI)

VANTAGGI DEL POLIMORFISMO

MODULO 5 – TEMPLATE

PARADIGMI DI PROGRAMMAZIONE (PROCEDURALE, MODULARE, OOP, GENERICA)

ALGORITMI INDIPENDENTI DAL TIPO (ES. SCAMBIA)

PROGRAMMAZIONE GENERICA (TEMPLATE)

TEMPLATE DI FUNZIONI (SINTASSI TEMPLATE <TYPENAME T>)

ESEMPIO COMPLETO: SCAMBIA, STAMPA, ORDINA

TEMPLATE DI CLASSI (SINTASSI, METODI ESTERNI, ISTANZIAZIONE)

ESEMPIO: CLASSE PILA<T, N> (PUSH, POP, QUANTI, VUOTA, PIENA)

MODELLI DI COMPILAZIONE: COMPILAZIONE PER INCLUSIONE (#INCLUDE

"PILA.CPP" NELL'HEADER)

COMPILAZIONE SEPARATA (EXPORT – NON PIÙ SUPPORTATA IN C++11)

TEMPLATE E POLIMORFISMO (DIFFERENZE)

MODULO 6 – COMPLESSITÀ COMPUTAZIONALE

COSTO DI UN ALGORITMO (TEMPO E SPAZIO) IN FUNZIONE DI N

COSTO DI ISTRUZIONI CONDIZIONALI (IF-ELSE), CICLI (FOR, WHILE), SEQUENZE

CASO PESSIMO E CASO MEDIO

COMPLESSITÀ TEMPORALE (OPERAZIONI A COSTO UNITARIO)

NOTAZIONE ASINTOTICA: O-GRANDE (LIMITE SUPERIORE)

NOTAZIONE ASINTOTICA: Ω-GRANDE (LIMITE INFERIORE)

NOTAZIONE ASINTOTICA: Θ-GRANDE (LIMITE STRETTO)

PROPRIETÀ DI O, Ω, Θ

DELIMITAZIONI ALLA COMPLESSITÀ DI UN PROBLEMA (LIMITE SUPERIORE E

INFERIORE)

ANALISI DI ALGORITMI: ESEMPI PRATICI (O(1), O(N), O(N²), O(LOG N), O(LOG LOG

N))

ESEMPIO COMPLESSO CON CICLI ANNIDATI

ESERCIZI PRESENTI (DA ESERCIZI_COMPLESSITA.PDF):

19 DOMANDE SU O-GRANDE (F(N) = N² + N⁴ APPARTIENE A O(N³)? ...)

7 DOMANDE SU Ω-GRANDE

8 DOMANDE SU Θ-GRANDE

ESERCIZIO 1: CALCOLO COMPLESSITÀ DEL FATTORIALE ITERATIVO (PASSAGGI)

ESERCIZIO 2: CALCOLO COMPLESSITÀ CASO PESSIMO DELLA RICERCA

SEQUENZIALE

ESERCIZIO 3: CALCOLO COMPLESSITÀ CASO PESSIMO DI INSERTION SORT

MODULO 7 – RICORSIONE

DEFINIZIONE DI FUNZIONE RICORSIVA

ESEMPIO: FATTORIALE (RICORSIVO VS ITERATIVO)

PRODOTTO DI DUE NUMERI NATURALI (RICORSIVO)

INDUZIONE MATEMATICA E CORRETTEZZA

ESEMPIO: FUNZIONE PUZZLE (PROBLEMA DELLA TERMINAZIONE)

RICORSIONE VS ITERAZIONE (VANTAGGI E SVANTAGGI: SPRECO DI TEMPO E

MEMORIA)

ESEMPIO: SOMMA ELEMENTI DI UNA LISTA (RICORSIVA)

ESEMPIO: ELEVAMENTO A POTENZA (RICORSIVO VS ITERATIVO, COSTO)

SERIE DI FIBONACCI (RICORSIVO E ITERATIVO

RICORSIONE INDIRETTA

ESERCIZIO: MASSIMO COMUNE DIVISORE (MCD)

ESERCIZIO: SOMMATORIA

ESERCIZIO: SOMMA DEI QUADRATI

ESERCIZIO: MASSIMO IN UN ARRAY (DIVIDE ET IMPERA)

TORRI DI HANOI (STRATEGIA RICORSIVA)

ESERCIZI PRESENTI :

SOMMARE GLI ELEMENTI DI UNA LISTA (RICORSIVO)

TROVARE IL MASSIMO IN UNA LISTA (RICORSIVO)

GENERARE L’N-ESIMO NUMERO DI FIBONACCI E STAMPARE LA SEQUENZA FINO

AD N

CALCOLARE IL MCD TRA DUE INTERI

CALCOLARE IL NUMERO DI OCCORRENZE DI UN CARATTERE C IN UNA STRINGA S

DATO IL NUMERO DI DISCHI N, RISOLVERE IL PROBLEMA DELLE TORRI DI HANOI

ELENCANDO LE MOSSE

MODULO 8 – ORDINAMENTO E RICERCA

RICERCA SEQUENZIALE (CODICE E COMPLESSITÀ)

RICERCA BINARIA (CODICE E COMPLESSITÀ)

TABELLA COMPARATIVA: CASO MIGLIORE, MEDIO, PEGGIORE PER SEQUENZIALE

E BINARIA

INSERTION SORT (IDEA, CODICE, COMPLESSITÀ O(N²))

MIGLIORAMENTO CON RICERCA BINARIA (RIDUCE I CONFRONTI MA NON GLI

SPOSTAMENTI)

SELECTION SORT (IDEA, CODICE, COMPLESSITÀ)

BUBBLE SORT (IDEA, CODICE, VERSIONE CON FLAG, COMPLESSITÀ)

MERGE SORT (DIVIDE ET IMPERA, CODICE, COMPLESSITÀ O(N LOG N))

QUICK SORT (PIVOT, PARTIZIONE, CODICE, COMPLESSITÀ: CASO MIGLIORE O(N

LOG N), PEGGIORE O(N²))

ESERCIZI PRESENTI:

IMPLEMENTARE L’ALGORITMO INSERTION SORT

MIGLIORARE L’ALGORITMO PRECEDENTE SFRUTTANDO LA RICERCA BINARIA

IMPLEMENTARE L’ALGORITMO SELECTION SORT

APPLICARE LA RICERCA SEQUENZIALE PER CONTARE IL NUMERO DI VOLTE CHE

UN ELEMENTO COMPARE IN UN ARRAY

MODULO 9 – ALBERI BINARI DI RICERCA (BST)

DEFINIZIONE DI ALBERO (GRAFO DIRETTO, RADICE, FOGLIE)

ALBERI E STRUTTURE GERARCHICHE (PADRE, FIGLIO, FRATELLI, ASCENDENTI,

DISCENDENTI)

DEFINIZIONE RICORSIVA DI ALBERO

PROFONDITÀ DI UN NODO

CAMMINI E LIVELLI

ALBERI BILANCIATI

ALBERO BINARIO (FIGLIO SINISTRO E DESTRO)

ALBERO BINARIO DI RICERCA (PROPRIETÀ: CHIAVI A SINISTRA MINORI, A DESTRA

MAGGIORI)

INSERIMENTO IN UN BST (CODICE)

VISITE: PREORDER, INORDER, POSTORDER (CODICE C++)

COSTO DELLA VISITA: Θ(N)

RICERCA IN UN BST (RICORSIVA E ITERATIVA, COMPLESSITÀ O(H))

MASSIMO E MINIMO (O(H))

SUCCESSORE DI UN NODO (DUE CASI, CODICE)

CANCELLAZIONE DI UN NODO (TRE CASI: FOGLIA, UN FIGLIO, DUE FIGLI) –

PROCEDURA TRAPIANTA

ESERCIZI: NON PRESENTI ESPLICITAMENTE IN QUESTA LEZIONE, MA LE

OPERAZIONI DI INSERIMENTO, CANCELLAZIONE E VISITE SONO GLI ESERCIZI

TIPICI.

MODULO 10 – GRAFI

DEFINIZIONE DI GRAFO (V, E), ARCHI DIREZIONATI/NON DIREZIONATI

GRADO DI UN VERTICE (ENTRANTE + USCENTE)

CAMMINO (LUNGHEZZA, CAMMINO SEMPLICE), CICLO

GRAFO CONNESSO, COMPONENTI CONNESSE

COMPONENTI FORTEMENTE CONNESSE (GRAFI ORIENTATI)

SOTTOGRAFO, GRAFO COMPLETO

RAPPRESENTAZIONE: LISTE DI ADIACENZA (O(V+E)), MATRICI DI ADIACENZA

(O(V²))

RICERCA IN AMPIEZZA (BFS): CODICE, COLORI (BIANCO, GRIGIO, NERO),

DISTANZE, PREDECESSORE, COMPLESSITÀ O(V+E)

STAMPA DEL CAMMINO MINIMO (PRINT-PATH)

RICERCA IN PROFONDITÀ (DFS): CODICE, TIMESTAMPS (D[V], F[V]), FORESTE,

COMPLESSITÀ Θ(V+E)

ESERCIZI: NON PRESENTI ESPLICITAMENTE IN QUESTA LEZIONE.

MODULO 11 – CENNI DI SOFTWARE SECURITY

SLIDEPRINCIPISOFTWARESECURITY.PDF

LINGUAGGI COMPILATI VS INTERPRETATI

GESTIONE DELLA MEMORIA (STACK FRAME)

BUFFER OVERFLOW (BOF): STACK BASED, HEAP BASED

PROTEZIONI PER BINARI: NX, STACK CANARY, PIE, ASLR

Capitolo 1 – Introduzione al corso e alla

Programmazione Orientata agli Oggetti

1.1 OBIETTIVI FORMATIVI

1.2 "Consolidare il pensiero computazionale"

"Acquisire e sviluppare capacità di:"

"Risolvere problemi semplici utilizzando gli strumenti della OOP"

 "Comprendere le proprietà fondamentali di diversi algoritmi e strutture dati"

 "Implementare gli algoritmi studiati in C++ attraverso soluzioni affidabili ed

 efficienti"

1.2 TESTI DI RIFERIMENTO

Testo principale:

"Luis Joyanes Aguilar - Fondamenti di Programmazione in C++ - McGrawHill"

Testo secondario:

"T. H. Cormen - Introduction to Algorithms - The MIT Press"

Testi consigliati:

"C++ Tecniche avanzate di programmazione - Apogeo"

"Algoritmi in C++ (terza edizione) - Pearson Education Italia"

"Effective C++ e More Effective C++ - Addison Wesley"

"The C++ Programming Language, Book by Bjarne Stroustrup"

1.3 STRUMENTI

"G++ 12.x.x o superiore (non C++) su Linux"

"Editor qualsiasi (e.g. Visual Studio Code, no DevC++)"

Per chi usa Windows:

"Windows Subsystem for Linux (WSL)"

"Si può usare Visual Studio con supporto WSL"

Istruzioni:

" https://learn.microsoft.com/en-us/cpp/build/walkthrough-build-debug-wsl2?view=msvc-

170 "

1.4 PERCHÉ LA PROGRAMMAZIONE ORIENTATA AGLI

OGGETTI

"Incapsulamento: implementare elementi specifici nascondendo i dettagli implementativi

interni"

"Riutilizzo del codice: Creare nuovi elementi estendendo elementi esistenti"

"Polimorfismo: trattare oggetti differenti che condividono caratteristiche come se fossero

dello stesso tipo"

"Manutenibilità: Le modifiche a una parte specifica del sistema possono essere effettuate

con un impatto minimo sulle altre parti"

1.5 IL CONCETTO DI ASTRAZIONE

"Il mondo in cui viviamo è costituito da sistemi molto complessi, in cui oggetti diversi

interagiscono tra loro e cambiano il loro modo di agire in funzione di quello che accade."

"È difficile gestire una realtà complessa, allo stesso modo è difficile costruire sistemi

complessi come ad esempio software di grandi dimensioni."

"Un modo per gestire la complessità è l'astrazione."

1.5.1 Esempio 1: Piantina stradale

"Una piantina stradale rappresenta un'astrazione di una città."

Spiegazione implicita nella slide: La piantina mostra solo le strade e i punti di interesse,

non tutti i dettagli fisici della città (alberi, tombini, singoli edifici). Si concentra sugli

elementi utili per orientarsi.

1.5.2 Esempio 2: Come fare per avere un caffè

Testo nella slide:

"Come faccio per avere un caffe ?"

"I need Coffee"

Spiegazione implicita nella slide: L'astrazione consiste nel richiedere il servizio senza

conoscere i dettagli implementativi (come la macchina del caffè funziona internamente,

come viene macinato il caffè, ecc.). L'utente interagisce solo con l'interfaccia del servizio.

1.5.3 Definizione di Astrazione

"L'astrazione è un procedimento che consente di semplificare la realtà che vogliamo

modellare."

"La semplificazione avviene concentrando l'attenzione solo sugli elementi importanti del

sistema complesso che stiamo considerando."

1.6 OGGETTI E CLASSI

1.6.1 Definizione di Oggetto

"L'oggetto è il core della programmazione orientata agli oggetti."

"Gli oggetti in un linguaggio OOP forniscono la funzionalità di astrarre, cioè di nascondere

i dettagli implementativi interni."

"Quando si creano dei programmi mediante un linguaggio ad oggetti, la capacità di

astrarre, cioè la capacità di semplificare delle entità complesse in oggetti caratterizzati dalle

caratteristiche e dalle funzionalità essenziali per gli scopi preposti, può risultare

determinante."

1.6.2 Caratteristiche degli Oggetti

"Gli oggetti rappresentano modelli concettuali del mondo reale."

"Gli oggetti possono esibire attributi (caratteristiche), come size, name, shape, e via

dicendo (stati dell'oggetto)."

"Gli oggetti possono esibire operazioni (ovvero le operazioni che essi possono compiere),

come ad esempio settare un valore (cambiare stato), mostrare a screen un risultato, oppure

incrementare il valore di una variabile come ad esempio la velocità."

1.6.3 Definizione di Classe

"Gli oggetti vengono costruiti a partire dalle 'classi', i modelli che descrivono le

caratteristiche che gli oggetti devono possedere."

"Le classi sono organizzabili in gerarchie che determinano quali caratteristiche devono

essere passate da classi genitrici (base) a classi figlie (derivate). Tale meccanismo viene

chiamato 'ereditarietà'."

1.6.4 Attributi e Metodi (schema concettuale)

"Un oggetto può essere definito elencando sia le sue caratteristiche, sia il modo con cui

interagisce con l'ambiente esterno, cioè i suoi comportamenti."

"Le caratteristiche rappresentano gli elementi che caratterizzano l'oggetto,

o utili per descrivere le sue proprietà e definirne lo stato."

"I comportamenti rappresentano le funzionalità che l'oggetto mette a

o disposizione: chi intende utilizzare l'oggetto deve attivare i comportamenti

dell'oggetto stesso."

"Una classe incapsula sia le caratteristiche (attributi) sia i comportamenti (metodi) degli

oggetti che rappresenta."

"Inoltre fornisce una interfaccia pubblica per poter utilizzare (interagire con) gli oggetti

definiti dalla classe."

"In altre parole, la OOP combina strutture dati e algoritmi in entità software 'impacchettate'

dalla definizione di una classe."

1.7 PROGRAMMAZIONE PROCEDURALE VS OOP

1.7.1 Definizione di Programmazione Procedurale

"Nello sviluppo software, usando la metodologia della programmazione procedurale,

l'interesse principale è rivolto alla sequenza di operazioni da svolgere: si crea un modello

indicando le procedure da eseguire in maniera sequenziale per arrivare alla soluzione."

"Lo spostamento di attenzione dalle procedure agli oggetti ha portato all'introduzione

della programmazione ad oggetti. Gli oggetti sono intesi come entità che hanno un loro

stato e che possono eseguire certe operazioni."

"L'algoritmo fa spazio al concetto di sistema."

1.7.2 Definizione di Algoritmo vs Sistema

"Un algoritmo è un insieme di istruzioni che a partire dai dati di input permettono di

ottenere i risultati di output."

"Un algoritmo deve essere riproducibile, deve avere una durata finita e non deve essere

ambiguo."

"Il modo di programmare pone attenzione sulla sequenza di esecuzione."

"Un sistema è una parte del mondo che si sceglie di considerare come un intero,

composto da componenti."

"Ogni componente è caratterizzata da proprietà rilevanti, e da azioni che creano interazioni

tra le proprietà e le altre componenti."

1.7.3 Limiti dei Linguaggi Procedurali

"I linguaggi procedurali hanno dei limiti nel creare componenti software riutilizzabili."

"I programmi sono fatti da funzioni, che rappresentano codice riutilizzabile, ma che spesso

fanno riferimento a headers e/o variabili globali che devono essere importate insieme al

codice delle funzioni."

"I linguaggi procedurali non si prestano bene alla modellazione di concetti ad alti livelli di

astrazione, utili per rappresentare entità complesse che interagiscono in un sistema reale."

Schema nella slide:

Headers Variabili globali

f() g()

h() ...

x()

"In altre parole, i linguaggi procedurali separano le strutture dati e gli algoritmi."

1.7.4 Esempio: Interfaccia Grafica (GUI) di un PC

"Componenti:

Finestre (proprietà: dimensione, posizione)

 Bottoni (proprietà: colore, testo)"

"Interazioni:

Premendo un bottone si può aprire una finestra (e quindi definire la sua posizione e

 la sua dimensione)"

1.8 FASI OO: ANALISI, DESIGN, PROGRAMMAZIONE

"Possiamo individuare tre fasi 'Object-Oriented' (OO):"

"Analisi (OOA): identificazione dei requisiti funzionali, dei componenti e delle loro

 relazioni logiche."

"Design (OOD): specifica delle gerarchie tra classi, e delle loro interfacce e

 comportamenti."

"Programmazione (OOP): implementazione del design, test ed integrazione."

"La OOP è il momento in cui si scrive effettivamente il codice."

1.8.1 Approfondimento: Fase di Analisi

<
Anteprima
Vedrai una selezione di 20 pagine su 93
Programmazione 2 completa Pag. 1 Programmazione 2 completa Pag. 2
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Programmazione 2 completa Pag. 6
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Programmazione 2 completa Pag. 11
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Programmazione 2 completa Pag. 16
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Programmazione 2 completa Pag. 21
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Programmazione 2 completa Pag. 26
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Programmazione 2 completa Pag. 31
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Programmazione 2 completa Pag. 36
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Programmazione 2 completa Pag. 41
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Programmazione 2 completa Pag. 46
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Programmazione 2 completa Pag. 51
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Programmazione 2 completa Pag. 56
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Programmazione 2 completa Pag. 61
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Programmazione 2 completa Pag. 66
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Programmazione 2 completa Pag. 71
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Programmazione 2 completa Pag. 76
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Programmazione 2 completa Pag. 81
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Programmazione 2 completa Pag. 86
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Programmazione 2 completa Pag. 91
1 su 93
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Diana_Putelli05 di informazioni apprese con la frequenza delle lezioni di Programmazione 2 e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Catania o del prof Santamaria Daniele Francesco.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community