Buscar

3) Lista Vetores

Prévia do material em texto

-- Vetores –-
Elabore um algoritmo que lê dois vetores do usuário, um deles com sua data de nascimento (dia, mês e ano) e o outro com a data de hoje (dia, mês e ano). Garanta que os valores lidos sejam válidos. Então, com base nas informações dos vetores, deve-se verificar se hoje é aniversário do usuário. Em caso positivo, o algoritmo deve imprimir na tela a mensagem “Parabéns, você está completando X anos” (onde X deve ser substituído pela idade do usuário); caso contrário, imprimir a mensagem “Só mais um dia comum”.
LINGUAGEM C
#include <stdio.h>
void main() {
	
	// declaração das variáveis
	int nasc[3], hoje[3], idade;
	
	// lê do usuário sua data de nascimento
	printf("Digite seu dia, mes e ano de nascimento: ");
	scanf("%d%d%d", &nasc[0], &nasc[1], &nasc[2]);
	
	// validação da entrada
	while(nasc[0]<1 || nasc[0]>31 || nasc[1]<1 || nasc[1]>12 || nasc[2]<1 || nasc[2]>2016) {
		printf("Erro, digite valores validos para seu dia, mes e ano de nascimento: ");
		scanf("%d%d%d", &nasc[0], &nasc[1], &nasc[2]);
	}
	
	// lê do usuário a data de hoje
	printf("Digite a data de hoje (dia, mes e ano): ");
	scanf("%d%d%d", &hoje[0], &hoje[1], &hoje[2]);
	
	// validação da entrada
	while(hoje[0]<1 || hoje[0]>31 || hoje[1]<1 || hoje[1]>12 || hoje[2]<1 || hoje[2]>2016) {
		printf("Erro, digite valores validos para a data de hoje (dia, mes e ano): ");
		scanf("%d%d%d", &hoje[0], &hoje[1], &hoje[2]);
	}
	
	// verifica se hoje é aniversário do usuário
	if(nasc[0]==hoje[0] && nasc[1]==hoje[1]) {
		idade = hoje[2]-nasc[2];
		printf("Parabens, voce esta completando %d anos de vida!", idade);
	}
	else
		printf("So mais um dia comum...");
}
O departamento financeiro de uma empresa precisa de um algoritmo para efetuar o cálculo do salário semanal bruto e líquido de um funcionário qualquer. Para isso, o algoritmo deve ler a quantidade de dias trabalhados na semana, a quantidade de horas trabalhadas por dia e, finalmente, o valor (R$) da hora trabalhada. Garanta que os valores lidos sejam válidos. Nesta empresa, o desconto semanal (INSS, IR, etc.) corresponde à 27% do salário semanal bruto. Como resultado, o algoritmo deve imprimir na tela o salário semanal bruto (R$), o desconto semanal (R$) e o salário semanal líquido (R$) do funcionário. Crie uma solução de forma a armazenar todas as informações em questão dentro de um mesmo vetor, assim como:
	Dias/semana
	Horas/dia
	R$/hora
	Sal. Bruto (R$)
	Desconto (R$)
	Sal. Líquido (R$)
 
