Cátedra: Veiga
Fecha: 1er Cuatrimestre 2008
Día: 22/07/2008
Tema: 3
Esta página está incompleta; podés ayudar completando el material.
Describa el proceso de transformación Fuente-Ejecutable.
Describa la función utilizada para lanzar un nuevo thread. Incluya la descripción del uso y significado de sus parámetros.
Escribir un programa ANSI C que admita una cadena de 3 caracteres por linea de comandos e imprima los resultantes de todas las permutaciones posibles. Ej. MiPrograma ABC debe imprimir ABC, ACB, BAC, BCA, CAB, CBA.
Escriba el .H correspondiente a una biblioteca que exporta:
Una variable de tipo entero largo con signo llamada CodError
Una función F que toma un puntero a un arreglo de 3 enteros y retorna un caracter
Una función G que toma un puntero a un puntero a caracter y no devuelve nada
Escriba un programa que envie un datagrama de 20 bytes 'A' al puerto 202 del equipo 200.49.224.251.
Defina el operador» de forma que cargue, desde consola, el contenido de una lista de STL. El proceso debe terminar cuando el ingreso es nulo.
¿Que propósito tiene la función htons?
Utilizando templates defina las clases necesarias para que el siguiente código sea válido:
Matriz<char> M;
M[1][2]='a';
M[1][1]=M[2][1];
Explique el motivo por el cual se utiliza la palabra const después de la declaración del operador >. De un breve ejemplo que demuestre que es imprescindible.
Escriba una rutina (para el ambiente gráfico Windows o Linux) que pinte un rectángulo rojo de la 1/3 parte del alto y ancho de la ventana.
#ifndef __BIBLIOTECA_H__
#define __BIBLIOTECA_H__
extern long int CodError;
extern char F(int(*arreglo)[3]);
extern void G(char**);
#endif
template <typename T>
istream& operator>>(istream& is, list<T>& lst)
{
T obj;
is>>obj;
while(obj)
{
lst.push_back(obj);
is>>obj;
}
return is;
}
template<typename T>
class Matriz
{
T* matriz;
int _file, _row;
public:
Matriz(int i=3, int j=3)
{
_file = i; _row = j;
matriz = new T[_file*_row];
}
~Matriz()
{
delete[] matriz;
}
T* operator[](int i)
{
return &matriz[i*_row];
}
Matriz& operator=(const Matriz& m)
{
if(this==&m)
return *this;
assert(_row==m._row && _file==m._file);
for(int i=0;i<_file*_row;i++)
matriz[i]=m.matriz[i];
return *this;
}
};
Si ves algo que te parece incorrecto en la resolución y no te animás a cambiarlo, dejá tu comentario acá.