PRO2

Programació II

Programació II és la segona assignatura de programació al Grau d'Enginyeria en Informàtica. L'assignatura continua l'ensenyament del C++ començat a PRO1 introduïnt els temes següents: estructures de dades (piles, cues, llistes, diccionaris, conjunts, etc.), iteradors i punters, orientació a objectes, i una introducció a la verificació formal.

Temari

Tema 1
Classes i Orientació a Objectes
Orientació a Objectes. Tipus Abstractes de Dades. Especificació de Classes. El paràmetre implícit. Tipus de mètodes. Mètodes de vector<T>.
Tema 2
Piles i Cues
La Standard Template Library (STL). stack<T>: push, pop, top. Exemples d'ús de piles. queue<T>: push, pop, front, back. Exemples d'ús de cues.
Tema 3
Llistes i Iteradors
list<T>: inicialització, inserció, esborrat. Iteradors: begin, end, rbegin, rend. Recorreguts. Iteradors const i reverse. Iteracions amb esborrat i/o inserció. Exemples.
Tema 4
Conjunts i Diccionaris
La classe set<T>: size, insert, find. La classe map<K,V>: size, insert, find. Cerques i recorreguts en conjunts i diccionaris. Comparació de cost computacional en vector<T>, list<T>, set<T> i map<K,V>.
Tema 5
Recursivitat i Arbres 1
Funcions Recursives. Principi d'Inducció. Funció de mida. Hipòtesi d'Inducció. Arbres binaris. Propietats: mida, alçada, amplada. La classe BinTree<T>: constructors, mètodes.
Tema 6
Recursivitat i Arbres 2
Immersió. Recorreguts. Arbres generals. La classe Tree<T>: constructors, mètodes. Propietats comparades amb BinTree. Exemples.
Exàmen
Examen Parcial
Tema 7
Implementació de Classes
Disseny modular. Fitxers .hh i .cc. Atributs. Membres privats. Constructors i destructors. Mètodes de classe (static). Mètodes inline. template<>.
Tema 8
Projectes amb Classes
Exemple de projecte. Presentació de la Pràctica.
Tema 9
Punters i Implementació de Piles
Apuntadors. Memòria dinàmica. new i delete. Assignació, còpia i destrucció d'objectes. Pila amb vectors. Pila amb apuntadors.
Tema 10
Implementació de Cues i Llistes
Implementació de cues i llistes fent servir punters. Mètodes: constructor i destructor, top, empty, size, clear, push, pop. Assignació.
Tema 11
Implementació d'Arbres Binaris
Implementació de llistes fent servir punters. Mètodes: copiar i esborrar cadenes, assignació, afegir elements, concatenar.
Tema 12
Implementació d'Arbres Generals
Implementació d'arbres fent servir punters. Mètodes: constructor, assignació, plantar, fills, arrel, subst.
Exàmen
Examen Final