Está en la página 1de 4

PONTIFICIA

ESTUDIOS
UNIVERSIDAD
GENERALES
CATÓLICA
CIENCIAS
DEL PERÚ

FUNDAMENTOS DE PROGRAMACIÓN
LABORATORIO 6
SEMESTRE ACADÉMICO 2022-0

Horario: 0321, 0322, 0323 y 0324 Duración: 80 minutos


Elaborado por Dr. Andrés Melgar

ADVERTENCIAS:
Es su responsabilidad verificar anticipadamente a la sesión, que el software que utilizará para desarrollar el laboratorio funcione adecua-
damente.
Durante la evaluación, no puede usar ningún documento ni ningún programa adicional al enunciado y al programa que Ud.
desarrolla.
Solo puede tener abiertos en su computadora los aplicativos: PAIDEIA, ZOOM y el IDE en el que desarrolle el programa.
Durante toda la evaluación debe compartir todo su escritorio no solo la pantalla del IDE en Zoom.

INDICACIONES:
Debe utilizar variables descriptivas, comentarios, constantes, mensajes descriptivos y debe validar los datos de entrada.
El orden y la eficiencia de su implementación serán considerados en la calificación.

RESULTADOS ESPERADOS:
Al finalizar la sesión, el alumno comprenderá el funcionamiento de la estructura algorı́tmica selectiva múltiple.
Al finalizar la sesión, el alumno construirá programas usando estructuras algorı́tmicas selectivas múltiple.
Al finalizar la sesión, el alumno comprenderá el funcionamiento de la estructura algorı́tmica iterativa con salida controlada.
Al finalizar la sesión, el alumno construirá programas usando la estructura algorı́tmica iterativa con salida controlada.

CONSIDERACIONES ADICIONALES:
Si el archivo entregado en PAIDEIA no cumple exactamente con el nombre indicado en el enunciado de la pregunta se le corregirá sobre
la mitad del puntaje.
Si el archivo entregado en PAIDEIA no posee la extensión indicada en la pregunta (.c) no se corregirá el archivo entregado.
Si no realiza la entrega de su vı́deo de laboratorio en la tarea correspondiente del classroom no se corregirá el archivo entregado. No se
aceptará reclamos por entrega tardı́a del vı́deo, luego de colocarle 0 en su nota, argumentando que se olvidó de darle click en el botón
Entregar de Classroom. Es su responsabilidad asegurarse que el vı́deo se haya entregado correctamente, si tiene algún problema con la
entrega del vı́deo lo debe informar oportunamente y no de forma posterior al 0 obtenido.

Desarrolle el siguiente problema en lenguaje C:

1. Menú de Números Primos (20 puntos)

Los números primos pueden ser definidos como aquellos números naturales mayores que 1 que tienen únicamente
dos divisores positivos diferentes: la unidad y el mismo número. En el mundo de las matemáticas se han realizado
muchos estudios en relación a los números primos pues poseen caracterı́sticas muy interesantes.
En la teorı́a de números se ha venido estudiando la diferencia que existen entre dos números primos consecutivos.
La quince primeras diferencias entre primos consecutivos es la siguiente: 1, 2, 2, 4, 2, 4, 2, 4, 6, 2, 6, 4, 2, 4, 6.
Cuando la diferencia entre dos primos es de dos, se le suele denominar a ese par de números, primos gemelos. Los
pares de números gemelos menores a 500 son (3, 5), (5, 7), (11, 13), (17, 19), (29, 31), (41, 43), (59, 61), (71, 73),

1INF01 Fundamentos de Programación Laboratorio 6 (2022-0) Página 1 de 4


(101, 103), (107, 109), (137, 139), (149, 151), (179, 181), (191, 193), (197, 199), (227, 229), (239, 241), (269,
271), (281, 283), (311, 313), (347, 349), (419, 421), (431, 433) y (461, 463).
Existen también números primos trillizos. Los números primos trillizos están formados por 3 números primos
consecutivos que además son de la forma (p, p + 2, p + 6) o (p, p + 4, p + 6). Por ejemplo, los primeros números
trillizos de la forma (p, p + 2, p + 6) menores que 500 son (5, 7, 11), (11, 13, 17), (17, 19, 23), (41, 43, 47), (101,
103, 107), (107, 109, 113), (191, 193, 197), (227, 229, 233), (311, 313, 317), (347, 349, 353), (461, 463, 467).
Se desea elaborar un programa en lenguaje C que permita listar los n primeros números primos, los n primeros
números de pares de primos consecutivos con una diferencia determinada y los n primeros números trillizos de la
forma (p, p + 2, p + 6). Para ello deberá:

Presentar un menú de opciones en donde el usuario elija la opción que desea ejecutar. La opción 1 será
para el listado de los n primeros números primos. La opción 2 será para el listado de los n primeros pares
de primos consecutivos con una diferencia determinada. La opción 3 es para el listado de los n primeros
números trillizos de la forma (p, p + 2, p + 6). La opción 4 es para salir, en cuyo caso el programa no debe
realizar nada.

