Uploaded by Arturo Espinosa

Reporte LECGAEEC

advertisement
UNIVERSIDAD ANÁHUAC
Campus Córdoba-Orizaba
EXAMEN DEPARTAMENTAL
ALGORITMOS Y PROGRAMACIÓN
Agosto-diciembre 2021
Nombres de integrantes del equipo:
1. Luis Enrique Contreras González
2. Arturo Emilio Espinosa Castellanos
Proyecto Seleccionado (1) (2)
Objetivo:
Aplicar los conocimientos de Algoritmos y Programación en la solución de problemas de
diferente naturaleza (administrativos y/o matemáticos).
Formato de documentos:
El documento en Word deberá cumplir con lo siguiente:
Tipos de letra aceptables: Calibri, Times Roman o Arial.
Color de letra: negro.
Tamaño de letra: 11
Nota: no cumplir con este formato implica -1/10 sobre calificación del examen.
Criterios de Evaluación:
a. Cada sección se califica en una escala de 1 a 10 para obtener el puntaje asignado.
Ejemplo: Sección Análisis de Datos para obtener el puntaje de 1 debes obtener la
calificación de 10 en esa sección.
b. La suma de todas las secciones y el puntaje de calificación del examen se muestra
a continuación:
1.
2.
3.
4.
5.
6.
Análisis de datos
(1 punto)
Procesos
(1 punto)
Tabla de asignación de variables (1 punto)
Diagrama de Flujo
(1 punto)
Pseudocódigo
(2 puntos)
Programa en C++
(4 puntos)
Total de Puntos: 10
c. Por cada nombre de archivo incorrecto -0.5/10
Problemas propuestos
1. Realice un algoritmo para generar N elementos de la sucesión de Fibonacci (0, 1,
1, 2, 3, 5, 8, 13,…).
2. Una empresa tiene el registro de las horas que trabaja diariamente un empleado
durante la semana (seis días) y requiere determinar el total de éstas, así como el
sueldo que recibirá por las horas trabajadas.
Entregables:
1. Reporte de examen (este documento) con el nombre:
Reporte_inicialesalumnos.pdf
El nombre de este archivo debe contener todas las iniciales de los nombres de
cada integrante del equipo.
2. Archivos de pseudocódigo. Los nombres de estos archivos deberán seguir el
siguiente formato:
Pseudo_X_iniciales.psc
Dónde la X representa el número de proceso y “iniciales” deben ser la primera
inicial del nombre de cada alumno integrante del equipo.
El número de archivos debe corresponder al número de procesos del algoritmo.
3. Archivos de programa en C++. Los nombres de estos archivos deberán seguir el
siguiente formato:
Program_X_iniciales.cpp
Dónde la X representa el número de proceso y “iniciales” deben ser la primera
inicial del nombre de cada alumno integrante del equipo.
El número de archivos debe corresponder al número de procesos del algoritmo
programados en C++.
4. Video.
El nombre del archivo debe ser:
Videodocumental_inicialesalumnos.mp4
La duración del video debe ser entre 3 minutos (mínimo) y 5 minutos (máximo).
Al menos debe contener: explicación breve de proyecto, algunos momentos de
cada miembro del equipo trabajando en el proyecto, debes incluir imágenes de la
pantalla con el código y su evolución (pseudocódigo y C++), explicación de
aquellas aportaciones innovadoras al proyecto (uso de librerías en C++, ciclos de
repetición diferentes a mientras, instrucciones que ayuden a la presentación de
resultados en C++, etc.). Podrás usar la música de tu preferencia pero que permita
escuchar los comentarios de los miembros del equipo.
Si el vídeo no es entendible o no contiene información relevante del proyecto
tendrá una penalización de -2/10 sobre la calificación obtenida
1. Análisis de Datos (1 punto)
Investigación:
Aquí debes describir cuál es el planteamiento del problema (Puedes usar el espacio que
necesites). Describir el algoritmo que se propone usar para solucionar el problema.
Elaborar un programa el cual nos permita trabajar con el número de veces que nos
indique el usuario siguiendo la sucesión de Fibonacci la cual consiste en la sumatoria
de los 2 números anteriores empezando con el “0” y “1” por lo cual nuestro programa
deberá conseguir leer los números anteriores y la suma de ellos mostrarla como el
nuevo número de la sucesión y así las veces que el usuario nos indique. A partir de esta
serie generada también se podrá buscar un número determinado.
¿Con qué datos de entrada inicia el algoritmo y de qué tipo son?
Los datos de entrada son el número de veces que nos indica el usuario para repetir la
sucesión o el numero a buscar y es de tipo real
¿Qué datos de entrada necesita cada uno de los procesos? (Debes escribir el nombre de
cada proceso y el dato de entrada requerido. Debes incluir todos los procesos).
Entrada de datos: Real(opción deseada, cantidad de posiciones que pide el
usuario/numero a buscar)
Generar Serie: Entero (cantidad de posiciones que pide el usuario)
Obtener diferencia:Real(número que busca el usuario, número de la serie de la
iteración en actual)
Comparar diferencia:Real(diferencia del número buscado con el número de la
iteración en actual, diferencia del número buscado con el número de la iteración
anterior)
Mensajes para presentar al usuario: Real(cantidad de posiciones que pide el
usuario/número a buscar, números de la serie correspondientes a la cantidad de
posiciones que pide el usuario,la diferencia más pequeña de todas las obtenidas en el
proceso “obtener diferencia”).
¿Qué tipos de datos salen de cada proceso? (Debes escribir el nombre de cada proceso y
el dato de entrada requerido. Debes incluir todos los procesos).
Entrada de datos: Real(cantidad de posiciones que pide el usuario/numero a buscar
almacenado en una variable y filtrado para evitar entradas incorrectas)
Generar Serie: Entero (números de la serie correspondientes a la cantidad de
posiciones que pide el usuario)
Obtener diferencia:Real(Diferencia entre el número buscado y el número de la serie
correspondiente a la iteración actual)
Comparar diferencia:Real(La diferencia más pequeña de todas las obtenidas en el
proceso “obtener diferencia”)
Mensajes para presentar al usuario:Real(lista de la serie por posición o la posición y
número de la serie más cercanos al número que se buscó).
¿En qué procesos del algoritmo solución se requieren usar contadores? (Especifica qué
es lo que cuentan)
La variable “serie” en el proceso de “Generar serie” ya que este nos cuenta el número
de veces que se va repetir el programa hasta la impresión en pantalla.
¿En qué procesos se requieren usar variables de control y qué es lo que controlan?
En el proceso “Entrada de datos” para bloquear números que no correspondan a una
opción y números menores o iguales a 0.
¿Qué tipos de datos entrega a la salida con los que termina el algoritmo?
Reales(lista de la serie por posición o la posición y número de la serie más cercanos al
número que se buscó).
¿Qué datos deben mostrarse al usuario y por qué?
La lista de la serie por posición o la posición y número de la serie más cercanos al
número que se buscó; ya que de esta manera el usuario puede entender la información
mostrada.
¿Qué tipos de datos deben introducir el usuario y en qué procesos?
Debe introducir el número correspondiente a la opción deseada así como el número de
posiciones que quiere de la serie o el número a buscar en la parte de “Entrada de
datos”.
2. Procesos (1 punto)
Respetar la norma para usar diagrama de bloques:
a. Las flechas de entrada se colocan a la izquierda del bloque y debe tocarlo.
b. Las flechas de salida se colocan del lado derecho del bloque.
c. No se admiten flechas de entrada o salida en la parte superior o inferior del
bloque.
d. No se admiten elementos adicionales a lo descrito en los puntos anteriores.
e. Como referencia puede verse los ejemplos en los siguientes procesos.
f. Debes pegar la imagen de cada proceso en esta sección.
La elaboración de los diagramas a bloques deberá realizarse obligatoriamente con:
https://app.diagrams.net/
EL NO CUMPLIMIENTO DE LO ANTERIOR 🡪 PENALIZACIÓN DE -1/10 sobre
calificación examen.
3. Tabla de asignación de variables (1 punto)
● Aquí deberás colocar el nombre de cada variable usada en el algoritmo de solución.
Recuerda que el nombre debe ser lo más intuitivo posible.
● No se permiten variables de una sola letra.
● El nombre de la variable al menos deberá estar compuesta por cuatro letras como
mínimo.
● También debes identificar y mencionar todos los procesos donde es utilizada cada
variable.
Nombre de la
Variable
resp
Descripción
Tipo de Dato
Respuesta
real
numa
Número a
real
numb
numc
Número b
Número c
real
real
num
Número
real
serie
Serie
real
compa
Comparación a
real
compb
Comparación b
real
Variable
de Control
si
Proceso
Entrada de datos
Generar Serie/Mensajes
para presentar al
usuario/Obtener
diferencia
Generar Serie
Generar Serie
Entrada de
datos/Generar
série/Obtener diferencia
Generar serie/Mensajes
para presentar al usuario
Obtener
diferencia/Comparar
diferencia
Obtener
diferencia/Comparar
diferencia
4. Diagrama de Flujo (1 punto)
En esta sección debes pegar la imagen del diagrama de flujo.
Reglas para usar diagramas de flujo (vistas en clase)
•
Debe haber un inicio y un final
•
Las líneas utilizadas para indicar la dirección del flujo del diagrama deben ser
rectas verticales y horizontales.
•
Todas las líneas de dirección de flujo deben estar conectadas.
•
Se debe construir de arriba a abajo y de derecha a izquierda.
•
La notación en un D.F. es independiente del lenguaje de programación.
•
Se recomienda colocar comentarios para un mejor entendimiento.
•
Si se requiere más de una hoja para construir el D.F. es importante usar
conectores y numerar las hojas.
•
No puede llegar más de una línea a un símbolo.
•
El texto contenido dentro de un símbolo deberá ser escrito claramente, evitando
el uso de muchas palabras.
La elaboración de los diagramas de flujo deberá realizarse obligatoriamente con:
https://app.diagrams.net/
EL NO CUMPLIMIENTO DE LO ANTERIOR  PENALIZACIÓN DE -1/10 sobre
calificación examen.
Algoritmo Pseudo_0_AL
Definir resp, numa, numb, numc,
num, serie, compa, compb como real
numa ← 0
numb ← 1
-------Serie de Fibonacci-------
"Para generar un numero de posiciones de la serie de Fibonacci, presione 1"
"Para buscar un numero dentro de la serie de Fibonacci, presione 2"
""
resp
resp≠1 Y resp≠2
"Introduzca un numero que corresponda a una de las opciones (1 o 2)"
resp
resp=1
"¿Cuantas posiciones de la serie fibonacci deseas?"
"¿Qué numero dentro de la serie fibonacci deseas buscar?"
num
num
num<0
num ≤0
"Inserte un numero mayor a 0"
"El numero mas cercano a ",num, "es 0 en la posción 1"
num
compb ← num+1
compa ← num-numa
compa<0
"Posición",serie,":",numa
compb ← compa*(-1)
numc ← numa+numb
compa≤compb
numa ← numb
compb ← compa
numb ← numc
Borrar Pantalla
"El número mas cercano a ",num," es: ",numa, "en la posición ",serie
numc ← numa+numb
numa ← numb
numb ← numc
FinAlgoritmo
5. Pseudocódigo (2 puntos)
●
El pseudocódigo debe ser congruente con los procesos que definiste en la sección del
mismo nombre, por lo que:
o
Deberás elaborar un pseudocódigo por cada proceso (forman parte de los
entregables) de la siguiente forma:
Suponiendo que tu programa tiene cuatro procesos:
▪ El primero de contener el proceso de captura de datos
▪ El siguiente debe contener: captura de datos más el siguiente proceso
2
▪ El siguiente debe contener: captura de datos + segundo proceso +
tercer proceso.
▪ El último debe contener: captura de datos + segundo proceso + tercer
proceso + proceso para mostrar resultados al usuario.
NOTA: El ejemplo anterior puede variar según el número de procesos que tu
definas.
o
o
●
●
●
●
El último pseudocódigo deberá integrar todos los procesos es decir será el
programa completo.
Debes entregar un archivo por cada proceso y un archivo con todos los
procesos (algoritmo completo).
El pseudocódigo del algoritmo completo debe corresponder exactamente al diagrama
de flujo elaborado en la sección anterior.
Debes asegurarte de que cada instrucción (del pseudocódigo) está representada en el
diagrama de flujo.
Debes usar exactamente el mismo nombre de las variables que definiste en la “tabla
de variables”.
Todos los archivos de pseudocódigo deben contener la cabecera completa definida en
clase. En la sección de autor deberán aparecer los nombres de los miembros del
equipo. Por ejemplo, si definiste cuatro procesos debes entregar cuatro archivos.
6. Programa en C++ (4 puntos)
● Al igual que en la sección de pseudocódigo deberás entregar un programa en C++ por
cada proceso definido en la sección del mismo nombre. Por lo que deberás entregar el
mismo número de archivos que el mismo número de procesos de la siguiente forma:
Suponiendo que tu programa tiene cuatro procesos:
▪ El primer programa en C++ de contener el proceso de captura de datos
▪ El siguiente debe contener: captura de datos más el siguiente proceso
2
▪ El siguiente debe contener: captura de datos + segundo proceso +
tercer proceso.
▪ El último debe contener: captura de datos + segundo proceso + tercer
proceso + código en C++ para mostrar resultados al usuario.
NOTA: El ejemplo anterior puede variar según el número de procesos que tu
definas.
o
o
El último código de C++ deberá integrar todos los procesos es decir será el
programa completo.
Debes entregar un archivo por cada proceso y un archivo con todos los
procesos (algoritmo completo). Por ejemplo, si definiste cuatro procesos debes
entregar cuatro archivos.
Cabecera para pseudocódigo y programas en C++
Título del programa:
Autor/es:
Fecha de creación:
Descripción del programa:
Descripción de variables:
(Nombre de la variable y cuál es su función en el algoritmo o programa)
Fecha de la última modificación:
Modificación hecha por:
Download