Trabajo I Unidad Fecha de entrega Jueves 11/06/17 Recuerde que los códigos fuente lo presentará en un CD e impreso en MS Word y de ser posible se exponrda el viernes 12/05/2017 .
Escriba un programa en C++ que: 1. Codifica un programa que reciba 06 números todos diferentes entre sí y devuelve el menor de los positivos y el mayor de los negativos, si no hay uno de ellos devolverá 0 2. Muestre en pantalla los números enteros del 1 a N (N es un número natural). 2.1 Muestre en pantalla los números enteros del 1 a N (N es un número número natural). de 3 en 3. 2.2.- Convertir una cantidad en metros a yardas, pies y pulgadas (y viceversa). 3.- Muestre en pantalla los números enteros de N (N es un número natural mayor que 1).al 1.
4. Muestre Muestre en pantall pant allaa todos tod os los múltiplos m últiplos de 3 ent re los números 1 y N (N es un un número número natural).. 5. Gener eneree la sigu ient e seri e: 5, 10, 15, 20, 25,30 … El programa preguntará primero cuantos términos se quieren mostrar y después mostrará la serie correspondiente. 6. Pida al usuario un un número, y muestre el mensaje "has introducido el numero ---" (mostrando el número que ha sido introducido). Esta acción debe repetirse repetirse hasta que el usuario introduzca el número 0. En ese momento se mostrará el mensaje "Finalizando: Se ha introducido el número 0". Además, se debe mostrar cuántos números se han introducido y su suma. s uma. 7. P ida al usuario su nombre y contraseña y le de tres oportunidades para introducir los datos correctos, que serán root y 4321. Si los datos introducidos son correctos se mostrará por pantalla “Bienvenido al sistema”. En caso contrario se mostrará un mensaje por pantalla indicando que se ha superado el número de intentos permitido. Notas: Puesto que las cadenas de caracteres finalizan con el carácter nulo ( ‘ \0’), usuario y contraseña se declararán como cadenas de longitud 5 (char usuario[5]). Para leer cualquiera de estas cadenas con la función scanf se usará el descriptor de formato %s y dado que el nombre de la cadena ya es una dirección, éste no debe ir precedido del símbolo &(scanf(“%s”, usuario)). string compare), por ejemplo Para comparar cadenas se debe usar la función strcmp ( string strcmp(usuario, "root"), que devolverá un 0 si las cadenas son iguales y otro valor si son distintas. 8.
Eleve un número a una potencia, utilizando utilizando dos métodos: a) utilizando la función potencia y b) usando un bucle, sin si n recurrir al operador potencia. Nota: En C, para p ara poder y usar la función potencia (pow(x, y)=x ) es necesario incluir la biblioteca math (#include ).
9. Solicite 10 números enteros positivos al usuario y calcule y muestre los siguientes 1
valores: • La suma de todos los números leídos. • La media de los números. • El mayor número introducido. • El menor número introducido. 10. Solicite números al usuario hasta que se hayan introducido 10 números o la suma de todos los números leídos sea mayor que 100. A continuación mostrar un mensaje indicando qué condición se ha cumplido (es decir, si se han introducido 10 números o si su suma es mayor que 100). 11. Para adivinar un número entre 1 y 100 que previamente se ha definido como una constante. El programa irá pidiendo números al usuario y, siempre que dicho número no coincida con el número secreto, le indicará si el número introducido es mayor o menor que el número secreto que tiene que adivinar. Al final, el programa indicará la cantidad de intentos que se han necesitado para adivinar el número. Si el número de intentos es menor que 5 se mostrará “Enhorabuena!”. Si es un valor entre 5 y 10 se mostrará el mensaje “ No está mal”. Si el número de intentos es mayor que 10 se mostrará el mensaje “Debe practicar más”. 12. Modificar el ejercicio anterior para que el número máximo de intentos sea 5. Al terminar el programa indicará si el usuario ha ganado (si ha adivinado el número en menos de cinco intentos) o no. 13. Solicite al usuario números positivos de tres o más cifras y compruebe si son pares. Si el número introducido es positivo pero de una o dos cifras, se solicitará un nuevo número. El programa finaliza cuando se introduce “0” o un número negativo. 14. Permita calcular el importe de una factura, a partir de una serie de artículos vendidos. Para ello, el programa irá preguntando para cada artículo la cantidad de unidades vendidas y el precio unitario. El programa comprobará que tanto el precio como la cantidad son números positivos, y en caso contrario volverá a solicitar los valores. La lectura de artículos acabará cuando se introduzca un 0 en la primera pregunta. Entonces se imprimirá por pantalla el importe total de la factura. 15. Escribir un programa en C que escriba los números comprendidos entre 1 y 1000. El programa escribirá en la pantalla los números en grupos de 20, solicitando al usuario si quiere o no continuar visualizando el siguiente grupo de números. Generalizar el programa para que escriba los números comprendidos entre dos valores que introduzca el usuario, y sea éste también quien decida el tamaño del grupo a visualizar por pantalla. 16. Escriba un programa que lea números por teclado hasta que se introduzca el cero. En ese momento deberá representar el número de introducciones efectuadas, y la mayor secuencia de números consecutivos iguales, indicando cuál fue el número que se repitió y cuántas veces seguidas apareció. Ejemplo: Si se introduce 8 8 8 4 5 6 6 6 7 7 7 7 2 0, el resultado a mostrar será. ‘El número más repetido es el 7 y se ha escrito 4 veces’. 17. Escriba un programa en C que solicite un número y calcule su factorial. El factorial de un número n (representado por n!) es el producto de todos los números naturales desde 2
1 hasta n. n! = 1 * 2 * 3 * … * (n-1) * n. 18. Escriba un programa que calcule la raíz cuadrada de un número con n decimales, por el Método de aproximaciones sucesivas. Nota: Método de las aproximaciones sucesivas Se basa en 'ensayo y error'. A este tipo de algoritmos se les llama de aproximaciones sucesivas: se empieza por un valor inicial y se va modificando para acercarse al resultado. En este caso se comienza suponiendo que la raíz es 1. Se comprueba si raiz*raiz=num y si no es así se suma un incremento, y se vuelve a comprobar. Se repiten estos pasos hasta que raiz*raiz>num. Para computar el valor con un número determinado de decimales se repiten esos pasos con un incremento cada vez menor (la primera vuelta 1, la segunda 0,1, la tercera 0,01 En cada paso la precisión es un decimal más, por lo que se repite hasta que el número de decimales sea el introducido por el usuario, o hasta que se encuentre el valor exacto. 19. Se quiere averiguar el número mágico de una persona. Para calcularlo se suman todos los números de su fecha de nacimiento y a continuación se reducen a un solo dígito. Ejemplo: Fecha de nacimiento: 05/02/1973 5 + 2 + 1973 = 1980 => 1 + 9 + 8 + 0 = 18 =>9 20.- Realice un programa que: a) Solicite al usuario el año, el mes y el día que componen su fecha de nacimiento y compruebe que la fecha introducida es una fecha válida. La fecha se considerará válida si: año >0; 1<=mes<=12; 1<=dia<=DIAS_MES. Se considerará que, con independencia del año, el número de días del mes de Febrero es 28. b) Calcule el número mágico asociado a esa fecha. c) Muestre el número mágico por pantalla
3