• Nenhum resultado encontrado

Obtendo máximos e mínimos de elementos de vetores

5. Estruturas de repetição

5.1. Laço for

5.1.6. Obtendo máximos e mínimos de elementos de vetores

Tabela 5.4 - Operações para obtenção dos valores mínimo e máximo de vetores e seus algoritmos

Operação Procedimento

Mínimo cria-se uma variável do tipo int ou float, por exemplo de nome Xmin. O valor inicial de Xmin deve ser o valor do primeiro elemento do vetor, por exemplo Xmin = V[0]. Dentro do laço de repetição, que percorre o vetor, coloque o comando if( Xmin > V[i] ) { Xmin = V[i]; }. Ao sai do laço o valor de Xmin é o valor mínimo dentre os elementos do vetor. Máximo cria-se uma variável do tipo int ou float, por exemplo de nome Xmax. O

valor inicial de Xmax deve ser o valor do primeiro elemento do vetor, por exemplo Xmax = V[0]. Dentro do laço de repetição, que percorre o vetor, coloque o comando if( Xmax < V[i] ) { Xmax = V[i]; }. Ao sai do laço o valor de Xmax é o valor máximo dentre os elementos do vetor.

Observe que, no caso de vetores, tanto seu valor máximo quanto seu valor mínimo podem ser inicialmente iguais ao primeiro elemento do vetor. E, se não forem, serão trocados dentro do laço for.

Exemplo 5.12 - Obtenha os valores mínimo e máximo do vetor A de 200 elementos lidos to teclado.

Os dados de entrada são os valores do vetor A – sejam ele do tipo float.

Os dados de saída são os valores mínimo e máximo do vetor A, sejam eles Vmin e Vmax, ambos float – mesmo tipo de A.

Inicialmente, devem ser lidos os valores do vetor.

Para obter o valor mínimo de A, que é Vmin, ele terá valor inicial igual a A[0].

Para obter o valor máximo de A, que é Vmax, ele terá valor inicial igual a A[0] também. Onde colocar os comandos Vmin = A[0] e Vmax = A[0], é muito importante. Eles devem ser colocados após a leitura dos valores de A, e não antes.

Dentro do laço for serão colocados os comandos conforme a Tabela 5.4. Ao sair do laço for, serão impressos os valores Vmin e Vmax.

#include <stdio.h> #define N 200

int main( void ){ int c;

float A[n], Vmin, Vmax;

printf("\n\n Leitura de A" ); for( c = 0; c < N; c++ ){

printf(" De o valor de A[%d]: ", c ); scanf("%f", &A[c] );

}

Vmin = A[0]; Vmax = A[0];

printf("\n\n Atualizando Vmin e Vmax: " ); for( c = 0; c < N; c++ ){

if( Vmin > A[c] ) Vmin = A[c]; if( Vmax < A[c] ) Vmax = A[c]; }

printf( "\n menor valor: %f ", Vmin ); printf( "\n maior valor: %f ", Vmax ); return 0;

}

No início, o acadêmico fica um pouco confuso com estes procedimentos mas, ao praticá- los, serão abstraídos e se tornarão boas práticas de planejamento de programação.

Para saber mais sobre Vetores leia o Capítulo 4 – Matrizes e Strings.

5.1.7.Exercícios

1. Faça um programa que preencha um vetor com seis elementos numéricos inteiros. Calcule e mostre:

a) todos os números pares;

b) a quantidade de números pares; c) todos os números ímpares;

d) a quantidade de números ímpares.

2. Faça um programa que preencha um vetor com sete números inteiros, calcule e mostre:

a) os números múltiplos de 2; b) os números múltiplos de 3;

4. Faça um programa que preencha um vetor com dez números reais, calcule e mostre a quantidade de números negativos e a soma dos números positivos desse vetor.

5. Faça um programa que preencha um vetor com os códigos de sete alunos e carregue outro vetor com a média final desses alunos. Calcule e mostre:

a) o código do aluno com maior média (desconsiderar empates);

b) para cada aluno não aprovado, isto é, com média menor que 7, mostrar quanto esse aluno precisa tirar na prova de exame final para ser aprovado. Considerar que a média para aprovação no exame é 5.

