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 46 47 48 49 50 51 52 53 54 55 |
-- 24/02/2012 -- Dado un número entero positivo, su crápulo es el número que se obtiene sumando los dígitos que lo componen. Si el valor de la suma es menor que 10, el crápulo es el valor obtenido, si no, hay que volver a sumar los dígitos hasta que sea menor de 10. Escriba un programa que calcule el crápulo de un número. Ejemplos: de 7, 7; de 13, 4; de 492, 6, de 5678, 8. with ada.text_io; with ada.integer_text_io; procedure ada7x08 is use ada.text_io; use ada.integer_text_io; numero:integer; -- FUNCIÓN HALLA CRÁPULO DE UN NUMERO: function crapulo( numero: in integer ) return integer is -- Precondición: Se ha de recibir un parámetro de entrada de tipo entero. -- Poscondición: Si el número recibido es menor que 10, se devuelve sin mas, si es mayor se suman todas sus cifras y se reenvía de nuevo a la función, así hasta conseguir su crápulo. num:integer := numero; suma:integer := 0; begin if num < 10 then return num; else while num /= 0 loop suma := suma + num mod 10; num := num / 10; end loop; return crapulo(suma); end if; end crapulo; begin put("Introduzca un número entero positivo: "); get(numero); while numero < 0 loop put("El número ha de ser positivo, intentelo de nuevo: "); get(numero); end loop; put("El número crápulo de "); put(numero, width=>0); put(" es: "); put( crapulo(numero),width=>0 ); new_line; end ada7x08; |