LINGUAGEM C
#include <stdio.h>
void main() {
	
	// declaração das variáveis
	float v[6];
	
	// leitura e validação dos dias trabalhados na semana
	printf("Digite o numero de dias trabalhados na semana: ");
	scanf("%f", &v[0]);
	
	while (v[0]<1 || v[0]>7) {
		printf("Erro, digite um numero de dias valido: ");
		scanf("%f", &v[0]);
	}
	
	// leitura e validação das horas trabalhadas por dia
	printf("Digite o numero de horas trabalhadas por dia: ");
	scanf("%f", &v[1]);
	
	while(v[1]<0 || v[1]>24) {
		printf("Erro, digite um numero de horas valido: ");
		scanf("%f", &v[1]);
	}
	// leitura e validação do valor da hora trabalhada
	printf("Digite o valor (R$) da hora trabalhada: ");
	scanf("%f", &v[2]);
	
	while (v[2]<0) {
		printf("Erro, digite um valor (R$) valido: ");
		scanf("%f", &v[2]);
	}
	
	// cálculo do salário bruto
	v[3] = v[0]*v[1]*v[2];
	
	// cálculo do desconto semanal
	v[4] = 0.27*v[3];
	
	// cálculo do salário líquido
	v[5] = v[3] - v[4];
	
	// impressão dos resultados na tela
	printf("\n Salario semanal BRUTO: R$%.2f", v[3]);
	printf("\n Desconto semanal: R$%.2f", v[4]);
	printf("\n Salario semanal LIQUIDO: R$%.2f", v[5]);
}
A NASA precisa de um algoritmo para calcular o peso de um astronauta qualquer em diferentes planetas. Para isso, o algoritmo deve pré-configurar um vetor G com os valores da gravidade na Terra (9.8 m/s²), em Marte (3.7 m/s²), em Júpiter (22.9 m/s²) e em Plutão (0.5 m/s²). Depois, ao ler do usuário o valor da massa corporal de um astronauta (garanta que o valor seja válido), o algoritmo deve calcular um vetor P com o peso daquele astronauta nos quatro planetas supracitados, imprimindo na tela os diferentes valores de peso. Elabore uma solução para a NASA.
	
	
	
	
	
	G = 
	9.8
	3.7
	22.9
	0.5
	
	
	
	
	
	P =
	
	
	
	
