Guia 2 Programacion en C

download Guia 2 Programacion en C

of 6

Transcript of Guia 2 Programacion en C

  • 8/3/2019 Guia 2 Programacion en C

    1/6

    Preparacion Laboratorio 2

    INC112 - Programacion ILunes 5 y Martes 6 de Diciembre 2011

    Prof. Eliana Providel G. - Roberto Munoz S.Ayudantes: Jose Arenas - Carlos Varas

    Instrucciones: Trabaje utilizando Linux y gcc para compilar o DevC++ en Windows

    1. Desarrolle un programa en C que dado 10 numeros enteros:

    Llene un arreglo con los 10 numeros.Calcule el promedio de los 10 numeros.

    Encuentre el numero mayor indicando su posicion dentro del arreglo.

    Encuentre el numero menor indicando su posicion dentro del arreglo.

    Calcule la cantidad de numeros bajo y sobre el promedio.

    2. Dado un mensaje, se debe calcular su costo para enviarlo por telegrafo. Para esto sesabe que cada letra cuesta $10, los caracteres especiales que no sean letras cuestan$30 y los dgitos tienen un valor de $20 cada uno. Los espacios no tienen valor.Ejemplo: Entrada: Feliz Aniversario!, Salida: Su mensaje cuesta $260.

    El mensaje es una cadena de caracteres.

    Las letras (n,N,a,e,,o,u) se consideran caracteres especiales.

    3. Escribir un programa que rellene automaticamente una matriz de 4x7 con la sumade sus ndices (Es decir, el elemento A11=1+1). El programa mostrara la matrizresultante por pantalla.

    4. Crear un programa que contenga una funcion llamada copiarArray() que reciba dosarrays y el tamano de los mismos (deben de ser del mismo tamano) y que consigacopiar en el segundo array el contenido del primero.

    5. Crear un programa que, mediante un menu, admita reservar o cancelar asientos deun avion, as como mostrar que asientos estan ocupados y libreas actualmente. Elarray tendra 25 filas y 4 columnas

  • 8/3/2019 Guia 2 Programacion en C

    2/6

    6. Se tienen N empleados en una compana y se ha ideado llenar un arreglo lineal A

    con los sueldos de los empleados, un arreglo B con las asignaciones o bonos totalesde cada empleadoy un arreglo C con las deducciones o descuentos de cada uno.Crear un arreglo T que contenga el neto a pagar a cada empleado (Neto a pagar =sueldo + asignaciones - deducciones).

    7. Se tiene la produccion de los siete das de la semana de 20 plantaas. Elaborar unprograma que lea estos datos, imprima el numero de la planta que tuvo la mayorproduccion semanal y el numero de planta con mayor produccion en un daespecfico (dato que ingresa el usuario), y con cuanta produccion.

    8. Realice una funcion que, dada una cadena de caracteres y un caracter, devuelva elnumero de apariciones de dicho caracter en la cadena.

    9. Disenar una funcion que calcule el area y otra que calcule el permetro de unacircunferencia. Utiliza esas funciones en un programa principal que lea el radio deuna circunferencia y muestre su area y permetro.

    10. Crear el programa, utilizando la tecnica de programacion estructurada, para undeterminado comercio en el que se realiza un descuento dependiendo del precio decada producto. Si el precio es inferior a 600 pesos, no se hace descuento; si es mayoro igual a 600 pesos y menor que 6000 pesos, se hace un 5 por 100 de descuento, y sies mayor o igual a 6000 pesos, se hace un 10 por 100 de descuento. Finalizarvisualizando el precio inicial, el valor del descuento y el precio final.

    Nota: Puedes utilizar las siguientes funciones:

    leerPrecio: Que lee un precio y valida que sea positivo.

    calcularDescuento: Que recibe un precio y devuelve el descuento.

    calcularPrecioTotal: Que recibe un precio y el descuento y devuelve el preciofinal.

    11. Realice un programa en C que permita jugar el juego Gato usando matrices yfunciones. (*Si gusta puede usar el codigo system(clear) en Linux para limpiarla terminal, o su equivalente system(cls) en Windows.

    12. Crea una funcion para calcular el mcm y otra para calcular el MCD, crea unprograma principal que pida dos numeros y muestra el mcm y MCD usando estasdos funciones.

    13. Si el cuadrado de un numero es igual a la suma de la cantidad de n umero imparesindicados por el numero (ejemplo 32 = 1 + 3 + 5) cree una funcion que calcule elcuadrado de un numero mediante sumas sucesivas de los numeros impares.

    2

  • 8/3/2019 Guia 2 Programacion en C

    3/6

    14. Crear un programa que pida el lmite inferior y el lmite superior de un intervalo. Si

    el lmite inferior es mayor que superior, intercambiar las variables. A continuacionse iran pidiendo numeros enteros positivos hasta que se introduzca un numeronegativo. Al terminar se mostrara la siguiente informacion:

    Cantidad de numeros fuera del intervalo

    La media de los numero pares que estan dentro del intervalo.

    Se ha introducido algun numero igual a alguno de los lmites del intervalo?

    Algunas de las funciones que puedes utilizar son las siguientes:

    LeerLimitesDelIntervalo: Funcion que lee los dos lmites del intervalo.

    IntercambiarVariables: Funcion que intercambia el valor de dos variables.ContarNumerosFueraDelIntervalo: Funcion que va contando la cantidad denumero que hay fuera del intervalo.

    MediaNumerosParesDentroIntervalo: Funcion que va calculando la media delos numero pares que estan en el intervalo.

    ComprobarLimites: Funcion que te dice si el numero introducido es igual aalgunos de los lmites.

    Si piensas en alguna otra funcion no dudes en utilizarla.

    15. Queremos crear un programa que trabaje con fracciones a/b. Para representar una

    fraccion vamos a utilizar dos enteros:int numerador;int denominador;

    Vamos a crear las siguientes funciones para trabajar con funciones:

    LeerFraccion: La tarea de esta funcion es leer por teclado el numerador y eldenominador. Cuando leas una fraccion debes simplificarla. La funcion desimplificar se vera a continuacion.

    EscribirFraccion: Esta funcion escribe en pantalla la fraccion. Si el dominadores 1, se muestra solo el numerador.

    CalcularMcd: Es una funcion auxiliar que nos va ayudar a realizar las otrasfunciones. Esta funcion recibe dos numero y devuelve el maximo comundivisor. Realizarlo con el metodo de Euclides.

    SimplificarFraccion: Esta funcion simplifica la fraccion, para ello hay quedividir numerador y dominador por el mcd del numerador y denominador.

    3

  • 8/3/2019 Guia 2 Programacion en C

    4/6

    Ejemplo

    Si la fraccion es 35/15Se calcula el mcd(35,15)= 5Se divide 35/5=7 y 15/5=3 ... La fraccion simplificada es 7/3.Si la fraccion ya esta simplificada se deja como igual.

    SumarFracciones: Funcion que recibe dos funciones n1/d1 y n2/d2, y calcula lasuma de las dos fracciones. La suma de dos fracciones es otra fraccion cuyonumerador=n1*d2+d1*n2denominador=d1*d2La fraccion resultante debe estar simplificada.

    Ejemplo:

    8/3 + 2/5numerador= 8*5+3*2 = 46denominador= 3*5 = 1546/15 que ya esta simplificada.

    RestarFracciones: Funcion que resta dos fracciones, igual que la anterior peroal calcular el numerador hay que restar.

    numerador=n1*d2-d1*n2denomianador=d1*d2La fraccion resultante debe estar simplificada.

    MultiplicarFracciones: Funcion que recibe dos fracciones y calcula el producto,para ello:

    numerador=n1*n2denominador=d1*d2La fraccion resultante debe estar simplificada.

    DividirFracciones: Funcion que recibe dos fracciones y calcula el cociente, paraello:numerador=n1*d2denominador=d1*n2La fraccion resultante debe estar simplificada.

    Crear un programa en C que utilizando las funciones anteriores muestre el siguientemenu:

    a) Sumar dos fracciones: En esta opcion se piden dos fracciones y se muestra elresultado.

    b) Restar dos fracciones: En esta opcion se piden dos fracciones y se muestra laresta.

    4

  • 8/3/2019 Guia 2 Programacion en C

    5/6

    c) Multiplicar dos fracciones: En esta opcion se piden dos fracciones y se muestra

    el producto.d) Dividir dos fracciones: En esta opcion se piden dos fracciones y se muestra el

    cociente.

    e) Salir

    16. Desarrolle un programa en C que muestre la potencia de dos numeros pasados porlnea de comando usando recursividad. Considere que no se deben permitir mas de 2valores ingresados para realizar la tarea, siendo el primer valor la base y el segundovalor el exponente, que debe ser entero. Ambos numeros deben ser positivos.Ademas debe realizar una funcion que permita verificar que los valores ingresadossean numeros, y en caso que lo sean verifique si son enteros o de coma flotante.

    Utilice tantas funciones como estime conveniente.Funciones utiles:

    int atoi(char cadena[]);Pertenece a la librera stdlib.hRetorna el equivalente en int de la cadena pasada por par ametro.

    float atof(char cadena[]);Pertenece a la librera stdlib.hRetorna el equivalente en float de la cadena pasada por parametro.

    int strlen(char cadena[]);Pertenece a la librera string.h

    Retorna la cantidad de caracteres en la cadena pasada por parametro.

    17. Usando como base el programa anterior, realice una funcion recursiva que permitaobtener potencias de potencias de tantos numeros sean pasados por linea decomando, siendo el primer numero la base, y los siguientes las potencias.Ejemplo:./programa 3 4 5 6 7 8Sera:

    345678

    *Considere solo el rango de los int para la potencia.

    18. Un palndromo es una palabra que se lee igual de izquierda a derecha, que dederecha a izquierda. Por ejemplo, reconocer es un palndromo. Cualquier palabrapuede convertirse en un palndromo, anadiendole las letras adecuadas. Por ejemplo,ab no es un palndromo, pero si le anadimos a a la derecha obtenemos aba, que s loes. Tambien podramos haberle anadido ba para obtener abba que tambien es un

    5

  • 8/3/2019 Guia 2 Programacion en C

    6/6

    palndromo. Escribe un Algoritmo que dada una cadena de caracteres, devuelva el

    palndromo construido anadiendole por la derecha el menor numero de caracteres ala cadena de entrada. Por ejemplo,

    ab ---> aba

    a ---> a

    palin ---> palinilap

    reconocer ---> reconocer

    cierre ---> cierreic

    6