Examen (Final) - 75.42. Taller de programación I

Cátedra: Veiga
Fecha: 1er Cuatrimestre 2003
Día: Julio 2003

Esta página está incompleta; podés ayudar completando el material.

Enunciado

1) Dar características concretas (alcance, forma de invocación/inicialización, detalles de implementación) de:

  • Función global static
  • Variable local static

2) Indique qué valor tomará la variable x. En el caso de depender de factores externos al código, fíjelos en valores conocidos. Justifique:

char v[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F};
int x=*(((int *)v)+1);

3) Diagrame mediante un grafo, una máquina de estados que implemente un robusto cliente de comunicaciones de tcp/ip. Contemplando timeouts, cierres de conexiones, error de datos, y toda otra condición necesaria.

4) Incluyendo la mayor cantidad de parámetros posible y utilizando “\n” para simbolizar un salto de línea, escriba el paquete recibido por un servidor HTTP cuando un usuario ingresa el la clave (valor= “/_TYPE”) y presiona SEND en el siguiente formulario:

<FORM METHOD=POST ACTION='/RESULT.CGI'>
<INPUT TYPE=text name='password'>
<INPUT TYPE=submit>
</FORM>

5) Qué son las librerías MFC/OWL. Enumere las ventajas de su uso.

6) Métodos virtuales: A.Sintetize su definición. B.En no mas de 10 líneas de un ejemplo donde sean IMPRESCINDIBLES. C.Sugiera una posible implementación del mecanismo.

7) Se desea programar un CGI que, cumpliendo el standard correspondiente, procese los parámetros de entrada ya sea que el browser los haya enviado por método POST o GET. ¿Puede hacerse?¿Como hace para distinguir entre ambos métodos?¿Como obtiene los parámetros de entrada en cada caso?

8)Qué datos/conceptos (incluidos los parámetros) comprende un Mensaje de Windows. Dé un ejemplo completo de un mensaje.

9)Si una clase aloca memoria de tamaño variable y dependiente del valor que contiene, se debe escribir, entre otras cosas, un constructor de copia. ¿por qué debe hacerse esto, si se tiene en cuenta que el compilador provee uno default? Ejemplifique mediante la escritura del constructor de copia de una clase string (que contiene la cadena en una variable)

10) ¿Por qué la implementación de una biblioteca con Templates debe hacerse en el .h y no puede hacerse en un módulo .cpp (que se provee en forma de object), como se hace con cualquier otra librería?

Resolución

5) MFC (Microsoft Foudation Clases) de Microsoft y OWL (Object Windows Library) de Borland, son bibliotecas que encapsulan en objetos la biblioteca estándar de Windows (WinApi) permitiendo las ventajas de trabajar con una biblioteca que ofrece las posibilidades de la programación orientada a objetos

8)

typedef struct tagMSG { msg
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
} MSG;''
Los componentes más importantes de un mensaje son su identificador, sus parámetros y el identificador de la ventana cuyo procedimiento de ventana recibirá el mensaje. El identificador de un mensaje es un valor entero. Los mensajes son usados para comunicar la mayoría de las cosas en windows, al menos en los niveles básicos. Si se quiere que una ventana o control (el cual es una ventana especializada) haga algo, se debe enviar un mensaje. Si ocurre un evento, como cuando el usuario mueve el mouse, presiona el teclado, etc… entonces el sistema la envía un mensaje a la ventana afectada. Dicha ventana recibe el mensaje y actúa adecuadamente. Cada mensaje en windows puede tener hasta dos parámetros, wparam y lparam. No todos los mensajes usan estos parámetros y cada mensaje los usa de manera diferente. Por ejemplo, el mensaje WM_COMMAND (identificador) usa ambos, wparam contiene dos valores HIWORD(wparam) es la notificación del mensaje (si se aplica) y LOWORD(wparam) es el ID del control o menú que envió el mensaje. lparam es el HWND (Windows Handle) del control que envió el mensaje o nulo (NULL) si el mensaje no proviene de un control. ===== Discusión ===== <note warning> Si ves algo que te parece incorrecto en la resolución y no te animás a cambiarlo, dejá tu comentario acá. </note>

materias/75/42/final_002_200307xx_1.txt · Última modificación: 2006/08/25 18:44 por matias_san_martin
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia: CC Attribution-Noncommercial-Share Alike 3.0 Unported


Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki