Baixe o app para aproveitar ainda mais
Prévia do material em texto
Lab. 5 Vetores ECT2303 - T02 - 18.1 5.1 Exerc´ıcio de Aprendizagem 1. Colocar em ordem crescente 5 valores nume´ricos armazenados no vetor A e apre- senta´-los. 1 algoritmo ordemCrescente 2 var 3 A: vetor [1..5] de inteiro 4 I, J, AUX: inteiro; 5 in´ıcio 6 para I de 1 ate´ 5 passo 1 fac¸a 7 leia (A[ I ]) 8 fimpara 9 para J de 1 ate´ 4 passo 1 fac¸a 10 para I de 1 ate´ 4 passo 1 fac¸a 11 se ( A[ I ] > A[ I + 1 ] ) enta˜o 12 AUX ← A[I] 13 A[ I ] ← A[ I + 1 ] 14 A[ I + 1 ] ← AUX 15 fimse 16 fimpara 17 fimpara 18 para I de 1 ate´ 5 passo 1 fac¸a 19 escreva ( A[ I ] ) 20 fimpara 21 fim 5.2 Exerc´ıcio de Fixac¸a˜o 1. Ler 12 elementos de vetor, coloca´-los em ordem decrescente e apresentar os elemen- tos ordenados. 2. Ler treˆs matrizes (A, B e C) de uma dimensa˜o com n elementos cada. Construir uma 1 matriz D, sendo esta a junc¸a˜o das treˆs outras matrizes. Apresentar os elementos da matriz D. 3. Ler duas matrizes A e B de uma dimensa˜o com n elementos. A matriz A devera´ aceitar apenas a entrada de valores pares, enquanto a matriz B devera´ aceitar apenas a entrada de valores ı´mpares. A entrada das matrizes devera´ ser validada pelo programa e na˜o pelo usua´rio. Construir uma matriz C de forma que a matriz C seja a junc¸a˜o das matrizes A e B. Apresentar a matriz C. 4. Ler 20 elementos de uma matriz A tipo vetor e construir uma matriz B de mesma dimensa˜o com os mesmo elementos da matriz A, sendo que devera˜o estar invertidos. Ou seja, o primeiro elemento de A passa a ser o u´ltimo de B, o segundo elemento de A passa a ser o penu´ltimo elemento de B e assim por diante. Apresentar as matrizes A e B lado a lado. 5. Fac¸a um programa que calcula a me´dia das estaturas de uma turma com n alunos. O program deve exibir um vetor com as estaturas abaixo da me´dia e um outro vetor com as estaturas acima da me´dia. 6. Implemente um programa em C++ que receba dois vetores de float, denominados u e v, cada um com n elementos. A seguir o programa deve calcular os seguintes resultados, assumindo u = [u0, u1, ..., un−1]t e v = [v0, v1, ..., vn−1]t � Produto interno: O resultado e´ um nu´mero p, definido como: p = ut.v = n−1∑ i=0 ui.vi = u0.v0 + u1.v1 + ... + un−1.vn−1, � Produto elemento a elemento: O resultado e´ um vetor y, com o mesmo nu´mero de elementos de u e v, onde: y = [u0 ∗ v0, u1 ∗ v1, ..., un−1 ∗ vn−1]t Exemplo de execuc¸a˜o: Digite o numero de elementos dos vetores ’u’ e ’v’: 5 Digite os elementos do vetor ’u’: -2.1 0.4 -3.2 -1.2 4.8 Digite os elementos do vetor ’v’: 0.7 -3.5 0.5 1.9 -2.2 Produto interno entre ’u’ e ’v’: -17.31 Produto elemento-a-elemento entre ’u’ e ’v’: -1.47 -1.4 -1.6 -2.28 -10.56 7. A regressa˜o linear por mı´nimos quadrados e´ um procedimento no qual os coeficientes a1 e a0 da equac¸a˜o f(x) = a1x+ a0 sa˜o determinados de tal forma que essa func¸a˜o leve ao melhor ajuste de um determinado conjunto de pontos. Os coeficientes a1 e a0 sa˜o calculados utilizando as sequintes equac¸o˜es: 2 a0 = ( n∑ i=1 x2i )( n∑ i=1 yi ) − ( n∑ i=1 xiyi )( n∑ i=1 xi ) n n∑ i=1 x2i − ( n∑ i=1 xi )2 a1 = n n∑ i=1 xiyi − ( n∑ i=1 xi )( n∑ i=1 yi ) n n∑ i=1 x2i − ( n∑ i=1 xi )2 Fac¸a um programa que calcule os coeficientes da reta f(x) mais pro´xima dos pontos (xi, yi). Exemplo de execuc¸a˜o: x = [62 116 55 30 46]; y = [225 360 215 150 180]; a1 = 2.4691387 a0 = 73.407228 8. Um gra´fico muito importante em estat´ıstica e´ o histograma de classes, que informa a frequeˆncia relativa de um conjunto de dados (classes). Para aplicar este conceito, tome o seguinte exemplo: Suponha que se dispo˜e da informac¸a˜o do nu´mero de carros que circularam em uma importante avenida da cidade em va´rios dias. Deseja-se construir um histograma que classifique o fluxo de carros em cinco grupos: � Abaixo de 100 ve´ıculos/dia; � Entre 100 e 200 ve´ıculos/dia; � Entre 200 e 300 ve´ıculos/dia; � Entre 300 e 400 ve´ıculos/dia; � Acima de 400 ve´ıculos/dia. Para isto, fac¸a um programa em C++ que recebe do usua´rio um vetor inteiro com n elementos. Cada elemento do vetor sera´ o fluxo de carros em um dia i espec´ıfico. A seguir o seu programa deve realizar os seguintes passos: (a) Criar um segundo vetor cont, de tamanho fixo igual a 5, para contabilizar as ocorreˆncias em cada classe. O vetor cont deve ser criado com todas as posic¸o˜es zeradas; como sugesta˜o, utilize o processo de inicializac¸a˜o de vetores visto em sala; (b) Contabilizar cada ocorreˆncia de fluxo do vetor de entrada em uma posic¸a˜o do vetor cont, utilizando a seguinte refereˆncia: � cont[0]: Fluxo abaixo de 100 ve´ıculos/dia; � cont[1]: Fluxo maior ou igual a 100 e menor que 200 ve´ıculos/dia; 3 � cont[2]: Fluxo maior ou igual a 200 e menor que 300 ve´ıculos/dia; � cont[3]: Fluxo maior ou igual a 300 e menor que 400 ve´ıculos/dia; � cont[4]: Fluxo maior que 400 ve´ıculos/dia. Como exemplo, se o valor for menor que 100, o valor de classes[0] devera´ ser incrementado em uma unidade; caso o valor seja maior que 100 e menor que 200, o valor de classes[1] devera´ ser incrementado; e assim por diante. (c) Utilizar o vetor cont para imprimir na tela o seguinte padra˜o na tela: 000 - 100: *** 100 - 200: ***** 200 - 300: ********* 300 - 400: **** 400 - >>>: ** Nele, ha´ um texto informando qual e´ a classe; a seguir, uma sequeˆncia de aste- riscos referente ao nu´mero de elementos contabilizados em cont (por exemplo, o gra´fico dado acima supo˜e cont = [3, 5, 9, 4 ,2]). Como sugesta˜o para impressa˜o deste padra˜o, repita, para cada classe o seguinte processo: � Imprima o texto com a classe; � Crie um lac¸o de 1 ate´ o valor armazenado em cont[i], onde i e´ ı´ndice associado a`quela classe. Em cada iterac¸a˜o deste lac¸o, voceˆ ira´ imprimir um asterisco. Para obter o efeito desejado, as duas etapas devem ser feitas na mesma linha. Ao final da impressa˜o dos asteriscos, deve ser impressa uma quebra de linha com o comando endl. Exemplo de execuc¸a˜o do programa: Digite o numero de dias verificados: 10 Digite os fluxos dos dias: 304 179 248 87 213 278 319 1094 291 218 -- Passo intermediario: nao precisa ser impresso. -- Vetor de ocorrencias: 1 1 5 2 1 ---------------------------------------------------- Histograma: 000 - 100: * 100 - 200: * 200 - 300: ***** 300 - 400: ** 400 - >>>: * 4 5.3 Refereˆncias Bibliogra´ficas 1. MANZANO, J.A.; OLIVEIRA, J.F.; Algoritmos - Lo´gica para Desenvolvi- mento de Programac¸a˜o. Editora Erica. 2. ASCENCIO, A.F.G.; CAMPOS, E.A.V. Fundamentos da Programac¸a˜o de Computadores - Algoritmos, Pascal e C/C++. 3ed. Editora Pearson. 3. DEITEL, H. M.; DEITEL, P. J. C++ Como Programar. 3ed. Editora Book- man. 5
Compartilhar