2
« en: Martes 14 de Noviembre de 2006, 13:23 »
Buenas,
Me he matriculado de nuevo en la FACULTAD DE INFORMÁTICA, y como primera practica de programación, tengo que calcular, el número primo, lo que pasa es que tengo problemas a la hora de ejecutarlo.
Dicho programa tiene que leer de un fichero, en los cuales hay números, da igual que tipo sea, y tendrá que indicar si es primo, o no es primo, pero a la hora d ejecutarlo en la última instrucción, el bucle me lo hace una vez más (dependiendo si cambio las condiciones), y a parte si el número es 0 o bien hay más espacios en blanco, "peta".
Program Numero_Primo (fichero,output);
Var
Fichero: Text;
Numero, Coord_X, Coord_Y: Integer;
final,Primo: Boolean;
h:char;
Function numeroprimo(numero:integer):boolean;
var
valor,resto_div: integer;
begin
valor := 1; resto_div :=1;
if numero = 1 then
primo := true
else
begin
while resto_div <> 0 do
begin
valor := valor +1;
resto_div:= (numero mod valor);
end;
if numero = valor then numeroprimo := true
else numeroprimo := false;
end;
end;
Procedure salida_pantalla(numero1:integer;var primo:boolean);
Begin
writeln;
Writeln('********************************************************');
Writeln('* Nombre del Alumno: Jos‚ Antonio Barreiro Calvi¤o *');
Writeln('* Asignatura: Fundamentos de Programaci¢n (FP I) *');
Writeln('* Curso: ITIG (Ingenieria T‚cnica Inform tica Gesti¢n) *');
Writeln('* N£mero de Matr¡cula: bd003 *');
Writeln('********************************************************');
writeln;
if primo = false then
writeln (output,'El N£mero: ',numero1, ' no es n£mero primo en la pos X:', coord_x, ' pos Y:', coord_y)
else
writeln (output,'El N£mero: ',numero1, ' es n£mero primo en la pos X:', coord_x, ' pos Y:', coord_y);
End;
Begin
primo := true; coord_x:=0; coord_y := 1;
assign (fichero, 'numeros.txt');
reset(fichero);
repeat
coord_x:=coord_x+1;
read(fichero,numero);
primo:=numeroprimo(numero);
salida_pantalla (numero,primo);
if eoln(fichero) then
begin
coord_x := 0; coord_y := 1;
end;
if eof(fichero) then
writeln;
writeln('Se ha llegado al final de fichero. Pulse tecla ....');
until (eof(fichero));
close (fichero);
End.
Alguna sugerencia !!!!!!
Gracias de antemano