Pascal/Turbo Pascal - [AYUDA] EJ UTN - COMPILA PERO NO EJECUTA BIEN(PAS)

 
Vista:

[AYUDA] EJ UTN - COMPILA PERO NO EJECUTA BIEN(PAS)

Publicado por Ivan (2 intervenciones) el 01/09/2010 05:55:48
Hola, tengo que hacer el siguiente problema de tarea:
"El gobierno de la Ciudad de Buenos Aires realiza una encuesta en casas de familia. De cada familia conoce: domicilio, tipo de vivienda (‘C’:casa, ‘D’:departamento), y cantidad de integrantes.
De cada integrante de la familia se conoce: nombre y apellido, edad, sexo (‘F’, ‘M’), nivel de estudios alcanzados (‘N’: no posee, ‘P’: primario, ‘S’: secundario, ‘T’: terciario, ‘U’: universitario), y un indicador (‘I’: incompleto, ‘C’: completo) que se refiere al ítem anterior.
Los datos finalizan cuando la cantidad de integrantes sea igual a cero.
Se pide emitir un listado con los resultados:
1)Porcentaje de Hombres
2)Porcentaje de Mujeres
3)Porcentaje de Analfabetos
4)Promedio de la edad de la población
5)Cantidad de Personas que terminaro la primaria
6)Cantidad de integrantes de la flia más grande"

El programa lo compila, procesa los datos y hace lo que quise que haga correctamente. El problema está cuando lo ejecuto, en el proceso finalizar cuando ejecuta esa parte me sale un error en el CMD que dice "ERROR 200 at 0x00401108".Ya se que hay cosas que no uso todavía como si están completos o no los estudios, los voy a tener que usar en un futuro por eso hago que los ingrese. Disculpen si el programa no es muy legible, acabo de aprender pascal y la verdad mucha idea no tengo. Gracias.

//Inicializar
procedure Inicializar(var iMayorCantidad,iEdadTotal,iAnalfabetos,iHombres,iMujeres:integer);
begin
iMayorCantidad:=0;
iEdadTotal:=0;
iAnalfabetos:=0;
iHombres:=0;
iMujeres:=0;
end;
//Proceso
procedure Proceso(Var sEstudios,sSexo:string; Var iCantidad,iMayorCantidad,iEdad,iEdadTotal,iPrimaria,iAnalfabetos,iHombres,iMujeres:integer);
begin
if (sEstudios='P')then begin
iPrimaria:=iPrimaria+1;
end;
if ((iEdad>10) AND (sEstudios='N'))then begin
iAnalfabetos:=iAnalfabetos+1;
end;
if (sSexo='M')then begin
iHombres:=iHombres+1;
end else begin
iMujeres:=iMujeres+1;
end;
if (iCantidad>iMayorCantidad)then begin
iMayorCantidad:=iCantidad;
end;
iEdadTotal:=iEdadTotal+iEdad;
end;
//Finalizar
procedure Finalizar (iCantidad,iPrimaria,iAnalfabetos,iHombres,iMayorCantidad,iEdadTotal:integer);
Var rPorAnalfabetos,rPorHombres,rPorMujeres,rPorEdadTotal:real;
begin
rPorAnalfabetos:=(iAnalfabetos*100)div iCantidad;
rPorHombres:=(iHombres*100)div iCantidad;
rPorMujeres:=100-((iHombres *100)div iCantidad);
rPorEdadTotal:=iEdadTotal div iCantidad;
Writeln('El porcentaje de analfabetos es de: ',rPorAnalfabetos,' analfabetos.');
Writeln('El porcentaje de hombres es de: ',rPorHombres,' hombres.');
Writeln('El porcentaje de mujeres es de: ',rPorMujeres,' mujeres.');
Writeln('La edad promedio de la poblacion es de: ', rPorEdadTotal);
Writeln('Cantiadad de personas que terminaron la Primaria: ',iPrimaria);
Writeln('La familia de mayor cantidad de integrantes es tiene ',iMayorCantidad,' integrantes.');

end;
//Programa Principal
Var iCantidad,iMayorCantidad,iEdad,iEdadTotal,iPrimaria,iAnalfabetos,iHombres,iMujeres,i:integer;sDomicilio,sTipo,sNombre,sSexo,sEstudios,sEstado:string;
begin
Inicializar(iMayorCantidad,iEdadTotal,iAnalfabetos,iHombres,iMujeres);
Write('Ingrese la cantidad de integrantes de su familia: ');
Readln(iCantidad);
While (iCantidad<>0)do begin
Write('Ingrese el tipo de vivienda(C:Casa o D:Departamento): ');
Readln(sTipo);
Write('Ingrese su domicilio: ');
Readln(sDomicilio);
for i:=1 to iCantidad do begin
Write('Ingrese su nombre y apellido: ');
Readln(sNombre);
Write('Ingrese su edad: ');
Readln(iEdad);
Write('Ingrese su sexo(M:Masulino o F:Femenino): ');
Readln(sSexo);
Write('Ingrese su nivel de estudios(N:No posee,P:Primario,S:Secundario,T:Terciario,U:Universitario): ');
Readln(sEstudios);
Write('Indique el estado de sus estudios(I:Incompleto o C:Completo): ');
Readln(sEstado);
Proceso(sEstudios,sSexo,iCantidad,iMayorCantidad,iEdad,iEdadTotal,iPrimaria,iAnalfabetos,iHombres,iMujeres);
end;
Write('Ingrese la cantidad de integrantes de su familia: ');
Readln(iCantidad);
end;
Finalizar(iCantidad,iPrimaria,iAnalfabetos,iHombres,iMayorCantidad,iEdadTotal);
end.
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] EJ UTN - COMPILA PERO NO EJECUTA BIEN(P

Publicado por Martin (74 intervenciones) el 01/09/2010 12:54:01
Hola:
Si el error es el 200 se trata de la division por cero. Para evitar dicho error tendrás que parchear PASCAL y para ello lo mejor es que entres en la página de Digo Romero (http://www.driverop.com.as) donde encontrarás dichos parches y mucho más.
un saludo.
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