Pascal/Turbo Pascal - Ayuda con Pascal (Error 85)

 
Vista:

Ayuda con Pascal (Error 85)

Publicado por Eli (1 intervención) el 03/08/2006 22:19:24
Al final de todo en (end.) me aparece el siguiente error: error 85: " ; " expected y luego en el procedure "puntuacio" creo que me hace falta poner otro end pero no me deja ponerlo, quizas es por esto, espero q alguien pueda ayudarme porque estoy desesperada!! Gracias de antemano!

program sequencies_adn;
uses crt;
const
Esc=#27;
h=8;
s=9;

type
vector=array[1..h]of char;
matriu=array[1..s,1..s]of char;
matriu2=array[1..h,1..h]of integer;

var
comb_possibles,long_seq1,long_seq2,i,j:integer;
f:char;
Q,R:vector;
TC0:matriu;
DT1:matriu2;


function combinacions(x,y:integer):integer;
var
c,d,e:integer;
begin
if (x=0) and (y<>0) then
begin
combinacions:=1;
end else
if (y=0) and (x<>0) then
begin
combinacions:=1;
end else
if (x=0) and (y=0) then
begin
combinacions:=0;
end else
begin
c:=combinacions(x-1,y);
d:=combinacions(x-1,y-1);
e:=combinacions(x,y-1);
combinacions:=c+d+e;
end;
end;


procedure omplir_taula_vector(var L:vector);
begin
for i:=1 to 8 do
begin
L[i]:=' ';
end;
end;


procedure longitud_sequencies(var long:integer;var P:vector);
var
z:string;

begin
readln(z);
long:=length(z);
if long<=7 then
omplir_taula_vector(P);
begin
for i:=1 to (long+1) do
begin
P[i+1]:=z[i];
end;
P[1]:='_';
end;
end;


procedure comparar_longituds;
begin
writeln;
if (long_seq1>7) or (long_seq2>7) then
begin
if (long_seq1>7) and (long_seq2<=7) then
begin
writeln;
writeln('- La sequencia 1 te una longitud major a 7');
end else
if (long_seq2>7) and (long_seq1<=7) then
begin
writeln;
writeln('- La sequencia 2 te una longitud major a 7');
end;
end;
if (long_seq1>7) and (long_seq2>7) then
begin
writeln;
writeln('- Les dues sequencies tenen una longitud major a 7');
end;
end;


procedure omplir_taula_espais(var TCC:matriu);
begin
for i:=1 to 9 do
begin
for j:=1 to 9 do
begin
TCC[i,j]:=' ';
end;
end;
end;


procedure omplir_taula_zero(var T:matriu2);
begin
for i:=1 to 8 do
begin
for j:=1 to 8 do
begin
T[i,j]:=0;
end;
end;
end;


procedure omplir_matriu(var TC:matriu);
begin
omplir_taula_espais(TC);
i:=1;
for j:=2 to (long_seq1+1) do
begin
TC[i,j]:=Q[j-1];
end;
j:=1;
for i:=2 to (long_seq2+1) do
begin
TC[i,j]:=R[i-1];
end;
end;


procedure puntuacio(var TD1:matriu2);
begin
omplir_taula_zero(TD1);
j:=3;
while j<=9 do
begin
for i:=3 to (long_seq2+1) do
begin
if TC0[1,j]=TC0[i,1] then
begin
TD1[i-1,j-1]:=TD1[i-2,j-2]+1;
end else
TD1[i-1,j-1]:=TD1[i-2,j-2]-1;
end;
j:=j+1;
end;
end;


procedure puntuacio_global(var TD1:matriu2);
begin
j:=2;
TD1[1,1]:=0;
TD1[1,j]:=-2;
TD1[j,1]:=-2;
while j<=(long_seq1+1) do
begin
i:=1;
for j:=3 to (long_seq1+1) do
begin
TD1[i,j]:=TD1[i,j-1]-2;
end;
while i<=(long_seq2+1) do
begin
j:=1;
for i:=3 to (long_seq2+1) do
begin
TD1[i,j]:=TD1[i-1,j]-2;
end;
end;
puntuacio(TD1);
end;