-- Vetores com Laço de Repetição –-
Obs.: tente resolver todos os exercícios abaixo utilizando Enquanto/while e depois Para/for.
LINGUAGEM C
#include <stdio.h>
Void main(){
//declaração das variáveis 
float G[4]={9.8, 3.7, 22.9, 0.5}, P[4], m;
int cont;
	
	// leitura da entrada
	printf("Digite a massa corporal do astronauta: ");
	scanf("%f", &m);
	
	// validação da entrada
	while (m<=0) {
		printf("Erro, digite um valor valido de massa corporal (>0): ");
		scanf("%f", &m);
	}
	
	// cálculo e impressão do vetor P
	for (cont=0; cont<=3; cont++) {
		P[cont] = m*G[cont];
		printf("\nP[%d] = %.2f", cont, P[cont]);
	}	
}
}
Um professor de engenharia da PUCPR precisa de um algoritmo para ajudá-lo a identificar quantos estudantes passaram e quantos reprovaram em sua disciplina, cuja turma é composta por 10 estudantes no total. Para isso, o algoritmo deve ler as primeiras e as segundas notas parciais de cada estudante para dentro de dois vetores distintos e, em seguida, calcular um novo vetor com as médias finais. Então, com base nas médias, o algoritmo deve imprimir na tela quantos estudantes estão aprovados (média de 7.0 para cima), quantos estão em exame final (média abaixo de 7.0 até 4.0) e quantos estão reprovados (média abaixo de 4.0). Crie uma solução para o professor na forma de pseudocódigo/algoritmo.
LINGUAGEM C
#include <stdio.h>
Void main (){ //inicio
//declaração das variáveis
Float NP1[10],NP2[10],M[10];
Int AP=0,ex=0,rep=0,cont;
//laço de repetição 
For(cont=0;cont<=9;cont++){
//ler notas
Printf(“digite nota 1 e nota 2:”);
Scanf(“%f%f”,&NP1[cont],&NP2[cont]);
M[cont]=(NP1[cont]+NP2[cont])/2;
//teste de medias
if(M[cont]>=7)
Ap++;
 else{
if(M[cont]>=4)
ex++;
else
rep++;
 }
 }
}
Printf(“\nalunos aprovados: %d” ,AP);
Printf(“\nalunos em axame: %d” ,ex);
Printf(“\nalunos reprovados: %d” ,rep);
}
Elabore um algoritmo que lê do usuário um vetor de inteiros de 5 posições e, em seguida, imprime na tela os valores do vetor em ordem inversa (do fim para o começo). 
LINGUAGEM C
#include <stdio.h>
void main() {
	
	// declaração das variáveis
	int v[5], cont;
	
	// leitura de valores p/ o vetor
	for(cont=0; cont<5; cont++) {
		printf("Digite um valor para v[%d]: ", cont);
		scanf("%d", &v[cont]);
	}
	
	// impressão do vetor na ordem inversa
	for(cont=4; cont>=0; cont--) {
		printf("\n v[%d] = %d", cont, v[cont]);
	}
}
Elabore um algoritmo que lê do usuário um vetor de inteiros com 10 posições e, em seguida, imprime na tela:
Qual é o menor valor armazenado;
Qual é o maior valor armazenado;
Quantos valores armazenados são pares e positivos;
Quantos valores armazenados são ímpares e positivos;
Quantos valores armazenados são pares e negativos;
Quantos valores armazenados são ímpares e negativos;
Quantos valores armazenados são nulos.
LINGUAGEM C
#include <stdio.h>
void main() {
	
	// declaração das variáveis
	int v[10], cont, maior, menor, par_pos=0, imp_pos=0, par_neg=0, imp_neg=0, nul=0;
		
	// leitura de valores para o vetor
	for (cont=0; cont<10; cont++){
		printf("Digite um valor para v[%d]: ", cont);
		scanf("%d", &v[cont]);
		
		// verifica em qual categoria se encaixa o valor lido
		if(v[cont]==0)
			nul++;
		else {			
			if(v[cont]%2==0) {
				
				if(v[cont]>0)
					par_pos++;
				else
					par_neg++;				
			}
			else {
				
				if(v[cont]>0)
					imp_pos++;
				else
					imp_neg++;				
			}
		}		
	}
	
	// percorre o vetor para encontrar o maior e o menor elemento
	maior = v[0];
	menor = v[0];
	for (cont=0; cont<10; cont++) {if(v[cont]>maior)
			maior = v[cont];
			
		if (v[cont]<menor)
			menor = v[cont];
	}
	
	// impressão dos resultados na tela
	printf("\nO MAIOR valor do vetor eh: %d", maior);
	printf("\nO MENOR valor do vetor eh: %d", menor);
	printf("\nValores PARES e POSITIVOS lidos: %d", par_pos);
	printf("\nValores PARES e NEGATIVOS lidos: %d", par_neg);
	printf("\nValores IMPARES e POSITIVOS lidos: %d", imp_pos);
	printf("\nValores IMPARES e NEGATIVOS lidos: %d", imp_neg);
	
}
Elabore um algoritmo que gera os seguintes vetores:
	
	[0]
	
	
	
	
	[19]
	A[20]=
	0
	2
	4
	6
	...
	38
	
	
	B[20]=
	-1
	0
	1
	2
	...
	18
	
	
	C[20]=
	1
	3
	5
	7
	...
	39
	
	
	D[20]=
	-1
	1
	3
	5
	...
	37
