0% encontró este documento útil (0 votos)
334 vistas25 páginas

Algoritmos y Diseño en Computación I

Este documento presenta las especificaciones para desarrollar un sistema que registre y gestione los datos académicos de los alumnos de una institución educativa. El sistema solicitará los nombres, grados, lapsos y notas de las materias de los alumnos, calculará sus promedios y asignará montos de beca según sus calificaciones. El documento describe los procedimientos y algoritmos requeridos para ingresar, procesar y consultar la información de los alumnos.

Cargado por

Fernando Flores
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
334 vistas25 páginas

Algoritmos y Diseño en Computación I

Este documento presenta las especificaciones para desarrollar un sistema que registre y gestione los datos académicos de los alumnos de una institución educativa. El sistema solicitará los nombres, grados, lapsos y notas de las materias de los alumnos, calculará sus promedios y asignará montos de beca según sus calificaciones. El documento describe los procedimientos y algoritmos requeridos para ingresar, procesar y consultar la información de los alumnos.

Cargado por

Fernando Flores
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD NACIONAL

ABIERTA ÁREA DE
INGENIERÍA
CARRERA INGENIERÍA INDUSTRIAL

TAREA

TRABAJO PRÁCTICO: X

ASIGNATURA: COMPUTACIÓN I

CÓDIGO: 323

FECHA DE ENTREGA DE LAS ESPECIFICACIONES AL ESTUDIANTE:


En la primera semana de presentación de prueba, a través del asesor de la
asignatura de su centro local.

FECHA DE DEVOLUCIÓN DEL INFORME POR EL ESTUDIANTE


Adjunto a la Segunda Prueba Integral
NOMBRE DEL ESTUDIANTE: JOSE FERNANDO FLORES CORREA

CÉDULA DE
15.548.813
IDENTIDAD:
CENTRO CARRERA:280
GUÁRICO
LOCAL:

NÚMERO DE ORIGINALES:

FIRMA DEL ESTUDIANTE:

LAPSO:

UTILICE ESTA MISMA PÁGINA COMO

CARÁTULA DE SU TAREA O TRABAJO

RESULTADOS DE CORRECCIÓN:
OBJ. N° 1 2 3 4 5 6 7 8 9 1 1 1 1
0 1 2 3

Ingeniería de Industrial
0:N 1:
L L

Ingeniería de Industrial
INDICE DE CONTENIDO

CONTENIDO

INTRODUCCIÓN............................................................................................1

OBJETIVO A DESARROLLAR.......................................................................2

SOLUCIÓN ANALITICA DEL PROBLEMA PLANTEADO……………………3

METODOLOGIA MAPS……………………………………………....................4

LA ESPECIFICACIÓN………………………………........................................5

ANEXOS........................................................................................................6

CONCLUSIÓN...............................................................................................7

BIBLIOGRAFIA..............................................................................................8
INTRODUCCIÓN

En el siguiente trabajo pretendemos presentar una serie de concepto y


definiciones propios del estudio de los Algoritmos, su análisis y diseño.
En el mismo podremos encontrar los conceptos de algoritmo y algunos de
sus componentes, análisis y diseño. También veremos los diferentes tipos de
formas y tamaños o medidas en que se pueden almacenar y representar
los datos y estructuras en un algoritmo o programa. En ese mismo orden
encontraremos las diferentes técnicas para diseñarlos como son
el método de la fuerza bruta, el voraz, divide y
vencerás, programación dinámica, de vuelta atrás, entre otros.
De igual forma podremos ver las definiciones y algunas características,
reglas, normas, tipos de algoritmos de búsqueda y ordenación así como sus
aplicaciones.
Finalmente veremos los que es la verificación y derivación de programas,
donde daremos los conceptos básicos de semántica y sus tipos haciendo
mayor énfasis en la semántica axiomática, la recursividad e iteración, los
diseños de estos últimos, así como los típicos ciclos utilizados en algoritmos
y programas y los paso a tener en cuenta al momento de desarrollar un
algoritmo iterativo o recursivo.
SOLUCIÓN ANALITICA DEL PROBLEMA PLANTEADO

Definición del Problema

En la institución educativa se encuentra en la necesidad de tener un recurso


factible que ayude a solventar los problemas, tomando en cuenta la lógica de
En el ámbito de buscar una solución informática a las necesidades del
organismo, por lo que se pretende solventar dándole a la misma una
herramienta informática precisa.
Evaluando cada parte del problema se encontrará la solución del mismo;
estableciendo un sistema de monitoreo que simplifique cada parte
concerniente a dar una solución a la problemática de la institución.

