CC102 Dirigida CSL (1)

3
CC102 / 2013-I FC UNI INTRODUCCIÓN A LA PROGRAMACIÓN ABR,2013 FUNCIONES 1. Escribir una función Salario que calcule los salarios de un trabajador para un número dado de horas trabajadas y un salario hora. Las horas que superen las 40 horas secuenciales se pagarán como extras con un salario hora 1,5 veces el salario ordinario. 2. Escribir un programa que permitirá el cálculo del mcd de dos números por el algoritmo de Euclides. (Dividir a entre b, se obtiene el cociente q y el resto r; si es cero b es el mcd, sino se divide b entre r y así sucesivamente hasta encontrar un resto cero, el ultimo divisor es el mcd.) 3. Dado el valor de un ángulo, escribir una función que muestre el valor de todas las funciones trigonométricas correspondientes al mismo. 4. Realizar un programa en un menú que utilice funciones para evaluar las siguientes conversiones. 1. Kilómetros a Millas 2. Millas a Kilómetros 3. Centígrados a Fahrenheit 4. Fahrenheit a centígrados 5. Kilogramos a Libras 6. Libras a Kilogramos 7. Metros a Pies 8. Pies a Metros 9. Salir 5. Escriba una función multiplo que determine para un par de enteros, si el segundo es múltiplo del primero. La función debe tomar dos argumentos enteros y devolver 1 (verdadero) si el segundo es un multiplo del primero, y de lo contrario 0 (falso). Utilice esta función en un programa que introduzca una serie de pares de enteros. 6. Escriba una función que despliegue en el margen izquierdo de la pantalla un cuadrado sólido de asteriscos cuyas medidas se especifiquen mediante el parámetro lado. Por ejemplo, si lado es 4, la función despliega: **** * * * * **** 7. Escriba un programa que simule un volado (lanzamiento de una moneda). Por cada volado, el programa deberá imprimir Cara o Cruz. Permita que el programa lanze la moneda 100 veces y cuente el número de veces que aparece cada lado de la moneda. Imprima los resultados. El programa debe llamar a una función aparte llamada resultado, la cual no tiene argumentos y devuelve 0 para Cara y 1 para Cruz. 8. Realizar un programa que inserte en un menú con las siguientes opciones. Calcular factorial recursivamente. Calcular factorial iterativamente. Calcular exponencial recursivamente.

Transcript of CC102 Dirigida CSL (1)

CC102 / 2013-IFC UNI INTRODUCCIÓN A LA PROGRAMACIÓN ABR,2013

FUNCIONES1.Escribir una función Salario que calcule los salarios de un trabajador para un número dado dehoras trabajadas y un salario hora. Las horas que superen las 40 horas secuenciales se pagaráncomo extras con un salario hora 1,5 veces el salario ordinario.

2.Escribir un programa que permitirá el cálculo del mcd de dos números por el algoritmo de Euclides. (Dividir a entre b, se obtiene el cociente q y el resto r; si es cero b es el mcd, sino se divide b entre r y así sucesivamente hasta encontrar un resto cero, el ultimo divisor es el mcd.)

3.Dado el valor de un ángulo, escribir una función que muestre el valor de todas las funciones trigonométricas correspondientes al mismo.

4.Realizar un programa en un menú que utilice funciones para evaluar las siguientes conversiones.

1. Kilómetros a Millas2. Millas a Kilómetros3. Centígrados a Fahrenheit4. Fahrenheit a centígrados5. Kilogramos a Libras6. Libras a Kilogramos7. Metros a Pies8. Pies a Metros9. Salir

5.Escriba una función multiplo que determine para un par de enteros, si el segundo es múltiplo del primero. La función debe tomar dos argumentos enteros y devolver 1 (verdadero) si el segundo es un multiplo del primero, y de lo contrario 0 (falso). Utilice esta función en un programa que introduzca una serie de pares de enteros.

6.Escriba una función que despliegue en el margen izquierdo de la pantalla un cuadrado sólido de asteriscos cuyas medidas se especifiquen mediante el parámetro lado. Por ejemplo, si lado es 4, la función despliega:*****   **   *****

7.Escriba un programa que simule un volado (lanzamiento de una moneda). Por cada volado, el programa deberá imprimir Cara o Cruz. Permita que el programa lanze la moneda 100 veces y cuente el número de veces que aparece cada lado de la moneda. Imprima los resultados. El programa debe llamar a una función aparte llamada resultado, la cual no tiene argumentos y devuelve 0 para Cara y 1 para Cruz.

8.Realizar un programa que inserte en un menú con las siguientes opciones.Calcular factorial recursivamente.Calcular factorial iterativamente.Calcular exponencial recursivamente.

Calcular exponencial iterativamente.

9.[Cake number] Imprimir los 50 primeros términos de la siguiente serie: 1, 2, 4, 8, 15, 26, 42, 64 , ... Para ello se tendrá que llamar a una función que vaya mostrando los números, es decir, dentro de la repetición que debe estar en el programa principal se llamará a la función que calcule el cake number solicitado y devolverlo.

10.Dado un número complejo x+yi, implementar las siguientes funciones

1. Devolver el componente real - float real(float x, float y)2. Devolver el componente imaginario - float real(float x, float y)3. Devolver el modulo - float modulo(float x, float y)4. sumar dos número complejos - float suma(float x, float y, float& u, float& v)5. devolver la conjugada - float conjugada(float x, float y, float& u, float& v)

RECURSIVIDAD

11.Escribir una función de Fibonacci de modo recursivo y un programa que manipule dicha función, de modo que calcule el valor del elemento de acuerdo a la posición ocupada en la serie.

12.Hacer un programa con recursividad con el menor numero de lineas, que te dé el resultado de s = sumam(n) , s=a + a*a + a*a*a de n veces sumadosej. a=2 n=3 s= 2 + 2*2 + 2*2*2

13.Hacer un programa con recursividad con el menor numero de lineas, que te retorne la suma de n numeros,ej. s = sumar(n), n=5 2 5 1 3 4, s=15

14.Hacer un programa con recursividad con el menor numero de lineas, que te calcule la suma de s=1+1/2+1/3+1/4....+1/n,ejm s=sumd(n), s= 1 + 1/2 + 1/3, n=3

15.Escriba una función recursiva mcd que devuelva el máximo común divisor de X y Y. El mcd se define de manera recursiva de la siguiente manera: si Y es igual a 0, entonces mcd(X,Y) es X, de lo contariomcd (X,Y) es mcd(Y,X%Y), en donde % es el operador módulo.

16.Crear una función Combinar, que dado un string s, devuelva todas las combinaciones posibles que se pueden formar a partir de los caracteres de s. Este método es un poco más complicado, pero muy útil y práctico. Para esto usaremos recursividad, para ir generando todas las posibles combinaciones.(ejemplo: entrada: “hoy”; salida: “hoy”, “hyo”, “ohy”, “oyh”, “yho”, “yoh”).

17.Escriba un programa que muestre un menu con dos opciones, en las que se llamará a la función correspondiente para:

1. Convertir un numero de base 10 a base b (entre 2 y 9)2. Reportar un numero al revés

18.Usando funciones recursivas hallar el valor de las siguientes funciones con una tolerancia de10-9.

1.  e x = ∑∞

n=0n!x n

2. eno x   s = ∑∞

n=0(2n+1)!(−1)  x n 2n+1

17.Implementar una función float f(float x) y float f_prima(float x), que devuelva la evaluación de una función (3x*x*x-12x*x+18x-135 = 0) y de su derivada. Luego implementar la siguiente función recursiva para hallar los mínimos o máximos locales.

  αx n −   * g (x)

 x n+1 =

 si  δ0 x   || n+1 − x n|| <  

   .1, δ .01α = 0   = 0