[ Foro de Pascal ]
Buenas noches, amigos soy un novato y tengo dudas con respecto a como realizar una busqueda en un registro.. Explico: estoy haciendo un array de registros para guardar datos de una encuesta de un estudio de mercado, debo registrar productos, fechas y otras caracteristicas, pero cuando no se buscar un tipo de producto para que salgan todos los datos de producto en especifico..., pueden darme un empujon con este caso? gracias de antemano.
Si pones tu fuente, la respuesta será más directa, pero bueno... El buscar en un array debería ser simplemente un "for" que compare los valores de ciertos campos con algo prefijado... Y el mostrar un registros son varias ordenes Writeln, una por cada campo.
Entiendo. me disculpo. anexo el código que he hecho hasta ahora. Algunas partes poseen comentarios para ir trabajando mas adelante..
PROGRAM TP323;
USES CRT; {PARA DECLARAR LA BIBLIOTECA A USARSE}
TYPE
RMUESTRA= RECORD {DECLARANDO EL REGISTRO Y SUS CAMPOS}
PRODUCTO: STRING[10];
ESTRATO: STRING[20];
SEXO: CHAR;
EDAD: CHAR;
FECHA: STRING[10];
END;
VAR
VECTOR: ARRAY[1..200] OF RMUESTRA; {PARA EL ARREGLO DE REGISTROS}
CONTADOR: INTEGER;
PROCEDURE ENTRADA_DATOS; {MODULO DE INGRESO DE DATOS}
VAR
CONTADOR_E:INTEGER;
BEGIN
TEXTBACKGROUND(CYAN);
CLRSCR;
TEXTCOLOR(YELLOW);
WRITELN('===============================================================================');
GOTOXY(15,3);
WRITELN(' FASE DE REGISTRO ');
WRITELN('===============================================================================');
WRITELN;
FOR CONTADOR_E:=1 TO 3 DO
BEGIN
WRITELN(' INDIQUE EL TIPO DE PRODUCTO PREFERIDO SEGUN LA SIGUIENTE LEYENDA ');
WRITELN('');
WRITELN(' (LD)= LECHE DESCREMADA, (LE)= LECHE ENTERA, (YG)= YOGURT Y (HE)= HELADO.');
WRITELN('');
WRITE('PRODUCTO: ');
READLN(VECTOR[CONTADOR_E].PRODUCTO);
WRITELN('');
WRITELN('A QUE ESTRATO SOCIAL PERTENECE?');
WRITELN('');
WRITELN('ESCRIBA: (CLA)PARA CLASE ALTA Y MEDIA ALTA, (CLB)PARA CLASE MEDIA Y (CLC) PARA LA CLASE MEDIA BAJA ');
WRITELN('');
WRITE('ESTRATO SOCIAL: ');
READLN(VECTOR[CONTADOR_E].ESTRATO);
WRITELN('');
WRITELN('CUAL ES SU RANGO DE EDAD?');
WRITELN('ESCRIBA: (EJ) PARA EDAD JUVENIL, (AD) PARA ADULTOS Y (ADM) SI ES ADULTO MAYOR ');
WRITELN('');
WRITE('EDAD : ');
READLN (VECTOR[CONTADOR_E].EDAD);
WRITELN('CUAL ES SU SEXO?');
WRITELN('ESCRIBA: (M)MASCULINO (F) FEMENINO ');
WRITELN('');
WRITE('SEXO : ');
READLN (VECTOR[CONTADOR_E].SEXO);
WRITELN('FECHA DE LA MUESTRA (DIA/MES/AÑO');
WRITELN('');
WRITE('FECHA : ');
READLN (VECTOR[CONTADOR_E].FECHA);
WRITELN;
WRITELN;
WRITELN('================================================================================');
WRITELN('================================================================================');
END;
END;
PROCEDURE CONSULTA;
VAR
PROD : STRING[20];
AUX : INTEGER;
BOOL: BOOLEAN;
BEGIN
TEXTBACKGROUND(CYAN);
CLRSCR;
TEXTCOLOR(YELLOW);
WRITELN('===============================================================================');
GOTOXY(15,3);
WRITELN(' FASE DE CONSULTAS ');
WRITELN('===============================================================================');
WRITELN;
WRITELN('>>>>>> PARA SU CONSULTA POR FAVOR INGRESE EL CODIGO DE PRODUCTO <<<<<<<');
WRITELN('(LD)= LECHE DESCREMADA, (LE)= LECHE ENTERA, (YG)= YOGURT Y (HE)= HELADO.');
WRITE(' PRODUCTO : ');
READLN(PROD);
FOR AUX := 1 TO LENGTH(PROD) DO
PROD[AUX] := UPCASE(PROD[AUX]);
AUX := 0;
IF BOOL = FALSE THEN
WRITELN('DISCULPE SU PRODUCTO NO APARECE EN EL REGISTRO PRESIONE UNA TECLA PARA IR AL MENU ANTERIOR');
REPEAT
IF VECTOR[AUX].PRODUCTO = PROD THEN
BOOL := TRUE
ELSE
AUX := AUX + 1;
UNTIL (AUX > CONTADOR - 1) OR (BOOL = TRUE);
IF BOOL = TRUE THEN
BEGIN
CLRSCR;
WRITELN(' >>>>>>>LOS DATOS CONSULTADOS SON<<<<<<<');
WRITELN;
WRITELN(' PRODUCTO = ',VECTOR[AUX].PRODUCTO);
WRITELN(' ESTRATO SOCIAL = ',VECTOR[AUX].ESTRATO);
WRITELN(' SEXO = ',VECTOR[AUX].SEXO);
WRITELN(' FECHA = ',VECTOR[AUX].FECHA);
WRITELN(' EDAD = ',VECTOR[AUX].EDAD);
WRITELN;
WRITELN;
WRITELN(' >>>>> PRESIONE CUALQUIER TECLA <<<<<');
READKEY;
END;
END;
PROCEDURE MENU;{ PROGRAMA PRINCIPAL }
VAR
SALIR : BOOLEAN;
OPCIONES : CHAR;
BEGIN
TEXTCOLOR(WHITE);
TEXTBACKGROUND (BLUE);
SALIR := FALSE;
CONTADOR := 0;
REPEAT
CLRSCR;
WRITELN('===============================================================================');
GOTOXY(8,3);
WRITELN(' PAGINA DE INICIO LACTEOS VIDA Y SALUD ');
GOTOXY(8,4);
WRITELN(' ESTUDIO DE MERCADO: MERIDA 2015 ');
WRITELN('===============================================================================');
WRITELN('');
WRITELN(' TIENES ALGUN DATO PARA LA ENCUESTA? SELECCIONA!...');
WRITELN;
WRITELN(' 1 = INCLUIR DATOS EN EL REGISTRO');
WRITELN;
WRITELN(' 2 = CONSULTAR REGISTRO DE ENCUESTA');
WRITELN;
WRITELN(' 3 = MODIFICAR REGISTRO DE ENCUESTA');
WRITELN;
WRITELN(' 4 = ELIMINAR DATOS DE UN REGISTRO');
WRITELN;
WRITELN(' 5 = RESUMEN DE LOS DATOS');
WRITELN;
WRITELN(' 6 = SALIDA');
WRITELN;
WRITELN('POR FAVOR SELECCIONA UNA OPCION SEGUN LO INDICADO');
REPEAT
OPCIONES := READKEY;
UNTIL OPCIONES IN['1','2','3','4','5','6'];
CLRSCR;
CASE OPCIONES OF
'1' : ENTRADA_DATOS;
'2' : CONSULTA;
{'3' : MODIFICAR;
'4' : ELIMINAR_REGISTRO;
'5' : VISUALIZAR_TODOS;
'6' : SALIR := TRUE;
else
writeln ('opcion invalida');}
END;
UNTIL SALIR = TRUE;
END ;
BEGIN
MENU;
END.
¿Es el procedimiento "CONSULTA"?
Si es así, no tiene mal aspecto en general, salvo por ciertos detalles puntuales, como que sólo muestra el primer dato encontrado o que el nombre de la variable BOOL no ayuda a que el código sea legible, ni AUX, ni los tamaños de tabulación tan inconsistentes, ni las líneas tan largas, ni el que algunos IF y FOR no tengan un bloque BEGIN-END asociado, por lo que puedes estar repitiendo menos órdenes de las que esperas.
Si lo reformateas un poco, verás con más facilidad cosas que no cuadran, como que usas esa variable BOOL antes de que tenga un valor, o que incrementas AUX en el WHILE (que podría ser un FOR), de modo que ni siquiera muestras realmente el primer valor que encuentras (y ningún otro), sino el siguiente a él:
PROGRAM TP323;
USES CRT;
TYPE
RMUESTRA= RECORD {DECLARANDO EL REGISTRO Y SUS CAMPOS}
PRODUCTO: STRING[10];
ESTRATO: STRING[20];
SEXO: CHAR;
EDAD: CHAR;
FECHA: STRING[10];
END;
VAR
VECTOR: ARRAY[1..200] OF RMUESTRA; {PARA EL ARREGLO DE REGISTROS}
CONTADOR: INTEGER;
PROCEDURE ENTRADA_DATOS; {MODULO DE INGRESO DE DATOS}
VAR
CONTADOR_E:INTEGER;
BEGIN
TEXTBACKGROUND(CYAN);
CLRSCR;
TEXTCOLOR(YELLOW);
WRITELN('===============================================================================');
GOTOXY(15,3);
WRITELN(' FASE DE REGISTRO ');
WRITELN('===============================================================================');
WRITELN;
FOR CONTADOR_E:=1 TO 3 DO
BEGIN
WRITELN(' INDIQUE EL TIPO DE PRODUCTO PREFERIDO SEGUN LA SIGUIENTE LEYENDA ');
WRITELN('');
WRITELN(' (LD)= LECHE DESCREMADA, (LE)= LECHE ENTERA, (YG)= YOGURT Y (HE)= HELADO.');
WRITELN('');
WRITE('PRODUCTO: ');
READLN(VECTOR[CONTADOR_E].PRODUCTO);
WRITELN('');
WRITELN('A QUE ESTRATO SOCIAL PERTENECE?');
WRITELN('');
WRITELN('ESCRIBA: (CLA)PARA CLASE ALTA Y MEDIA ALTA, (CLB)PARA CLASE MEDIA Y (CLC) PARA LA CLASE MEDIA BAJA ');
WRITELN('');
WRITE('ESTRATO SOCIAL: ');
READLN(VECTOR[CONTADOR_E].ESTRATO);
WRITELN('');
WRITELN('CUAL ES SU RANGO DE EDAD?');
WRITELN('ESCRIBA: (EJ) PARA EDAD JUVENIL, (AD) PARA ADULTOS Y (ADM) SI ES ADULTO MAYOR ');
WRITELN('');
WRITE('EDAD : ');
READLN (VECTOR[CONTADOR_E].EDAD);
WRITELN('CUAL ES SU SEXO?');
WRITELN('ESCRIBA: (M)MASCULINO (F) FEMENINO ');
WRITELN('');
WRITE('SEXO : ');
READLN (VECTOR[CONTADOR_E].SEXO);
WRITELN('FECHA DE LA MUESTRA (DIA/MES/AÑO');
WRITELN('');
WRITE('FECHA : ');
READLN (VECTOR[CONTADOR_E].FECHA);
WRITELN;
WRITELN;
WRITELN('================================================================================');
WRITELN('================================================================================');
END;
END;
PROCEDURE CONSULTA;
VAR
PROD : STRING[20];
AUX : INTEGER;
BOOL: BOOLEAN;
BEGIN
TEXTBACKGROUND(CYAN);
CLRSCR;
TEXTCOLOR(YELLOW);
WRITELN('===============================================================================');
GOTOXY(15,3);
WRITELN(' FASE DE CONSULTAS ');
WRITELN('===============================================================================');
WRITELN;
WRITELN('>>>>>> PARA SU CONSULTA POR FAVOR INGRESE EL CODIGO DE PRODUCTO <<<<<<<');
WRITELN('(LD)= LECHE DESCREMADA, (LE)= LECHE ENTERA, (YG)= YOGURT Y (HE)= HELADO.');
WRITE(' PRODUCTO : ');
READLN(PROD);
FOR AUX := 1 TO LENGTH(PROD) DO
PROD[AUX] := UPCASE(PROD[AUX]);
AUX := 0;
IF BOOL = FALSE THEN
WRITELN('DISCULPE SU PRODUCTO NO APARECE EN EL REGISTRO PRESIONE UNA TECLA PARA IR AL MENU ANTERIOR');
REPEAT
IF VECTOR[AUX].PRODUCTO = PROD THEN
BOOL := TRUE
ELSE
AUX := AUX + 1;
UNTIL (AUX > CONTADOR - 1) OR (BOOL = TRUE);
IF BOOL = TRUE THEN
BEGIN
CLRSCR;
WRITELN(' >>>>>>>LOS DATOS CONSULTADOS SON<<<<<<<');
WRITELN;
WRITELN(' PRODUCTO = ',VECTOR[AUX].PRODUCTO);
WRITELN(' ESTRATO SOCIAL = ',VECTOR[AUX].ESTRATO);
WRITELN(' SEXO = ',VECTOR[AUX].SEXO);
WRITELN(' FECHA = ',VECTOR[AUX].FECHA);
WRITELN(' EDAD = ',VECTOR[AUX].EDAD);
WRITELN;
WRITELN;
WRITELN(' >>>>> PRESIONE CUALQUIER TECLA <<<<<');
READKEY;
END;
END;
PROCEDURE MENU;{ PROGRAMA PRINCIPAL }
VAR
SALIR : BOOLEAN;
OPCIONES : CHAR;
BEGIN
TEXTCOLOR(WHITE);
TEXTBACKGROUND (BLUE);
SALIR := FALSE;
CONTADOR := 0;
REPEAT
CLRSCR;
WRITELN('===============================================================================');
GOTOXY(8,3);
WRITELN(' PAGINA DE INICIO LACTEOS VIDA Y SALUD ');
GOTOXY(8,4);
WRITELN(' ESTUDIO DE MERCADO: MERIDA 2015 ');
WRITELN('===============================================================================');
WRITELN('');
WRITELN(' TIENES ALGUN DATO PARA LA ENCUESTA? SELECCIONA!...');
WRITELN;
WRITELN(' 1 = INCLUIR DATOS EN EL REGISTRO');
WRITELN;
WRITELN(' 2 = CONSULTAR REGISTRO DE ENCUESTA');
WRITELN;
WRITELN(' 3 = MODIFICAR REGISTRO DE ENCUESTA');
WRITELN;
WRITELN(' 4 = ELIMINAR DATOS DE UN REGISTRO');
WRITELN;
WRITELN(' 5 = RESUMEN DE LOS DATOS');
WRITELN;
WRITELN(' 6 = SALIDA');
WRITELN;
WRITELN('POR FAVOR SELECCIONA UNA OPCION SEGUN LO INDICADO');
REPEAT
OPCIONES := READKEY;
UNTIL OPCIONES IN['1','2','3','4','5','6'];
CLRSCR;
CASE OPCIONES OF
'1' : ENTRADA_DATOS;
'2' : CONSULTA;
{'3' : MODIFICAR;
'4' : ELIMINAR_REGISTRO;
'5' : VISUALIZAR_TODOS;
'6' : SALIR := TRUE;
else
writeln ('opcion invalida');}
END;
UNTIL SALIR = TRUE;
END ;
BEGIN
MENU;
END.
En el cuerpo principal la opción SALIR debería ser '6', de lo contrario solo lo podrás ejecutar una sola vez y perderás los datos introducidos para posteriormente ser consultados.
Saludos.
Muchas gracias, me sirvió de mucha ayuda sus comentarios, ahora seguire en la lucha para entender como realizar un procedure para modificar o eliminar lo que se cargue en esos campos. Saludos
Me parece bien que hayas podido corregir tu programa. De todas maneras, te dejo a continuación el código que yo elaboré, el cual no está bien ordenado como el tuyo, pero funciona:
PROGRAM TP323;
USES CRT; {PARA DECLARAR LA BIBLIOTECA A USARSE}
TYPE
RMUESTRA= RECORD {DECLARANDO EL REGISTRO Y SUS CAMPOS}
PRODUCTO: STRING[10];
ESTRATO: STRING[20];
SEXO: CHAR;
EDAD: CHAR;
FECHA: STRING[10];
END;
VAR
VECTOR: ARRAY[1..200] OF RMUESTRA; {PARA EL ARREGLO DE REGISTROS}
CONTADOR: INTEGER;
NUM_REG, CONTADOR_E: INTEGER; {Para llevar la cuenta sobre cuántos registros llevo ingresado en el arreglo}
PROCEDURE ENTRADA_DATOS; {MODULO DE INGRESO DE DATOS}
VAR
mas: char;
i: integer; {Sera usado en ciclo For para convertir en mayúscula}
BEGIN
TEXTBACKGROUND(CYAN);
CLRSCR;
TEXTCOLOR(YELLOW);
WRITELN('===============================================================================');
GOTOXY(15,3);
WRITELN(' FASE DE REGISTRO ');
WRITELN('===============================================================================');
WRITELN;
REPEAT {FOR CONTADOR_E:=1 TO 3 DO}
{BEGIN}
CONTADOR_E:= CONTADOR_E + 1;
WRITELN(' INDIQUE EL TIPO DE PRODUCTO PREFERIDO SEGUN LA SIGUIENTE LEYENDA ');
WRITELN('');
WRITELN(' (LD)= LECHE DESCREMADA, (LE)= LECHE ENTERA, (YG)= YOGURT Y (HE)= HELADO.');
WRITELN('');
WRITE('PRODUCTO: ');
READLN(VECTOR[CONTADOR_E].PRODUCTO);
for i:=1 to length(vector[contador_e].producto) do {Lo convertimos en mayusculas para no tener problema en Consulta}
vector[contador_e].producto[i]:= upcase(vector[contador_e].producto[i]);
WRITELN('');
WRITELN('A QUE ESTRATO SOCIAL PERTENECE?');
WRITELN('');
WRITELN('ESCRIBA: (CLA)PARA CLASE ALTA Y MEDIA ALTA, (CLB)PARA CLASE MEDIA Y (CLC) PARA LA CLASE MEDIA BAJA ');
WRITELN('');
WRITE('ESTRATO SOCIAL: ');
READLN(VECTOR[CONTADOR_E].ESTRATO);
WRITELN('');
WRITELN('CUAL ES SU RANGO DE EDAD?');
WRITELN('ESCRIBA: (EJ) PARA EDAD JUVENIL, (AD) PARA ADULTOS Y (ADM) SI ES ADULTO MAYOR ');
WRITELN('');
WRITE('EDAD : ');
READLN (VECTOR[CONTADOR_E].EDAD);
WRITELN('CUAL ES SU SEXO?');
WRITELN('ESCRIBA: (M)MASCULINO (F) FEMENINO ');
WRITELN('');
WRITE('SEXO : ');
READLN (VECTOR[CONTADOR_E].SEXO);
WRITELN('FECHA DE LA MUESTRA (DIA/MES/AÑO');
WRITELN('');
WRITE('FECHA : ');
READLN (VECTOR[CONTADOR_E].FECHA);
WRITELN;
WRITELN;
WRITELN('================================================================================');
WRITELN('================================================================================');
{END;}
WRITE('MAS DATOS?: ');
READLN(mas);
UNTIL ((mas='N') or (mas = 'n'));
NUM_REG:= CONTADOR_E;
writeln('El total almacenado hasta ahora es de ',NUM_REG,' registros');
readln;
END;
PROCEDURE CONSULTA;
VAR
PROD : STRING[20];
AUX : INTEGER;
BOOL: BOOLEAN;
i: integer; {Se usara en ciclo For para convertir en mayusculas}
BEGIN
TEXTBACKGROUND(CYAN);
CLRSCR;
TEXTCOLOR(YELLOW);
WRITELN('===============================================================================');
GOTOXY(15,3);
WRITELN(' FASE DE CONSULTAS ');
WRITELN('===============================================================================');
WRITELN;
WRITELN('>>>>>> PARA SU CONSULTA POR FAVOR INGRESE EL CODIGO DE PRODUCTO <<<<<<<');
WRITELN('(LD)= LECHE DESCREMADA, (LE)= LECHE ENTERA, (YG)= YOGURT Y (HE)= HELADO.');
WRITE(' PRODUCTO : ');
READLN(PROD);
for i:=1 to length(prod) do
prod[i]:= upcase(prod[i]);
BOOL:= FALSE;
FOR AUX := 1 TO NUM_REG DO
BEGIN
IF (VECTOR[AUX].PRODUCTO = PROD) THEN
BEGIN
BOOL:= TRUE;
WRITELN;
WRITELN(' PRODUCTO = ',VECTOR[AUX].PRODUCTO);
WRITELN(' ESTRATO SOCIAL = ',VECTOR[AUX].ESTRATO);
WRITELN(' SEXO = ',VECTOR[AUX].SEXO);
WRITELN(' FECHA = ',VECTOR[AUX].FECHA);
WRITELN(' EDAD = ',VECTOR[AUX].EDAD);
WRITELN;
WRITELN;
WRITELN(' >>>>> PRESIONE CUALQUIER TECLA <<<<<');
READKEY;
END;
END;
IF (BOOL = FALSE) THEN
BEGIN
WRITELN('NO SE ENCONTRO NINGUN REGISTRO PARA ESE PRODUCTO.');
WRITELN('PRESIONE CUALQUIER TECLA PARA CONTINUAR...');
READKEY;
END;
{FOR AUX := 1 TO LENGTH(PROD) DO
PROD[AUX] := UPCASE(PROD[AUX]);
AUX := 0;
IF BOOL = FALSE THEN
WRITELN('DISCULPE SU PRODUCTO NO APARECE EN EL REGISTRO PRESIONE UNA TECLA PARA IR AL MENU ANTERIOR');
REPEAT
IF VECTOR[AUX].PRODUCTO = PROD THEN
BOOL := TRUE
ELSE
AUX := AUX + 1;
UNTIL (AUX > CONTADOR - 1) OR (BOOL = TRUE);
IF BOOL = TRUE THEN
BEGIN
CLRSCR;
WRITELN(' >>>>>>>LOS DATOS CONSULTADOS SON<<<<<<<');
WRITELN;
WRITELN(' PRODUCTO = ',VECTOR[AUX].PRODUCTO);
WRITELN(' ESTRATO SOCIAL = ',VECTOR[AUX].ESTRATO);
WRITELN(' SEXO = ',VECTOR[AUX].SEXO);
WRITELN(' FECHA = ',VECTOR[AUX].FECHA);
WRITELN(' EDAD = ',VECTOR[AUX].EDAD);
WRITELN;
WRITELN;
WRITELN(' >>>>> PRESIONE CUALQUIER TECLA <<<<<');
READKEY;
END;}
END;
PROCEDURE MENU;{ PROGRAMA PRINCIPAL }
VAR
SALIR : BOOLEAN;
OPCIONES : CHAR;
BEGIN
TEXTCOLOR(WHITE);
TEXTBACKGROUND (BLUE);
SALIR := FALSE;
CONTADOR_E := 0;
REPEAT
CLRSCR;
WRITELN('===============================================================================');
GOTOXY(8,3);
WRITELN(' PAGINA DE INICIO LACTEOS VIDA Y SALUD ');
GOTOXY(8,4);
WRITELN(' ESTUDIO DE MERCADO: MERIDA 2015 ');
WRITELN('===============================================================================');
WRITELN('');
WRITELN(' TIENES ALGUN DATO PARA LA ENCUESTA? SELECCIONA!...');
WRITELN;
WRITELN(' 1 = INCLUIR DATOS EN EL REGISTRO');
WRITELN;
WRITELN(' 2 = CONSULTAR REGISTRO DE ENCUESTA');
WRITELN;
WRITELN(' 3 = MODIFICAR REGISTRO DE ENCUESTA');
WRITELN;
WRITELN(' 4 = ELIMINAR DATOS DE UN REGISTRO');
WRITELN;
WRITELN(' 5 = RESUMEN DE LOS DATOS');
WRITELN;
WRITELN(' 6 = SALIDA');
WRITELN;
WRITELN('POR FAVOR SELECCIONA UNA OPCION SEGUN LO INDICADO');
REPEAT
OPCIONES := READKEY;
UNTIL OPCIONES IN['1','2','3','4','5','6'];
SALIR:= FALSE;
CLRSCR;
CASE OPCIONES OF
'1' : ENTRADA_DATOS;
'2' : CONSULTA;
{'3' : MODIFICAR;
'4' : ELIMINAR_REGISTRO;
'5' : VISUALIZAR_TODOS;}
'6' : SALIR := TRUE;
else
writeln ('opcion invalida');
END;
UNTIL (SALIR);
END ;
BEGIN
MENU;
END.
Debes observar que en este programa se le pregunta al usuario si desea o no continuar introduciendo más encuestas (elementos para el arreglo). También debes darte cuenta de que si introduces, por ejemplo, 3 elementos y luego sales del módulo, al regresar la cuenta continuará en 4. Eso es muy importante en un programa.
Otra cosa que quería comentarte es que el código para hacer el módulo Eliminar es muy sencillo, quizás el más fácil de todos, pero debes tener cuidado con la variable que lleva la cuenta de los registros introducidos hasta el momento, hay decrementarlo en 1 cada vez que se elimine un elemento.
Te falta muy poco para terminar de hacer todo.
Saludos.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)