Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Algoritmos para manipulação de vetores: exemplos e desafios, Exercícios de Algoritmos e Programação

Neste documento, encontram-se vários exemplos de algoritmos para manipulação de vetores, incluindo a determinação de números pares e ímpares, preenchimento de vetores, busca de valores e atualização de estoques. Além disso, são apresentados planos de teste para cada algoritmo.

Tipologia: Exercícios

2023

Compartilhado em 21/12/2023

paulo-vinicius-de-lima-pereira
paulo-vinicius-de-lima-pereira 🇧🇷

3 documentos

1 / 18

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
RELATÓRIO 9
1. 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
pares
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
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12

Pré-visualização parcial do texto

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

  1. 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
  1. 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]); } }
  1. 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; }

  1. 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

  1. 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
  1. 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

  1. 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]); }
  1. 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
  1. 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;