Download RELACIÓN DE EJERCICIOS Tema 5: Subprogramas (Funciones)

Document related concepts
no text concepts found
Transcript
FUNDAMENTOS DE INFORMÁTICA
Dpto. Lenguajes y Ciencias de la Computación
UNIVERSIDAD DE MÁLAGA
Escuela Politécnica Superior
RELACIÓN DE EJERCICIOS
Tema 5: Subprogramas (Funciones)
NOTAS


Como ejercicios de este tema puede programar los ejercicios de temas anteriores pero utilizando
funciones.
Al realizar las funciones intente que sean lo más generales posible, de tal modo que sirvan en cualquier
sitio desde donde se las llame. Esto se puede conseguir teniendo en cuenta lo siguiente:
 Dentro de la función no se deben, en general, leer ni escribir valores. Los valores que se necesitan
pueden venir por distintas vías (no sólo la lectura) y los valores de salida pueden ser usados de
distintas formas (no sólo para escribirlos por pantalla).
 Defina bien los parámetros de entrada y salida dejando bien claro lo que necesita y devuelve la
función.
 No use variables globales.
 Ponga un comentario justo antes de cada función que indique como mínimo qué es lo que hace esa
función.
NIVEL BÁSICO
1.
Considera la siguiente función:
void escr(char ch,int longitud) {
while (longitud > 0) {
cout<<ch;
longitud --;
}
}
a. Si ch tiene el valor 'X' y numero el valor 5, .cuál sería el efecto de ejecutar cada una de las siguientes
llamadas a la función:
escr(ch,4*numero-12)
escr(ch,6)
escr(5,numero)
escr('/',numero)
escr('.',6)
escr('p',-10)
b.
2.
Escribe llamadas a la función escr para que cuando se ejecuten produzcan las siguientes salidas: 1)
35 guiones sucesivos; 2) 6 veces tantos espacios en blanco como el valor de número; 3) el valor actual
de ch 14 veces.
Sigue la ejecución del siguiente programa y averigua lo que saldría por la pantalla. Después, compila el
programa y ejecútalo en un ordenador para comprobar los resultados que has obtenido:
3.
/* Programa de Prueba de los pasos de parámetros */
#include <iostream>
Fundamentos de Informática
Tema 5: subprogramas
/* Subprograma con pasos de parámetros por valor y por referencia */
void dos(int x,int y,int& z) {
z = x + y + z;
cout<<x<<y<<z<<endl;
}
int main() {
int a,b,c;
a = 5;
b = 8;
c = 3;
dos(a,b,c);
dos(7, a+b+c, a);
dos(a*b, a/b, c);
cout<<c;
return 0;
}
4.
Supongamos las siguientes declaraciones de un programa principal:
float x,y; int m; char c;
Y sea un subalgoritmo con el siguiente prototipo:
void Prueba(int a, int b, float & c, float & d, char & e);
¿Cuáles de las siguientes llamadas desde el programa principal son incorrectas y cuál es la razón?
Prueba(m+3,10,x,y,c);
Prueba(30,10,m,x,c);
Prueba(m,19,x,y);
Prueba(m,m*m,y,x,c);
Prueba(35,m*10,x,c,y);
Prueba(m,10,35.0,y,'E');
Prueba(m,3.5,x,y,c);
Prueba(30,10,x,x+y,c);
Prueba(30,10,c,d,e);
5.
Dadas las siguientes declaraciones en un determinado algoritmo:
// -- Prototipos ---bool uno (unsigned x, unsigned y);
void dos (unsigned& x, unsigned y);
unsigned tres (unsigned x);
// -- Principal -------int main ()
{
unsigned a, b, c;
bool fin;
}
¿Cuáles de las siguientes llamadas a subprogramas en el cuerpo del programa principal son válidas?
a. if (uno(a,b))/*...*/
b. dos(a, b + 3);
c. fin = uno(c, 5);
d. fin = dos(c, 5);
e. dos(a,tres(a));
f. dos(tres(b),c);
g. if (tres(a))/*...*/
h. b = tres(dos(a,5));
i. dos(4, c);
6.
Escriba los prototipos de las siguientes funciones:
a. Una función que devuelva la fracción de cualquier número introducido como parámetro. Por ejemplo,
si se introduce el número 256.879, debe devolver el número 0.879. ¿.Cómo devuelve la función el
valor (con return o usando un parámetro por referencia)?
b. Una función llamada entero() que devuelva la parte entera de cualquier número
que se transmita a la función. ¿Cómo devuelve la función el valor?
c. Una función que acepte un número como parámetro y devuelva la parte entera de dicho número y
también su parte fraccionaria. ¿Cómo devuelve la función los valores?
d. Suponga que en un programa de prueba, la función main() declara las siguientes variables:
float numero, f, e;
Escriba posibles llamadas a cada una de las funciones anteriores.
Dpto. Lenguajes y Ciencias de la Computación
Escuela Politécnica Superior
2/8
Fundamentos de Informática
Tema 5: subprogramas
7.
Escriba una función llamada TrianguloRectangulo() que acepte la longitud de dos lados de un
triángulo rectángulo como argumentos. La función debe calcular y devolver la hipotenusa del triángulo.
Incluya la función escrita en un programa que funcione. La función main() debe llamar correctamente a la
función y mostrar el valor que devuelve la función.
8.
Escriba las siguientes funciones:
a. El volumen, v, de un cilindro está dado por la siguiente fórmula:
donde r es el radio del
cilindro y l es la altura. Utilizando esta fórmula escriba una función llamada VolumenCilindro()
que acepte como argumentos de entrada el radio y la altura de un cilindro y devuelva el volumen. Use
esta función en un programa de prueba.
b. La superficie, s, de un cilindro está dada por la siguiente fórmula:
+
donde r es el
radio del cilindro y l es la altura (se supone el cilindro con sus 2 tapaderas). Utilizando esta fórmula
escriba una función llamada AreaCilindro() que acepte como argumentos de entrada el radio y la
altura de un cilindro y que devuelva la superficie. Añada esta función al programa anterior y
modifique la función principal para probar también esta función.
c. Realice una única función que acepte como argumentos de entrada el radio y la altura de un cilindro
y devuelva su volumen y su superficie con las fórmulas de los ejercicios anteriores. Puede probar esta
función en el mismo programa anterior, o bien, crear otro distinto, ya que esta nueva función sustituye
a las dos anteriores.
9.
Diseñar una función lógica que nos diga si un número es impar.
10. Escribir una función de tipo lógico en C++ que devuelva true cuando un carácter que acepte como entrada sea
una vocal, y false cuando no lo sea.
11. Escribe una función en C++ que devuelva el factorial de un número que recibe como parámetro de entrada.
12. Diseña una función que devuelva un número combinatorio de forma modular. Después diséñala de forma más
eficiente sacrificando la modularidad.
13. Dado que no es aconsejable utilizar la igualdad entre número reales por ser dependiente de la precisión, diseñar
una función que devuelva el valor true cuando sus dos argumentos reales son iguales para una tolerancia dada,
y false cuando no lo sean. Utilizar para ello la siguiente especificación:
bool IgualesR(float v1, float v2, float tolerancia);
14. Diseña un subprograma, tanto su especificación como su implementación, que tome como entrada los
coeficientes de una ecuación de segundo grado y dé como salida las dos raíces reales de dicha ecuación. En un
argumento de salida lógico indicará cuándo las raíces son complejas, en cuyo caso no se calcularán las raíces.
15. Mejora el subprograma anterior, cambiando si es necesario su especificación, para que calcule también las
raíces complejas.
16. Escribe un subprograma, Intercambiar, que intercambie 2 números que llegan como parámetros de
entrada/salida.
Llamando al subprograma anterior, escribe otro, Ordenar2, que acepte 2 números enteros en 2 parámetros de
entrada/salida y los devuelva ordenados en los mismos parámetros, de forma que el menor quede en el primer
parámetro y el mayor en el segundo.
Apoyándote en el subprograma anterior, escribe otro, Ordenar3, que acepte como entrada 3 números enteros
y los devuelva ordenados en los mismos parámetros reales.
17. Escribe una función lógica, EsPrimo, que determine si un número de entrada es primo o no.
18. Escribe un procedimiento que halle la suma de 2 números complejos. Cada sumando complejo en realidad
serán 2 parámetros de entrada de tipo real. Y la suma será otros 2 parámetros de salida de tipo real.
19. Escribe un procedimiento que reciba como parámetros de entrada la parte real y la parte imaginaria de un
número complejo y lo pase a forma polar devolviéndolo en 2 parámetros de salida que contengan el módulo y
argumento correspondientes.
Dpto. Lenguajes y Ciencias de la Computación
Escuela Politécnica Superior
3/8
Fundamentos de Informática
Tema 5: subprogramas
20. El método de Euclides para encontrar el máximo común divisor de dos números enteros positivos consta de los
siguientes pasos:
a.
b.
c.
Divida el número mayor entre el menor y conserve el resto.
Divida el número menor entre el resto, y utilice nuevamente el resto.
Siga dividiendo el resto anterior entre el nuevo resto hasta que el resto se haga cero; el último resto
que no sea cero es el máximo común divisor.
Usando este algoritmo, realice una función que calcule y devuelva el máximo común divisor de dos números
enteros que se pasan como parámetros.
NIVEL MEDIO
21. En un almacén, cada producto es identificado por un número y un dígito adicional. Este segundo valor es un
dígito de autoverificación, que se calcula a partir del primer número, de la siguiente forma:
a) Multiplicar la posición de las unidades y cada posición alternada por dos. Ejemplo: Si el número del
producto es 543211 obtenemos 583412.
b) Sumar los dígitos no multiplicados y los resultados de los productos obtenidos en el apartado 1. En el
ejemplo obtenemos 23.
c) Restar el número obtenido en el apartado 2 del número más próximo y superior a éste, que termine en
cero. En el ejemplo sería 30-23=7. El resultado será el dígito de autoverificación.
Codificar una función que dado un número, devuelva su dígito de autoverificación. Escribir un programa que
vaya leyendo números de productos y compruebe mediante el dígito de autoverificación si el número
introducido es correcto o no. El proceso se repetirá hasta que se introduzca un cero como número de producto.
22. Escribir una función CuentaChars() que lea desde teclado una cadena de caracteres acabada en un punto,
para calcular la posición de la primera y la última ocurrencia de un determinado carácter ch. La función tendrá
4 argumentos: El primero será el carácter ch , los dos siguientes serán utilizados para devolver los valores
indicados (usando un paso de parámetros por referencia). Ambos valores serán cero si ch no aparece ninguna
vez en la cadena de caracteres leída. El último parámetro será para devolver el número de veces que aparece el
carácter ch. El programa de prueba principal simplemente leerá el carácter ch, llamará a la función
CuentaChars() y mostrará los 3 valores resultantes.
23. Escribe una función, seno, que devuelva el seno aproximado de un número utilizando la serie de MacLaurin
(Taylor alrededor de 0):
sin( x)  x 
x3 x5 x7
   ...
3! 5! 7!
Realiza el cálculo sumando términos hasta el primero que sea menor que una tolerancia, por ejemplo 10-6.
24. De forma similar, escribe otra función, coseno, que devuelva el coseno aproximado de un número utilizando su
desarrollo en serie de MacLaurin:
cos( x)  1 
x2 x4 x6
   ...
2! 4! 6!
25. Escribe un programa que lea un número entero positivo y calcule la suma de sus divisores, exceptuando él
mismo.
26. Dos números son amigos cuando coincide la suma de todos sus divisores. Apoyándote en una función
SumaDivisores que devuelva la suma de los divisores de un número, escribe otra función lógica,
amigos, que acepte 2 números como parámetros de entrada y devuelva true o false según sean o no
amigos ambos números.
Dpto. Lenguajes y Ciencias de la Computación
Escuela Politécnica Superior
4/8
Fundamentos de Informática
Tema 5: subprogramas
27. Realizar una función fibonacci(n) que calcule el término n-ésimo de la sucesión de Fibonacci, dada por:
fibonacci (0) = 0
fibonacci (1) = 1
fibonacci (i) = fibonacci (i-1) + fibonacci (i-2)
Diseñar un programa principal que acepte valores de n desde el teclado, utilice la función anterior y escriba el
resultado en la pantalla. El programa finalizará cuando se introduzca un valor negativo.
28. Dado un suceso X, que tiene una probabilidad de que ocurra p (número real entre 0 y 1), la probabilidad Pr de
que el suceso ocurra i veces en n experimentos viene dada por la función binomial,
n
Pr( X  i )    p i (1  p ) ni
i
donde i es un número entero entre 0 y n.
Escribe un programa que lea de teclado los valores p, n e i y calcule dicha probabilidad. Modulariza todos los
cálculos, los cuales no deberán aparecer en ningún caso en el programa principal.
Apoyándote en las funciones Combinatorio de un ejercicio anterior y la función pow de la librería matemática
estándar, escribe una función que, dados la probabilidad p de un suceso y un número de veces i, calcule la
probabilidad de que el suceso ocurra i veces.
29. Escribe un programa en C++ que lea de teclado un texto de entrada terminado en un punto y saque en pantalla
el número de palabras de que consta. Se considera palabra a una serie de letras y/o dígitos que no contienen
ningún otro carácter entre ellos.
30. Implementar lo siguiente:
a. Una función que, dados como argumentos los valores de 2 resistencias (en ohmios), devuelva la
resistencia global que ofrecen ambas si se conectan en paralelo.
b. Una función que, dados (como argumentos por valor) los valores de 3 resistencias (en ohmios),
devuelva la resistencia global que ofrecen si se conectan en paralelo. Implementar esta función
usando y sin usar la función anterior.
c. Un programa que calcule la resistencia global de n resistencias conectadas en paralelo. El programa
pedirá sucesivamente una tras otra las n resistencias. El programa entenderá que no hay más
resistencias cuando lea una resistencia menor o igual a cero. El programa se implementará de forma
que utilice la función del apartado a.
31. Programe una función con dos argumentos. El primero será un carácter pasado por valor y el segundo un
carácter pasado por referencia. La función servirá para descubrir el tipo de carácter que es el primer argumento
y, según eso devolverá (con return) los siguientes valores:




2: El carácter es una letra mayúscula entre la 'A' y la 'Z' del código ASCII.
1: El carácter es una letra minúscula entre la 'a' y la 'z' del código ASCII.
0: El carácter es un dígito numérico (de '0' a '9').
-1: El carácter es de cualquier otro tipo.
Además, si el carácter es una letra se devolverá en el segundo argumento la misma letra cambiando su estado
(de mayúsculas a minúsculas y viceversa). Si no es una letra, devolverá en el segundo argumento el mismo
carácter de entrada. En la función no debe usarse ningún número que referencie al código ASCII (en su lugar
se usarán los caracteres entre comillas simples).
32. Programe una función que lea sucesivamente caracteres uno a uno hasta llegar a un punto (carácter '.'). La
función escribirá cada carácter leído intercambiando mayúsculas por minúsculas y viceversa. Además, la
función tendrá 3 argumentos numéricos en los que devolverá cuántos caracteres hay de cada tipo (letras,
números y el resto). Observe que los 3 argumentos deben pasarse por referencia.
33. Codificar un programa que resuelva las ecuaciones simultáneas siguientes:
ax + by + c = 0
Dpto. Lenguajes y Ciencias de la Computación
y
px + qy + r = 0
Escuela Politécnica Superior
5/8
Fundamentos de Informática
Tema 5: subprogramas
Realizar una función encargada de la solución de las ecuaciones que devuelva el valor de x e y en función del
resto de parámetros de las ecuaciones. La función también debe devolver una variable lógica que indique si el
sistema de ecuaciones tiene solución o no. El programa principal debe leer los valores, resolver las ecuaciones
usando la función diseñada e imprimir en pantalla los valores en caso de existir o un mensaje de error si no es
posible resolverlas.
Resolver con dicho módulo las ecuaciones siguientes:
3x + 2y - 7 = 0
3x + 2y - 7 = 0
9x - 5y + 1 = 0
9x + 6y - 21 = 0
3x + 2y - 7 = 0
9x + 6y - 20 = 0
34. Defina una función llamada SumaDeDigitos() que reciba como parámetro un número unsigned int y
devuelva la suma de los dígitos que lo componen. Componga con ella un programa donde se lea el número, se
calcule esta suma y se presente en pantalla el resultado.
Unos ejemplos de ejecución son: para la entrada 102 el resultado es 3 y para 1800 el resultado es 9.
35. Dattatreya Kaprekar (1905-1986) fue un matemático indio que nunca escribió nada de alto nivel y sus trabajos
no han dado origen a ninguna investigación especial ni tienen ninguna utilidad importante, pero son
sorprendentes y originales. Entre sus trabajos está el siguiente:




