Pascal/Turbo Pascal - Numeros Pares, alguien me ayuda?

 
Vista:

Numeros Pares, alguien me ayuda?

Publicado por pincho00 (12 intervenciones) el 03/12/2004 20:00:11
Hola!!
Tengo que hacer este ejercicio en Pascal, averiguar cuantos digitos pares tiene un numero introducido por teclado. El codigo que he creado es este, pero me no esta del todo bien, porque siempre suma un par de mas, alguien puede ayudarme?
Gracias.

program digpares;
uses crt;
var
dato:integer;
function npares(n:integer):integer;
var
total:integer;
begin
total:=1;
while n>9 do
begin
if n=0 then begin
total:=1;
n:=n div 10;
if (n mod 2=0) then
total:=total+1;

end;
npares:=total;
end;
begin
clrscr;
writeln('Introduzca un numero: ');
read(dato);
writeln('Numeros pares: ',npares(dato));
readkey;
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:Numeros Pares, alguien me ayuda?

Publicado por Ivanchuk (1 intervención) el 04/12/2004 02:07:57
Emmm, algo raro, while n>9 luego un if n=0??. Si n es mayor a 9 evidentemente nunca se hara la verificacion por n=0, fijate bien. Dividir por 10 ta bueno.
npares:= 0;
repeat
if (n and 1)=0 then inc(npares);
n:= n div 10;
until n=0;
Digamos que 0 es par. Saludos
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:Numeros Pares, alguien me ayuda?

Publicado por pincho00 (12 intervenciones) el 04/12/2004 11:50:39
Hola!!
No entiendo lo de inc(npares). Me lo podrias explicar?

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:Numeros Pares, alguien me ayuda?

Publicado por Ivanchuk (1 intervención) el 05/12/2004 22:18:55
Pues inc(x) es lo mismo que x:=x+1. Fijate en la ayuda que tambien se le puede pasar otro parametro mas. Saludos
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:Numeros Pares, alguien me ayuda?

Publicado por Ivanchuk (1 intervención) el 05/12/2004 22:33:26
Taba pensando, hay una pequeña ambiguedad. Cuando usas el operador de asignacion, no podes hacer npares:=npares+1, ya que te metes en una llamada recursiva, pero tal vez con inc funcione, el tema que inc es mas rapido que hacer la suma anterior puesto que trabaja solo con enteros. Si el compilador te rompe la bolas, usa otra variable y listo, luego al final se la asignas a npares. Suerte
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