Pascal/Turbo Pascal - Ayuda con Programa Pascal

 
Vista:

Ayuda con Programa Pascal

Publicado por Daniel (2 intervenciones) el 24/11/2011 20:23:54
Gente tengo un gran problema "Termine" mi programa en Pascal, pero cuando lo corro se cuelga o me da error

hasta donde lo vi el problema esta despues de llamar al procedimiento AgregarDato, actualmente en el codigo este procedimiento esta comentado, asi es la unica manera de saber que hasta ahi el programa anda bien.

Cuando hago correr el programa cuando el procedimiento esta comentado por pantalla se muestra

mostrar resultado 1
mostrar resultado 1
mostrar resultado 2

eso me indica que esta bien pero cuando descomento ese procedimiento el programa se cuelga

No se si sea un problema de mi S.O. falta de compatibilidad o un error logico

Les adjunto el codigo completo para que me den una mano

http://www.megaupload.com/?d=17TOLOFO

gracias.
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

Ayuda con Programa Pascal

Publicado por micropais (209 intervenciones) el 26/11/2011 18:55:09
hola Daniel .

ERRORES encontrados con FREE-PASCAL
el free -pascal no me deja ejecutar el programa hasta que acorto el nombre

- pruebafunciones.pas nombre demasiado largo pruebo con nombre 8+3 y todo ok

he segido el programa hasta donde he podido separando el code de forma lineal y tienes 373 registros.

el procedure buscaPalNoComun
i,j,ultIndice:byte; // deberia ser integer para manejar los 373 registros que tienes en fichero
// byte solo trabaja hasta 0..255

no he podido continuar por falta de tiempo , espero que te haya ayudado .

si tienes mas errores muestra el valor numerico y el compilador que usas .

saludos de micropais.
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

Ayuda con Programa Pascal

Publicado por ramon (2158 intervenciones) el 28/11/2011 17:36:01
Mira este fracmento y beras la comprovacion para no pasar el total del array funciona en pascal 7.

procedure AgregarDato(var palAct:TipoPalabra;var tweAct:TipoRegTweets;var resultados:TipoResultados; var ultInd:byte);
var
a,b,c,mes,cambio:byte;
temp:TipoRegDatos;
begin
mes:=MesDeFecha(tweAct.fecha);
cambio:=0;
for c:=0 to 9 do begin
if resultados[c].palabra = palAct then begin
inc(resultados[c].mes[0]);
inc(resultados[c].mes[mes]);
cambio:=1;
if c <> 0 then begin
a:=c;
while a <> 0 do begin
if resultados[a].mes[0] > resultados[a-1].mes[0] then begin
temp:=resultados[a];
resultados[a].palabra:=resultados[a-1].palabra;
resultados[a-1].palabra:=temp.palabra;
for b:=0 to 12 do begin
resultados[a].mes[b]:=resultados[a-1].mes[b];;
resultados[a-1].mes[b]:=temp.mes[b];;
end;{end for}
end; {end if}
a:=a-1;
end;{end while}
end;{end if}
break;
end;{end if******************************************************************************}
end;{Termina for}
if cambio = 0 then begin
resultados[ultInd].palabra:=palAct;
inc(resultados[ultInd].mes[0]);
inc(resultados[ultInd].mes[mes]);
inc(ultInd);
end;
end;


procedure AgregarDato(var palAct:TipoPalabra;
var tweAct:TipoRegTweets;
var resultados:TipoResultados;
var ultInd:integer);

if cambio = 0 then
begin
resultados[ultInd].palabra:=palAct;
inc(resultados[ultInd].mes[0]);
inc(resultados[ultInd].mes[mes]);
inc(ultInd);
if ultind > 10 then
ultind := 10;
end;
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