Академический Документы
Профессиональный Документы
Культура Документы
i) Crear un proyecto de consola de C++. Destinar siempre una carpeta para cada proyecto.
ii) Guardar todos los archivos y cerrar el dev-cpp (para forzar a que guarde los archivos).
iii) Ir al directorio y describir los archivos generados.
.c/.cpp/.h Archivos propios del lenguage C/C++.
.dev Archivo general de proyecto, desde éste pueden abrirlo con dev-cpp.
.layout Basura del dev-cpp.
1
ii) ¿Qué pasa cuando no se cumple la precondición? ¿Qué valores tienen a, b y rv en cada
iteración?
a) division(18, -7);
b) division(-18, 7);
c) division(-18, -7);
[Objetivo:] Primer programa, escribir todo en un archivo. Hacer ejemplo de ingreso
de datos del usuario. Explicar que por ahora siempre los problemas los resuelve una
función que no hace IO. En los libros se suele ver mucho interacción de I/O. Los casos
de prueba pueden venir por teclado, archivo, etc. Esto se va a ver más adelante.
[Objetivo:] Primer debug. Hay que analizar cantidad de iteraciones que hace un ciclo
y ver cómo van cambiando las variables a lo largo de cada iteración.
rv= 1 ;
i= 0 ;
while ( i < n )
//después de cada iteración en rv queda el valor de prod([1..i])
{
rv= rv ∗ i ;
i= i + 1 ;
}
return rv ;
}
2
[Objetivo:] Mostrar cómo se usan los .h. Que aprendan a moverse por los diversos
archivo de un proyecto. En los .h hay algunas lı́neas raras. Explicar a qué se debe: qué
hace el include, mostrar que hay varios .o en el directorio (uno por cada .cpp).
int c o n s t r u i r F i b o n a c c i ( int v a l o r ) {
int a r r e g l o [ 1 0 0 ] ;
int i = 0 ;
while ( i <= 1 0 0 ) {
a r r e g l o [ i ]= a r r e g l o [ i −1] + a r r e g l o [ i − 2 ] ;
i ++;
}
return ( a r r e g l o [ i ] ) ;
}
i) Corregir el código (en el proyecto ejfibo) para obtener el n-ésimo término de la serie de
fibonacci.
ii) Explicar brevemente por qué no funciona el código dado por la cétedra.
iii) Explicar por qué se obtiene un resultado correcto (después de haberlo corregido) sin haber
inicializado el arreglo con ceros.
while ( d != 0 )
{
a [ i ]= a [ i ] ∗ d ;
i= i + d ;
d= − ( d − sgn ( d ) ) ;
}
3
a [ i ]= a [ i ] ∗ d ;
}
i f ( x < 0){
rv= −1;
}
i f ( x == 0 ) {
rv= 0 ;
}
i f ( x > 0){
rv= 1 ;
}
return rv ;
}
i) Hacer un programa principal para pedir un arreglo por teclado, ejecutar la función, e imprimir
el contenido final del mismo.
ii) ¿Qué es lo que hace?
iii) ¿En qué orden recorre el arreglo?
[Objetivo:] Hacer un debug para ver cómo se accede y modifican las posiciones de un
arreglo. Ver cuando conviene meterse en una función auxiliar y cuando no. En int
sgn(int x); no conviene.