Pascal/Turbo Pascal - Números colegas

   
Vista:

Números colegas

Publicado por Rubén (12 intervenciones) el 01/11/2013 21:04:58
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
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

Números colegas

Publicado por Rene gar (58 intervenciones) el 27/01/2014 06:11:28
No se si entendí bien tu problema , pero si lo hice aqui tienes una solucin mas corta usado una trampa del lenguaje pascal

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var
m:integer;
str:string;
begin
writeln('ingrese un numero entero');
readln(m);
 
str:=inttostr(m);
 
if length(str)>1 then
 begin
  if (str[1]) = (str[length(str)]) then
   writeln('son numeros colegas')
   else
     writeln('no son numero colegas');
end
  else
    writeln('ingrise un numero mayor a 2 cifras');
 
readln;
end.
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