Ir para conteúdo
Fórum Script Brasil
  • 0

Preciso que dois ou mais vetores continuem armazenados em funções diferentes!


MARCELO DOS SANTOS

Pergunta

#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?

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...