15
Universidad de Pamplona Facultad de Ingenierías y Arquitectura Programa de Ingeniería de Sistemas Guía del profesor para Programación 1- Primer Semestre de 2011 Luis Alberto Esteban Villamizar ________________________________________________________________________________________________ Objetivo de esta guía Brindar un marco conceptual, referencial y de vocabulario, para el desarrollo de los de manera unificada en la universidad. Programación 1 Objetivo del Curso: Adquirir habilidad en la solución de problemas por medio del computador, mediante el Desarrollar habilidades en el uso de por lo menos un lenguaje y una herramienta de pr Desarrollar aptitudes de análisis, diseño y codificación de soluciones a problemas bá Contenidos del curso 1. Generalidades 1.1Conceptos de máquina y computador 1.2 Componentes funcionales del computador 1.2.1 Software 1.2.1.1 Conceptos 1.2.1.2 Clasificación 1.2.2 Hardware 1.2.2.1 Concepto 1.2.2.2 División Funcional (CPU, Memoria y dispositivos de entrada y salida) 1.3 Medición de capacidad de almacenamiento 1.4 Tipos de datos 2. Resolución de Problemas 2.1. Metodología para la resolución de problemas 2.2 Conceptos preliminares (Algoritmo, dato, variable, constante, expresión, tipos de 2.3 Diagramas de Flujo 2.4 Estructuras de Control 2.4.1 Secuenciales o lineales 2.4.2 De selección 2.4.3 De repetición (Para, Mientras que, hacer mientras) 2.5 Programación modular 2.5.1 funciones 2.5.2 Parámetros por valor 3. Lenguaje de programación 3.1 Fundamentos de C 3.2 Herramienta de programación en C (dev c++) 3.3 Procedimientos para la edición, compilación y ejecución de programas Bibliografía Recomendada [1] Fundamentos de Programación, Algoritmos, Estructuras de datos y Objetos, Luis Joy McGraw Hill. [3] Fundamentos de Programación, Algoritmos y Estructuras de datos, Luis Joyanes Agui Hill. [4] Fundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, Editorial [5] Turbo C/C++ 3.1 Manual de referencia, Herbert Schildt, McGraw Hill 1

Guiadelprofesor-Programacion1

Embed Size (px)

Citation preview

Universidad de Pamplona Facultad de Ingenieras y Arquitectura Programa de Ingeniera de Sistemas Gua del profesor para Programacin 1- Primer Semestre de 2011 Luis Alberto Esteban Villamizar ________________________________________________________________________________________________

1

Objetivo de esta gua Brindar un marco conceptual, referencial y de vocabulario, para el desarrollo de los cursos de programacin I, que se llevan a cabo de manera unificada en la universidad. Programacin 1 Objetivo del Curso: Adquirir habilidad en la solucin de problemas por medio del computador, mediante el desarrollo del pensamiento algortmico. Desarrollar habilidades en el uso de por lo menos un lenguaje y una herramienta de programacin. Desarrollar aptitudes de anlisis, diseo y codificacin de soluciones a problemas bsicos de programacin. Contenidos del curso 1. Generalidades 1.1Conceptos de mquina y computador 1.2 Componentes funcionales del computador 1.2.1 Software 1.2.1.1 Conceptos 1.2.1.2 Clasificacin 1.2.2 Hardware 1.2.2.1 Concepto 1.2.2.2 Divisin Funcional (CPU, Memoria y dispositivos de entrada y salida) 1.3 Medicin de capacidad de almacenamiento 1.4 Tipos de datos 2. Resolucin de Problemas 2.1. Metodologa para la resolucin de problemas 2.2 Conceptos preliminares (Algoritmo, dato, variable, constante, expresin, tipos de expresiones) 2.3 Diagramas de Flujo 2.4 Estructuras de Control 2.4.1 Secuenciales o lineales 2.4.2 De seleccin 2.4.3 De repeticin (Para, Mientras que, hacer mientras) 2.5 Programacin modular 2.5.1 funciones 2.5.2 Parmetros por valor 3. Lenguaje de programacin 3.1 Fundamentos de C 3.2 Herramienta de programacin en C (dev c++) 3.3 Procedimientos para la edicin, compilacin y ejecucin de programas Bibliografa Recomendada [1] Fundamentos de Programacin, Algoritmos, Estructuras de datos y Objetos, Luis Joyanes Aguilar, Tercera edicin. Editorial McGraw Hill. [3] Fundamentos de Programacin, Algoritmos y Estructuras de datos, Luis Joyanes Aguilar, Segunda edicin. Editorial McGraw Hill. [4] Fundamentos de Programacin, Libro de problemas, Luis Joyanes Aguilar, Editorial McGraw Hill. [5] Turbo C/C++ 3.1 Manual de referencia, Herbert Schildt, McGraw Hill

Universidad de Pamplona Facultad de Ingenieras y Arquitectura Programa de Ingeniera de Sistemas Gua del profesor para Programacin 1- Primer Semestre de 2011 Luis Alberto Esteban Villamizar ________________________________________________________________________________________________

2

El semestre acadmico consta de 16 semanas de clase, incluidas las tres semanas de exmenes, por lo tanto se deduce que durante el semestre se dan aproximadamente 26 encuentros con los estudiantes, considerando que los horarios de la asignatura se da en dos bloques por semana, por lo tanto se considera un encuentro es terico y el otro prctico donde la temtica por lo general es la misma, en este semestre se presenta esta guia por semanas asumiendo que durante la semana se trata una misma temtica solo que en uno de los bloques se dan las explicaciones tericas y en el otro bloque se desarrollan las practicas correspondientes a la misma temtica.. Semana Temas Objetivos 1 Introduccin del curso Presentar los objetivos, contenidos, bibliografa, guia y cd de la asignatura Clasificacin de datos bsicos en Introducir los conceptos de mquina, computador, programacin, y componentes programacin funcionales del computador Conceptos preliminares de Introducir el concepto de Byte como unidad de medida de capacidad de programacin almacenamiento junto con sus mltiplos y submltiplos Presentar los tipos de datos que se utilizan tpicamente en cualquier lenguaje de programacin estructurada Introducir la tabla de cdigos ascci como mecanismo de representacin de caracteres Clarificar y ejemplificar los conceptos de: algoritmo y expresin Diferenciar las fases dentro de la metodologa de solucin de problemas utilizada en el curso Presentar las diferentes notaciones de algoritmos y resaltar el diagrama de flujo como herramienta para la representacin de algoritmos en este curso. Dentro del concepto de expresin clarificar los conceptos de: operando (constante, variable) operadores (aritmticos, lgicos, relacionales, alfanumricos), signos de agrupacin y funciones 2 Estructuras de control Introducir y ejercitar las estructuras de control: Entrada de datos, Asignacin y secuenciales salida de datos 3 Introduccin al lenguaje C Definir la estructura general de un programa en C Ejercitacin de estructuras de Representar en lenguaje C las estructuras de control lineales control lineales Analizar, disear y codificar soluciones a problemas que usen estructuras de control lineales. Realizar el anlisis, diseo y codificacin de problemas que utilicen estructuras de control lineales dentro de la solucin. 4 Introduccin y ejercitacin de las Introducir el concepto de estructura de seleccin estructuras de control de Representacin en diagramas de flujo y seudo cdigo de las estructuras de seleccin seleccin secuenciales (no anidadas) Estructuras de control de Representacin en lenguaje C de las estructuras de seleccin o condicionales seleccin anidadas Realizar el Anlisis, diseo y codificacin a problemas que requieren el uso de estructuras de control de seleccin. Introducir el concepto de estructura de seleccin Anidadas Realizar el Anlisis, diseo y codificacin a problemas que requieren el uso de estructuras de control de seleccin anidadas 5 Ejercitacin de estructuras de Realizar diversos ejercicios que involucren estructuras de seleccin secunciales y control de seleccin anidadas. 6 7 Primer examen Introduccin y ejercitacin de las estructuras de control repetitivas para secuenciales y anidadas Estructuras de control repetitivas Mientras que secuenciales y anidadas Estructuras de control repetitivas Hacer Mientras secuenciales y anidadas Un ejercicio de Estructuras de seleccin anidadas y un punto de teora sobre expresiones, evaluacin de expresiones y uso de operadores Introducir el concepto de estructura de control repetitiva Representacin en diagramas de flujo, seudo cdigo y C de las estructuras repetitivas para Ejemplificar el uso de estructuras repetitivas para

8 9

Universidad de Pamplona Facultad de Ingenieras y Arquitectura Programa de Ingeniera de Sistemas Gua del profesor para Programacin 1- Primer Semestre de 2011 Luis Alberto Esteban Villamizar ________________________________________________________________________________________________

3

10

11 12 13 14 15 16 Examen Final Desarrollo de temas

Ejercicios miscelneos sobre estructuras de control repetitivas Segundo Examen Introduccin a las funciones

Semana 1. Presentacin del curso, objetivos, contenidos, bibliografa, guia y cd de la materia Iniciacin de conceptos de mquina y computador Componentes funcionales del computador. Cuando se define la memoria de datos comentar sobre los siguientes tipos de datos que pueden ser almacenados ntese que por no incluir el sistema de numeracin binario, no es necesario hablar de los enteros cortos, propiamente dichos como estn en la gua del estudiante Enteros Numricos Reales

Tipos de datos Alfanumricos

Caracteres Cadenas de Caracteres (String)

Boolenos Tambin como parte de la descripcin de la memoria, se introducen las unidades de medida de capacidad de almacenamiento. Explicar la equivalencia de Byte, KB, MB, GB, TB y realizar procesos de convertir por ejemplo 3.25 GB a KB y a Bytes (recordar que el factor real de conversin es 1024... pero que por facilitar los clculos siempre se utiliza el 1000 como factor de conversin) Conceptos tericos sobre la programacin. Concepto de algoritmo, ejemplo de un algoritmo cotidiano (no de programacin) Metodologa para la resolucin de problemas (mtodo en cascada)

Universidad de Pamplona Facultad de Ingenieras y Arquitectura Programa de Ingeniera de Sistemas Gua del profesor para Programacin 1- Primer Semestre de 2011 Luis Alberto Esteban Villamizar ________________________________________________________________________________________________

4

Enunciados claros, sin ambigedad de la situacin que se quiere automatizar mediante la construccin de un programa de computador Indentificacin de los datos que el usuario tiene que proveer al computador cuanto el programa est ya construido (datos de entrada), y de los datos que el computador entrega al usuario como solucin del problema (datos de salida)

Problema a solucionar

Anlisis Diseo Codificacin Prueba

Descripcin de los pasos que debe seguir el computador (algoritmo) para a partir de los datos de entrada, d solucin al problema. Estos pasos pueden ser descritos mediante diferentes tcnicas como diagramas de flujo o seudocdigo

Implantacin Mantenimiento

Traduccin de los algoritmos especificados en el diseo a un lenguaje de alto nivel entendible por el computador en este caso a C

Reingeniera

Verificacin de que el algoritmo, soluciona el problema.

Conceptos de algoritmo de programacin, dato, constante, variable, expresin, tipos de expresiones validas en programacin. Algoritmo: Conjunto de pasos lgicos, secuenciales y finitos para dar solucin a un problema general. Dato: Es una caracterstica de un objeto o entidad, que adquiere un valor. Por ejemplo, si se piensa en los datos asociados a un estudiante (la entidad es el estudiante), podemos identificar datos como su nombre, edad, sexo, estado civil, fecha de nacimiento, y muchos otros ms datos, que pueden relacionarse con el estudiante. Constante: Un datos se dice que es constante si su valor nunca cambia dentro de un algoritmo. Variable: Una variable es un dato cuyo valor cambia por lo menos una vez dentro de un algoritmo. Toda variable debe ser identificada mediante un nombre nico dentro de un algoritmo. Los nombres de las variables son palabras descriptivas del dato que contienen, sin espacios ni signos de puntuacin, usando solo letras del alfabeto ingles y nmeros, comenzado siempre en letra. Tipos de datos: Los datos se clasifican segn el tipo de valor que contenga as: Numrico (si su contenido es un nmero) Alfanumrico (si su contenido es un carcter o una cadena de caracteres) y Booleanos (si su contenido es un valor de verdad, es decir un verdadero o un Falso). Expresin: Es una combinacin apropiada de operandos, operadores, signos de agrupacin y funciones. Los operandos son datos constantes o variables, los signos de agrupacin son los parntesis y las funciones son las predefinidas por el lenguaje o construidas por el programador. Nota: en este curso slo esta permitido el uso de los operadores aqu definidos. Suma + Resta Divisin real / Multiplicacin * Divisin entera div Residuo de divisin entera And X

Aritmticos

mod Y X and Y X or Y Not X

Universidad de Pamplona Facultad de Ingenieras y Arquitectura Programa de Ingeniera de Sistemas Gua del profesor para Programacin 1- Primer Semestre de 2011 Luis Alberto Esteban Villamizar ________________________________________________________________________________________________

5

Lgicos Operadores

Or not

V V F F

V F V F

V F F F

V V V F

F F V V

Relacionales

Mayor > Menor < Mayor o igual Menor o Igual Igual = = Diferente El operador de concatenacin que tiene algunos lenguajes de programacin y que bsicamente sirve para pegar dos cadenas de caracteres

Alfanumricos

Evaluar una expresin: Es el proceso mediante el cual se realizan las operaciones indicadas en una expresin, con los valores que en ese instante tengan las variables, respentando el orden que plantean los signos de agrupacin y obteniendo un nico valor que puede ser un nmero, un carcter o cadena de caracteres, o un valor de verdad (un falso o un verdadero) Tipos de expresin: Una expresin puede ser numrica, alfanumrica o booleana. Es numrica si despus de evaluar (calcular la expresin) su resultado es un nmero; es alfanumrica si despus de evaluar la expresin el resultado es un carcter o cadena de carcter y es booleana si despus de evaluar la expresin su resultado es un valor de verdad (un verdador o un falso) Ejemplos: si a, b y c son datos numricos (a+b)*c es una expresin numrica ((a+b)*c) > 5 es una expresin boleana ((a>b) and (c>a+b)) or (c >3) es una expresin booleana (a div 4) = 0 es una expresin booleana (a mod 5) > ( b div 4) es una expresin boolena ((a mod 5) > 4)*c no es una expresin vlida ((a mod 5) - 4)*c es una expresin numrica Ejemplo de ejercicio Verificar si cada uno de los siguientes items corresponde o no a una expresin... en caso afirmativo decir de que tipo y evaluar cuando a=2 b= -- 1 y c= 0. En caso negativo justificar porque no es una expresin vlida. ( ( a * 2 ) > ( a * 7 ) ) and ( c * 5 ) ((ab)*c)a ( a * ( ( 3 + b ) > 2 ) and (b < c ) ( ( a b ) > ( c + 5 ) ) and ( c < 4 ) not ( ( a b ) > ( c + 5 ) ) or ( c < 4 ) Semana 2 Resumen general sobre estructuras de control (cuadro sinptico)

Universidad de Pamplona Facultad de Ingenieras y Arquitectura Programa de Ingeniera de Sistemas Gua del profesor para Programacin 1- Primer Semestre de 2011 Luis Alberto Esteban Villamizar ________________________________________________________________________________________________

6

Lineales o secuenciales

Entrada de datos Salida de datos Asignacin

Estructuras de control

No Lineales

De seleccin o condicionales Repetitivas Para Mientras que Hacer mientras

Estructuras de control secuenciales (entrada, asignacin y salida): explicar estos conceptos haciendo uso del grfico que representa las componentes funcionales del computador Diagramas de flujo como tcnica de diseo de programas para este curso. Simbologa bsica de los diagramas de flujo Explicar los siguientes conceptos: Entrada: Proceso mediante el cual el computador captura un dato, dado por el usuario mediante un dispositivo de entrada, y este dato es llevado a un espacio de memoria (variable) dentro de la memoria de datos. Salida: Proceso mediante el cual el computador muestra un dato por medio de un dispositivo de salida. Asignacin: Proceso mediante el cual el computador cambia el valor de una posicin de memoria (variable) en la memoria de datos. Es necesario erradicar la palabra leer en los enunciados de lo ejercicios, es mejor usar la frase capturar por teclado, que tiene mas relacin con la interaccin del usuario del programa con el computador. La palabra leer solo debe usarse en seudocdigo como representacin de la captura de datos por teclado. Entrada o captura de datos Leer b scanf ( %d , &b );

bSalida o impresin de datos

aAsignacin

Imprimir a

printf (cadena de formateo , a );

a = b+c

a=b+c

a=b+c;

Explicar la simbologa necesaria para representar estos tres procesos dentro de un diagrama de flujo. Explicar que puede ir dentro de estos smbolos: Para una entrada: una variable (el nombre de la variable) Para una salida: una variable, una expresin (recordar el concepto de expresin descrito con anterioridad) o un mensaje que siempre se escribe dentro de comillas dobles. Para una asignacin: identificar las tres partes de una asignacin. Una variable a la izquierda que es donde se va a almacenar el dato resultante. Un smbolo de asignacin (que por lo general es el =) . Y una expresin a la derecha que ser evaluada y cuyo valor resultante ser almacenado en la variable de la izquierda. Ej a=b+c ... a es la variable de la izquierda, = es el smbolo de asignacin y b + c es la expresin de la derecha. (en este caso expresin numrica)

Universidad de Pamplona Facultad de Ingenieras y Arquitectura Programa de Ingeniera de Sistemas Gua del profesor para Programacin 1- Primer Semestre de 2011 Luis Alberto Esteban Villamizar ________________________________________________________________________________________________

7

Variable cuyo valor va a cambiar

Smbolo de asignacin

En una asignacin, primero se calcula el valor de la expresin y luego el resultado es almacenado en la variable de la izquierda

a = b+c

En una asignacin, el tipo de dato de la variable de la izquierda debe ser igual al tipo de expresin de la derecha

Expresin que va a ser calculada, y cuyo resultado ser almacenado en la variable de la izquierda

Resolver el siguiente problema, explicando el funcionamiento con el grfico anterior. Sumar dos nmeros enteros, dados por el usuario mediante el teclado. Realizar en clase como mnimo los ejercicios 14, 17, 19 y 21 de la gua del estudiante Semana 3 Introducir el concepto de lenguaje de programacin y listar algunos lenguajes Representar la estructura de un programa en C recuerde que es C bsico y no debemos incluir notaciones abreviadas ni conceptos orientados a objetos Diferenciar entre lenguaje de programacin y Entorno de programacin.. Recordar que para el lenguaje C existen muchos entornos integrados de desarrollo en y que en clase se usara DEVC++. Instruir en el uso del entorno DEVC++. Es necesario que nos pongamos de acuerdo y hacer el proceso desde la creacin del proyecto.. recordar que en esa herramienta se pueden desarrollar diferentes tipos de aplicaciones en C, pero que en clase solo usaremos aplicaciones de consola (explicar en que se diferencian de otro tipo de aplicaciones) De igual manera cuando se selecciona la aplicacin de consola es necesario decir que es en C y no en C++, puesto que el asistente genera de manera automtica la estructura del programa e incluye las librerias correspondientes como la stdio.h y no la iostream.h que es para C++. Realizar como ejercicio de clase por parte de los estudiantes el nmero 22 de la gua del estudiante y otros que se consideren pertinentes en cuanto al tiempo dedicado. Semana 4 Estructuras de seleccin o condicional Si condicin entoncesno Condicin si

if ( condicin ) {

...... Instrucciones para ...... ...... Instrucciones en cuando la condicin sea ...... c ...... para cuando verdadera la ....... condicin sea ....... verdadera Sino } else { ....... Instrucciones para ....... cuando la ...... Instrucciones en condicin ....... sea falsa c ...... para cuando la ....... condicin sea Fin si ........ falsa };

Universidad de Pamplona Facultad de Ingenieras y Arquitectura Programa de Ingeniera de Sistemas Gua del profesor para Programacin 1- Primer Semestre de 2011 Luis Alberto Esteban Villamizar ________________________________________________________________________________________________

8

Una estructura de seleccin es el proceso mediante el cual el computador selecciona para ejecutar un conjunto de instrucciones u otro, dependiendo de una expresin booleana que ser evaluada para decidir que conjunto de instrucciones se debe ejecutar. Su representacin en diagramas de flujo esExpresin booleana que se evaluar para decidir que conjunto de instrucciones se ejecutar Llegada a la estructura

Conjunto de instrucciones que se ejecutarn, cuando la condicin sea verdadera

no

Condicin

si

Conjunto de instrucciones que se ejecutarn, cuando la condicin sea Falsa

Terminacin de la estructura Aqu se deben encontrar los caminos del si y del no para continuar el algoritmo

Explicar el funcionamiento de una estructura de seleccin mediante el siguiente ejercicio: Leer un nmero y escriba el valor absoluto del mismo. Explicar que las instrucciones por el lado del s o por el lado del no, pueden ser entradas, asignaciones, salidas o tambin otras estructuras de seleccin., organizadas en cualquier cantidad. Introducir el concepto de estructuras de seleccin anidadas y para ello resolver el siguiente ejercicio.. Dados 3 nmeros enteros, determinar e imprimir el mayor ( o el menor en otro algoritmo) primero sin utilizar anidamiento y despus con anidamiento para el primer caso sin anidamiento utilizar el siguiente algoritmo. Inicio Leer a,b,c Mayor=a Si b>mayor entonces Mayor =b Sino Fin si Si c>mayor entonces Mayor =c Sino Fin si Imprimir mayor Fin Aplicacin de estructuras de seleccin y utilizacin de los diferentes operadores definidos con anterioridad (especialmente el div y el mod).

Universidad de Pamplona Facultad de Ingenieras y Arquitectura Programa de Ingeniera de Sistemas Gua del profesor para Programacin 1- Primer Semestre de 2011 Luis Alberto Esteban Villamizar ________________________________________________________________________________________________

9

Semana 5. Esta semana ser preparativa para el primer examen, por lo tanto se debe resolver ejercicios de la gua que los estudiantes sugieran o que pregunten por su solucin. En caso de que los estudiantes no sugieran ni pregunten ejercicios en particular, se sugiere rrealizar en clase como mnimo los ejercicios de la gua del estudiante 67,69,70,71, y 72 De igual manera aprovechar las clases en el laboratorio para que los estudiantes realicen ejercicios de la guia, con la asesoria del profesor, sin resolverlos en el tablero. Semana 6 Primer Examen Este examen estar compuesto de dos puntos unos terico y el otro un problema al cual se le debe hacer anlisis, diseo y codificacin. El problema se resolver con las estructuras de control secunciales (entrada, asignacin, salida) y estructuras de seleccin tanto secunciales como anidadas con mximo tres niveles de anidamiento. Semana 7 Una estructura repetitiva es el proceso mediante el cual el computador repite un conjunto de instrucciones, ya sea sabiendo cuantas veces tiene que repetirlas o simplemente repitiendo las instrucciones hasta que una condicin (expresin booleana) se deje de cumplir. Estructura repetitiva para: Se utiliza cuando previamente dentro del algoritmo se conoce el nmero de veces que se tienen que repetir un conjunto de instrucciones Para i=1 hasta n inc 1 haga for ( i =1 ; i 0Clase 21. nfasis en la estrategia divide y vencers Resolver el siguiente ejercicio usando funciones. Primero identificar y justificar el uso de las funciones, potencia, factorial y seno. Construir el main que capture por teclado un ngulo en grados, haga la conversin a grados mediante una funcin, calcule el seno de ese ngulo y compare el resultado con el obtenido mendicante la funcin sin(x) que tiene predefinido el lenguaje C. Calcule la siguiente formula

S n ( x ) = ) eo ( 1k= 0

1 5

k

1 x 2k + ( 2 k + )! 1

Clase 22. Especial nfasis en el llamado de funciones desde otra funcin Hacer un programa en Lenguaje C de forma modular que calcule los nmeros narcisistas del 1 al 10000, el programa deber generar una lista de aquellos nmeros que cumplan con el requisito de ser narcisista. Un nmero narcisista es un Nmero de n dgitos que resulta ser igual a la suma de las potencias de orden n de sus dgitos. Ejemplo: 1 = 11 153 = 1 + 5 + 3. 9474 = 94 + 44 + 74 + 44 El programa deber contener las siguientes funciones: Funcin potencia que calcule x y y que sirva para calcular el resultado del dgito elevado a dicha potencia. Funcin que cuente el nmero de dgitos que tiene un nmero entero dado como parmetro Una funcin donde se desglosar el nmero en cifras y calcular la suma de las potencias Una funcin que retorne un 1 si un nmero es narcisista y in 0 si no es narcisista En el main generar la lista de los narcisistas comprendidos entre 1 y 10000 Clase 23. Especial nfasis en funciones que retornen datos que no son numricos.. por ejemplo que retorne un caracter. Realizar las siguientes funciones: Una funcin denominada calcular_sumatoria_divisores que reciba un valor n y devuelva la sumatoria de los divisores propios del valor n. Una funcin denominada valorar que reciba dos valores (el valor n y la sumatoria de los divisores propios de dicho nmero) y devuelva : p si es perfecto a si es abundante d si es deficiente

Universidad de Pamplona Facultad de Ingenieras y Arquitectura 15 Programa de Ingeniera de Sistemas Gua del profesor para Programacin 1- Primer Semestre de 2011 Luis Alberto Esteban Villamizar ________________________________________________________________________________________________

El programa principal (main) debe calcular entre X y Y ledos por teclado, cuantos nmeros son deficiente, abundantes y perfectos. Para realizar estos procesos debe utilizar las funciones anteriores definidas en el presente enunciado. Nmero perfecto es un nmero en el cual la suma de sus divisores propios es igual a l mismo nmero. ejemplo el 6 sus divisores son 1+2+3 = 6 Nmero deficiente cuando la suma de sus divisores es menor al nmero ejemplo 4 Divisores 1+2 =3 Nmero abundante cuando la suma de sus divisores es mayor al nmero ejemplo 12 Divisores 1+2+3+4+6 =16 Clase 24. nfasis en funciones que tienen como parmetros diferentes tipos de datos (enteros, reales y caracteres) Ejercicio libre Clase 25. Refuerzo de funciones La brigada de salud de la universidad preocupada por la salud de los estudiantes realizara una jornada de vacunacin para todos los estudiantes de la universidad. Existen 1535 estudiantes y se les solicita la fecha de nacimiento da, mes, ao, el sexo (1. Hombre o 2 Mujer). El programa debe pedir por teclado y una sola vez... la fecha actual Dia, Mes y Ao Realice: Main Funcin Validar Fecha: Esta funcin debe validar que la fecha sea valida (ver nota 1) retorna un 1 si es valida o un 0 si no lo es. Una fecha es vlida si el nmero de mes corresponde con el nmero de das que tiene ese mes. Funcin Clculo Edad: Esta funcin debe recibir la fecha de nacimiento y la fecha actual y retornar la edad cumplida de la persona (en aos). Funcin vacunar: Esta funcin recibe la edad del estudiante y el sexo, para determinar la vacuna que se debe aplicar (segn las siguientes tablas) y retorna el cdigo de la vacuna. Edad Hombre Mujer 15 18 Vacuna Paperas Vacuna Sarampin 18 22 Vacuna Influenza Vacuna Hepatitis 22 en adelante Vacuna Fiebre Amarilla Vacuna Fiebre Amarilla Cdigo de vacuna Cdigo Vacuna Nombre vacuna 01 Vacuna Paperas 02 Vacuna Sarampin 03 Vacuna Influenza 04 Vacuna Hepatitis 05 Vacuna Fiebre Amarilla Nota 1: Para validar una fecha debe tener en cuenta la cantidad de das que tiene cada mes es: Ene 31, Feb 28, Maz 31, Abr 30, May 31, Jun 30, Jul 31, Ago 31, Sep 30, Oct 31, Nov 30, Dic 31. ** Asuma que no existen aos bisiestos.