6. Faça um programa que receba dez números inteiros e armazene-os em um vetor. Calcule e mostre dois vetores resultantes: o primeiro com os números pares e o segundo, com os números ímpares.

7. Faça um programa que receba o código de cinco produtos e seus respectivos preços. Calcule e mostre:

a) a quantidade de produtos com preço inferior a R$ 50,00; b) o código dos produtos com preço entre R$ 50,00 e R$ 100,00; c) a média dos preços dos produtos com preço superior a R$ 100,00.

8. Faça um programa que preencha dois vetores de dez posições cada, determine e mostre um terceiro contendo os elementos dos dois vetores anteriores ordenados de maneira decrescente.

9. Faça um programa que preencha um vetor com quinze números, determine e mostre:

a) o maior número e a posição por ele ocupada no vetor; b) o menor número e a posição por ele ocupada no vetor.

10. Faça um programa que leia dois vetores de dez posições e faça a multiplicação dos elementos de mesmo índice, colocando o resultado em um terceiro vetor. Mostre o vetor resultante.

11. Faça um programa que leia um vetor com dez posições para números inteiros e mostre somente os números positivos.

12. Faça um programa que leia um vetor com dez posições para números inteiros. Crie um segundo vetor, substituindo os valores nulos por 1. Mostre os dois vetores.

13. Faça um programa que leia um vetor A de dez posições. Em seguida, compacte o vetor, retirando os valores nulos e negativos. Armazene esse resultado no vetor B. Mostre o vetor B (o vetor B pode não ser preenchido). 14. Faça um programa que leia dois vetores (A e B) com cinco posições para números inteiros. O programa deve, então, subtrair o primeiro elemento de A do último de B, acumulando o valor, subtrair o segundo elemento de A do penúltimo de B, acumulando o valor e assim por diante. Ao final, mostre o resultado de todas as subtrações realizadas.

15. Faça um programa que leia um vetor com quinze posições para números inteiros. Depois da leitura, divida todos os seus elementos pelo maior valor do vetor. Mostre o vetor após os cálculos.

16. Faça um programa que receba o código de oito clientes e armazene-os em um vetor. Em um segundo vetor, armazene a quantidade de livros comprados em 2017 por cada um dos oito clientes. Sabe-se que, para cada dez livros comprados, o cliente tem direito a um livro grátis. Faça um programa que mostre o código de todos os clientes, com a quantidade de livros grátis a que ele tem direito.

17. Uma escola deseja saber se existem alunos cursando, simultaneamente, as disciplinas Lógica e Linguagem de Programação. Coloque os números das matrículas dos alunos que cursam Lógica em um vetor, quinze alunos. Coloque os números das matrículas dos alunos que cursam Linguagem de Programação em outro vetor, dez alunos. Mostre o número das matrículas que aparecem nos dois vetores.

18. Faça um programa que receba o total das vendas de cada vendedor de uma loja e armazene-as em um vetor. Receba também o percentual de comissão a que cada vendedor tem direito e armazene-os em outro vetor. Receba os códigos desses vendedores e armazene-os em um terceiro vetor. Existem apenas dez vendedores na loja. Calcule e mostre:

a) um relatório com os códigos dos vendedores e os valores a receber referentes à comissão;

b) o total das vendas de todos os vendedores;

c) o maior valor a receber e o código de quem o receberá; d) o menor valor a receber e o código de quem o receberá.

19. Faça um programa para controlar o estoque de mercadorias de uma empresa. Inicialmente, o programa deverá preencher dois vetores com dez

Código do cliente igual a zero indica fim do programa. O programa deverá verificar:

a) se o código do produto solicitado existe. Se existir, tentar atender ao pedido; caso contrário, exibir mensagem Código inexistente;

b) cada pedido feito por um cliente só pode ser atendido integralmente. Caso isso não seja possível, escrever a mensagem Não temos estoque suficiente dessa mercadoria. Se puder atendê-lo, escrever a mensagem Pedido atendido. Obrigado e volte sempre;

c) efetuar a atualização do estoque somente se o pedido for atendido integralmente; d) no final do programa, escrever os códigos dos produtos com seus respectivos estoques

já atualizados.

Documentos relacionados