Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Caso Independiente
Caso Independiente
CASO DE ESTUDIO: EVALUACIÓN
APTITUD INFORMÁTICA
1. ENUNCIADO
En una universidad se efectúa una evaluación para medir la Aptitud en informática de los
nuevos estudiantes que ingresan, la prueba consta de N preguntas de escogencia múltiple y
cada pregunta tiene 5 opciones para escoger la respuesta. En un vector/arreglo se graban
las respuestas correctas a las N preguntas.
Ejemplo del arreglo: para N = 10
RespuestaCorrecta[10]
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
5 3 2 1 4 2 1 4 5 2
Esto es: la respuesta correcta a la primera pregunta ( RespuestaCorrecta[0] ) es la opción
5
(recuerde que es escogencia múltiple y hay cinco opciones).
RespuestaCorrecta[0] = 5
RespuestaCorrecta[1] = 3
Nota: validar el dato de entrada RespuestaCorrecta[N] , debe estar entre 1
y 5
.
A la prueba se presentan M
estudiantes. Para cada uno de ellos se tienen los siguientes
datos:
● Número de identificación.
● Puntaje Aptitud en informática.
Para el puntaje por estudiante se debe pedir como dato de entrada cada una de las
respuestas a las
N preguntas dadas por cada uno de los
M estudiantes, el algoritmo deberá
comparar cada una de las respuestas del estudiante con el arreglo que contiene las
respuestas correctas, por cada acierto se dará un punto al estudiante. El puntaje máximo que
puede tener un estudiante es N (si tiene todas las respuestas correctas).
Para esto debe definir dos arreglos de M elementos, Est_Identificacion[M] donde guardará
las
M credenciales, y Est_Puntaje[M] donde se guardará el resultado o puntaje de cada uno
Facultad de Ingeniería
Programa de Ingeniería de Sistemas
Programación I
Taller
de los estudiantes. Elabore un algoritmo que basándose en la información anterior provea la
siguiente:
● El puntaje obtenido por cada uno de los M estudiantes en la prueba con su respectivo
número de identificación.
● El puntaje promedio de la prueba.
● La credencial y el puntaje correspondiente a los estudiantes que obtuvieron un
puntaje igual o superior al promedio.
● El mayor puntaje y la identificación del estudiante que lo obtuvo.
Contexto del caso:
El concepto evaluación para algunos autores aparece en el siglo XIX con el proceso de
industrialización que se produjo en Estados Unidos. En este marco surge el moderno
discurso científico en el campo de la educación, que va a incorporar términos tales como
tecnología de la educación, diseño curricular, objetivos de aprendizaje o evaluación
educativa. Para otros autores la concepción aparece con los mismos comienzos de la
sociedad, la cual siempre ha buscado dar juicios de valor a las acciones y actitudes de los
estudiantes. La evaluación como disciplina ha sufrido profundas transformaciones
conceptuales y funcionales a lo largo de la historia y especialmente en el siglo XX y XXI.
Pero quien tradicionalmente es considerado como el padre de la evaluación educativa es
Ralph Tyler por ser el primero en dar una visión metódica de la misma, este concepto ha
sido superado desde el conductismo , Tyler plantea la necesidad de una evaluación
científica que sirva para perfeccionar la calidad de la educación. La evaluación como tal
desde esta perspectiva ya no es una simple medición porque supone un juicio de valor sobre
la información recogida.
2. ESTRUCTURA DE DATOS
En programación, un vector (llamado en inglés array(exactamente arreglo unidimensional))
es una zona de almacenamiento continuo, que contiene una serie de elementos del mismo
tipo. Estas estructuras de datos son adecuadas para situaciones en las que el acceso a los
datos se realice de forma aleatoria e impredecible. Todo vector se compone de un
determinado número de elementos. Cada elemento es referenciado por la posición que
ocupa dentro del vector. Dichas posiciones son llamadas índice
y siempre son correlativos.
En programación, una estructura de datos es una forma de organizar un conjunto de datos
elementales con el objetivo de facilitar su manipulación.
Facultad de Ingeniería
Programa de Ingeniería de Sistemas
Programación I
Taller
Datos de entrada: Para el caso, el arreglo o vector
RespuestaCorrecta[N] contendrá un
número N
de datos, el siguiente ejemplo muestra N = 10 (
N
es la cantidad de preguntas de la
prueba)
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
5 3 2 1 4 2 1 4 5 2
RespuestaCorrecta[0] = 5
RespuestaCorrecta[1] = 3
……
RespuestaCorrecta[9] = 2
Para definir el arreglo en el algoritmo o programa de deben seguir los siguientes pasos:
// Se solicita el número de preguntas y el dato entrante se asigna a N:
// Se definen las variables
int N, M, i, j, Respuesta, MayorPuntaje = 0;
float SumaPuntaje = 0.0;
//Entrada de datos, respuestas correctas
do{
cout<<"\n\nDigite cantidad de preguntas: ";
cin>>N;
}while(N < 1);
// Se declara el arreglo llamado RespuestaCorrecta asignándole el rango (N):
int RespuestaCorrecta[N];
Para el caso y de acuerdo al enunciado, se deben definir dos arreglos más, en donde se
almacenarán los datos de los estudiantes que presentaron la prueba de aptitud informática.
Para definir estos dos arreglos seguiremos los pasos anteriores:
//Entrada de datos, cantidad de estudiantes
do{
cout<<"\n\nDigite cantidad de estudiantes: ";
cin>>M;
}while(N < 1);
// Se declara los arreglos para estudiantes asignándole el rango (M):
int Est_Identificacion[M], Est_Puntaje[M];
Facultad de Ingeniería
Programa de Ingeniería de Sistemas
Programación I
Taller
3. REQUERIMIENTOS FUNCIONALES
● RF1: El programa deberá calcular e imprimir el puntaje obtenido por cada uno de los
M estudiantes en la prueba con su respectivo número de identificación.
Para esto se debe inicializar el arreglo
Est_Puntaje[M] = 0, puesto que cada
elemento contendrá la suma de los aciertos, por cada acierto se suma 1. Como son N
preguntas, si el estudiante acierta en todas, su puntaje máximo será N. Esto permite
limpiar los datos y asegurarnos que todos comienzan en cero.
// Se inicializa en cero cada elemento del arreglo Est_Puntaje[M]
for (i = 0; i < M; i++)
Est_Puntaje[i] = 0;
● RF2: El programa deberá calcular e imprimir el puntaje promedio de la prueba. Para
este requerimiento defina una variable, debe inicializar en cero. Almacene en esa
variable la suma de todos los puntajes obtenidos por los estudiantes.
for (i = 0; i < M; i++)
SumaPuntaje += Est_Puntaje[i];
// Se imprime puntaje promedio de la prueba
cout<<"\n_____________________________________________";
cout<<"\nPromedio de los puntajes = "<<SumaPuntaje / M<<"\n";
cout<<"\n_____________________________________________";
● RF3:
El programa deberá imprimir la credencial y el puntaje correspondiente a los
estudiantes que obtuvieron un puntaje igual o superior al promedio.
// Estudiantes con puntaje mayor o igual al promedio
cout<<"\n\nEstudiantes con puntaje mayor o igual al promedio";
for (i = 0; i < M; i++)
if (Est_Puntaje[i] >= SumaPuntaje / M)
cout<<"\n"<<Est_Identificacion[i]<<" > "<<Est_Puntaje[i];
● RF4:
El programa deberá buscar e imprimir el mayor puntaje y la identificación del
estudiante que lo obtuvo.
Para este requerimiento debe definir una variable e inicializar en cero, ésta
almacenará el dato del mayor puntaje, el algoritmo deberá hacer sucesivas
comparaciones con todos los puntajes obtenidos por los estudiantes y asegurarse de
que en la variable quede el mayor de todos.
Facultad de Ingeniería
Programa de Ingeniería de Sistemas
Programación I
Taller
for (i = 0; i < M; i++)
if(MayorPuntaje < Est_Puntaje[i])
MayorPuntaje = Est_Puntaje[i];
cout<<"\n_____________________________________________";
cout<<"\nEstudiante(s) con Mayor Puntaje";
for (i = 0; i < M; i++)
if (Est_Puntaje[i] == MayorPuntaje)
cout<<"\n"<<Est_Identificacion[i]<<" > "<<Est_Puntaje[i];
cout<<"\n_____________________________________________";
4. REQUERIMIENTOS INSTRUCCIONALES
Teniendo en cuenta el enunciado, los pasos a seguir para que se puedan entregar los
requerimientos solicitados son:
ANÁLISIS Y DISEÑO.
Después de solicitar el dato de cantidad de preguntas N , y con éste definir el arreglo de
RespuestaCorrecta[N] , se procede a capturar la información de las respuestas correctas,
teniendo en cuenta que es una prueba de escogencia múltiple en donde cada pregunta
tendrá únicamente 5 opciones, luego la respuesta correcta estará entre 1 y 5.
Para N
= 10
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
Con la anterior información se procede a entregar requerimientos solicitados.
// Se imprime la identificación y el puntaje de cada uno de los M estudiantes
cout<<"\n\nRESULTADOS DE LA PRUEBA (TODOS LOS ESTUDIANTES)\n";
for (i = 0; i < M; i++)
cout<<"\nCodigo "<<Est_Identificacion[i]<<" Puntaje > "<<Est_Puntaje[i];
Facultad de Ingeniería
Programa de Ingeniería de Sistemas
Programación I
Taller
PRUEBAS.
Con los datos de prueba entregados en la representación gráfica de los ciclos, se deberá
obtener el siguiente resultado:
5. ENTREGABLES
1. Código fuente ( )
PruebaInformatica.cpp
2. Obligatorio el uso de comentarios al código utilizando el símbolo //