Vous êtes sur la page 1sur 18

SOLUCIN ANALITICA DEL PROBLEMA

La empresa de productos lcteos Vida y Salud, se ha dado la tarea de la


elaboracin de un sistema automatizado donde se registren los datos
resultantes de la aplicacin de las encuestas y que el mismo arroje los
resultados obtenidos en forma clara y precisa.
DIALOGO
El problema consiste en elaborar un sistema automatizado donde se
registren los datos resultantes de la aplicacin de las encuestas y que el
mismo arroje los resultados obtenidos en forma clara y precisa.
Men mantenimiento (Para opciones de registro y actualizacin de los datos
de cada estudiante) con las opciones siguientes: Incluir, Consultar,
Modificar, eliminar, Reporte y Salida.
Datos de entrada: se toma como entrada.
Descripcin del Producto.
Total de Personas Encuestadas
Siglas correspondientes al Producto.
Estrato SocioEconmico.
Edad.
Sexo.
Fecha de la Muestra Estadstica
Cantidad de personas que eligen el producto.
Proceso: se validan los datos de entrada, de manera que solo se graban los
datos validos segn el criterio preestablecido. Se diseara un programa en
turbo pascal 7.0 para usando arreglos de registros, se graben y muestren
los resultados requeridos.
Datos de salida: men que permita incluir, consultar, modificar, eliminar,
y salir del sistema.
Un men que permita ordenar el tipo de registro de la muestra por tipo de
producto.
Men de opcin de reporte que genera un cuadro de resumen que presenta
la siguiente informacin estadstica:
Cantidad de personas pertenecientes al grupo: Edad Juvenil, Sexo
Femenino, clase A.
Cantidad de personas pertenecientes al grupo: Edad Juvenil, Sexo
Masculino clase B.
Cantidad de personas pertenecientes al grupo: Edad Juvenil, Sexo
Femenino, clase C.
Cantidad de personas pertenecientes al grupo: Adultos, Sexo
Femenino, clase A.

Cantidad de personas que prefieren al grupo: Adultos, Sexo


Masculino, clase A.

Cantidad de personas que prefieren al grupo: Adultos, Sexo


Femenino, clase B.

Cantidad de personas pertenecientes


Masculino clase C.
Cantidad de personas pertenecientes
Femenino, clase C.
Cantidad de personas pertenecientes al
Femenino, clase A.
Cantidad de personas pertenecientes al
Masculino clase B.
Cantidad de personas pertenecientes al
Femenino, clase C.

Etapa 2: especificaciones.

al grupo: Adultos, Sexo


al grupo: Adultos, Sexo
grupo: Adulto Mayor, Sexo
grupo: Adulto Mayor, Sexo
grupo: Adulto Mayor, Sexo

Pre-condiciones: tipo del Producto. Criterio de validez. No puede tener


nmeros al principio y al final. Ej 1Leche Descremada (LD) y Leche
Descremada. (LD)1.
Cantidad de personas pertenecientes al grupo: Edad Juvenil, Sexo Femenino,
clase A. criterio de validez: no puede ser letras.
Cantidad de personas pertenecientes al grupo: Edad Juvenil, Sexo
Masculino clase B. criterio de validez: no puede ser letras.
Cantidad de personas pertenecientes al grupo: Edad Juvenil, Sexo Femenino,
clase C. criterio de validez: no puede ser letras.
Cantidad de personas pertenecientes al grupo: Adultos, Sexo Femenino,
clase A. criterio de validez: no puede ser letras
Cantidad de personas que prefieren al grupo: Adultos, Sexo Masculino,
clase
A. criterio de validez: no puede ser letras
Cantidad de personas que prefieren al grupo: Adultos, Sexo Femenino, clase
B. criterio de validez: no puede ser letras
Cantidad de personas pertenecientes al grupo: Adultos, Sexo Masculino
clase C.
Criterio de validez: no puede ser letras
Cantidad de personas pertenecientes al grupo: Adultos, Sexo Femenino,
clase C. criterio de validez: no puede ser letras.
Cantidad de personas pertenecientes al grupo: Adulto Mayor, Sexo
Femenino, clase A. criterio de validez: no puede ser letras
Cantidad de personas pertenecientes al grupo: Adulto Mayor, Sexo
Masculino clase B. criterio de validez: no puede ser letras
Cantidad de personas pertenecientes al grupo: Adulto Mayor, Sexo
Femenino, clase C. criterio de validez: no puede ser letras.

