Baixe Algoritmos para manipulação de vetores: exemplos e desafios e outras Exercícios em PDF para Algoritmos e Programação, somente na Docsity!
RELATÓRIO 9
- Faça um programa que preencha um vetor com números inteiros (teste seu programa com 7 números). 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. PROGRAMA-FONTE vetor dado nº pares nº impares resultado 3 x 8 x quant. Nº impares = 4 15 x 7 x quant. Nº pares = 3 12 x 6 x 9 x IMAGEM DE EXECUÇÃO
- Faça um programa que preencha um vetor com números inteiros (teste seu programa com 7 números), calcule e mostre: a) os números múltiplos de 2; b) os números múltiplos de 3; c) os números múltiplos de 2 e de 3. PROGRAMA-FONTE #include <stdio.h> int main() { // Tamanho do vetor const int tamanho = 7; // Vetor para armazenar os números inteiros int numeros[tamanho]; // Preenche o vetor com 7 números inteiros printf("Digite 7 numeros inteiros:\n"); for (int i = 0; i < tamanho; ++i) { printf("Digite o numero %d: ", i + 1); scanf("%d", &numeros[i]); } // Exibe os números múltiplos de 2 printf("\nNumeros multiplos de 2: "); for (int i = 0; i < tamanho; ++i) { if (numeros[i] % 2 == 0) { printf("%d ", numeros[i]); } } // Exibe os números múltiplos de 3 printf("\nNumeros multiplos de 3: "); for (int i = 0; i < tamanho; ++i) { if (numeros[i] % 3 == 0) { printf("%d ", numeros[i]); } } // Exibe os números múltiplos de 2 e de 3 printf("\nNumeros multiplos de 2 e de 3: "); for (int i = 0; i < tamanho; ++i) { if (numeros[i] % 2 == 0 && numeros[i] % 3 == 0) { printf("%d ", numeros[i]); } }
- Faça um programa para controlar o estoque de mercadorias de uma empresa. Inicialmente, o programa deverá preencher dois vetores com dez posições cada, onde o primeiro corresponde ao código do produto e o segundo, ao total desse produto em estoque. Logo após, o programa deverá ler um conjunto indeterminado de dados contendo o código de um cliente e o código do produto que ele deseja comprar, com a quantidade. 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. PROGRAMA-FONTE #include <stdio.h> #define TAMANHO 10 int main() { int codigos[TAMANHO]; int estoque[TAMANHO]; int codigoCliente, codigoProduto, quantidade; // Preenchimento dos vetores com código do produto e estoque printf("Preencha o estoque com os codigos dos produtos:\n"); for (int i = 0; i < TAMANHO; ++i) { printf("Codigo do produto %d: ", i + 1); scanf("%d", &codigos[i]); printf("Quantidade em estoque do produto %d: ", i + 1); scanf("%d", &estoque[i]); } // Leitura dos pedidos dos clientes while (1) { // Solicitação do código do cliente printf("\nDigite o codigo do cliente (digite 0 para encerrar): "); scanf("%d", &codigoCliente); if (codigoCliente == 0) { // Fim do programa break; }
// Solicitação do código do produto e quantidade desejada printf("Digite o codigo do produto desejado: "); scanf("%d", &codigoProduto); printf("Digite a quantidade desejada: "); scanf("%d", &quantidade); // Verifica se o código do produto solicitado existe int indiceProduto = -1; for (int i = 0; i < TAMANHO; ++i) { if (codigos[i] == codigoProduto) { indiceProduto = i; break; } } if (indiceProduto != -1) { // Produto existe, verifica se há estoque suficiente if (quantidade <= estoque[indiceProduto]) { // Atende ao pedido integralmente e atualiza o estoque estoque[indiceProduto] -= quantidade; printf("Pedido atendido. Obrigado e volte sempre!\n"); } else { // Não há estoque suficiente para atender ao pedido integralmente printf("Não temos estoque suficiente dessa mercadoria.\n"); } } else { // Código do produto inexistente printf("Codigo do produto inexistente.\n"); } } // Exibe o estoque final printf("\nEstoque final:\n"); for (int i = 0; i < TAMANHO; ++i) { printf("Codigo do produto %d: %d\n", codigos[i], estoque[i]); } return 0; }
- 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 nomes desses vendedores e armazene- os em um terceiro vetor. Existem apenas dez vendedores na loja. Calcule e mostre: a) um relatório com os nomes 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 nome de quem o receberá; d) o menor valor a receber e o nome de quem o receberá. PROGRAMA-FONTE #include <stdio.h> #include <string.h> #define NUM_VENDEDORES 10 int main() { char nomes[NUM_VENDEDORES][50]; float vendas[NUM_VENDEDORES]; float comissao[NUM_VENDEDORES]; float valoresAReceber[NUM_VENDEDORES]; float totalVendas = 0; float maiorValorReceber = 0; float menorValorReceber = FLT_MAX; char nomeMaior[50]; char nomeMenor[50]; // Entrada de dados for (int i = 0; i < NUM_VENDEDORES; i++) { printf("Digite o nome do vendedor %d: ", i + 1); scanf("%s", nomes[i]); printf("Digite o total de vendas do vendedor %d: ", i + 1); scanf("%f", &vendas[i]); printf("Digite o percentual de comissao do vendedor %d: ", i + 1); scanf("%f", &comissao[i]); // Cálculo do valor a receber valoresAReceber[i] = vendas[i] * (comissao[i] / 100); // Atualização do total de vendas totalVendas += vendas[i]; // Atualização do maior valor a receber e respectivo nome
if (valoresAReceber[i] > maiorValorReceber) { maiorValorReceber = valoresAReceber[i]; strcpy(nomeMaior, nomes[i]); } // Atualização do menor valor a receber e respectivo nome if (valoresAReceber[i] < menorValorReceber) { menorValorReceber = valoresAReceber[i]; strcpy(nomeMenor, nomes[i]); } } // Saída de dados printf("\nRelatorio de Comissoes:\n"); for (int i = 0; i < NUM_VENDEDORES; i++) { printf("Vendedor: %s - Valor a receber: %.2f\n", nomes[i], valoresAReceber[i]); } printf("\nTotal de vendas de todos os vendedores: %.2f\n", totalVendas); printf("Maior valor a receber: %.2f - Vendedor: %s\n", maiorValorReceber, nomeMaior); printf("Menor valor a receber: %.2f - Vendedor: %s\n", menorValorReceber, nomeMenor); return 0; } PLANO DE TESTE
printf("Digite a quantidade de DVDs locados em 2011 pelo cliente %d: ", i + 1); scanf("%d", &locacoes2011[i]); // Cálculo da quantidade de locações grátis locacoesGratis[i] = locacoes2011[i] / LOCACOES_GRATIS; } // Saída de dados printf("\nRelatorio de Locacoes Gratis:\n"); for (int i = 0; i < NUM_CLIENTES; i++) { printf("Cliente: %s - Locacoes Gratis: %d\n", nomes[i], locacoesGratis[i]); } return 0; } PLANO DE TESTE
- Faça um programa que receba o nome de oito produtos e seus respectivos preços. Calcule e mostre: a) a quantidade de produtos com preço inferior a R$ 50,00; b) o nome 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. PROGRAMA-FONTE #include <stdio.h> #include <string.h> #define NUM_PRODUTOS 8 int main() { char nomes[NUM_PRODUTOS][50]; float precos[NUM_PRODUTOS]; int qtdProdutosInferior50 = 0; char produtosEntre50e100[NUM_PRODUTOS][50]; int qtdProdutosEntre50e100 = 0; float somaPrecosSuperior100 = 0; int qtdProdutosSuperior100 = 0; // Entrada de dados for (int i = 0; i < NUM_PRODUTOS; i++) { printf("Digite o nome do produto %d: ", i + 1); scanf("%s", nomes[i]); printf("Digite o preco do produto %d: ", i + 1); scanf("%f", &precos[i]); // Verificações para cada requisito if (precos[i] < 50.00) { qtdProdutosInferior50++; } else if (precos[i] >= 50.00 && precos[i] <= 100.00) { strcpy(produtosEntre50e100[qtdProdutosEntre50e100], nomes[i]); qtdProdutosEntre50e100++; } else { somaPrecosSuperior100 += precos[i]; qtdProdutosSuperior100++; } } // Cálculo da média dos preços dos produtos com preço superior a R$ 100, float mediaPrecosSuperior100 = (qtdProdutosSuperior100 > 0)? (somaPrecosSuperior100 / qtdProdutosSuperior100) : 0; // Saída de dados
- 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. PROGRAMA-FONTE #include <stdio.h> #define TAMANHO 15 int main() { int vetor[TAMANHO]; int maior, menor; int posicaoMaior, posicaoMenor; // Preencher o vetor printf("Digite os %d numeros:\n", TAMANHO); for (int i = 0; i < TAMANHO; i++) { printf("Digite o numero %d: ", i + 1); scanf("%d", &vetor[i]); } // Inicializar as variáveis maior e menor com o primeiro elemento do vetor maior = menor = vetor[0]; posicaoMaior = posicaoMenor = 0; // Encontrar o maior e o menor número e suas posições for (int i = 1; i < TAMANHO; i++) { if (vetor[i] > maior) { maior = vetor[i]; posicaoMaior = i; } if (vetor[i] < menor) { menor = vetor[i]; posicaoMenor = i; } } // Mostrar resultados printf("\nMaior numero: %d\n", maior); printf("Posicao do maior numero: %d\n", posicaoMaior + 1); // Adiciona 1 para mostrar posição humana printf("\nMenor numero: %d\n", menor); printf("Posicao do menor numero: %d\n", posicaoMenor + 1); // Adiciona 1 para mostrar posição humana
return 0; } PLANO DE TESTE
- 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. PROGRAMA-FONTE #include <stdio.h> #define TAMANHO 10 int main() { int vetor1[TAMANHO], vetor2[TAMANHO], resultado[TAMANHO]; // Entrada de dados para o primeiro vetor printf("Digite os elementos do primeiro vetor:\n"); for (int i = 0; i < TAMANHO; i++) { printf("Digite o elemento %d: ", i + 1); scanf("%d", &vetor1[i]); }
- 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. PROGRAMA-FONTE #include <stdio.h> #define TAMANHO 10 int main() { int vetorOriginal[TAMANHO]; int vetorSubstituido[TAMANHO]; // Entrada de dados printf("Digite os %d numeros inteiros:\n", TAMANHO); for (int i = 0; i < TAMANHO; i++) { printf("Digite o numero %d: ", i + 1); scanf("%d", &vetorOriginal[i]); // Substituir valores nulos por 1 no segundo vetor vetorSubstituido[i] = (vetorOriginal[i] == 0)? 1 : vetorOriginal[i]; } // Mostrar os dois vetores printf("\nVetor Original:\n"); for (int i = 0; i < TAMANHO; i++) { printf("%d ", vetorOriginal[i]); } printf("\n\nVetor Substituido:\n"); for (int i = 0; i < TAMANHO; i++) { printf("%d ", vetorSubstituido[i]); } return 0; } PLANO DE TESTE
- 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. (Lembre-se: o vetor B pode não ser preenchido.) PROGRAMA-FONTE #include <stdio.h> #define TAMANHO 10 int main() { int vetorA[TAMANHO]; int vetorB[TAMANHO]; // Tamanho máximo, pois o vetor compactado pode ter no máximo 10 elementos int tamanhoVetorB = 0;