Pascal/Turbo Pascal - menu y arrays

 
Vista:

menu y arrays

Publicado por wongz (15 intervenciones) el 02/04/2001 09:42:02
el menu que ocupo es algo simple por eso estaba usando if anidados pero algo falla porque si escojo la opcion 2 arrastra las otras ... pregunto si pongo begin en el writeln despues de cadaif then .. so me elimina este trouble?
ademas tengo problemas para entender los arrays y la inclusion de los datos en ellos.. mas los tutoriales son muy vagos respecto a eso need some hlp thnx
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:menu y arrays

Publicado por Diego Romero (282 intervenciones) el 02/04/2001 10:13:35
Lamento no entender nada de lo que haz explicado. ¿podrias dejar parte del codigo fuente donde tienes el problema asi como qué es lo que intentas hacer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:menu y arrays

Publicado por wongz (15 intervenciones) el 02/04/2001 10:55:18
PROGRAM CONTROL_MENSUAL_GALLINERO_S_A;

USES CRT;

VAR

NG,Y,I,H,OPTION:INTEGER;
N:CHAR;
REP:REAL;
G:ARRAY[1..15] OF INTEGER;
GE:ARRAY[1..15] OF INTEGER;
NAMES:ARRAY[1..15] OF STRING[15];
CONFIRM:BOOLEAN;
PROCEDURE INGRESO1;
BEGIN
WRITELN('INGRESE EL NUMERO DE LA GALLINA');
READ(NG);
END;
PROCEDURE INGRESO2;
BEGIN
WRITELN('INGRESE EL NOMBRE DE LA GALLINA');
READ(Y);
END;