Elabore um algoritmo que lê do usuário um vetor de inteiros de 10 posições, e também outros dois valores X e Y correspondentes a duas posições do vetor. Então, o algoritmo deve imprimir na tela o resultado da soma entre os valores encontrados nas posições X e Y do vetor.
LINGUAGEM C
Elabore um algoritmo que lê do usuário um vetor de números reais com 15 posições e, em seguida, um outro valor real X qualquer. Então, o algoritmo deve fazer uma busca no vetor pelo valor X e, caso tenha sido encontrado, imprimir na tela em qual posição do vetor está situado; caso contrário, imprimir na tela que o valor não foi encontrado no vetor.
Elabore um algoritmo que lê do usuário um vetor de números reais de 30 posições e, em seguida, gera um segundo vetor contendo os elementos do primeiro na ordem inversa. Então, gerar um terceiro vetor contendo o produto entre os elementos do primeiro e do segundo vetor. Por fim, imprimir na tela o resultado da soma entre todos os elementos do terceiro vetor. 
Elabore o pseudocódigo/programa de um algoritmo que lê do usuário um vetor de temperaturas (ºC) com 24 posições, onde os índices do vetor correspondem à hora do dia (0: meia-noite, 1: 1h da manhã, ..., 23: 23h da noite). Então, o algoritmo deve imprimir na tela:
Qual foi a máxima e a mínima do dia;
Qual a média da temperatura no período da madrugada, entre a meia-noite e às 5hrs da manhã;
Qual a média da temperatura no período da manhã, entre as 6hrs e as 12hrs.
Qual a média da temperatura no período da tarde, entre as 13hrs e as 18hrs.
Qual a média da temperatura no período da noite, entre as 19hrs e as 23 hrs.
Escreva o pseudocódigo/programa de um algoritmo capaz de gerar um vetor contendo os N primeiros termos da série abaixo (N deve ser informado pelo usuário):
Por fim, o algoritmo deve imprimir na tela a estimativa do valor S a partir dos N termos calculados.
Escreva o pseudocódigo/programa de um algoritmo capaz de gerar um vetor contendo os N primeiros termos da série abaixo (N deve ser informado pelo usuário):
Por fim, o algoritmo deve imprimir na tela a estimativa do valor F a partir dos N termos calculados.
Escreva o pseudocódigo/programa de um algoritmo capaz de gerar um vetor contendo os N primeiros termos da série abaixo (N deve ser informado pelo usuário):
Por fim, o algoritmo deve imprimir na tela a estimativa do valor L a partir dos N termos calculados.
O valor do número π pode ser aproximado pela série de Leibiniz, tal como:
Quanto maior a série, mais preciso será o valor de π. Elabore o pseudocódigo/programa de um algoritmo que calcula um vetor com os N primeiros termos da série de Leibiniz, onde N deve ser informado pelo usuário. Por fim, imprimir na tela o somatório entre todas as posições do vetor como uma estimativa de π. Teste este algoritmo para diferentes valores de N; você deverá observar que, quanto maior o valor de N, mais próximo de 3.1415 será o resultado.
LINGUAGEM C
#include <stdio.h>
void main() {
	
	// declaração das variáveis
	int N, cont;
	float den, res=0;
	
	// leitura do número de termos (N) do usuário
	printf("Digite o numero de termos do somatorio que deseja calcular: ");
	scanf("%d", &N);
	
	// validação da entrada
	while (N<=0) {
		printf("Erro, informe um numero de termos valido (>0): ");
		scanf("%d", &N);
	}
	
	// declara um vetor com N espaços (um espaço para cada termo do somatório)
	float s[N];
	
	// preenche cada posição do vetor com um termo do somatório
	for (cont=0; cont<=N-1; cont++) {
		
		den = cont+1; // denominador
		s[cont] = 1/den;
		printf("\ns[%d] = %.2f", cont, s[cont]);
		res = res + s[cont];		
	}
	
	//imprime na tela o resultado do somatorio
	printf("\n\nSomatorio dos termos: %.2f", res);	
	
}
Imagine um corpo qualquer movendo-se em linha reta ao longo do eixo cartesiano x. Elabore o pseudocódigo/programa de um algoritmo capaz de ler do usuário um vetor P com 10 valores de posição espacial (em metros) do corpo em momentos distintos de observação. Considere ainda que os índices do vetor correspondem ao tempo (em segundos) de cada observação. Então, o algoritmo deve calcular um vetor V com as velocidades (em m/s) de cada deslocamento daquele corpo e, por fim, imprimir na tela a velocidade média de deslocamento considerando todo o trajeto observado.

Continue navegando