Pascal/Turbo Pascal - Números colegas

 
Vista:
sin imagen de perfil

Números colegas

Publicado por Rubén (12 intervenciones) el 01/11/2013 21:09:45
Buenas tardes, programadores,

Soy nuevo aquí, así que no sé si poner mi duda aquí es lo correcto, pero allá va. Resulta que tengo que hacer un programa que evalúe que un número sea colega de un número entero de una cifra o no. Para que el número sea colega de un número 'd' el número ha de empezar por el número d y acabar por el mismo número 'd'. Y a cuestión es que mi programa lo hace correctamente con números de 2 cifras, pero cuando el número a evaluar es de 3 o más no lo hace bien, así que me preguntaría, si alguien es tan amable de decirme cuál es el problema de mi código. Muchas gracias de antemano. Seréis recompensados debidamente.

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
35
36
37
38
39
40
PROGRAM numeros_colegas;
 
VAR
Numero,NumeroCifra :integer;
resto: integer;
NumeroColegaUnaCifra: boolean;
 
BEGIN
writeln('******** NUMEROS COLEGAS*******');
writeln;
REPEAT
write('Escriba un numero entero positivo: ');
readln(Numero);
UNTIL (numero>=0);
REPEAT
write('Escriba un numero de una cifra: ');
readln(NumeroCifra);
UNTIL (NumeroCifra>=0) AND (NumeroCifra<10);
 
IF (Numero DIV 10 = 0) THEN
IF (Numero = NumeroCifra)THEN
NumeroColegaUnaCifra:= TRUE
ELSE
NumeroColegaUnaCifra:= FALSE
ELSE
IF (Numero DIV 10 <> 0) THEN
resto:=(Numero div 10) mod 10;
IF (Resto DIV 10 = 0) THEN
 
IF (resto = NumeroCifra)THEN
NumeroColegaUnaCifra:= TRUE
ELSE
NumeroColegaUnaCifra:= FALSE;
writeln;
IF (NumeroColegaUnaCifra = TRUE) THEN
writeln('El numero ',Numero,' SI es colega de ',NumeroCifra)
ELSE
writeln('El numero ',Numero,' NO es colega de ',NumeroCifra);
readln;
END. {end begin}
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
sin imagen de perfil

Números colegas

Publicado por Rubén (12 intervenciones) el 02/11/2013 16:53:13
Matizo, sólo me sale cundo es el mismo número, o sea cuando es 44 me dice que es colega del 4, del 444 colega del 4, pero cuando es 434, me dice que NO es colega, cuando sí que es colega. Les agradezco mucho su ayuda. :)
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

Números colegas

Publicado por ramon (2158 intervenciones) el 03/11/2013 13:12:11
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
35
36
37
38
39
40
41
42
43
44
45
{Según tu teoría del numero colega mira esto}
 
 program numerocolega;
 uses
    crt;
  var
    num1, num2, num3, colega : longint;
 
 
   function escolega(n1, n2 : longint) : boolean;
   var
     nn, clg1, clg2 : longint;
    begin
       escolega := false;
       clg1 := n1 mod 10;
       nn := n1;
       num3 := 0;
       clg2 := 0;
       while nn > 0 do
       begin
         num3 := nn mod 10;
         nn := nn div 10;
         clg2 := (clg2 * 10) + num3;
       end;
       colega := clg2 mod 10;
       if (clg1 = n2) and (colega = n2) then
       escolega := true
    end;
 
  begin
      clrscr;
      writeln('   Entre Un Num. Entero Max 9 Cifras ');
      write('   Num : ');
      readln(num1);
      writeln;
      writeln('   Entre un Num. del 1 al 9 ');
      write('   Num : ');
      readln(num2);
      writeln;
     if escolega(num1,num2) = true then
     writeln('   El Numero Es Colega [Pulse Una Tecla]')
   else
     writeln('   El Numero No Es Colega [Pulse Una Tecla]');
    readkey;
  end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Números colegas

Publicado por Rubén (12 intervenciones) el 03/11/2013 14:26:33
Muchas gracias, Ramón.
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