Pascal/Turbo Pascal - necesito ayuda ejercicio pascal con arrays

 
Vista:

necesito ayuda ejercicio pascal con arrays

Publicado por jorge (5 intervenciones) el 22/01/2016 09:18:56
Anunciado:
{
ejercicio de arrays, solo se puede utilizar en un ejercicio variables globales (solo en las cadenas y i:=) y en el otro ejercicio variables locales.
* un array de nombres minimo 30 posiciones de 30 caracteres
* un array apellido minimo 30 posiciones de 40 caracteres
* array bidimensional 30 notas 4 posiciones tipo real
* la posicion 1,2,3 seran notas entradas por el usuario y la posicion 4 sera la media de las notas.
* utilizaremos un array constante para el menu (entrada. listado, busqueda y bajas, ordena, modifica y finaliza, utilizar el menu de flechas)
* entrada (es lo primero que tenemos que hacer) --> tendra que estar todo controlado por medio de un procedimiento para el control de letras, tiene que ser el mismo procedimiento para el nombre y apellido solo
cambiamos la longitud.(inicio)
numeros -abra una funcion para entrar numeros, y me devolvera numero real(inicio)
Bajas y reorganizar
* busqueda por apellido

}


Tengo echo esto:
program untitled;

uses crt;
const
a:array[1..3] of string[20]=('1.ENTRADA', '2.LISTADO', '3.SALIR');
var
i,opci:integer;
cadnom:string[40];
Nom:array[1..30] of string [20];
Ape:array[1..30] of string [40];
Notas:array[1..30,1..4] of real;


procedure entranom(tot:integer);
var
op:char;
con:integer;

begin
op:=' ';
con:=1;
repeat
gotoxy(con,1);
op:=upcase(readkey);
case op of
'A'..'Z':begin
if (con<=tot) then begin
gotoxy(11+con,1);write(op);
insert(op,cadnom,con);
inc(con);
inc(tot);
end;
end;
#8:begin
if con>1 then begin
tot:=tot+1;
delete(cadnom,tot,con);
dec(con);
gotoxy(8+con,1);write(CHR(176));
end;
end;
end;
until(con>tot)or(op=#13);
end;


procedure entrada;
var
op1:char;
begin
clrscr;
write('Dar Nom_Ape S :');op1:=upcase(readkey);
while (op1='S')and(i<30) do begin
clrscr;
cadnom:=' ';
write('Da nombre:');
entranom(20);
Nom[i]:=cadnom;
cadnom:=' ';
write('Da Apellido:');
entranom(40);
Ape[i]:=cadnom;
cadnom:=' ';

end;
end;




procedure lista;

begin


end;

procedure menu;
var
opcion,opcid:char;
i1,z:integer;
begin
clrscr;
for i1:=1 to 3 do begin
gotoxy(29,5+2*i1);
write(a[i1]);
end;
OPCION:=' ';
WHILE OPCION<>'S'DO BEGIN
IF OPCI<1 THEN OPCI:=3;
IF OPCI>3 THEN OPCI:=1;
gotoxy(29,5+2*opci);
textcolor(0);textbackground(7);
write(a[opci]);
textcolor(7);textbackground(0);
opcid:=READKEY;
z:=opci;
CASE OPCID OF
#80:OPCI:=OPCI+1;
#72:OPCI:=OPCI-1;
#49:OPCI:=1;
#50:OPCI:=2;
#51:OPCI:=3;
#13:OPCION:='S';
END;
gotoxy(29,5+2*z);
write(a[z]);
END;
end;

begin {programa_principal}
i:=1;
repeat
clrscr;
menu;
case opci of
1:entrada;
2:lista;
end;
until opci=3;
end.

el problema que tengo esque de la entrada no salgo
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