Elegir un número de cuatro cifras A (no todas iguales y en el que las primeras pueden ser ceros).
Ordenar las cifras del número A en orden creciente, generando el número B, y luego en orden
decreciente, generando el número C.
Restar ambos números: D = C – B.
Volver a empezar pero considerando ahora el número D (en vez del número A).
Lo curioso es que independientemente del número A elegido, al final siempre se llega al mismo número. Hacer
un programa que averigüe ese número final (6174).
Fases del programa: Primero hacer una función que dado el número A como único argumento, nos devuelva
el número D. Esa función sólo efectuará un ciclo. El programa principal pedirá un número y aplicará la función
sucesivamente hasta que el resultado de la función sea igual a su argumento, es decir, hasta que ya no tenga
sentido seguir aplicando la función porque siempre obtenemos el mismo número. En ese momento el programa
mostrará ese número y terminará.
36. Otra idea de Kaprekar es coger un número A de 5 cifras que dividimos en dos partes, una B con las 3 primeras
cifras y otra C con las 2 últimas. Se suma 2 a ambos números B y C, despreciando el acarreo si se supera el
número de cifras inicial de B y C. Invertid los dos números poniendo delante el de dos cifras, CB, obteniendo
un nuevo número de 5 cifras. Ahora volver a empezar, repitiendo el proceso, hasta que obtengamos, de nuevo,
el número inicial, contando el número de pasos que vamos dando.
Por ejemplo: A partir del número 45113, Kaprekar descubrió que se obtiene el número inicial en 24568 etapas:
45113, 15453, 55156, 58553...
37. Siguiendo con Kaprekar, descubrió que algunos números al elevarlos al cuadrado y partir el resultado en dos
partes de 3 dígitos, si se suman esas dos partes se obtiene el número inicial. Por ejemplo, 297, cuyo cuadrado
es 88209, si ahora dividimos en dos partes y las sumamos obtenemos que: 88+209=297. Si a esos números los
llamamos números de Kaprekar, este ejercicio consiste en hacer una función que calcule y muestre todos los
números de Kaprekar menores a N, donde N es un valor natural que se introduce como único argumento de esa
función.
38. En el año 1582 el Papa Gregorio XIII implantó el llamado CALENDARIO GREGORIANO, una
modificación del anterior calendario, el Juliano, que se adapta mejor a la duración real de un año (365 días, 5
horas, 48 minutos y 45,9 segundos que tarda la Tierra en dar una vuelta completa alrededor del Sol). Este
calendario se estableció en el Concilio de Trento y comienza el 15 de octubre de 1582, siendo el que usamos
en la actualidad y, según él, un año es BISIESTO:


Si es divisible por 4 y no por 100
Caso de ser divisible por 100 que lo sea también por 400.
Ejemplos: El 1900 no fue bisiesto y el 2000 sí.
Codifique lo siguiente:
Dpto. Lenguajes y Ciencias de la Computación
Escuela Politécnica Superior
6/8
Fundamentos de Informática
a.
b.
c.
Tema 5: subprogramas
Función Bisiesto: Devuelve un valor lógico verdad si el año que toma como único argumento es
bisiesto y falso en caso contrario.
Función Dia1Enero: Acepta un año como único argumento y calcula, usando la función anterior, el
día de la semana del 1 de Enero de ese año. Para ello, tendremos en cuenta que el 1 de Enero de 1996
fue Lunes. El día de la semana resultante será devuelto por la función usando un número (1: Lunes, ...,
7: Domingo).
Programa Principal: Lee un año y, usando las funciones anteriores, indicará si dicho año es o no
bisiesto, así como el día de la semana del 1 de Enero de ese año. El día de la semana se escribirá por
pantalla con el nombre (Lunes, Martes, ...). Se debe controlar que el año sea superior a 1582.
39. Escribir una función sumanumeros() que lea una cadena de números separados por espacios acabada en un
punto (los caracteres se leerán uno a uno hasta leer el punto final). La función debe devolver la suma de todos
los números de la cadena y además debe aceptar tres argumentos: el primero será un carácter que contiene un
dígito (del 0 al 9), el segundo argumento devolverá el número de veces que ese dígito aparece en la cadena de
entrada y el tercer argumento devolverá el número de números que se han sumado en la cadena de entrada.
Observa que los dos últimos parámetros deben ser pasados por referencia.
Por ejemplo, si la cadena de entrada es: 22 18 1122 8.
La función es usada tal como:
sumaNum=sumanumeros('2',numVecesDigito,numNumeros);
Al terminar la ejecución de la misma tendremos los siguientes valores:
sumaNum=1170,
es decir 22+18+1122+8
numVecesDigito=4, es decir el 2 aparece 4 veces
numNumeros=4,
es decir hay cuatro números en la entrada
NIVEL ALTO
40. Realizar un programa que simule el siguiente juego: Un jugador tira dos dados. Si en la primera tirada la suma
de los dos es 7 u 11 el jugador gana. Si es 2, 3 ó 12 pierde. Si es cualquier otra puntuación el jugador debe
seguir tirando los dados hasta que bien repita la primera puntuación en cuyo caso gana la partida, o bien salga
un 7 y pierda.
41. Implementar una función, Digit(N,num) que devuelva el dígito N-ésimo de un número num de tipo long
unsigned int, teniendo en cuenta que el dígito 0 es el dígito más a la derecha (el menos significativo). La
función devolverá -1 si el número no tiene suficientes dígitos. Ejemplos:
Digit (0,3456)
Digit (1,3456)
Digit (4,3456)
Devuelve 6
Devuelve 5
Devuelve -1
Escriba un programa que tome como entrada desde teclado el número y la posición y escriba el dígito
resultante. Si la posición es mayor que el número de dígitos se escribirá en pantalla el mensaje “No existe
ningún dígito en esa posición”.
Nota: Considere la posibilidad de que el número N sea negativo.
42. Las resistencias electrónicas suelen ir identificadas por un código de colores que permite marcar cada
resistencia con su valor (en Ohmios, Ω) y su Tolerancia (en %). Este código de colores viene representado en
la siguiente tabla:
Dígito
0
1
2
3
4
5
Dpto. Lenguajes y Ciencias de la Computación
Color
Ninguno
Plata
Oro
Negro
Marrón
Rojo
Naranja
Amarillo
Verde
Multiplicador
0.01
0.1
1
10
102
103
104
105
Tolerancia
20 %
10 %
5%
1%
2%
Escuela Politécnica Superior
7/8
Fundamentos de Informática
Tema 5: subprogramas
6
7
8
9
Azul
Violeta
Gris
Blanco
106
107
El código que suele emplearse en las resistencias es un código de 4 colores, es decir, cada resistencia está
marcada con 4 bandas y cada una de ellas puede ser de diferente color. Cada banda tiene un significado, que
depende de cada color:



Las primeras 2 bandas indican un número de 2 dígitos: Esos dos dígitos vienen dados por el color de
esas bandas, según la columna “Dígito” de la tabla.
La tercera banda es un valor por el que se multiplicará el número obtenido por las bandas anteriores.
Una vez multiplicados ambos valores, obtenemos el valor de la resistencia en Ohmios (Ω).
La cuarta banda indica la tolerancia de la resistencia y, como puede verse en la tabla, no puede ser de
cualquier color.
Ejemplo: Unas resistencias con los siguientes colores, tienen los siguientes valores de resistencia y tolerancia:
Verde-Azul-Amarillo-Oro
Rojo-Negro-Rojo-Rojo
Rojo-Rojo-Marrón-Plata
560kΩ, 5%
2kΩ,
2%
220Ω, 10%
Según todo lo anterior, implemente un subprograma que permita calcular la resistencia y la tolerancia de una
resistencia, sabiendo los códigos de colores. El subprograma tendrá, como mínimo, 4 argumentos, que serán
números naturales, y que indicarán el color de las bandas según la columna “Dígito”. Los colores Oro, Plata y
Ninguno tomarán los valores 10, 11 y 12 respectivamente.
Implementar otro subprograma que muestre por pantalla el dígito que le corresponde a cada color (incluyendo
los dígitos 10, 11 y 12). Codificar también un programa principal que pida los colores de las 4 bandas y
muestre los valores devueltos por el anterior subprograma. El programa mostrará el dígito que le corresponde a
cada color usando la función ya creada y leerá de teclado 4 números que corresponderán a los colores de las 4
bandas. Tras esta lectura mostrará los datos de la resistencia con esos colores en las bandas. El programa se
repetirá indefinidamente hasta que lea un valor negativo como color de una banda.
43. Escribe un programa que acepte como entrada desde teclado un número entero positivo y dé como salida el
resultado de sumar dos a dos los dígitos que aparecen en posiciones simétricas respecto al dígito central dentro
del número dado como entrada. Utilice para ello la función realizada en el ejercicio anterior. Por ejemplo:
Para el número : 2354869
la salida es: 2+9 = 11, 3 + 6 = 9, 5 + 8 = 13, 4
Para el número : 6582
la salida es : 6 + 2 = 8, 5 + 8 = 13
Dpto. Lenguajes y Ciencias de la Computación
Escuela Politécnica Superior
8/8