Post-condiciones:
Entradas datos vlidos. Solo los datos se graban.
Entradas reporte estadstico. Aparecen un cuadro de resumen de
la informacin estadstico.

Etapa 3: la particin.
El problema global se dividir en base a las opciones del men principal y
submens:

Ingresar
Consultar
Modificar
Eliminar
Salir del men principal
Emitir reporte informacin estadstico.

Cada una de estas opciones, incluyendo los mens, es diseada en base a


los procedimientos, que responden al concepto de la programacin
estructurada.
1. Ingresar (por primera vez y subsiguientes): se leer la Descripcin
del Producto que se ingresar luego total de personas encuestadas,
siglas correspondientes al producto, extracto socio-econmico,
edad, sexo, fecha de muestra y cantidad de personas que eligen el
producto.
2. Modifica (un tipo de producto): se pregunta producto desea
modificar ingresando con precisin la descripcin del producto.
3. Eliminar (borrar datos del sistema).
4. Salida del sistema: el programa finaliza y se cierra la ventana
respectiva, volviendo al men principal.
5. Ordenar: el registro de la muestra por tipo de producto.
6. Reporte estadstico: referente a la encuesta aplicada al producto
leche descremada (LD).
Etapa 4: definicin de abstracciones
En turbo pascal 7.0 se utilizan los siguientes comandos:
Lectura (read, readnl) y escritura(write, writeln) de datos.
Limpieza de pantalla (clscr), ubicacin del cursor (gotoxy), leer una tecla
cualquiera (readkey).
Ciclos repetitivos como mientras_hacer (while..do).
Ciclos selectivos como si _ entonces si-no (ifthenelse) se ejecuta si la
condicin a que hace referencia el si es verdadero.
Etapa 6:
Esta etapa corresponde al objetivo 7.

Etapa 7: presentacin.
Los comentarios se aaden entre llaves []. Esto se aade normalmente al
seudocdigo del programa en su realizacin (objetivo 6 y 8).

Objetivo 6: programacin estructurada.


Declaracin de datos y tipos.

Algoritmo en seudocdigo.
Programa producto_lcteos.
Comienzo [declaracin de las variables]
Max: 200;
Productos: array[1..4] of string[2] = ('LD','LE','YG','HE');
estratos: array['A'..'C'] of string[3] = ('CLA','CLB','CLC');
edades : array[1..3] of string[3] = ('EJ','AD','ADM');
sexo : array[1..2] of char = ('F','M');
tipo
datosreg = record
total : integer;
eligen : integer;
fin;
datosencuesta = record
prod : string[2];
sigl : string[3];
estr : string[3];
sex : char;
fech : string[12];
fin;
regfinal = record
datoencu : array[1..max] of datosencuesta;
regd : datosreg;
fin;
var
encut : regfinal;
cont : integer;

Procedimiento incluir datos [validacin de datos]


