#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
/*Elabore um programa em C com 2 entradas de dados de um motor, a temperatura e vibracao. Gerar
os valores de forma randomica. Uma entrada são os valores de temperatura entre 10 graus a 45
graus Celsius. A outra entrada de dados são os valores representando se há ou não vibracao (há=1,
não há=0). Com estes valores de entrada, gere um vetor de saida (manter ligado (1) ou desligar o
motor (0)). Devem ser gerados 100 valores de temperatura e 10 valores de vibracao. A cada 10
valores de temperatura deve ser calculada a media e gerar um vetor de temperatura media com 10
valores. Com o vetor de temperatura media e vibracao, gerar um vetor de saida com 10 valores para
dizer se vai manter o motor ligado ou desligar. Faca um menu a seu criterio para gerenciar o
programa.
Regra para decidir se precisa manter ligado ou desligar:
1- tem vibracao e temperatura acima de 27 graus ¨ desligar
2- tem vibracao e temperatura abaixo ou igual a 27 graus ¨ manter ligado
3- não tem vibracao ¨ manter ligado*/
//opção 1: Temperaturas
void temp(float *tempmedia)
{
int a,i,j,temperatura[100];
float media;
system("cls");
srand( (unsigned)time(NULL));
for(i=0;i<101;i++)
{
temperatura[i]=10+rand()%36;
if(i==9)
{
for(j=0;j<10;j++)
{
float media=0;
media=media+temperatura[j];
}
}
tempmedia[0]=media/10;
if(i==19)
{
for(j=10;j<20;j++)
{
float media=0;
media=media+temperatura[j];
}
}
tempmedia[1]=media/10;
if(i==29)
{
for(j=20;j<30;j++)
{
float media=0;
media=media+temperatura[j];
}
}
tempmedia[2]=media/10;
if(i==39)
{
for(j=30;j<40;j++)
{
float media=0;
media=media+temperatura[j];
}
}
tempmedia[3]=media/10;
if(i==49)
{
for(j=40;j<50;j++)
{
float media=0;
media=media+temperatura[j];
}
}
tempmedia[4]=media/10;
if(i==59)
{
for(j=50;j<60;j++)
{
float media=0;
media=media+temperatura[j];
}
}
tempmedia[5]=media/10;
if(i==69)
{
for(j=60;j<70;j++)
{
float media=0;
media=media+temperatura[j];
}
}
tempmedia[6]=media/10;
if(i==79)
{
for(j=70;j<80;j++)
{
float media=0;
media=media+temperatura[j];
}
}
tempmedia[7]=media/10;
if(i==89)
{
for(j=80;j<90;j++)
{
float media=0;
media=media+temperatura[j];
}
}
tempmedia[8]=media/10;
if(i==99)
{
for(j=90;j<100;j++)
{
float media=0;
media=media+temperatura[j];
}
}
tempmedia[9]=media/10;
}
printf("Temperaturas Registradas!");
sleep(3);
}
//opção 2: Vibração
void vib(int *vibracao)
{
int i;
system("cls");
srand( (unsigned)time(NULL));
for(i=0;i<10;i++)
{
vibracao[i]=0+rand()%2;
printf("\n%d %d\n",i,vibracao[i]);
}
printf("Vibracoes Registradas!");
sleep(3);
}
//opção 3: Verificar
void verificar(float *tempmedia, int *vibracao)
{
int i;
system("cls");
for(i=0;i<10;i++)
{
if(tempmedia[i]>27 && vibracao[i]==1)
{
printf("%d Temperatura de %.2f e motor vibrando: Desligando motor!\n\n",i+1,tempmedia[i]);
sleep(1);
}
else if(tempmedia[i]<=27 && vibracao[i]==1)
{
printf("%d Temperatura de %.2f e motor vibrando: Manter motor ligado!\n\n",i+1,tempmedia[i]);
sleep(1);
}
if(vibracao[i]==0)
{
printf("%d Temperatura de %.2f e motor sem vibracao: Manter motor ligado!\n\n",i+1,tempmedia[i]);
sleep(1);
}
}
sleep(3);
}
int main()
{
int opcao,vibracao[10];
float tempmedia[10];
do
{
printf("\n1- Temperatura");
printf("\n2- Vibracao");
printf("\n3- Resultado");
printf("\n4- Sair\n\n");
printf("\nQual e a sua escolha: ");
scanf("%d",&opcao);
switch(opcao)
{
case 1:
temp(tempmedia);
system("cls");
break;
case 2:
vib(vibracao);
system("cls");
break;
case 3:
verificar(tempmedia,vibracao);
sleep(5);
system("cls");
break;
case 4:
system("cls");
printf("Ate a proxima!");
break;
default:
printf("\nOpcão invalida");
system("cls");
break;
}
}while(opcao!=4);
return 0;
}
O vetor tempmedia, não está sendo armazenado, apenas o vetor vibração, quando seleciono a opção 3 para realizar o teste, penas o vetor vibração aparece, mas o vetor temp media, que é para mostrar as 10 temperaturas não é mostra as 10 temperaturas armazenadas anteriormente. Como faço para que os dois vetores continuem armazenados na memoria, e quando seleciono uma opção diferente, eu ainda consiga ter os valores armazenados, para utiliza-los?