Está en la página 1de 4

Ejercicios prácticos con funciones.

Asignatura Fundamentos de programación ( Cóg. 1375)


Profesor responsable de la Javier Llorente Ayuso
Asignatura:
Tipo de actividad: Actividad de Evaluación Continua (AEC)
Título de la actividad: Ejercicios prácticos con funciones.

OBJETIVOS DE APRENDIZAJE
Las competencias específicas a adquirir con esta actividad son:
● Manejar los elementos básicos de programación estructurada.
● Codificar programas y funciones de forma efectiva y eficiente.
● Verificar el buen funcionamiento de un programa o función.
● Documentar programas por medio de los comentarios dentro y fuera del código.
● Utilizar la descomposición modular en C para resolver un problema dividiéndolo en otros subproblemas.
● Seleccionar las estructuras de control apropiadas a un problema dado.
● Seleccionar de los tipos de datos y estructuras de datos apropiadas a un problema dado.
● Realizar análisis básicos en la resolución de problemas algorítmicos.
● Utilizar la capacidad de adaptación de modelos algorítmicos generales en la resolución de problemas
concretos.
● Estilo de programación limpio, claro y ordenado.

DESCRIPCIÓN DE LA ACTIVIDAD
Para hacer estos ejercicios necesitáis tener instalado un entorno de desarrollo integrado (en inglés IDE,
integrated development environment) para poder compilar, ejecutar y depurar vuestros programas, como
Netbeans (https://netbeans.org/downloads/) o Eclipse (http://www.eclipse.org/downloads/).

ENUNCIADOS:

1) Deseamos crear un programa que dados dos números enteros a y b sea capaz de decidir si la suma de
éstos (a+b) es un número primo.

El programa utilizará las funciones “sumaPrimo” que comprueba que la suma de los números a y b es un
número primo, y ésta usará a su vez la función “esPrimo” que detecta si un número es primo.

Descripción de Actividad de Evaluación Continua (AEC)


Universidad a Distancia de Madrid (UDIMA)
El prototipo de ambas funciones será:
bool sumaPrimo(int x, int y); /* devuelve true en caso de que x+y sea un número primo, y false en
caso contrario */
bool esPrimo (int num); /* devuelve true si num es un número primo */

a. Escribir el programa principal (main)


b. Escribir el código con la implementación de las dos funciones.

Ejemplos:
Introduce dos números:
3
2
La suma de los números es 5 y es número primo

Introduce dos números:


2
2
La suma de los números es 4 y NO es número primo

Nota: Las funciones no mostrarán ningún mensaje dentro de su código, limitándose a devolver los valores
booleanos “true” o “false” al programa principal (main) que será el encargado de mostrar los mensajes de
salida.

2) Crear una función “generadorLetra” que genere un carácter de control para un número de
identificación. Para ello se tomará el resto de la división del número entre 5 y según el resultado la función
devolverá un carácter u otro como se indica en la tabla:

Resto de la división por 5 Letra


0 M
1 K
2 P
3 Q
4 R

El prototipo de la función será:


char generadorLetra (int num); /* Devuelve un carácter en función del resto de la división de num
entre 5 */

El programa principal (main) pedirá al usuario el número de identificación, que estará entre 0 y 10 000 (en
caso de introducir un número fuera de este rango se repetirá la pregunta hasta que el usuario ponga un

Descripción de Actividad de Evaluación Continua (AEC)


Universidad a Distancia de Madrid (UDIMA)
número válido) y mostrará el resultado del identificador con el número y la letra.

a. Escribir el programa principal (main)


b. Escribir el código con la implementación de las dos funciones.

Nota: No se puede mostrar ningún mensaje dentro del código de la función, limitándose ésta a devolver el
carácter en el parámetro de salida, para que sea el programa principal (main) quien se encargue de ello.

Ejemplo 1:
Introduce un número de identificación:
12000
Introduce un número de identificación válido (de 0 a 10000):
451
Identificador:
451-K

Ejemplo 2:
Introduce un número de identificación:
7800
Identificador:
7800-M

Ejemplo 3:
Introduce un número de identificación:
5423
Identificador:
5423-Q

3) Escribe un programa que lea por teclado un número N (menor que 10) y calcule el producto:
N * N/2 * N/4 … * 1.
El programa utilizará una función recursiva con el siguiente prototipo:
int producto (int N);

Ejemplos:
Introduce un número 5
El producto del número por sus mitades sucesivas es: 10

Introduce un número 6
El producto del número por sus mitades sucesivas es: 18

Nota: La implementación de la función de forma “no recursiva” o iterativa implicará optar como máximo a la
mitad de la nota del ejercicio.

Descripción de Actividad de Evaluación Continua (AEC)


Universidad a Distancia de Madrid (UDIMA)
INSTRUCCIONES PARA LA REALIZACIÓN Y ENTREGA DE LA ACTIVIDAD
 La fecha prevista para la realización de esta Actividad de Evaluación Continua (AEC) se encuentra
publicada en el “Foro Convocatoria de Septiembre” así como en el CALENDARIO del Aula Virtual.
 Es obligatorio que el código enviado se haya compilado, ejecutado y probado previamente.
 Recordad que debéis hacer el código lo más legible posible, utilizando los comentarios que
creáis necesarios, así como los nombres identificadores de las variables más adecuados a cada
caso.
 La actividad cumplimentada se envía al profesor a través del Buzón de entrega del Aula Virtual
en formato PDF con el texto que el alumno estime necesario, incluyendo el código fuente,
también se entregarán los ficheros con el código fuente (.c o .cpp) incluidos en un archivo
comprimido (.zip o .rar).
 La calificación obtenida, previa corrección y calificación por parte del profesor, se podrá consultar
con carácter permanente en el apartado CALIFICACIONES del Aula Virtual.

Descripción de Actividad de Evaluación Continua (AEC)


Universidad a Distancia de Madrid (UDIMA)

También podría gustarte