Академический Документы
Профессиональный Документы
Культура Документы
VICERRECTORADO ACADEMICO
REA: INGENIERA
CARRERA: INGENIERIA INDUSTRIAL
TRABAJO PRCTICO
ASIGNATURA: COMPUTACIN I
CODIGO: 323
OBJETIVOS: 5,6, 7 Y 8.
LAPSO: 2014-2
NUMERO DE ORIGINALES:
Introduccin
Incluir
Consultar
Modificar
Eliminar
Reportes
Salir del sistema
{1,3} y es una
variable de tipo c
(Sexo1, Sexo n) ^n>^ i {1,2}: Sexo
char
(Edad 1, Edad n) ^n>^ i {1,3}: Edad i {1,3} y es una variable de tipo
string
Los productos con sus correspondientes siglas son los siguientes:
Leche descremada (LD)
Leche entera (LE)
Yogurt (YG)
Helado (HE)
Post-condiciones
Post-entrada: ^ salida=
(Producto 1, producto n)^n>^ i {1,4}: Producto i {1,4}
(Clase 1, Clase n) ^n>^ i {1,3}: Clase i {1,3}
(Sexo1, Sexo n) ^n>^ i {1,2}: Sexo i {1,2}
(Edad 1, Edad n) ^n>^ i {1,3}: Edad i {1,3}
Etapa III. La Particin
El programa puede dividirse en 6 renglones que a continuacin se presentan:
1.
2.
3.
4.
5.
6.
7.
Edad
Sexo
Estrato Social
ESCRIBIR (1- LECHE DESCREMADA (LD) 2. LECHE ENTERA (LD) 3- YOGURT (YG) 4- HELADO (HE))
ESCRIBIR (TIPO DE PRODUCTO)
REPETIR
LEER (TIPOPROD)
HASTA TIPOPROD IN [1,2,3,4]
SI TIPOPROD=1 ENTONCES
PRODUCTO [N]. TIPOPROD=1- LECHE DESCREMADA (LD)
FINSI
SI TIPOPROD=2 ENTONCES
PRODUCTO [N]. TIPOPROD=2- LECHE ENTERA (LE)
FINSI
SI TIPOPROD=3 ENTONCES
PRODUCTO [N]. TIPOPROD=3- YOGURT (YG)
FINSI
SI TIPOPROD=4 ENTONCES
PRODUCTO [N]. TIPOPROO=4- HELA DO (HE)
FINSI
ESCRIBIR (PRODUCTO [N]. TIPOPROD)
ESCRIBIR (SEXO)
REPETIR
LEER (PRODUCTO [N], SEXO)
PRODUCTO [N].SEXO= UPCASE (PRODUCTO [N].SEXO)
HASTA PRODUCTO [N].SEXO IN [F,M]
FINSI
ESCRIBIR (ESTA SEGURO DE REALIZAR LOS CAMBIOS? [S/N])
REPETIR
LEER (RESP)
SI RESP= N ENTONCES
REGRESAR AL MENU
SI RESP= S ENTONCES
ESCRIBIR (DESEA MODIFICAR OTRO REGISTRO? [S/N])
REPETIR
LEER (RESP)
RESP=UPCASE (RESP)
HASTA RESP IN [S,N]
FIN MIENTRAS
END
PROCEDIMIENTO ELIMINAR PRODUCTOS
INICIO
RESP= S
MIENTRAS RESP= S HACER
ESCRIBIR (PRODUCTOS LACTEOS VIDA Y SALUD)
ESCRIBIR (ELIMINACION DE PRODUCTOS)
ESCRIBIR (FECHA DE LA ENCUESTA)
REPETIR
LEER (FECHA)
HASTA VALIDAR FECHA (FECHA)
ESCRIBIR (TIPO DE PRODUCTO)
REPETIR
LEER (PRODUCTO)
VAL (PRODUCTO, VALOR, SALIDA)
HASTA PRODUCTO<>
P=BUSCARPRODUCTOS (PRODUCTO, FECHA)
SI P=0 ENTONCES
ESCRIBIR (NO EXISTE ESTE REGISTRO)
SINO
VISUALIZAR PRODUCTO
ESCRIBIR (DESEA ELIMINAR ESTE REGISTRO?)
REPETIR
LEER (RESP)
RESP=UPCASE (RESP)
HASTA RESP IN [S,N]
SI RESP= S ENTONCES
PRODUCTO [N]. FECHA=;
PRODUCTO [N].ESTRATO=;
PRODUCTO [N].EDAD =;
PRODUCTO [N].SEXO=;
FINSI
FIN SI
NROPERSONAS : STRING[2];
ESTRATO
: STRING[20];
TIPOPRODUCTO : STRING[20];
EDAD : STRING;
SEXO : CHAR;
END;
VAR
PRODUCTOS : ARRAY[1..200] OF REGISTROS;
SIGLAS : STRING[7];
FECHA : STRING[10];
N,P : INTEGER;
OPCION,SALIDA : INTEGER;
VALOR : LONGINT;
FUNCTION BUSCARPRODUCTOS(pSIGLAS,pFECHA: STRING): INTEGER;
VAR
POS
: INTEGER;
ENCONTRADO : BOOLEAN;
BEGIN
ENCONTRADO:= FALSE;
FOR POS:=1 TO N DO
BEGIN
IF (PRODUCTOS[POS].SIGLASPRODUCTO=pSIGLA) AND
((PRODUCTOS[POS].FECHAREGISTRO=pFECHA) OR (pFECHA='00/00/0000')) THEN
BEGIN
ENCONTRADO:=TRUE;
BREAK;
END;
END;
IF ENCONTRADO THEN
BUSCARPRODUCTOS:=POS
BUSCARPRODUCTOS:=0;
END;
FUNCTION BUSCARESTRATO(pESTRATO: STRING): BOOLEAN;
VAR
POS
: INTEGER;
ENCONTRADO : BOOLEAN;
BEGIN
ENCONTRADO:= FALSE;
FOR POS:=1 TO N DO
BEGIN
IF (PRODUCTOS[POS].ESTRATO=pESTRATO) THEN
BEGIN
ENCONTRADO:=TRUE;
BREAK;
END;
END;
BUSCARESTRATO:=ENCONTRADO;
END;
FUNCTION BUSCAREDAD(pEDAD: STRING): BOOLEAN;
VAR
POS
: INTEGER;
ENCONTRADO : BOOLEAN;
BEGIN
ENCONTRADO:= FALSE;
FOR POS:=1 TO N DO
BEGIN
IF (PRODUCTOS[POS].EDAD=pEDAD) THEN
BEGIN
ENCONTRADO:=TRUE;
BREAK;
END;
END;
BUSCAREDAD:=ENCONTRADO;
END;
FUNCTION BUSCARSEXO(pSEXO: STRING): BOOLEAN;
VAR
POS
: INTEGER;
ENCONTRADO : BOOLEAN;
BEGIN
ENCONTRADO:= FALSE;
FOR POS:=1 TO N DO
BEGIN
IF (PRODUCTOS[POS].SEXO=pSEXO) THEN
BEGIN
ENCONTRADO:=TRUE;
BREAK;
END;
END;
BUSCARSEXO:=ENCONTRADO;
END;
FUNCTION VALIDARFECHA(pFECHA: STRING): BOOLEAN;
VAR
CHR,LONGITUD: INTEGER;
BEGIN
CHR:=0;
LONGITUD:=LENGTH(pFECHA);
VALIDARFECHA:=TRUE;
IF LONGITUD=10 THEN
BEGIN
REPEAt
CHR:=CHR+1;
IF NOT (pFECHA[CHR] IN ['0'..'9','/']) THEN
BEGIN
VALIDARFECHA:=FALSE;
BREAK
END;
UNTIL CHR=LONGITUD;
END
BEGIN
VALIDARFECHA:=TRUE;
END;
END;
FUNCTION FECHAMAYOR(FECHA1,FECHA2: STRING):BOOLEAN;
VAR
RESULTADO: INTEGER;
DIA1,MES1,ANO1,DIA2,MES2,ANO2,S: WORD;
BEGIN
VAL(COPY(FECHA1,1,2),DIA1,RESULTADO);
VAL(COPY(FECHA1,4,2),MES1,RESULTADO);
VAL(COPY(FECHA1,7,4),ANO1,RESULTADO);
VAL(COPY(FECHA2,1,2),DIA2,RESULTADO);
VAL(COPY(FECHA2,4,2),MES2,RESULTADO);
VAL(COPY(FECHA2,7,4),ANO2,RESULTADO);
FECHAMAYOR:=FALSE;
IF ANO2>ANO1 THEN
FECHAMAYOR:=TRUE;
IF ANO2=ANO1 THEN
BEGIN
IF MES2>MES1 THEN
FECHAMAYOR:=TRUE;
IF MES2=MES1 THEN
BEGIN
IF DIA2>DIA1 THEN
FECHAMAYOR:=TRUE;
END;
END;
END;
PROCEDURE ORDENARPRODUCTOSSIGLAS;
VAR
I,J : INTEGER;
AUXS: STRING;
AUXN: INTEGER;
BEGIN
FOR I:=1 TO N-1 DO
BEGIN
FOR J:=I+1 TO N DO
BEGIN
IF PRODUCTOS[I].SIGLASPRODUCTO>PRODUCTOS[J].SIGLASPRODUCTO THEN
BEGIN
AUXS:=PRODUCTOS[I].SIGLASPRODUCTO;
PRODUCTOS[I].SIGLASPRODUCTO:=PRODUCTOS[J].SIGLASPRODUCTO;
PRODUCTOS[J].SIGLASPRODUCTO:=AUXS;
AUXS:=PRODUCTOS[I].FECHAREGISTRO;
PRODUCTOSI].FECHAREGISTRO:=PRODUCTOS[J].FECHAREGISTRO;
PRODUCTOS[J].FECHAREGISTRO:=AUXS;
AUXS:=PRODUCTOS[I].NROPERSONAS;
PRODUCTOS[I].NROPERSONAS:=PRODUCTOS[J].NROPERSONAS;
PRODUCTOS[J].NROPERSONAS:=AUXS;
AUXS:=PRODUCTOS[I].ESTRATO;
PRODUCTOS[I].ESTRATO:=PRODUCTOS[J].ESTRATO;
PRODUCTOS[J].ESTRATO:=AUXS;
AUXS:=PRODUCTOS[I].TIPOPRODUCTO;
PRODUCTOS[I].TIPOPRODUCTO:=PRODUCTOS[J].TIPOPRODUCTO;
PRODUCTOS[J].TIPOPRODUCTO:=AUXS;
AUXS:=PRODUCTOS[I].EDAD;
PRODUCTOS[I].EDAD:=PRODUCTOS[J].EDAD;
PRODUCTOS[J].EDAD:=AUXS;
AUXC:=PRODUCTOS[I].SEXO;
PRODUCTOS[I].SEXO:=PRODUCTOS[J].SEXO;
PRODUCTOS[J].SEXO:=AUXS;
END;
END;
END;
END;
PROCEDURE ORDENARPRODUCTOSFECHA;
VAR
I,J : INTEGER;
AUXS: STRING;
AUXN: INTEGER;
BEGIN
FOR I:=1 TO N-1 DO
BEGIN
FOR J:=I+1 TO N DO
BEGIN
IF NOT FECHAMAYOR(PRODUCTOS[I].FECHAREGISTRO,PRODUCTOS[J].FECHAREGISTRO) THEN
BEGIN
AUXS:=PRODUCTOS[I].SIGLAPRODUCTO;
PRODUCTOS[I].SIGLASPRODUCTO:=PRODUCTOS[J].SIGLASPRODUCTO;
PRODUCTOS[J].SIGLASPRODUCTO:=AUXS;
AUXS:=PRODUCTOS[I].FECHAREGISTRO;
PRODUCTOS[I].FECHAREGISTRO:=PRODUCTOS[J].FECHAREGISTRO;
PRODUCTOS[J].FECHAREGISTRO:=AUXS;
AUXS:=PRODUCTOS[I].NROPERSONAS;
PRODUCTOS[I].NROPERSONAS:=PRODUCTOS[J].NROPERSONAS;
PRODUCTOS[J].NROPERSONAS:=AUXS;
AUXS:=PRODUCTOS[I].ESTRATO;
PRODUCTOS[I].ESTRATO:=PRODUCTOS[J].ESTRATO;
PRODUCTOS[J].ESTRATO:=AUXS;
AUXS:=PRODUCTOS[I].TIPOVEHICULO;
PRODUCTOS[I].TIPOPRODUCTO:=PRODUCTOS[J].TIPOPRODUCTOS;
PRODUCTOS[J].TIPOPRODUCTO:=AUXS;
AUXS:=PRODUCTOS[I].EDAD;
PRODUCTOS[I].EDAD:=PRODUCTOS[J].EDAD;
PRODUCTOS[J].EDAD:=AUXS;
AUXC:=PRODUCTOS[I].SEXO;
PRODUCTOS[I].SEXO:=PRODUCTOS[J].SEXO;
PRODUCTOS[J].SEXO:=AUXS;
END;
END;
END;
END;
PROCEDURE VISUALIZARPRODUCTOS;
BEGIN
GOTOXY(10,12);WRITELN('NUMERO DE PERSONAS.............: ',PRODUCTOS[P].NROPERSONAS);
GOTOXY(10,14);WRITELN('ESTRATO........................: ',PRODUCTOS[P].ESTRATO);
GOTOXY(10,16);WRITELN('TIPO DE PRODUCTO...............: ',PRODUCTOS[P].TIPOPRODUCTO);
GOTOXY(10,18);WRITELN('EDAD...........................: ',PRODUCTOS[P].EDAD);
GOTOXY(10,20);WRITELN('SEXO...........................: ',PRODUCTOS[P].SEXO);
END;
PROCEDURE INCLUIRPRODUCTOS;
VAR
I: INTEGER;
TIPOPROD: CHAR;
TIPOESTRATO:CHAR;
TIPOEDAD:CHAR;
RESP: CHAR;
BEGIN
RESP:='S';
WHILE RESP='S' DO
BEGIN
CLRSCR;
GOTOXY(18,2);WRITELN('PRODUCTOS LACTEOS "VIDA Y SALUD"');
GOTOXY(31,5);WRITELN('INCLUSION DE PRODUCTOS');
GOTOXY(10,8);WRITELN('FECHA DE LA ENCUESTA: ');
REPEAT
GOTOXY(43,8);WRITE('
');
GOTOXY(43,8);READLN(FECHA);
UNTIL VALIDARFECHA(FECHA);
GOTOXY(10,10);WRITELN('SIGLAS DEL PRODUCTO: ');
REPEAT
GOTOXY(43,10);WRITELN('
');
GOTOXY(43,10);READLN(SIGLAS);
UNTIL SIGLAS<>'';
P:=BUSCARPRODUCTOS(SIGLAS,FECHA);
IF P=0 THEN
BEGIN
N:=N+1;
PRODUCTOS[N].SIGLASPRODUCTO:=SIGLAS;
PRODUCTOS[N].FECHAREGISTRO:=FECHA;
GOTOXY(64,5);WRITELN('PRODUCTO Nro: ',N);
GOTOXY(10,12);WRITELN('NUMERO DE PERSONAS: ');
REPEAT
GOTOXY(43,12);WRITELN('
');
GOTOXY(43,12);READLN(PRODUCTOS[N].NROPERSONAS);
VAL(PRODUCTOS[N].NROPERSONAS,VALOR,SALIDA);
UNTIL SALIDA=0;
GOTOXY(13,23);WRITELN('1-CLASE ALTA (CLA) 2-CLASE MEDIA-TIPICA (CLB) 3-CLASE MEDIA-BAJA
(CLC)');
GOTOXY(10,14);WRITELN('ESTRATO:');
REPEAT
GOTOXY(43,14);WRITELN('
');
GOTOXY(43,14);READLN(TIPOESTRATO);
UNTIL TIPOESTRATO IN ['1','2','3'];
GOTOXY(13,23);WRITELN('
IF TIPOESTRATO='1' THEN
PRODUCTO[N].TIPOESTRATO:='1-CLASE ALTA (CLA)';
IF TIPOESTRATO='2' THEN
');
GOTOXY(38,6);WRITELN('
');
GOTOXY(38,6);READLN(SIGLAS);
UNTIL SIGLAS<>'';
P:=BUSCARPRODUCTOS(SIGLAS,'00/00/0000');
IF P=0 THEN
BEGIN
GOTOXY(32,12);WRITELN('REGISTRO INEXISTENTE');
END
ELSE
FOR P:=5 TO 75 DO
BEGIN
GOTOXY(3+P,11);WRITE('-');
END;
P:=1;L:=0;
WHILE P<=N DO
BEGIN
IF PRODUCTOS[P].SIGLASPRODUCTOS=SIGLAS THEN
BEGIN
L:=L+1;
GOTOXY(10,11+L);WRITELN(PRODUCTOS[P].FECHAREGISTRO);
GOTOXY(23,11+L);WRITELN(PRODUCTOS[P].ESTRATO);
GOTOXY(43,11+L);WRITELN(PRODUCTOS[P].NROPERSONAS);
GOTOXY(52,11+L);WRITELN(PRODUCTOS[P].TIPOPRODUCTO);
GOTOXY(62,11+L);WRITELN(PRODUCTOS[P].EDAD);
GOTOXY(75,11+L);WRITELN(PRODUCTOS[P].SEXO);
END;
P:=P+1;
END;
END;
GOTOXY(21,24);WRITELN('DESEA CONSULTAR OTRO PRODUCTO? [S/N]: ');
REPEAT
GOTOXY(59,24);WRITE(' ');
GOTOXY(59,24);READLN(RESP);
RESP:=UPCASE(RESP);
UNTIL RESP IN ['S','N'];
END;
END;
PROCEDURE MODIFICARPRODUCTOS;
VAR
TIPOPROD: CHAR;
RESP: CHAR;
BEGIN
RESP:='S';
WHILE RESP='S' DO
BEGIN
CLRSCR;
GOTOXY(18,2);WRITELN('PRODUCTOS LACTEOS "VIDA Y SALUD"');
GOTOXY(29,5);WRITELN('MODIFICACION DE PRODUCTOS');
GOTOXY(10,8);WRITELN('FECHA DE ENCUESTA: ');
REPEAT
GOTOXY(43,8);WRITE('
');
GOTOXY(43,8);READLN(FECHA);
UNTIL VALIDARFECHA(FECHA);
GOTOXY(10,10);WRITELN('SIGLAS DEL PRODUCTO: ');
REPEAT
GOTOXY(43,10);WRITELN('
');
GOTOXY(43,10);READLN(SIGLAS);
VAL(SIGLAS,VALOR,SALIDA);
UNTIL SIGLAS<>'';
P:=BUSCARPRODUTOS(SIGLAS,FECHA);
IF P=0 THEN
BEGIN
GOTOXY(32,15);WRITELN('REGISTRO INEXISTENTE');
END
ELSE
BEGIN
VISUALIZARPRODUCTOS;
GOTOXY(64,5);WRITELN('PRODUCTO Nro: ',P);
BEGIN
{PROGRAMA PRINCIPAL}
N:=0;
OPCION:=0;
WHILE OPCION<>5 DO
BEGIN
CLRSCR;
GOTOXY(18,2);WRITELN('PRODUCTOS LACTEOS "VIDA Y SALUD"');
GOTOXY(38,5);WRITELN('M E N U');
GOTOXY(10,8);WRITELN('1.- INCLUIR PRODUCTOS');
GOTOXY(10,14);WRITELN('2.- CONSULTAR PRODUCTOS');
GOTOXY(10,10);WRITELN('3.- MODIFICAR PRODUCTOS');
GOTOXY(10,12);WRITELN('4.- ELIMINAR PRODUCTOS');
GOTOXY(10,16);WRITELN('5.- SALIDA');
GOTOXY(29,23);WRITELN('SELECCIONE SU OPCION:');
REPEAT
GOTOXY(51,23);WRITELN(' ');
GOTOXY(51,23);READLN(OPCION);
UNTIL (OPCION IN [1..5]);
CASE OPCION OF
1: INCLUIRPRODUCTOS;
2: MODIFICARPRODUCTOS;
3: ELIMINARPRODUCTOS;
4: CONSULTARPRODUCTOS;
END;
END;
END.
Bibliografa
Joyanes A, L. (1996). Fundamentos de programacin. Algoritmos y estructuras de
datos. Editorial Mcgraw Hill. Madrid Espaa.