BEGIN
clrscr;
begin
repeat
write('1- Entra la primera sequencia: ');
longitud_sequencies(long_seq1,Q);
writeln;
write('2- Entra la segona sequencia: ');
longitud_sequencies(long_seq2,R);
comparar_longituds;
if (long_seq1<=7) and (long_seq2<=7) then
begin
comb_possibles:=combinacions(long_seq1,long_seq2);
writeln;
writeln;
writeln('- El numero de combinacions possibles es: ',(comb_possibles));
omplir_matriu(TC0);
puntuacio_global(DT1);
end;
writeln;
textcolor(red);
writeln('Per continuar presioni "INTRO". Per sortir presioni "ESC"');
writeln('=========================================================');
textcolor(lightgray);
writeln;
writeln;
writeln;
f:=readkey;
until (f=Esc);
writeln;
end;
END. <------------------- AQUI ME DA EL ERROR
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:Ayuda con Pascal (Error 85)

Publicado por Carlos Guimaraenz (265 intervenciones) el 04/08/2006 03:47:50
Hola Eli! Bueno, mirando el código me di cuenta que te falta un END; en el procedimiento PUNTUACIO_GLOBAL... otro punto, en el procedimiento LONGITUD_SEQUENCIES, hay un BEGIN luego de un IF, pero luego de una instrucción, por lo único que se hará condicionalmente será la primer instrucción, donde dice IF LONG <= 7.

Aquí ya compila, cualquier otro problema postea otra vez... un beso!
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:Ayuda con Pascal (Error 85)

Publicado por Roberto Garcia (56 intervenciones) el 05/08/2006 21:22:04
Ademas podrias ayudarnos a ayudarte simplificando la forma en que escribes las instrucciones

por ejemplo

procedure omplir_taula_espais(var TCC:matriu);
begin
for i:=1 to 9 do
begin
for j:=1 to 9 do
begin
TCC[i,j]:=' ';
end;
end;
end;

Quedaria un poco mas simple si lo escribes

procedure omplir_taula_espais(var TCC:matriu);
begin
for i:=1 to 9 do
for j:=1 to 9 do
TCC[i,j]:=' ';
end;

y asi por el estilo, te ahorras lineas, simplificas el programa por lo tanto la depuracion del mismo y seguro no hubieras tenido este problema.
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:Ayuda con Pascal (Error 85)

Publicado por MARIA MEDINA (1 intervención) el 27/06/2007 16:58:52
el programa me arroja un error 85 pero no se cual es ese error {$n+}
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:Ayuda con Pascal (Error 85)

Publicado por manuel jerez (1 intervención) el 11/02/2009 13:55:01
Hola buenos dias le escribo porque tengo un problema cuando corro mi programa en turbo pascal es sobre una matriz de 3x3 la cual debe sumar.

PROGRAM EJER92;
USES CRT;
CONST arr_num:ARRAY[1..3,1..3] of INTEGER=( (-12,23,-32),
(45,-56,-10),
(25,78,89));
VAR i,j,suma_pos,suma_neg:INTEGER;
BEGIN
suma_pos:=0;
suma_neg:=0;
ClrScr;

FOR i:=1 TO 3 DO
BEGIN
FOR j:=1 TO 3 DO
BEGIN
IF arr_num[i,j] < 0 THEN
suma_neg:=suma_neg+arr_num[i,j]
ELSE
suma_pos:=suma_pos+arr_num[i,j]
END;
END;

WRITELN('SUMA POSITIVOS: ', suma_pos:5);
WRITELN('SUMA NEGATIVOS: ', suma_neg:5);
END.

quiero saber cual es error??? me dice al correrlo error n 85... espero tu respuesta muchas gracias
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:Ayuda con Pascal (Error 85)

Publicado por juance (4 intervenciones) el 09/08/2006 03:22:06
HOLA:
Yo te recomiendo en el fondo una línea de cuatro, en el medio campo una línea de tres un enganche y adelante dos puntas
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:Ayuda con Pascal (Error 85)

Publicado por Carlos Guimaraenz (265 intervenciones) el 09/08/2006 04:45:55
Juance, estuviste totalmente desubicado, pero la verdad que me has hecho reir un buen rato jajajajaja. Un abrazo!
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