var
[Declaracin de variables]
tec:char;
di,me: string [2;
repetir
borrar pantalla;
escribir ('***** Datos Encuestado *****');
with da do
begin
escribir (elija el producto);
escribir(1= leche descremada);
escribir(2= leche entera);
escribir(3= yogur);

escribir(4= helados);
repetir
tec := readkey;
until tec in['1','2','3','4'];
case tec of
'1' : prod := copy(Productos[1],1,2);
'2' : prod := copy(Productos[2],1,2);
'3' : prod := copy(Productos[3],1,2);
'4' : prod := copy(Productos[4],1,2);
fin
borrar pantalla;
escribir('***** Datos Encuestado *****');
escribir('<< Elija Estratos Socio-econmicos >>');
escribir('A = Clase Alta y Media Alta');
escribir('B = Clase Media Tpica');
escribir('C = Clase Media Baja');
repetir
tec := upcase(readkey);
until tec in['A','B','C'];
case tec of
'A' : sigl := copy(estratos['A'],1,3);
'B' : sigl := copy(estratos['B'],1,3);
'C' : sigl := copy(estratos['C'],1,3);
Fin;
repetir
escribir('***** Datos Encuestado *****');
escribir('<< Elija Edad >>');
escribir('J = Juvenil');
escribir('A = Adulto');
escribir('M = Adulto Mayor');
repetir
tec := upcase(readkey);
until tec in['J','A','M'];
case tec of
'J' : estr := copy(edades[1],1,2);
'A' : estr := copy(edades[2],1,2);
'M' : estr := copy(edades[3],1,3);
fin;
borrar pantalla;
escribir('***** Datos Encuestado *****');
escribir('<< Elija Sexo >>');
escribir('M = Masculino');
escribir('F = Femenino');
repetir
tec := upcase(readkey);
until tec in['M','F'];
case tec of

'M' : estr := copy(sexo[1],1,1);


'F' : estr := copy(sexo[2],1,1);
fin;
borrar pantalla;
escribir('***** Datos Encuestado *****');
fin;
encut.datoencu[cont] := da;
cont := cont + 1;
si cont > 200 entonce
cont := 200;
escribir('Desea Entrar Mas Encuestados [S/N]');
repetir
tec := upcase(readkey);
until tec in['S','N'];
until tec = 'N';
encut.regd.total := cont - 1;
clrscr;
escribir('***** Datos Encuestado *****');
escribir('El Prodecto Encuestado Fue');
escribir('1 = Leche Descremada');
escribir('2 = Leche Entera');
escribir('3 = Yogur');
escribir('4 = Helados');
repetir
tec := readkey;
until tec in['1','2','3','4'];
case tec of
'1' : encut.regd.eligen := 1;
'2' : encut.regd.eligen := 2;
'3' : encut.regd.eligen := 3;
'4' : encut.regd.eligen := 4;
fin;
fin;
procedimiento de ordenar;[ ordenar el registro de la muestra por
tipo de producto].
var
tempo : datosencuesta;
h, t : integer;
begin
for t := 1 to cont - 1 do
for h := cont - 1 downto t + 1 do
si encut.datoencu[t].prod > encut.datoencu[h].prod entonce
begin
tempo := encut.datoencu[t];
encut.datoencu[t] := encut.datoencu[h];
encut.datoencu[h] := tempo;

fin;
fin;
procedimiento de consulta;
var
consu : string[2];
h : integer;
te : char;
begin
borrar pantalla;
ir_xy(10,2);escribir('*** Consultas ***');
ir_xy(2,4);escribir('<<< Elija Sigla >>>');
ir_xy(2,6);escribir(' 1 = LD');
ir_xy(2,7);escribir(' 2 = LE');
ir_xy(2,8);escribir(' 3 = YG');
ir_xy(2,9);escribir(' 4 = HE');
repetir
te := readkey;
until te in['1','2','3','4'];
case te of
'1' : consu := copy(Productos[1],1,2);
'2' : consu := copy(Productos[2],1,2);
'3' : consu := copy(Productos[3],1,2);
'4' : consu := copy(Productos[4],1,2);
fin;
borrar;
for h := 1 to cont - 1 do
begin
si encut.datoencu[h].prod = consu entonce
begin
escribir('*** Consultas ***');
escribir;
escribir(encut.datoencu[h].prod);
escribir(encut.datoencu[h].sigl);
escribir(encut.datoencu[h].estr);
escribir(encut.datoencu[h].sex);
escribir(encut.datoencu[h].fech);
escribir;
escribir(' Pulse Una Tecla');
borrar pantalla;
fin;
fin;
fin;
procedimiento modificar;
var
tes : char;

nume, u, w : integer;
modi : array[1..50] of integer;
tomo : string[2];
cambi : string[12];
begin
borrar pantalla;
ir_xy(10,2);escribir('***** Modificar Datos *****');
ir_xy(2,4);escribir('Poducto 1 = LD');
ir_xy(2,5);escribir('Poducto 2 = LE');
ir_xy(2,6);escribir('Poducto 3 = YG');
ir_xy(2,7);escribir('Poducto 4 = HE');
ir_xy(2,9);escribir('>>> Elija Producto A Modificar <<<');
repetir
tes := readkey;
until tes in['1','2','3','4'];
case tes of
'1' : tomo := 'LD';
'2' : tomo := 'LE';
'3' : tomo := 'YG';
'4' : tomo := 'HE';
fin;
for w := 1 to cont - 1 do
si encut.datoencu[w].prod = tomo entonce
modi[w] := w;
borrar pantalla;
u := 1;
ir_xy(10,2);write('*** Productos Encontrados Son ***');
for w := 1 to cont - 1 do
begin
ir_xy(2,3 + u);write('N.',w,' = ',encut.datoencu[w].prod);
u := u + 1;
fin;
repetir
tes := readkey;
until (tes in['1'..char((u - 1) + 48)]) or (tes = #27);
borrar pantalla;
ir_xy(10,2);escribir('**** El Producto Selecionado Es ****');
ir_xy(2,4);escribir('N. 1 = ',encut.datoencu[ord(tes) - 48].prod);
ir_xy(2,5);escribir('N. 2 = ',encut.datoencu[ord(tes) - 48].sigl);
ir_xy(2,6);escribir('N, 3 = ',encut.datoencu[ord(tes) - 48].estr);
ir_xy(2,7);escribir('N. 4 = ',encut.datoencu[ord(tes) - 48].sex);
ir_xy(2,8);escribir('N. 5 = ',encut.datoencu[ord(tes) - 48].fech);
ir_xy(10,10);escribir('<<< Elija Dato De Modificacion >>>');
repetir
tes := readkey;
until tes in['1','2','3','4','5'];
borrar pantalla;

case tes of
'1' : begin ir_xy(2,4);escribir(encut.datoencu[ord(tes) - 48].prod);
nume := 1; fin;
'2' : begin ir_xy(2,4);escribir(encut.datoencu[ord(tes) - 48].sigl);
nume := 2; fin;
'3' : begin ir_xy(2,4);escribir(encut.datoencu[ord(tes) - 48].estr);
nume := 3; fin;
'4' : begin ir_xy(2,4);escribir(encut.datoencu[ord(tes) - 48].sex);
nume := 4; fin;
'5' : begin ir_xy(2,4);escribir(encut.datoencu[ord(tes) - 48].fech);
nume := 5; fin;
fin;
with encut.datoencu[ord(tes) - 48] do
begin
si nume = 1 entonce
begin
ir_xy(2,3);escribir('<< Elija Producto >>');
ir_xy(2,5);escribir ('1 = Leche Descremada');
ir_xy(2,6);escribir('2 = Leche Entera');
ir_xy(2,7);escribir ('3 = Yogur');
gotoxy(2,8);escribir('4 = Helados');
repetir
tes := readkey;
until tes in['1','2','3','4'];
case tes of
'1' : cambi := copy(Productos[1],1,2);
'2' : cambi := copy(Productos[2],1,2);
'3' : cambi := copy(Productos[3],1,2);
'4' : cambi := copy(Productos[4],1,2);
fin;
cambi[0] := chr(2);
fin;
si nume = 2 entonce
begin
ir_xy(2,3);escribir('<< Elija Estratos Socio-economicos >>');
ir_xy(2,5);escribir('A = Clase Alta y Media Alta');
ir_xy(2,6);escribir('B = Clase Media Tipica');
ir_xy(2,7);escribir('C = Clase Media Baja');
repetir
tes := upcase(readkey);
until tes in['A','B','C'];
case tes of
'A' : cambi := copy(estratos['A'],1,3);
'B' : cambi := copy(estratos['B'],1,3);
'C' : cambi := copy(estratos['C'],1,3);
fin;
fin;

si nume = 3 entonce
begin
ir_xy(2,3);escribir('<< Elija Edad >>');
ir_xy(2,5);escribir('J = Juvenil');
ir_xy(2,6);escribir('A = Adulto');
ir_xy(2,7);escribir('M = Adulto Mayor');
repetir
tes := upcase(readkey);
until tes in['J','A','M'];
case tes of
'J' : cambi := copy(edades[1],1,2);
'A' : cambi := copy(edades[2],1,2);
'M' : cambi := copy(edades[3],1,3);
fin;
cambi[0] := chr(3);
fin;
si nume = 4 entonce
begin
ir_xy(2,3);write('<< Elija Sexo >>');
ir_xy(2,5);write('M = Masculino');
ir_xy(2,6);write('F = Femenino');
repetir
tes := upcase(readkey);
until tes in['M','F'];
case tes of
'M' : cambi := copy(sexo[1],1,1);
'F' : cambi := copy(sexo[2],1,1);
fin;
cambi[0] := chr(1);
fin;
si nume = 5 entonce
begin
ir_xy(2,3);write('<< Entre Fecha >>');
ir_xy(2,5);write('Dia/Mes/Ao : ');
ir_xy(16,5);readln(cambi);
fin;
fin;
ir_xy(10,9);write('Acepta El Cambio [S/N]');
repetir
tes := upcase(readkey);
until tes in['S','N'];
si tes = 'S' entonce
begin
case nume of
1 : encut.datoencu[ord(tes) - 48].prod := copy(cambi,1,length(cambi));
2 : encut.datoencu[ord(tes) - 48].sigl := copy(cambi,1,length(cambi));
3 : encut.datoencu[ord(tes) - 48].estr := copy(cambi,1,length(cambi));

4 : encut.datoencu[ord(tes) - 48].sex := cambi[1];


5 : encut.datoencu[ord(tes) - 48].fech := copy(cambi,1,length(cambi));
fin;
fin;
fin;
procedure eliminar;
var
tes : char;
p, z : integer;
ele : string[2];
posi : array[1..200] of integer;
tempo : regfinal;
begin
borrar pantalla;
ir_xy(10,2);write('***** Eliminacion De Datos *****');
ir_xy(2,4);write('Poducto 1 = LD');
ir_xy(2,5);write('Poducto 2 = LE');
ir_xy(2,6);write('Poducto 3 = YG');
ir_xy(2,7);write('Poducto 4 = HE');
ir_xy(2,9);write('>>> Elija Producto A Eliminar <<<');
repetir
tes := readkey;
until tes in['1','2','3','4'];
case tes of
'1' : ele := 'LD';
'2' : ele := 'LE';
'3' : ele := 'YG';
'4' : ele := 'HE';
end;
p := 1;
for z := 1 to cont - 1 do
begin
si encut.datoencu[z].prod = ele entoce
begin
posi[p] := z;
p := p + 1;
fin;
fin;
borrar la pantalla;
ir_xy(10,2);write('**** Los Datos Encontrados Son ****');
for z := 1 to p - 1 do
begin
ir_xy(2,3 + z);write('N. ',z,' = ',encut.datoencu[posi[z]].prod);
fin;
ir_xy(10,(3 + z) + 2);write('??? Cual Desea Eliminar [Esc =
Ninguno] ???');

repetir
tes := readkey;
until (tes in['1'..chr(z + 48)]) or (tes = #27);
si tes in['1'..chr(z + 48)] entonce
begin
for z := 1 to cont - 1 do
begin
si z <> posi[ord(tes) - 48] entonce
begin
tempo.datoencu[p] := encut.datoencu[z];
p := p + 1;
fin;
fin;
for z := 1 to p - 1 do
begin
encut.datoencu[z] := tempo.datoencu[z];
fin;
cont := z;
fin;
fin;

procedimiento reporte;{PROCEDIMIENTO DE REPORTE}


var tec : char;
sal : boolean;
repo : array[1..3,1..5] of integer;
g, h : integer;
begin
g := 1;
h := 1;
sal := false;
fillchar(repo,sizeof(repo),0);
repetir
si encut.datoencu[h].prod = 'LD' entonce
begin
si encut.datoencu[h].estr = 'EJ' entonce
begin
si (encut.datoencu[h].sex = 'F') and
(encut.datoencu[h].sigl = estratos['A']) entonce
repo[1,1] := repo[1,1] + 1;
si (encut.datoencu[h].sex = 'M') and
(encut.datoencu[h].sigl = estratos['B']) entonce
repo[1,2] := repo[1,2] + 1;
si (encut.datoencu[h].sex = 'F') and
(encut.datoencu[h].sigl = estratos['C']) entonce
repo[1,3] := repo[1,3] + 1; end;
si encut.datoencu[h].estr ='AD' entonce

begin
si (encut.datoencu[h].sex = 'F') and
(encut.datoencu[h].sigl = estratos['A']) entonce
repo[2,1] := repo[2,1] + 1;
si (encut.datoencu[h].sex = 'M') and
(encut.datoencu[h].sigl = estratos['A']) entonce
repo[2,2] := repo[2,2] + 1;
si (encut.datoencu[h].sex = 'F') and
(encut.datoencu[h].sigl = estratos['B']) entonce
repo[2,3] := repo[2,3] + 1;
si (encut.datoencu[h].sex = 'M') and
(encut.datoencu[h].sigl = estratos['C']) entonce
repo[2,4] := repo[2,4] + 1;
si (encut.datoencu[h].sex = 'F') and
(encut.datoencu[h].sigl = estratos['C']) entonce
repo[2,5] := repo[2,5] + 1;
fin;
if encut.datoencu[h].estr = 'ADM' entonce
begin
si (encut.datoencu[h].sex = 'F') and
(encut.datoencu[h].sigl = estratos['A']) entonce
repo[3,1] := repo[3,1] + 1;
si (encut.datoencu[h].sex = 'M') and
(encut.datoencu[h].sigl = estratos['B']) entonce
repo[3,2] := repo[3,2] + 1;
si (encut.datoencu[h].sex = 'F') and
(encut.datoencu[h].sigl = estratos['C']) entonce
repo[3,3] := repo[3,3] + 1;
fin;
fin;
h := h + 1;
si h > cont - 1 entonce
sal := verdadero;
until sal = verdadero;
borrar pantalla;
ir_xy(10,2);
escribir('**** Reporte De ',Productos[1],' ****');
ir_xy(1,4);
escribir('EJ/F/A = ',repo[1,1]);
ir_xy(1,5);
escribir('EJ/M/B = ',repo[1,2]);
ir_xy(1,6);
escribir('EJ/F/C = ',repo[1,3]);
ir_xy(1,7);
escribir('');
ir_xy(1,8);
escribir('AD/F/A = ',repo[2,1]);

ir_xy(1,9);
escribir('AD/M/A = ',repo[2,2]);
ir_xy(1,10);
escribir('AD/F/B = ',repo[2,3]);
ir_xy(1,11);
escribir('AD/M/C = ',repo[2,4]);
ir_xy(1,12);
escribir('AD/F/C = ',repo[2,5]);
ir_xy(1,13);
escribir('');
ir_xy(1,14);
escribir('ADM/F/A = ',repo[3,1]);
ir_xy(1,15);
escribir('ADM/M/B = ',repo[3,2]);
ir_xy(1,16);
escribir('ADM/F/C = ',repo[3,3]);
ir_xy(10,18);
escribir('<<<< Pulse Una Tecla >>>>');
readkey;
fin;
procedimiento menu; {PROCEDIMIENTO DE MENU PRINCIPAL}
var
tecla : char;
sal : boolean;
begin
sal := false;
repeat
borrar pantalla;
textcolor(3);
ir_xy(20,3);
escribir('*** Menu General ***');
ir_xy(20,5);
escribir('[I]ncluir');
ir_xy(20,6);
escribir('[C]consultar');
ir_xy(20,7);
escribir('[M]modificar');
ir_xy(20,8);
escribir('[E]liminar');
ir_xy(20,9);
escribir('[R]reportes');
ir_xy(20,10);
escribir('[S]salir del Sistema');
textcolor(10);
ir_xy(21,5);
escribir('I');

ir_xy(21,6);
escribir('C');
ir_xy(21,7);
escribir('M');
ir_xy(21,8);
escribir('E');
ir_xy(21,9);
escrbir('R');
ir_xy(21,10);
escribir('S');
textcolor(7);
ir_xy(20,12);
escribir('<<< Elija Opcion >>>');
repetir
tecla := upcase(readkey);
until tecla in['I','C','M','E','R','S'];
borrar pantalla;
case tecla of
'I' : begin
incluir(encut.datoencu[cont]);
ordenaarray;
fin;
'C' : consulta;
'M' : modificar;
'E' : eliminar;
'R' : reporte;
'S' : sal := verdadero;
fin;
until sal = verdadero;
fin;
begin
cont := 1;
menu;
fin.

Objetivo 7 prueba de robustez y verificacin


Recordemos los conceptos de correccin, robustez, amigabilidad.
Un programa es correcto si, para cualquier entrada que satisfagan la
precondicin, termina generando una salida que satisface sus pos
condiciones.
Se dice que un programa es robusto si rene las dos condiciones
siguientes:
Es correcto

Para todas las entradas que no satisfacen las precondiciones, el


programa termina y produce una salida que refleja el hecho de que
ha ocurrido un error en la entrada.
Se dice que un programa es amigable si rene los requisitos siguientes:
Es correcto
Para todas que no se ajusten a las precondiciones, el programa
indica el tipo de error de entrada y concede al usuario la oportunidad
de corregirlo y continuar.
Para verificar la correccin del programa, previamente se escribe en
lenguaje PASCAL y con una tabla que estn dentro de las precondiciones. En
este caso, se demuestra que el programa es correcto.
En el enunciado del trabajo practico se muestra la necesidad de validar los
datos de entrada, por lo tanto, en la elaboracin del seudocdigo se toma
en cuenta los criterios de validez.
El algoritmo demuestra ser correcto, debido a los rangos de validez
numrica, es robusto, ya que detecta datos fuera del rango, y muestra una
informacin al usuario que lo hace amigable.

Objetivo 8 programa codificado.


El lenguaje est escrito en lenguaje TURBO PASCAL versin 7.0 y se entrega
grabado en un cd contentivo de los archivos necesarios para su correcto
funcionamiento.

Vous aimerez peut-être aussi