Leer la opción a ejecutar y validar que la opción ingresada por el usuario sea correcta. En caso se ingrese
alguna opción inválida, se deberá emitir el mensaje Ha ingresado una opción inválida.

Luego de validar, deberá solicitar al usuario que ingrese la cantidad de elementos a imprimir. En el caso de la
opción 2 deberá también leer la diferencia que deben tener los números primos consecutivos. Deberá validar
que la cantidad a imprimir sea mayor que cero y que la diferencia de los números primos consecutivos sea
mayor que 1. En caso alguno de estos valores no cumpla con lo establecido, deberá imprimir el mensaje
Los datos de ejecución son incorrectos.

Imprimir la cabecera del listado. Para la opción 1 será Impresion de numeros primos. Para la
opción 2 será Impresión de par de primos consecutivos. Para la opción 3 será Impresión
de tripletas de primos trillizos.

Imprimir el listado implementando para ello en una única función. En esta función podrá usar la función
siguiente primo la cual se describe en la siguiente sección. La función que implemente para este fin
deberá usar un único ciclo iterativo y sin anidación (no considere para ello la iteración y anidación que
pudieran existir en las funciones antes mencionadas). Si no cumple con esta condición, tendrá la nota de
cero en toda la pregunta.

La función siguiente primo es una función que recibe como parámetro un número entero y retorna un número
entero mayor que el parámetro ingresado que corresponde con el menor número primo mayor al valor del parámetro
ingresado. Por ejemplo, si la función recibe el número 2, retornará el valor de 3. Si la función recibe el número 11,
retornará el valor de 13. Además, está función utiliza la función es primo.

Programa 1: Función siguiente primo


1 int siguiente primo(int n){
2 do{
3 n++;
4 } while(!es primo(n));
5 return n;
6 }

La función es primo es una función que recibe un número entero mayor que cero y retorna 1 en caso el número
sea un número primo. En caso contrario retorna el valor de cero.

Programa 2: Función es primo


1 int es primo(int n){
2 int contador=0, i=1;
3 do{
4 if (n %i==0)

1INF01 Fundamentos de Programación Laboratorio 6 (2022-0) Página 2 de 4


5 contador++;
6 i++;
7 }while(i<=n);
8 return contador==2;
9 }

A continuación siguen algunos ejemplos de ejecución.


Caso de Prueba 1:

Seleccione una opción:


(1) Listado
(2) Consecutivos
(3) Trillizos
(4) Salir

¿Opción? 5
Ha ingresado una opción inválida

Caso de Prueba 2:

Seleccione una opción:


(1) Listado
(2) Consecutivos
(3) Trillizos
(4) Salir

¿Opción? 1
Ingrese cantidad de elementos a imprimir: -4
Los datos de ejecución son incorrectos

Caso de Prueba 3:

Seleccione una opción:


(1) Listado
(2) Consecutivos
(3) Trillizos
(4) Salir

¿Opción? 1
Ingrese cantidad de elementos a imprimir: 10

Impresión de numeros primos


2 3 5 7 11 13 17 19 23 29

Caso de Prueba 4:

Seleccione una opción:


(1) Listado
(2) Consecutivos
(3) Trillizos
(4) Salir

¿Opción? 2
Ingrese cantidad de elementos a imprimir: 5
Ingrese la diferencia entre primos: 2

Impresión de par de primos consecutivos


(3,5) (5,7) (11,13) (17,19) (29,31)

1INF01 Fundamentos de Programación Laboratorio 6 (2022-0) Página 3 de 4


Caso de Prueba 5:

Seleccione una opción:


(1) Listado
(2) Consecutivos
(3) Trillizos
(4) Salir

¿Opción? 3
Ingrese cantidad de elementos a imprimir: 7

Impresión de tripletas de primos trillizos


(7,11,13) (13,17,19) (37,41,43) (67,71,73) (97,101,103) (103,107,109) (193,197,199)

Grabe el archivo con el nombre L6 codigoalumno.c, en caso no cumpla exactamente el formato indicado se le
corregirá sobre la mitad del puntaje.
En el desarrollo del programa debe añadir comentarios que expliquen lo desarrollado. Coloque en comen-
tarios, su nombre y su código antes del programa principal.

Puede usar cualquier estructura selectiva por lo que el uso de la estructura selectiva múltiple queda a su
criterio

No puede usar estructuras iterativas de entrada controlada ni iterativas anidadas.

Recuerde que debe explicar la solución de forma oral mientras las desarrolla y no al final. Esta explicación
será revisada en el vı́deo que entregará y forma parte de la rúbrica de calificación.

Coloque el archivo en la misma tarea en PAIDEIA de la cual obtuvo este documento.

1INF01 Fundamentos de Programación Laboratorio 6 (2022-0) Página 4 de 4

También podría gustarte