BEGIN
CLRSCR;
WRITE('GALLINERO S. A.');
WRITELN('CONTROL MENSUAL DE PRODUCCION');
WRITELN('MENU');
WRITELN('1.INCLUSION DE GALLINAS');
WRITELN('2.REPORTES');
WRITELN('3.TABLA MENSUAL');
WRITELN('4.MODIFICACION DE HISTORICO');
READ(OPTION);
CLRSCR;
BEGIN
IF OPTION = 1 THEN
BEGIN
WRITELN('1.INGRESE NUMERO DE GALLINA');
WRITELN('2.ESCRIBA EL NOMBRE DE LA GALLINA');
WRITELN('3.ESCRIBA LA CANTIDAD DE YEMAS QUE ESTA GALLINA PRODUCE');
END;
IF OPTION = 2 THEN
BEGIN
WRITELN('1.REPORTE DE UNA GALLINA ESPECIFICA');
WRITELN('2.REPORTE POR TIPO DE YEMA');
WRITELN('3.COMPARATIVA CON EL MES ANTERIOR');
END;
IF OPTION = 3 THEN
WRITELN('DATOS DEL MES ANTERIOR');
IF OPTION = 4 THEN
BEGIN
WRITELN('1.INCLUSION DE GA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:menu y arrays

Publicado por Diego Romero (282 intervenciones) el 02/04/2001 17:25:54
Bueno, creo entender el problema.
Primero que nada no uses IFs anidados, usa en cambio un CASE, mas o menos asi.

Case opcion of
1:begin {Aqui el codigo de la opcion 1} end;
2:begin ... end;
3:begin ... end;
...
"n":begin ... end
else writeln('Opcion no valida')
end;
Consulta la documentacion de la sentencia CASE para mas detalles.
Segundo deberias hacer uso intensivo de parametros en los procedimientos y funciones, son muchisimo mas practicos y tendrás menos errores ocultos que usar variables globales dentro de los procedimientos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:menu y arrays

Publicado por Pirulex (37 intervenciones) el 02/04/2001 19:49:17
PROGRAM CONTROL_MENSUAL_GALLINERO_S_A;

USES CRT;

VAR

NG,Y,I,H,OPTION:INTEGER;
N:CHAR;
REP:REAL;
G:ARRAY[1..15] OF INTEGER;
GE:ARRAY[1..15] OF INTEGER;
NAMES:ARRAY[1..15] OF STRING[15];
CONFIRM:BOOLEAN;
PROCEDURE INGRESO1;
BEGIN
WRITELN('INGRESE EL NUMERO DE LA GALLINA');
READ(NG);
END;
PROCEDURE INGRESO2;
BEGIN
WRITELN('INGRESE EL NOMBRE DE LA GALLINA');
READ(Y);
END;

BEGIN
CLRSCR;
WRITE('GALLINERO S. A.');
WRITELN('CONTROL MENSUAL DE PRODUCCION');
WRITELN('MENU');
WRITELN('1.INCLUSION DE GALLINAS');
WRITELN('2.REPORTES');
WRITELN('3.TABLA MENSUAL');
WRITELN('4.MODIFICACION DE HISTORICO');
READ(OPTION);
CLRSCR;
BEGIN
IF OPTION = 1 THEN
BEGIN
WRITELN('1.INGRESE NUMERO DE GALLINA');
WRITELN('2.ESCRIBA EL NOMBRE DE LA GALLINA');
WRITELN('3.ESCRIBA LA CANTIDAD DE YEMAS QUE ESTA GALLINA PRODUCE');
readln(r);{esta variable le guarda el numero que el cliente escojio, asi no le arrastra los tres valores del menu}
END; {manfred, haga cada menu en un procedure diferente}
{ahora si, ya tiene un dato con que trabajar que es "r"}
if r=1 then
begin{procedimiento para asignar un numero a la gallina}
clrscr;
procedure;{este es el proceso que diseñaste para asigar un numero a cada gallina, ya lo asignaste arriba, aqui solo lo llamas}
end;{procedimiento para asignar un numero a la gallina%
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:menu y arrays

Publicado por wongz (15 intervenciones) el 03/04/2001 07:44:50
PROGRAM CONTROL_MENSUAL_GALLINERO_S_A;

USES CRT;

VAR
INAMES:INTEGER;
IG,IGE:BYTE;{INDICES DE VECTORES}
NREPORT,NG,Y,I,H,OPTION:INTEGER;{ng-numerodegallina,y-cantdeyemas,i-contador,}
N:STRING[20];{n-nombredegallina}
REP:REAL;{reporte}
G:ARRAY[1..5] OF INTEGER;{vectorng}
GE:ARRAY[1..5] OF INTEGER;{cantidad de yemas}
NAMES:ARRAY[1..5] OF STRING[15];{vectornombre}
CONFIRM:BOOLEAN;
PROCEDURE MENU;
BEGIN
CLRSCR;
WRITE('GALLINERO S. A.');
WRITELN('CONTROL MENSUAL DE PRODUCCION');
WRITELN('MENU');
WRITELN('1.INCLUSION DE GALLINAS');
WRITELN('2.REPORTES');
WRITELN('3.TABLA MENSUAL');
WRITELN('4.MODIFICACION DE HISTORICO');
READ(OPTION);
END;
PROCEDURE INGRESO1;
BEGIN
CLRSCR;
WRITELN('1.INGRESE NUMERO DE GALLINA');
READLN(NG);
WRITELN('2.ESCRIBA EL NOMBRE DE LA GALLINA');
READ(INAMES);
WRITELN('3.ESCRIBA LA CANTIDAD DE YEMAS QUE ESTA GALLINA PRODUCE');
READ(Y);
MENU;
END;
PROCEDURE MENU2;
BEGIN
CLRSCR;
WRITELN('1.REPORTE DE UNA GALLINA ESPECIFICA');
WRITELN('2.REPORTE POR TIPO DE YEMA');
WRITELN('3.COMPARATIVA CON EL MES ANTERIOR');
READ(NREPORT);
BEGIN
CLRSCR;
CASE NREPORT OF
1:
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Una ayudita

Publicado por Diego Romero (282 intervenciones) el 03/04/2001 08:26:50
var
...
function selectoption:integer;
var
op:integer;
begin
repeat
clrscr;
writeln('1 - Opcion 1);
writeln('2 - Opcion 2);
writeln('3 - Opcion 3);
writeln('4 - Opcion 4);
readln(op);
until (op >=1) and (op<=4);
selectoption:=op;
end;

begin {principal}
case selectoption of
1:begin ... end;
2:begin ... end;
3:begin ... end;
4:begin ... end
end;{case}
end.
podrias hacer asi para todos los menues y submenues.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Una ayudita

Publicado por wongz (15 intervenciones) el 03/04/2001 09:32:53
alguien podria darme el codigo para crear arrays, enlazarlos unos a otros y la busqueda...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

arrays

Publicado por wongz (15 intervenciones) el 03/04/2001 23:27:40
puedo asignar a un mismo indice dos arrays o tres dos integer y un string...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:arrays

Publicado por Diego Romero (282 intervenciones) el 04/04/2001 04:29:01
te refieres a hacer
A[I]:=B[I]; ?
si, es perfectamente valido, no hay problema con eso, siempre y cuando el Array A y el B sean del mismo tipo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:arrays

Publicado por WONGZ (15 intervenciones) el 04/04/2001 06:37:37
program vectordenumeroynombreycantidaddeyemas;

uses crt;
var
numero,indice:byte;
numga:array[1..5]of integer;
nomga:array[1..5]of string[10];
yemas:array[1..5]of integer;
begin
for numero:=1 to 5 do
writeln('digite el numero de la gallina');
read(numga[numero]);
end.


LA PREGUNTA ES SI COMO PUEDO HACER QUE EL PROGRAMA TE PIDA CONSECUTIVO
ASI
DIGITE..NUMER...
LUEGO UN CLRSCR Y
DIGITENOMBRE OTRO
CLRSCR Y DIGITE CANT DE YEMAS...

AHORA SI YA QUE LOS INCLUI CADA UNO EN SU REP. ARRAY PUEDO USAR
UN MISMO INDICE O UNO PARA CADA TIPO...
ADEMAS NO SE COMO BUSCAR UN DATO PARA HACER LOS REPORTES DE LOS ARRAYS
POR FAVOR ESTO VALE 40 DEL CUATRIMESTRE .. AYUDA .. EL PROFE SABE, PERO LE CUESTA ENSEÑAR CLARO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Una ayudita

Publicado por xxx (1 intervención) el 11/09/2003 03:32:17
¿que es TOP DOWN, BOTTON UP y REFINAMIENTO DE ALGORITMOS?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar