Buscar en este blog

lunes, 27 de noviembre de 2017

PROGRAMACION EN C (FUNCIONES)

/*
pagina web de ayuda:
http://webs.um.es/iverdu/AP08_Arrays.pdf

El objetivo de esta práctica es conocer el comportamiento de las funciones, así como su

utilidad. Se aprovecha esta práctica para habituar al alumno al uso de vectores
multidimensionales (matrices).
Se desea ampliar los registros de temperatura de la estación meteorológica vista en la práctica
anterior para que almacene durante un día los datos de temperatura obtenidos por 5 estaciones
meteorológicas, situadas en diferentes puntos. Estas estaciones meteorológicas se encuentran
identificadas por números del 1 al 5.


Diseñar un programa en C que muestre el siguiente menú y que realice las siguientes acciones:


1. Rellenar todos los datos. Los datos de todas las estaciones meteorológicas para

cada hora se rellenan de forma aleatoria.

2. Rellenar los datos de una estación. Pide al usuario una estación meteorológica

en particular y rellena los datos correspondientes a ese día de forma aleatoria.

3. Mostrar datos totales. Muestra los datos registrados por pantalla

correspondientes a todas las estaciones meteorológicas.

4. Mostrar datos de una estación. Muestra los datos registrados por pantalla

correspondientes a una estación meteorológica seleccionada por el usuario.

5. Temperatura media de una estación. Calcula la temperatura media registrada

por una estación particular seleccionada por el usuario.

6. Temperatura media del día. Calcula la temperatura media del día, teniendo en

cuenta las temperaturas medias de todas las estaciones meteorológicas.

7. Temperatura máxima del día. Calcula la temperatura máxima del día, teniendo

en cuenta los datos de todas las estaciones meteorológicas.

8. Valor ponderado. Muestra el valor correspondiente a la suma de las medias para

las estaciones con un identificador par y de los máximos para las estaciones con
identificador impar.

9. Salir. Sale del programa.


Para poder realizar este programa, se pide la creación de las siguientes funciones, así

como cualquier otra que el alumno considere oportuna:

? void mostrar(int id): Muestra por pantalla los datos de la estación

meteorológica identificada por el número id.

? void rellenar(int id): Rellena de forma aleatoria los datos de la estación

meteorológica identificada por el número id.

? float media(int id): Devuelve la temperatura media registrada por la

estación meteorológica identificada por el número id.

? int maxima(int id): Devuelve la temperatura máxima registrada por la

estación meteorológica identificada por el número id.


NOTA: Se evaluará el uso adecuado de las funciones, así como su correcta definición e

implementación. Se prohíbe mostrar o pedir datos al usuario dentro de las funciones, a
excepción de las opciones 3 y 4. También se prohíbe el uso de variables globales dentro
de las funciones
*/

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <time.h>

void menu();
int aleatorio(int a);
void rellenar(int id);
void mostrar(int id);
void mostrar2(int id);
float media(int id);
float media2(int id);
int maxima(int id);
int maxima2(int id);

int id;
int i;
char matriz [5][24];
int num;
int a;


int main(){

int a = 1;

printf("\n INTRODUCE EL NUMERO 1 PARA COMENZAR EL PROGRAMA\n");
scanf ("%d",&a);

while (a!=1){
printf("\n EL NUMERO INTRODUCIDO ES INCORRECTO, EL PROGRAMA  NO SE EJECUTARA. POR FAVOR INTRODUZCA EL NUMERO CORRECTO\n");
exit (-1);
}


aleatorio(a);
rellenar(id);
mostrar(id);
media(id);
maxima(id);

aleatorio(a);
rellenar(id);
mostrar2(id);



}







int aleatorio(int a){

srand(time(0));
a = 0+ rand()%(41);

return a;
}





void rellenar(int id){
aleatorio(a);
for(id=0;id<5;id++)
{
for(i=0;i<24;i++)
{
 matriz[id][i]=rand()%41;
}
}
}








void mostrar(int id){

printf("\t\ ESTACIONES \n\n");
for(id=0;id<5;id++){
printf("\n");
for(i=0;i<24;i++){
printf(" %d ",matriz[id][i]);

}
 
if ( id % 2 == 0 )
printf( "\n LA MEDIA ES: %f ",media(id),id);

else

 printf("\n LA MAXIMA ES: %d\n",maxima(id),i); 
}







void mostrar2(int id){
printf("\nINTRODUCE EL NUMERO DE UNA DE LAS 5 ESTACIONES: \n");
scanf("%d",&id);

printf("\t\t ESTACION %d\n\n",id);
printf("\n");
for(i=0;i<24;i++){
printf(" %d ",matriz[id][i],id);
}

if ( id % 2 == 0 )
printf( "\n LA MEDIA ES: %f ",media2(id),id);

else

 printf("\nLA MAXIMA ES: %d\n",maxima2(id),id);
}






float media(int id){
id = 0;
float media;
for(id=0;id<5;id++){
for(i=0;i<24;i++){
media = media/ (120);
media += matriz[id][i];
}
}
 return media;
}






float media2(int id){
id = 0;
float media;

for(id=0;id<5;id++){
for(i=0;i<24;i++){
media = media/24;
media += matriz[id][i];
}
}
return media;
}







int maxima(int id){
int max;
for(id=0;id<5;id++){
for (i=0;i<24;i++){
if (matriz[id][i]>max){
max = matriz[id][i];
}
}
}
return max;
}









int maxima2(int id){
int max;
for(id=0;id<5;id++){
for (i=0;i<24;i++){
if (matriz[id][i]>max){
max = matriz[id][i];
}
}
}
return max;
}







No hay comentarios:

Publicar un comentario