pract cal 03

6
Carnet: __________ Nombre: ________________________________ Practica Calificada de C C + + + + I I n n f f o o r r m má á t t i i c c a a I I I I F F u u n n d d a a m me e n n t t o o s s d d e e P P r r o o g g r r a a m ma a c c i i ó ó n n Prof. Dr. Paul Bustamante

Upload: sebast1410

Post on 16-Dec-2015

213 views

Category:

Documents


0 download

DESCRIPTION

c++ teoria y practica

TRANSCRIPT

  • Carnet: __________ Nombre: ________________________________

    PPrraaccttiiccaa CCaalliiffiiccaaddaa ddee CC++++

    IInnffoorrmmttiiccaa IIII

    FFuunnddaammeennttooss ddee PPrrooggrraammaacciinn Prof. Dr. Paul Bustamante

  • Practica Calificada - Programacin en C++ Pg. 1

    Escuela Superior de Ingenieros Tecnun Universidad de Navarra

    NNDDIICCEE NDICE ........................................................................................................................................ 1 1. Introduccin...................................................................................................................... 1

    1.1 Ejercicio 1: Contador de Vocales (0.3 Pts.) ............................................................ 1 1.2 Ejercicio 2: Regresin Lineal (0.7 Pts) ................................................................... 2

    11.. IInnttrroodduucccciinn.. Recomendaciones para el desarrollo de la prctica calificada: - Es necesario que verifiquen que tienen la cuenta G:\ creada, ya que los ejercicios

    se recogern de all. - Poner el nombre y nmero de carn al cuadernillo y entregarlo al final. No se

    corregirn las prcticas que no tengan cuadernillo. - Se tendr en cuenta el orden y estructuras de los programas. Suerte!

    1.1 Ejercicio 1: Contador de Vocales (0.3 Pts.) Este ejercicio consiste en contar cuantas vocales hay en una frase dada por el usuario. Se deben contemplar las maysculas y minsculas. Por ejemplo la frase Aqui estoy programando tiene 3 as (1 maysculas y 2 minsculas). La estructura del programa debe ser la siguiente:

    La funcin principal main() debe tener llamar a dos funciones, PedirFrase y ContarVocal. - La funcin PedirFrase tiene que devolver la frase escrita por el usuario y no tiene

    argumentos. Su prototipo es el siguiente:

    char* PedirFrase();

    - La funcin ContarVocal recibe dos argumentos (la cadena y la vocal a buscar) y debe devolver un entero que indica el nmero de veces que est esa vocal en la frase. El prototipo de esta funcin es:

    int ContarVocal( char *cad, char vocal); La estructura de main() debe ser la siguiente: void main(void) { char *frase; frase=PedirFrase(); int na = ContarVocal(frase,'a'); . . . //continuar para las dems vocales.. }

    Debe crear un proyecto Ejer1 y el fichero Vocales.cpp para escribir el cdigo.

  • Practica Calificada - Programacin en C++ Pg. 2

    Escuela Superior de Ingenieros Tecnun Universidad de Navarra

    1.2 Ejercicio 2: Regresin Lineal (0.7 Pts) Ud. trabaja en una fbrica de bebidas refrescantes, en la cual han observado que las ventas de dichas bebidas dependen de la temperatura de la calle. Dicha dependencia se puede aproximar a una recta, cuya ecuacin es V = a*T + b, donde V son las ventas, T es la temperatura, a es la pendiente de la recta y b es el trmino independiente.

    Le han pedido de la fbrica que haga un programa para introducir los datos de temperatura y ventas y que calcule la ecuacin de la recta (por el mtodo de regresin lineal que se le dar ms adelante) y permita calcular las ventas dada una temperatura determinada.

    El programa debe tener un men con 4 opciones (ver Figura 1) y solo terminar con la opcin 4 de salir.

    Figura 1

    La opcin 1 es para introducir los datos de Temperatura y Ventas (ver Figura 2). Primero se pedir el nmero de datos a introducir (N). Hay que tener en cuenta que si al ver los datos (con la opcin 2) veo que estn mal introducidos, debo poder introducir de nuevos los datos mediante la opcin 1, sin necesidad de que vuelva a empezar el programa. Para esta opcin hay que hacer reserva dinmica de memoria, utilizando el operador new (y para liberarla se usa delete).

    Figura 2

    La opcin 2 permite ver tanto los datos introducidos (Temperatura y Ventas) como la ecuacin de la recta ya calculada (ver Figura 3).

    V = a * T + b

    T

    V

  • Practica Calificada - Programacin en C++ Pg. 3

    Escuela Superior de Ingenieros Tecnun Universidad de Navarra

    Figura 3

    La opcin 3 servir para hacer un nuevo clculo de Ventas, dada una Temperatura, usando la ecuacin de la recta ya calculada por el mtodo de regresin lineal (ver Figura 4).

    Figura 4

    Por ultimo, la opcin 4, permite Salir del programa. Las ecuaciones para calcular la recta que se ajusta a dichos puntos por el mtodo de Regresin Lineal son las siguientes (existen otros mtodos para ajustar los puntos a un polinomio, pero son ms complicados, por lo que vamos a simplificar y tratar de aproximarlos a una recta):

    bTaV += * (Ec. de la recta que aproximar los puntos dados)

    ( )

    = 22

    ii

    iiii

    TTN

    VTVTNa

    NTaV

    b ii = Donde, T y V son vectores que contienes los datos de Temperatura y Ventas respectivamente, y N es el nmero de elementos que hay en dichos vectores. Programa: El clculo de la Regresin lineal se debe hacer en una funcin, la cual es llamada desde main. El prototipo de dicha funcin es el siguiente:

    void RegLineal(double *T, double *V, int N, double &a, double &b);

  • Practica Calificada - Programacin en C++ Pg. 4

    Escuela Superior de Ingenieros Tecnun Universidad de Navarra

    Donde T y V son los vectores que contienen los datos; N es el nmero de datos que hay en dichos vectores y a y b son los parmetros de la recta (que tiene que devolver esta funcin).

    Por lo dems, en main pueden hacer como quieran el programa, teniendo en cuenta

    que el programa debe estar bien estructurado y ser lo ms modular posible. Para este ejercicio debe crear el proyecto Ejer2 y el fichero RegLineal.cpp para

    escribir el cdigo. ! Suerte

  • Practica Calificada - Programacin en C++ Pg. 5

    Escuela Superior de Ingenieros Tecnun Universidad de Navarra

    Hoja en blanco para escribir.