Documento 398162

Anuncio
ASIGNATURA
CREDITOS
CODIGO
PRE-REQUISITO (S)
Para ISI0
Para ISI7
Para TAS7
: Aplicaciones Técnicas
:3
: INF-216
: INF003
: INF161
: INF160
OBJETIVOS GENERALES:

El objetivo en esta asignatura es introducir al estudiante en los fundamentos de diseño de algoritmos,
desarrollo de diagramas y la implementación de éstos en un lenguaje de programación de tercera
generación y de propósito general. Al finalizar el curso, el estudiante debe ser capaz de proponer una
solución algorítmica a un problema presentado y crear, a partir de dicha solución, un programa de
computadoras que determine la solución a casos diferentes del problema propuesto.
CONTENIDO
TEMA 1.- Algoritmos y Diagramas de flujo: definición y desarrollo
Objetivos: Definir claramente el término y objetivo de un algoritmo como solución genérica a un problema.
1.
2.
3.
Definición de problema
Definición de algoritmo
Pasos para resolver un problema de forma algorítmica
a. Análisis del problema
i. Datos de entrada
ii. Datos de salida
b. Diseño del algoritmo
i. Qué hacer con los datos de entrada para obtener los datos de salida
c. Verificación manual del algoritmo
4. Algoritmos simples lineales (solución de problemas simples lineales)
a. Hallar el área de un triángulo
b. Hallar el área y la longitud de la circunferencia de un círculo dado el radio
c. Hallar el volumen de una esfera
d. Hallar la distancia entre dos puntos dadas sus coordenadas
e. Calcular la velocidad de un vehículo dadas la distancia y el tiempo
f. Calcular la intensidad de una corriente dados el voltaje y la resistencia
5. Estructura de un algoritmo
a. Entradas
b. Proceso
c. Salida
6. Características de un buen algoritmo
a. Preciso
b. Definido
c. Finito
7. Variables y constantes
8. Expresiones lógicas y operadores relacionales (condiciones)
9. Estructuras de decisión o selección
10. Algoritmos con decisiones (si ... entonces ... de lo contrario ...)
a. Hallar las raíces de una ecuación de 2do. Grado
b. Determinar si tres valores dados corresponden a los lados de un triángulo rectángulo
c. Determinar si un número dado es par o impar
d. Determinar si un número dado es múltiplo de otro número dado
INF-216 Aplicaciones Técnicas
Pág. # 1
11.
12.
13.
14.
15.
16.
17.
18.
e. Determinar si tres valores dados son iguales, o distintos
f. Determinar el mayor de tres valores dados
Estructuras de repetición en algoritmos (mientras ... hacer ..., repetir ... hasta ..., hacer ... mientras ...)
Algoritmos con estructuras de repetición
a. Escribir los primeros 20 números enteros positivos
b. Escribir los números pares positivos menores que 40
c. Escribir los números de la serie 3,6,9,12, ..., 99
d. Escribir los primeros 100 números de la serie de Fibonacci (0,1,1,2,3,5,8,...)
e. Leer letras y escribir si es consonante o vocal. Terminar cuando se escriba un dígito
Diagramas de flujo
a. Simbología y reglas de uso
Traducción de un algoritmo simple a un diagrama de flujo
Diagramas de flujo con decisiones
Estructuras de repetición en diagramas de flujo
Reescribir los algoritmos hechos en diagramas de flujo
Decisiones múltiples en algoritmos y en diagramas de flujo (en caso de que ... sea ... hacer)
TEMA 2.- Introducción Programación C
Objetivos: Conocer la historia del lenguaje C y las estructuras básicas que componen un programa C.
1.
2.
3.
4.
5.
6.
7.
8.
9.
Historia del lenguaje C
a. Creadores, lugar, propósito (portable, flexible, eficiente), UNIX
Estructura de programas en C
a. Archivos de encabezado, declaración de constantes, declaración de funciones, función main
Necesidad de uso de la función main, porqué el uso del nombre main
Tipos de datos y su representación en C
a. Enteros, flotantes, enteros largos, flotantes largos, caracter, booleanos
b. int, long, float, double, char, unsigned, void, short
Funciones de entrada/salida
a. printf, scanf, placeholders (parámetros de sustitución)
Expresiones, operadores y expresiones
a. Aritméticas, lógicas, relacionales, asignación, manipulación de bits
b. Precedencia de operadores
Traducción de algoritmos a programas C
a. Algoritmos simples lineales hechos anteriormente a C
b. Otros programas simples en C
Instrucciones de selección en C
a. if (<condición>) [{] <verdad>; [}] [else] [{] <falso>; [}]
b. switch(<expresión>) { case x: ; case y: default: }
c. Traducción de algoritmos con decisiones a C
d. Otros programas con decisiones en C
Instrucciones de repetición en C
a. while (<condición>) [{] <instrucciones>; [}]
b. do [{] ... [}] while (<condición>);
c. for(<inicialización>;<condición>;<cambio a variables>) [{] … [}]
d. Traducción de algoritmos con ciclos a C
e. Otros programas con ciclos en C
TEMA 3.- Preprocesador de C
Objetivos: Mostrar al estudiante las capacidades del preprocesador de C en el desarrollo de programas.
1.
Preprocesador de C
a. Inclusión de archivos
INF-216 Aplicaciones Técnicas
Pág. # 2
b. Declaración de constantes
c. Declaración de macros
TEMA 4.- Funciones en C
Objetivos: Introducir al estudiante en la programación modular como una forma de implementar el principio de
divide y vencerás en el diseño de software.
1.
2.
Funciones
a. Caja negra
b. Estructura de funciones en C
c. Parámetros o argumentos, paso por valor y referencia, retorno de valores
d. Ejemplos de funciones
i. Factorial de un número
ii. Buscar el mayor entre dos números
iii. Hallar el área de un triángulo
iv. Dado el radio hallar el volumen (combinar con ciclos para hallar varios)
v. Conversión de grados Celsius a Fahrenheit (combinar con ciclos)
Recursividad
a. Ejemplos de funciones recursivas
i. Hallar el factorial
ii. Hallar el máximo común divisor
iii. Hallar el n-ésimo número de Fibonacci
TEMA 5.- Arreglos
Objetivos: Introducir al estudiante en el manejo de múltiples valores de un mismo tipo de datos y la disposición
que estos siguen en la memoria del computador.
1.
2.
Arreglos: Definición
Declaración de arreglos
a. Arreglos unidimensionales (vectores)
b. Arreglos bidimensionales (matrices)
c. Arreglos tridimensionales (cubos)
3. Acceso a elementos de arreglos
4. Recorrido de un arreglo
5. Ejemplos de programas con arreglos
a. Llenar un arreglo con 10 valores consecutivos y escribirlos
b. Llenar un arreglo con valores aleatorios y escribirlo
c. Hallar el mayor y el menor número en un arreglo
d. Hallar la transpuesta de una matriz
e. Hallar la suma y el promedio de los valores de un arreglo
f. Otros ejemplos de arreglos
6. Nombre del arreglo: qué contiene?
7. Asignación de memoria a elementos de arreglos
TEMA 6.- Punteros y estructuras
Objetivos: Lograr que el estudiante se familiarice con los conceptos de dirección de memoria, valor almacenado
en la dirección y la agrupación de diferentes elementos de datos de tipos de datos diferentes.
1.
2.
3.
Características o propiedades de una variable
a. rvalue (valor)
b. lvalue (dirección)
Valor almacenado por cada tipo de dato
Punteros
a. Definición
INF-216 Aplicaciones Técnicas
Pág. # 3
4.
5.
6.
7.
8.
b. Punteros simples
c. Punteros dobles
d. Punteros triples
e. Ejemplos de uso de punteros
Estructuras
a. Definición
b. Declaración de estructuras
c. Acceso a elementos de estructuras
d. Estructuras anidadas
Definición de nuevos tipos de datos: typedef
Paso de estructuras como parámetros a funciones
Punteros a estructuras
a. Declaración
b. Acceso a elementos de un puntero a estructura
Ejemplos de uso de estructuras
TEMA 7.- Manipulación de archivos
Objetivos: Mostrar al estudiante las herramientas necesarias para hacer persistente los datos manipulados en
memoria mediante el uso de almacenamiento en memoria secundaria, manejar estos datos almacenados y poder
recuperarlos.
1.
2.
3.
4.
5.
6.
7.
Archivos
Definición
Tipos de archivos
a. Texto
b. Binarios
Archivos de bajo nivel
a. Características:
b. Funciones
Archivos de alto nivel
a. Características
b. Funciones
Creación de archivos de texto
Almacenamiento y recuperación de estructuras
TEMA 8.- Desarrollo de aplicaciones en C
Objetivos: Lograr que el estudiante desarrolle una aplicación completa, de una complejidad aceptable, usando
los conocimientos adquiridos en el curso.
1.
2.
3.
Especificación de la aplicación a desarrollar
Determinar y diseñar las estructuras necesarias
Desarrollo y evaluación de la aplicación
INF-216 Aplicaciones Técnicas
Pág. # 4
METODOLOGIA DE TRABAJO:



Explicaciones verbales en el curso.
Asignación de prácticas individuales y en grupo
Creación de módulos, tipos y librerías de funciones
EVALUACIÓN:
Primer Parcial
: Práctica
: Examen
15 puntos
20 puntos
Segundo Parcial : Práctica
: Examen
15 puntos
20 puntos
Final
30 puntos
: Examen
BIBLIOGRAFIA
Programación en C: Introducción y conceptos avanzados
Mitchell Waite, Stephen Prata y Donald martin
ANAYA
C How to Program
Deitel & Deitel
Prentice Hall
Problemas de Metodología de la Programación
Luis Joyanes Aguilar
Mc Graw Hill
El Lenguaje de Programación C
Brian Kernighan y Dennis Ritchie
Prentice Hall
Tutoriales, páginas y libros disponibles en la red
www.cplus.about.com
www.gustavo.net.programming/c.shtml
www.cprogramming.com
www.eskimo.com/~scs/cclass/notes/top.html
Actualizado: septiembre 2003
INF-216 Aplicaciones Técnicas
Pág. # 5
Descargar