Baixe o app para aproveitar ainda mais
Prévia do material em texto
BAC004 – Informática – Teórica T2 Professora: Fabiana Costa Guedes Lista 05 – Vetores e Matrizes Vetores 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 receba 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; c. Os números múltiplos de 2 e de 3 ao mesmo tempo. 3- 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, juntamente com a quantidade. O 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 desta mercadoria”. Se puder atendê-lo, escrever a mensagem “Pedido atendido. Obrigado e Volte sempre”. c. Efetuar a atualização de estoque somente se o pedido for atendido integralmente; d. No final do algoritmo, escrever os códigos dos produtos com seus respectivos estoques atualizados. 4- Faça um programa que preencha um vetor com 15 elementos inteiros e verifique a existência de elementos iguais a 30, mostrando as posições em que aparecem. 5- 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. 6- Faça um programa que leia um vetor com trinta posições para números inteiros. Crie um segundo vetor, substituindo os valores nulos por 1. Mostre os dois vetores. 7- 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 completamente preenchido.). 8- 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. 9- Faça um programa que receba o nome de oito clientes e armazene-os em um vetor. Em um segundo vetor, armazene a quantidade de DVDs locados em 2006 por cada um dos oito clientes. Sabe-se que, para cada dez locações, o cliente tem direito a uma locação grátis. Faça um programa que mostre o nome de todos os clientes, com a quantidade de locações grátis a que eles tem direito. 10- Elabore um programa que inicialize 2 vetores de 10 elementos cada com valores inseridos pelo usuário, compute e mostre os vetores resultantes contendo a. A interseção dos elementos dos dois vetores b. A união dos elementos dos dois vetores c. A diferença do primeiro vetor pelo segundo Obs.: Os elementos dos vetores resultantes não podem ser repetidos. 11- Seja o seguinte programa em C++: #include <iostream> using namespace std; int main() { int v1[10], v2[10], v3[10]; cout << "Digite 10 valores para o primeiro vetor:" << endl; for (int i = 0; i < 10; ++i) cin >> v1[i]; cout << "Digite 10 valores para o segundo vetor:" << endl; for (int i = 0; i < 10; ++i) cin >> v2[i]; for (int i = 0; i < 10; ++i) { if ( v1[i] > v2[i] ) v3[i] = v1[i]; else v3[i] = v2[i]; } cout << "Valores do terceiro vetor:" << endl; for (int i = 0; i < 10; ++i) cout << v3[i] << endl; } a. Quais valores seriam impressos para o terceiro vetor, caso os valores de entrada para os vetores 1 e 2 fossem respectivamente { 7, 3, 12, -6, 19, 11, 6, 4, 0, 21 } e { 12, - 16, 14, 3, 8, 11, 51, -1, 20, 2 }? b. Descreva a funcionalidade do programa acima. 12- Faça um programa em C++ que inicialize um vetor de 10 posições com valores inseridos pelo usuário no intervalo [0, 9] (seu programa deverá validar os dados digitados pelo usuário), calcule e mostre a. O maior elemento do vetor. b. Um vetor resultante dividindo-se os elementos do vetor preenchido pelo usuário pelo maior elemento do vetor. 13- Faça um programa onde o usuário digite uma quantidade de valores N que serão armazenados em um vetor (N deve ser definido pelo usuário). Seu programa deve então inverter a ordem destes valores no vetor e depois imprimi-lo na ordem inversa. Por exemplo, suponha que o usuário tenha definido N=5 e digitado os valores { 2, 5, 7, 1, 4 } para preencher o vetor, ou seja, vetor[0] = 2, vetor[1] = 5, vetor[2] = 7, vetor[3] = 1 e vetor[4] = 4. Seu programa deve inverter os valores de modo a obter o vetor[0] = 4, vetor[1] = 1, vetor[2] = 7, vetor[3] = 5 e vetor[4] = 2, e mostrar o vetor invertido. 14- Elabore um programa em C++ que peça ao usuário para inserir a temperatura dos últimos N dias (N deve ser definido pelo usuário) e calcule a temperatura média e o desvio padrão da média considerando as informações inseridas pelo usuário. Obs.: Supondo que a média de um conjunto de N valores seja m, o desvio padrão é dado pela expressão abaixo (onde vi é o valor de temperatura no dia i) 15- Faça um programa onde o usuário insira 20 valores a serem armazenados em um vetor, e depois apresente o seguinte menu de opções ao usuário a. Saber em qual célula está armazenado um valor qualquer no vetor b. Alterar o valor de alguma célula c. Imprimir o vetor d. Sair Obs.: O programa deve apresentar este menu e realizar a operação desejada até que o usuário digite a opção 4. 16- Faça uma função em C++ que receba 4 parametros: um vetor de inteiros, o seu tamanho, um número inteiro A delimitando o início de um intervalo e outro número B delimitando o fim deste intervalo. Esta função deverá retornar verdadeiro caso todos os elementos do vetor pertençam ao intervalo [A, B] ou falso caso contrário. Implemente uma função int main ( ) para testar a função acima. 17- Faça um programa que preencha um vetor com 100 números aleatórios (entre 0 e 99) e depois imprima todos aqueles valores que forem acima de 50 e sua respectiva posição no vetor (célula onde está armazenado). Obs.: Inclua a biblioteca stdlib.h para usar a função rand( ) que gera um número aleatório positivo qualquer. A partir daí, basta usar o operador % (resto da divisão) para garantir que o número aleatório esteja no intervalo [0, 99]. 18- Faça um programa modularizado em C++ que dado um vetor SIMP de 10 números inteiros gerados aleatoriamente pela função rand(), crie um vetor DUP de 20 posições no qual a primeira metade é formada pelos 10 números gerados e a outra metade é formada pelos 10 números gerados multiplicados pelo número 2. 19- Faça um programa para corrigir provas de múltipla escolha. Cada prova tem 20 questões e cada questão vale um ponto. O primeiro conjunto de dados a ser lido é o gabarito da prova. Os outros dados são os números dos alunos e as respostas que deram às questões. Existem 70 alunos matriculados. Calcule e mostre: a. o número e a nota de cada aluno. b. a porcentagem de aprovação, sabendo-se que a nota mínima é 6. 20- Escreva um programa e um programa para ler um vetor de 20 posições. Em seguida, trocaro primeiro elemento com o último, o segundo com o penúltimo, o terceiro com o antepenúltimo, e assim sucessivamente. Imprimir o vetor após a troca. 21- Faça um programa e um programa para carregar um vetor de nove elementos numéricos inteiros, calcule e mostre os números primos e suas respectivas posições. Matrizes 22- Crie um programa que preencha uma matriz 2 X 4 com números inteiros, calcule e mostre: a. A quantidade de elementos entre 12 e 20 em cada linha; b. A média dos elementos pares da matriz. 23- Elabore um programa que preencha uma matriz 6 X 3, calcule e mostre: a. O maior elemento da matriz e sua respectiva posição, linha e coluna; b. O menor elemento da matriz e sua respectiva posição, linha e coluna. 24- Faça um programa que receba: a. As notas de 15 alunos em cinco provas diferentes e armazene-as em uma matriz 15 X 5; b. Os nomes dos 15 alunos e armazene-os em um vetor de 15 posições. c. O programa deverá calcular e mostrar: i. Para cada aluno, o nome, a média aritmética das cinco provas e a situação (aprovado, reprovado ou exame); ii. A média da classe. 25- Faça um programa que preencha uma matriz 20 X 10 com números inteiros e some cada uma das colunas armazenando o resultado da soma em um vetor. A seguir, o programa deverá multiplicar cada elemento da matriz pela soma da coluna e mostrar a matriz resultante. 26- Elabore um programa que preencha a matriz M de ordem 4 X 6 e uma segunda matriz N de ordem 6 X 4, calcule e imprima a soma das linhas de M com as colunas de N. 27- Crie um programa que preencha duas matrizes 3 X 8 com números inteiros, calcule e mostre: a. A soma das duas matrizes, resultando em uma terceira matriz; b. A diferença das duas matrizes, resultando em uma quarta matriz. 28- Crie um programa que preencha uma matriz 5 X 5 com números inteiros, calcule e mostre a soma: a. Dos elementos da linha 4; b. Dos elementos da coluna 2; c. Dos elementos da diagonal principal; d. Dos elementos da diagonal secundária; e. De todos os elementos da matriz. 29- Elabore um programa que: receba a idade de oito alunos e armazene-as em um vetor; armazene o código de cinco disciplinas em outro vetor; armazene em uma matriz a quantidade de provas que cada aluno fez em cada disciplina. O algoritmo deverá calcular e mostrar: a. A quantidade de alunos com idade entre 18 e 25 anos que fizeram mais de duas provas em uma determinada disciplina, cujo código é digitado pelo usuário. O usuário poderá digitar um código não cadastrado; neste caso, o programa deverá mostrar mensagem de erro; b. Uma listagem contendo o código dos alunos que fizeram menos que três provas em determinada disciplina, seguido do código da disciplina; c. A média de idade dos alunos que não fizeram nenhuma prova em alguma disciplina. Cuidado para não contar duas vezes o mesmo aluno. 30- Crie um programa que preencha uma matriz 12 X 13 e divida todos os elementos de cada linha pelo maior elemento em módulo daquela linha. O programa deverá escrever a matriz lida e a modificada. 31- Elabore um programa que preencha uma matriz 5 X 5 e crie dois vetores de cinco posições cada um, que contenha, respectivamente, as somas das linhas e das colunas da matriz. O programa deverá escrever a matriz e os vetores criados. 32- Crie um programa que preencha uma matriz 5 X 5 de números reais, calcule e mostre a soma dos elementos da diagonal secundária. 33- Faça um programa que preencha uma matriz 8 X 6 de inteiros, calcule e mostre a média dos elementos das linhas pares da matriz. 34- Fazer um programa para ler uma matriz 5x5. Gerar um vetor de 5 posições com os elementos da diagonal principal de forma invertida (o primeiro elemento da diagonal será o último do vetor, e assim por diante) 35- Fazer um programa para ler uma matriz 10x10. Gerar outra matriz 10x10 da seguinte forma: a. -1 para valores menores que 10; b. 0 para valores iguais a 10; c. 1 para valores maiores que 10. 36- Fazer um programa para ler duas matrizes numéricas 4x4 calculando, em seguida, a soma das matrizes. Verificar, na matriz resultado, se os elementos da diagonal principal são iguais aos da diagonal secundária. 37- Faça uma função denominada verificaValor que receba uma matriz de inteiros de dimensão 4 x 4 e um número inteiro x qualquer e retorne verdadeiro caso x esteja na matriz e falso caso contrário. Implemente também uma função int main( ) que peça ao usuário para preencher a matriz 4 x 4 de valores e então permita ao usuário digitar valores para verificar se eles estão na matriz, usando a função verificaValor. 38- Faça uma função denominada inverteDiagonal que receba como parâmetro uma matriz 5 x 5 com números reais e troque os elementos da diagonal principal desta matriz pelos elementos da diagonal secundária. Use uma função int main( ) para testar a função inverteDiagonal. 39- Faça um programa que peça ao usuário para digitar valores para duas matrizes: uma matriz A de dimensão 4 x 3 e outra matriz B de dimensão 3 x 4, ambas armazenando valores reais. Após isto, seu programa deverá mostrar na tela uma terceira matriz C, de dimensões 4 x 4 resultante da multiplicação de A x B. 40- Faça um programa para ler uma matriz A inteira (3 X 3). Imprimir a matriz na tela. Calcular e imprimir a soma dos elementos situados abaixo da diagonal principal, incluindo os elementos da própria diagonal. 41- Na teoria dos sistemas define-se o elemento MINMAX de uma matriz como sendo o maior elemento da linha onde se encontra o menor elemento da matriz. Carregue uma matriz 4X7 com números reais, calcule e mostre seu MINMAX e sua posição (linha e coluna). 42- Um elemento Ai,j de uma matriz é dito ponto de sela da matriz A se, e somente se, Ai,j for ao mesmo tempo o menor elemento da linha i e o maior elemento da coluna j. Faça um programa que carregue uma matriz de ordem 5X7, verifique se a matriz possui ponto de sela e, se possuir, mostre seu valor e sua localização. 43- Carregue uma matriz 8X8 com números inteiros e mostre uma mensagem dizendo se a matriz digitada é simétrica. Uma matriz simétrica possui A[i, j] = A[j,i].
Compartilhar