Se queda en un if
Publicado por Javier (2 intervenciones) el 16/12/2015 22:28:48
Hola que tal, tengo un problema con este procedimiento. Lo que hace es cargar en un vector los numeros que dividen a un numero ingresado y son primos...
Para mi parecer es correcto pero al hacer trace into se queda en un if. Ese if es el de la linea que dice:
if(numingre mod i = 0) then
¿ Que es lo que estoy haciendo mal? Probe hacerlo en otro lado y funciona correctamente...
Ahi pego el codigo:
Desde ya muchas gracias ;)
Para mi parecer es correcto pero al hacer trace into se queda en un if. Ese if es el de la linea que dice:
if(numingre mod i = 0) then
¿ Que es lo que estoy haciendo mal? Probe hacerlo en otro lado y funciona correctamente...
Ahi pego el codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
procedure divpr(numingre: longword ; v: vector);
var
i: longword;
np: word;
stop: char;
begin
np:= 0;
stop:= 'a';
for i:=((numingre div 2)+1) downto 1 do
begin
while(stop = 'a') do
begin
if( numingre mod i = 0) then
begin
if(esprimo(i)= true) then
begin
v[np]:= i;
inc(np);
if(np>19)then
begin
writeln('Error ha alcanzado el vector ha alcanzado el limite de divisores primos');
stop:='b';
end;
end;
end;
end;
end;
while(np<20) do
begin
v[np]:= 0;
inc(np);
end;
mostrarvector(v,np);
end;
Desde ya muchas gracias ;)
Valora esta pregunta


0