General soluciones alternativas.

Entre las soluciones al planteamiento se pretende diseñar un programa que


registre la información de los alumnos del primero al sexto grado, con lo que
con esta información se realice un cálculo preciso de la información de
manera de tener a la mano toda la data de los alumnos
Así mismo se le dará seguimiento al desarrollo de dicho proyecto para
verificar que la solución informática cumpla con los requerimientos estándar
establecidos
Metodología para la Solución de Problemas Algorítmicos (MAPS)
Para la solución del problema planteado se diseñó un sistema que solicite la
información de los alumnos y que esta con esos datos proceda a realizar
cálculos del promedio de las notas y los montos de las becas además de
ordenar esta información de acuerdo a la calificación obtenida
METODOLOGIA MAPS
EL DIALOGO
Se requiere desarrollar un sistema que registre los datos y calificaciones de
los alumnos de una institución dependiendo el grado y la calificación de
dependiendo los lapsos por lo que se debe solicitar los siguientes datos:
 Nombre del Alumno
 Lapso del Alumno
 Grado del Alumno
 Nota de Materias

Dependiendo del grado del alumno se registra, si es un alumno del primer


grado al tercer grado, se registra 5 notas en caso contrario si el alumno es de
entre el cuarto grado al sexto grado.
Entonces se muestra en pantalla la información del alumno que se acaba de
registrar.
Así hasta completar el número de alumnos que se van a registrar en el
proceso.
Después de finalizada la carga de los datos e inicial el cálculo del promedio
con lo que según este se mostrara un monto de una beca en caso de
pertenecer a un rango de calificaciones mayor a 16 puntos.
Cuando se termine de registrar el tope de alumnos, entonces se procederá al
consultar en un reporte el cual se filtra si el alumno tiene más de 16 puntos y
menor a 18 puntos dependiendo el grado y el lapso.
Cuando se necesita saber la información de los alumnos con 18 a 20 puntos
entonces se va a la opción de consulta y filtrado de los alumnos.
Esta información está contenida en un menú de opciones el cual facilita al
usuario la búsqueda de cada información pertinente.
LAS ESPECIFICACIONES

Pre condiciones:
Nombre1, Nombre2, Nombren Λ n > 0 ΛΔ: Nombre {1, 10}
Lapso1, Lapso2, Lapson Λ n > 0 ΛΔ: Lapso {1, 10}
Grado1, Grado2, Gradon Λ n > 0 ΛΔ: Grado {1, 10}
Materia011, Materia012……Materia01n Λ n > 0 ΛΔ: Materia01 {1, 10}
Materia021, Materia022……Materia21n Λ n > 0 ΛΔ: Materia21 {1, 10}
Materia031, Materia032……Materia03n Λ n > 0 ΛΔ: Materia31 {1, 10}
Materia041, Materia012……Materia04n Λ n > 0 ΛΔ: Materia41 {1, 10}
Materia051, Materia052……Materia05n Λ n > 0 ΛΔ: Materia51 {1, 10}
Post Condiciones:
Materia061, Materia062……Materia06n Λ n > 0 ΛΔ: Materia61 {1, 10}
Promedio1, Promedio2……Promedio Λ n > 0 ΛΔ: Promedio {1, 10}
MontoBeca1,MontoBeca2……. MontoBecan Λ n > 0 ΛΔ: MontoBeca {1, 10}

LA PARTICIPACIÓN
El problema se resuelve creando ciclos de procesos el cual inicia con las las
siguientes fases:
1. Inicializar los arreglos, y las variables
2. Procedimiento para llamar al menú de opciones
3. Procedimiento para escribir los datos de los alumnos
4. Procedimiento para calcular el promedio
5. Procedimiento para asignar el monto de la beca
6. Procedimiento para Consultar Alumnos con nota de 16 a 18 ptos
7. Procedimiento para Consultar Alumnos con nota de 18 a 20 ptos

Cada rutina está dividida en procesos, de la siguiente manera:


1. Inicializar los arreglos y las variables
1.1 se le asigna un valor a máximo de alumnos
1.2 se declaran todos los arreglos
1.3 se declara todas la variable
2. Procedimiento para llamar al menú de opciones

2.1 se crea el menú

2.2 el menú pide los datos de alumno

2.3 el menú pide las consultas de alumnos de 16 a 18 ptos


