4/9/97:
A) Problemas de análisis y diseño
Herencia Agregación Asociación PADRE->HIJO COCHE->RUEDA ARCHIVO->DIRECTORIO ARCHIVO->REGISTRO POLIGONO->PARALELOGRAMO PROGRAMADOR->PROGRAMA LINEA TELEFONICA->MODEM OBJETO->METODO RIO->MAR POLIGONO->COLOR
B) Problemas de SMALLTALK
|lo hi| lo:=1. hi:=1. lo printOn: Transcript. Transcript cr. 2 to: 9 do: [:i|hi printOn: Transcript.Transcript cr. hi:=hi+lo. lo:=hi-lo]
C) Problemas de JAVA
class Funcion { public static void main(String[] args) { int menor = 1; int mayor = 1; String marca; System.out.println("1: " + menor); for (int i=2; i<10; i++) { if (mayor%2==0) marca = "*"; else marca = ""; System.out.println(i + ": " + mayor + marca); mayor = mayor + menor; menor = mayor - menor; } } }
D) Problema de C++
Herencia Agregación Asociación PADRE->HIJO X COCHE->RUEDA X ARCHIVO->DIRECTORIO X ARCHIVO->REGISTRO X POLIGONO->PARALELOGRAMO X PROGRAMADOR->PROGRAMA X LINEA TELEFONICA->MODEM X OBJETO->METODO X RIO->MAR X POLIGONO->COLOR X (X)
Escenario (entre otros posibles):
Estados: ACPB: Agua cerrada, palanca baja AAPB: Agua abierta, palanca baja AAPA: Agua abierta, palanca alta Eventos de entrada: A: usuario cambia la posición del paso del agua P: usuario cambia la posición de la palanca Diagrama de transición: A P ACPB AAPB ACPB AAPB ACPB AAPA AAPA ACPB AAPB
1 1 2 3 5 8 13 21 34
(Los nueve primeros términos de la serie de Fibonacci).
1: 1 2: 1 3: 2* 4: 3 5: 5 6: 8* 7: 13 8: 21 9: 34*
(Los nueve primeros términos de la serie de Fibonacci, con los pares marcados con un asterisco).
enum boolean {false=0, true}; const int QUEUE_EMPTY = -1; template <class T> class Queue { T *elements; int size, top; public: Queue (int size) { this->size = size; elements = new T[size]; top = QUEUE_EMPTY; } ~Queue () { delete elements; } boolean isEmpty() { return (top==QUEUE_EMPTY) ? true : false; } boolean pop(T &el) { if (top==QUEUE_EMPTY) return false; el = elements[0]; memcpy (elements, elements+1, top*sizeof(T)); top--; return true; } boolean push(T el) { if (top==size-1) return false; elements[++top] = el; return true; } } void main () { Queue<short> ss(10); Queue<double> ds(10); ss.push(5); ds.push(5.5); // ... }