Procedure OPCION1 ( var matrix1:TMatriz1; var matrix2:TMatriz2 );
var
cad:string; (* Guarda los dos caracteres del digrafo *)
c:char; (*Control de errores*)
Begin
repeat
repeat
limpiar; (* - 01 - *)
writeln ('Introduce el diagrafo ');
read(cad);
IF (cad[1]='ñ') or (cad[2]='Ñ') then
Begin
Limpiar;
writeln('El caracter Ñ se trasforma en -ny- entonces ya forma un digrafo');
writeln('¿Esta deacuerdo de que el digrafo a buscar sea -ny- S/N ? ');
read( c ) ;
cad:='ny';
End
ELSE
Begin
cad:= CAMBIO(cad[1]); (* - 02 - *)
cad:= cad + CAMBIO(Cad[2]); (* - 02 - *)
c:='S';
End;
until (c='s') or (c='S');
limpiar;
writeln ( cad,': ',matrix1[cad[1],cad[2]],' de:',CONT_DIGRAFOS(matrix1) );
writeln (cad[1],': ',matrix2[cad[1],1]);
writeln (cad[2],': ',matrix2[cad[2],1]);
writeln('--- PuLsa una tecla para continuar ---');
read(input);
repeat
limpiar;
writeln('Desea introducir otro digrafo S/N');
read( c );
until (c='n') or (c='s');
until(c='n');
End;
read()Este procedimiento no lee desde el teclado, sino de la pantalla.
function ReadKey:Char;Lo he declarado arriba donde las demas funciones
[ferniet@jair practica]$ fpc p.pas
Free Pascal Compiler version 1.0.6 [2002/05/23] for i386
Copyright © 1993-2002 by Florian Klaempfl
Target OS: Linux for i386
Compiling p.pas
p.pas(15,9) Fatal: Syntax error, = expected but identifier READKEY found
[ferniet@jair practica]$
function ReadKey:Char;En ningun lado, asi es como esta definida esta funcion en la librería CRT( es decir no se le pasa de parametro nada, y te devuelve char del teclado.)
Readkey, es una funcion de Pacal ?Si esta en la libreria CRT.
c:=Readkey;
[ferniet@jair practica]$ fpc p.pas
Free Pascal Compiler version 1.0.6 [2002/05/23] for i386
Copyright © 1993-2002 by Florian Klaempfl
Target OS: Linux for i386
Compiling p.pas
p.pas(273,7) Error: Identifier not found READKEY
p.pas(374) Fatal: There were 1 errors compiling module, stopping
[ferniet@jair practica]$
He quitado eso
y me he puesto
Igual es porque no tengo esa libreria?Todos los Compiladores Pascal la Traen ya sean para Linux o windows....
Ejemplo de los digrafos de Hola => ho ol la
ok, te explico un poco como el programa, (todabia esta en alfileres y todo muy descolocado)
El trabajo es entre 2, pero mi compañero es el primer año q da programacion y le cuesta. Yo se algo mas porque vengo del modulo y di C que se le parece mucho a PascalEs que la forma des escribir de las palabras reservadas varia(por ej: FOR, For)
y Gracias por las explicacionesDe nada :hola:
Procedure OPCION1 ( var matrix1:TMatriz1; var matrix2:TMatriz2 );
var
cad:string; (* Guarda los dos caracteres del digrafo *)
c:char; (*Control de errores*)
Begin
repeat
repeat
c:='n';
limpiar; (* - 01 - *)
writeln ('Introduce el diagrafo ');
[/B]readln(cad);
writeln(cad);
IF length(cad)>2 then
Begin
writeln('El digrafo introducido tiene mas de 2 caracteres');
writeln('Quieres q el programa te coja solo los 2 primeros');
c:=readkey;
End;
IF (length(cad)<3) or ( (c='s') or (c='S') ) then
Begin
IF (cad[1]='ñ') or (cad[2]='Ñ') then
Begin
Limpiar;
writeln('El caracter Ñ se trasforma en -ny- entonces ya forma un digrafo');
writeln('¿Esta deacuerdo de que el digrafo a buscar sea -ny- S/N ? ');
c:=readkey;
cad:='ny';
End
ELSE
Begin
cad:= CAMBIO(cad[1]); (* - 02 - *)
cad:= cad + CAMBIO(Cad[2]); (* - 02 - *)
c:='S';
End;
End;
until (c='s') or (c='S');
limpiar;
writeln ( cad,': ',matrix1[cad[1],cad[2]],' de:',CONT_DIGRAFOS(matrix1) );
writeln (cad[1],': ',matrix2[cad[1],1]);
writeln (cad[2],': ',matrix2[cad[2],1]);
writeln('--- PuLsa una tecla para continuar ---');
c:=readkey;
repeat
limpiar;
writeln('Desea introducir otro digrafo S/N');
read©;
until (c='n') or (c='s');
until(c='n');
End;