3.4 el menú pide las consultas de alumnos de 18 a 20 ptos

3. Procedimiento para escribir los datos de los alumnos

3.1 se pide los datos del alumno

3.2 se pide los datos del lapso

3.3 se pide los datos del grado

4. Procedimiento para calcular el promedio

4.1 se cargar las notas de los alumnos

4.1 se verifica si el alumno cursa un grado menor o igual al tercer grado

4.1.1 en caso de ser de cuarto a sexto grado se agrega una sexta nota

4.2 se guarda la información y se compara el monto de la beca

5. Procedimiento para asignar monto de la beca


5.1 se busca la información o promedio de las notas del alumno
5.2 se asigna monto según promedio

5.3 si nota es menor a 16 no se le asigna monto de beca


6. Procedimiento para Consultar Alumnos con nota de 16 a 18 ptos
6.1 Se ordena según nota del alumno y se muestra en pantalla
7 Procedimiento para Consultar Alumnos con nota de 18 a 20 pos

DEFINICIÓN DE LA ABSTRACCIÓN

begin

for I: = 1 to MaxFila do

Begin

White (' Nombre de Alumno: ‘, i,': '); {Se pide nombre de alumnos}

read(datos[i]);

write (' Grado: '); { Se pide Grado de Alumnos}

read(Grado[I]);

EG: = Grado[I];

Grado Alumno: = (Valor Entero(EG)); { Se pide Lapso}

Write (' Lapso: ');

Read (lapso[I]);

Write ('Deme nota de Materia 1: ‘, i,': '); {Se Pide Las Notas}

read(nota1[i]);

write ('Deme nota de Materia 2: ‘, i,': ');

read(nota2[i]);

write ('Deme nota de Materia 3: ‘, i,': ');

read(nota3[i]);
write ('Deme nota de Materia 4: ‘, i,': ');

read(nota4[i]);

write ('Deme nota de Materia 5: ‘, i,': ');

read(nota5[i]);

Begin

IF (Grado Alumno=1) or (Grado Alumno=2) or (Grado Alumno=3) { En


caso de ser Alumnos de 1 al 3 Grado}

THEN Begin

suma: = nota1[i] + nota2[i] + nota3[i] + nota4[i] + nota5[i];

media: =suma / 5; { Se calcula el promedio}

promedio[I]: = media;

end

ELSE

begin

write ('Deme nota de Materia 6: ‘, i,': '); {si el alumno es de 4 al 6


grado }

read(nota6[i]); { se pide una 6ta nota }

suma:= nota1[i] + nota2[i] + nota3[i] + nota4[i] + nota5[i] + nota6[i];

media:=suma / 6;

promedio[i]:= media; { Se calcula el promedio}

end;
END;

{se selecciona o compara el grado y el promedio de nota}

{para obtener el monto de la beca}

IF (Grado Alumno=1) and (media>=16) and (media <=18) THEN

MontoBeca[i]: =35000;

IF (Grado Alumno=1) and (media>=18) and (media <=20) THEN

montobeca[i]: =55000;

IF (Grado Alumno=2) and (media>=16) and (media <=18) THEN

montobeca[i]: =40000;

IF (Grado Alumno=2) and (media>=18) and (media <=20) THEN

montobeca[i]: =60000;

IF (Grado Alumno=3) and (media>=16) and (media <=18) THEN

montobeca[i]: =45000;

IF (Grado Alumno=3) and (media>=18) and (media <=20) THEN

montobeca[i]: =65000;

IF (Grado Alumno=4) and (media>=16) and (media <=18) THEN

montobeca[i]: =50000;

IF (Grado Alumno=4) and (media>=18) and (media <=20) THEN

montobeca[i]: =70000;

IF (Grado Alumno=5) and (media>=16) and (media <=18) THEN


montobeca[i]:=55000;

IF (Grado Alumno=5) and (media>=16) and (media <=20) THEN

montobeca[i]: =75000;

IF (GradoAlumno=6) and (media>=16) and (media <=18) THEN

montobeca[I]: =60000;

IF (GradoAlumno=6) and (media>=18) and (media <=20) THEN

montobeca[I]: =80000;

IF media<16 THEN

montobeca[I]: =0;

{se muestra en pantalla los resultados del formulario alumno}

{para obtener el monto de la beca}

WRITELN ('========= DATOS DE ALUMNO ===========');

WRITELN; JOSÉ FERNANDO FLORES CORREA

WRITELN (' ALUMNO: ‘, i,' NOMBRE DE ALUMNO:’, datos[i]);

WRITELN (' GRADO: ‘, Grado[I], ‘LAPSO: ‘, lapso[I]);

WRITELN;

WRITELN (' ==== NOTAS ==== ');

WRITELN;

WRITELN (' MATERIA 1: ‘, nota1[I]);

WRITELN;

WRITELN (' MATERIA 2: ‘, nota2[I]);


WRITELN;

WRITELN (' MATERIA 3: ‘, nota3[I]);

WRITELN;

WRITELN (' MATERIA 4: ‘, nota4[I]);

WRITELN;

WRITELN (' MATERIA 5: ‘, nota5[I]);

WRITELN;

IF (Grado Alumno=4) or (Grado Alumno=5) or (Grado Alumno=6) THEN

WRITELN (' MATERIA 6: ‘, nota6[I]);

WRITELN;

Writeln (' EL PROMEDIO ES: ‘, medi[Link]);

WRITELN;

Writeln (' MONTO DE BECA: ‘, Trunc(montobeca[I]));

WRITELN;

END;

Writeln ('PULSE ENTER PARA CONTINUAR');

ReadKey;

BEGIN

Read;

END;
END;

procedure ConsultaMenor18; {Procedimiento de reporte de alumnos con 16


a 18 ptos}

begin;

clrscr();

WRITE ('---- Inserte el Grado:');

Read (insertogrado);

Write ('---- Inserte el Lapso:');

Read (insertolapso);

WRITELN;

clrscr ();

WRITELN ('============');

WRITELN ('TOTAL ALUMNOS ENTRE 16 Y 18 PTOS');

WRITELN;

WRITELN ('===========================');

WRITELN ('NOMBRE GRADO LAPSO PROMEDIO


MONTOBECA');

begin;
sumatoria: =6;

cant: =0;

total: =0;

for I: = 1 to MaxFila do

begin

Promedios: = promedio[i];

registro: = Trunc(Promedios);

{Si el grado y lapso es el escogido y el promedio es entre 16 y 18 ptos }

{se ubica en pantalla los datos de los reportes}

if(Grado[I] = insertogrado) and (lapso[i] =insertolapso) and


(Trunc(registro) >= 16) and (registro <18) then BEGIN

GOTOXY(5,sumatoria);WRITELN(datos[I]);

GOTOXY(16,sumatoria);WRITELN(grado[I]);

GOTOXY(26,sumatoria);WRITELN(lapso[i]);

GOTOXY(36,sumatoria);WRITELN(promedio[i]:2:2);

GOTOXY(46,sumatoria);WRITELN(Trunc(montobeca[i]));

sumatoria:=sumatoria+1;

cant:=cant+1;

total:= total + montobeca[i];

end;
END;

end;

WRITELN ('TOTAL DE ALUMNOS');

Writeln ('Nro : ',cant);

Writeln ('TOTAL A PAGAR BS: ');

writeln (Trunc(total));

readkey;

end;{ Final Procedimiento de reporte }

procedure ConsultaMenor20; { Procedimiento de reporte de 18 a 20


puntos}

begin;

clrscr();

cant:=0;

WRITE ('---- Inserte el Grado de los Alumnos :');

Read (insertogrado);

write ('---- Inserte el Lapso de los Alumnos : ');

read (insertolapso);

WRITELN;

clrscr();
WRITELN('==============================================
==================');

WRITELN ('TOTAL ALUMNOS ENTRE 18 y 20 PTOS');

WRITELN;

WRITELN('==============================================
============');

WRITELN (' NOMBRE GRADO LAPSO PROMEDIO


MONTOBECA');

begin;

sumatoria:=6;

total:=0;

for i := 1 to MaxFila do

begin

Promedios:= promedio[i];

registro:= Trunc(Promedios);

if( grado[i] = insertogrado ) and (lapso[i] =insertolapso) and (registro


>= 18) and (registro <= 20) then begin

GOTOXY(5,sumatoria);WRITELN (datos[i]);

GOTOXY(16,sumatoria);WRITELN (grado[i]);

GOTOXY(26,sumatoria);WRITELN (lapso[i]);

GOTOXY(36,sumatoria);WRITELN (promedio[i]:2:2);

GOTOXY(46,sumatoria);WRITELN (Trunc (montobeca[i]));


sumatoria:=sumatoria+1;

cant:=cant+1;

total:= total + montobeca[i];

end;

end;

end;

WRITELN('TOTAL DE ALUMNOS');

writeln('Nro : ',cant);

writeln('TOTAL A PAGAR BS: ');

writeln(Trunc(total));

readkey;

end;{ Final Procedimiento de reporte }

PROCEDURE MENU;{ PROGRAMA PRINCIPAL }

BEGIN

WRITELN('=============================================
===================');

WRITELN ('CONTROL DE NOTAS');


WRITELN (' Estudiante:FERNANDO FLORES ');

WRITELN('=============================================
===================');

WRITELN ('');

WRITELN (' SELECCIONA SU OPCION!...');

WRITELN;

WRITELN (' 1 = INCLUIR DATOS DE ALUMNOS ');

WRITELN;

WRITELN (' 2 = CONSULTAR REGISTRO:NOTAS DE 16 A 18


PTOS');

WRITELN;

WRITELN ('3 = CONSULTAR REGISTRO:NOTAS DE 18 A 20 PTOS');

WRITELN;

WRITELN (' 4 = SALIDA');

WRITELN;

WRITELN ('POR FAVOR SELECCIONA UNA OPCION: ');

END ;
begin

repeat

clrscr;

MENU;

Read (opcion);

CASE opcion OF

'1': Ingreso;

'2': ConsultaMenor18;

'3': ConsultaMenor20;

end;

until (opcion='4');

Read;

End.
PRUEBA Y VERIFICACIÓN:
En esta etapa se verifica el sistema, para la realización de la prueba, y su
control y ajuste.

PRESENTACIÓN:
Se muestra los comentarios de cada módulo en cuestión. Para describir
cada procedimiento en función.
DETERMINACION DE ROBUSTEZ DEL ALGORITMO:
El sistema presenta validaciones de robustez lo que permite validar los
registros agregados
El algoritmo tienes prueba de robustez en el procedimiento del menú
begin
repeat
clrscr;
MENU;
readln(opcion);
CASE opcion OF
'1': Ingreso;
'2': ConsultaMenor18;
'3': ConsultaMenor20;

end;
until (opcion='4');
Readln

En este algoritmo se demuestra que en caso de ingresar un numero distinto


a 1,2,3 se sale del sistema
Además existe información, de validación de los registros la cual funciona
como un validador de números que antes eran de tipo texto y los convierte
a enteros.
function ValorEntero(texto: string): integer; {Funcion para Calcular
enteros}
var
valor, codigoDeError: integer;
begin
valor := 0;
val(texto, valor, codigoDeError);
ValorEntero := valor;
end;

FUNCION PARA IMPEDIR NOTAS SUPERIORES A 20


write('Deme nota de Materia 3 : ',i,': '); { Se Pide Las Notas }
readLn(nota3[i]);
while ( nota3[i] < 0 ) or ( nota3[i] > 20 ) do
begin
CONCLUSIÓN

Luego de realizar este trabajo hemos visto como los algoritmos son una de
las herramientas más complejas y aplicables en el área de la informática y el
mundo de los computadores.
Pudimos comprobar que mientras más potente, completo y eficiente es
el computador o la aplicación que corre sobre el mismo más grande,
complejo y exacto es el algoritmo que utiliza.
Las técnicas de desarrollo de algoritmos nos permiten encontrar la mejor
solución a los problemas que se nos presentan y deben ser solucionados por
el computador, estas técnicas están orientadas para utilizarse en cada uno
de los niveles de complejidad y variedad o alternativas para las cuales se
aplican los algoritmos.
Un algoritmo es el conjunto de operaciones y procedimientos que deben
seguirse para resolver un problema, es por ellos que debemos estudiarlos y
conocerlos.
BIBLIOGRAFIA
Correa Uribe, Guillermo. "Desarrollo de Algoritmos y sus aplicaciones",
Editora MacGraw - Hill Inc. USA, III Edición. Abril/1992, Colombia. pp. 251.
Gálvez, Javier. Gonzáles, Juan. "Algorítmica, Análisis y Diseño de
Algoritmos", Editora RA-MA (Addison-Wesley Iberiamericana), II Edición.
Septiembre/1993, USA. pp 502.
Matías, Cristian "Manual de Informática Educativa", Editora Taller. 2da.
Edición. Julio/1999. Sto. Dgo. R.D. pp 260.
Sean, James A. "Análisis y Diseño de Sistemas de Información", Editora
MacGraw - Hill Inc. USA, 2 ta. Edición. Diciembre/1998, México. pp 941.
World Wide Wed:
[Link]
[Link]
[Link]

También podría gustarte