Lista de Exercícios Vetores e Matrizes Prof: Yuri Frota VETORES 1) Faça um programa em Fortran que leia um conjunto de 100 elementos numéricos e os armazene em um vetor. Em seguida, o programa deverá verificar se existem no vetor elementos iguais a um dado valor também informado pelo usuário e imprimir o índice das posições em que estes são encontrados. program numero_1 integer i,num, vezes, TAM integer A(100) TAM=100 print *,'entre com os elementos do vetor' read *, A(i) print *,'entre com o numero a ser procurado' read *,num vezes = 0 if (A(i).eq. num) then print *,' encontrou numero na posicao = ',i vezes = vezes + 1 if print *,' Numero encontrado ', vezes,' vezes' 2) Uma locadora de vídeos tem guardada, em um vetor de 500 posições, a quantidade de filmes retirados por seus clientes durante o ano passado (i.e. Clientes[i] = X -> o cliente i retirou X filmes no ano passado). Agora esta locadora está fazo uma promoção e, para cada 10 filmes retirados no ano passado, o cliente tem direito a uma locação grátis. Faça um programa em Fortran que crie um outro vetor conto a quantidade de locações gratuitas a que cada cliente tem direito. program numero_2 integer i,num, TAM integer A(500), B(500) TAM=500 print *,'entre com o numero de videos locados no ano passado' read *, A(i)
num = A(i) / 10 B(i) = num print *,' Numero de locacoes gratis por cliente' print *, 'Cliente ',i,') ',B(i),' locacoes gratis' 3) Faça um programa em Fortran que receba um vetor A de dimensão n e (a) Inverta os valores de A, troque o primeiro pelo ultimo, o segundo pelo penúltimo e assim por diante. (b) Após este procedimento, criar um vetor B de dimensão n com o fatorial de cada valor de A, respeitando as posições, caso o valor for positivo ou nulo. Deixe os valores negativos intactos. (c) Imprima o vetor B. program numero_3 integer i,j,num, n, TAM integer A(100), B(100) TAM=100 print *,'entre com a dimensao do vetor A' read *, n if (n.gt. TAM) then print *, 'dimensao maior que o limite' stop print *,'entre com os valores do vetor A' read *, A(i) i = 1 j = n do while (i.lt. j) num = A(i) A(i) = A(j) A(j) = num i = i + 1 j = j - 1 print *,' Vetor invertido'
print *, A(i) num = 1; do j=1, A(i), 1 num = num * j B(i) = num print *,' Vetor de Fatoriais' print *, B(i) 4) Alguns candidatos prestaram concurso para cinco vagas em uma empresa. Os resultados das provas do concurso são como o exemplo abaixo: Escreva um programa que: (a) Armazene o nomes dos candidados em um vetor e a média das notas em outro vetor. (b) Apresentar um relatório apresentando o nome dos candidatos em ordem de classificação de acordo com a média obtida, como exemplo abaixo.
program numero_4 integer i,j,n,i_max,tam real maximo, Medias(100) character*100 Cand(100) print *,'entre com o numero de candidatos' read *, n TAM=100 if (n.gt. TAM) then print *, 'dimensao maior que o limite' stop print *,'entre com os nomes e medias dos candidatos' print *,'Nome Candidato ',i read *, Cand(i) print *,'Media do Candidato ',i read *, Medias(i)
print *,'Nome Media' maximo = 0.0 do j=1, n, 1 if ((Medias(j).ge. 0.0).AND. (maximo.le. Medias(j))) then maximo = Medias(j) i_max = j print '(a50,f10.5)',cand(i_max),medias(i_max) Medias(i_max) = -1 5) Faça um programa em Fortran onde o usuário informe os valores e você deverá inserir estes valores de forma ordenada num vetor. O usuário deve ser capaz de inserir até 100 valores do tipo real. Após acabar a inserção, apresente os valores inseridos que estão ordenados. program numero_5 integer i,j,n, TAM real A(100),num,temp logical inserir inserir =.TRUE. N = 0 TAM = 100 do while (inserir) print *,'Elemento a ser inserido? (0 - sair)'
read *, num if (num.ne. 0.0) then if (n.eq. 0) then! Elemento inicial n = 1 A(n) = num else! Demais elementos! localiza a posicao if (A(i).ge. num) then do j=i, n, 1 temp = A(j) A(j) = num num = temp exit! sai do laco n = n + 1! novo elemento A(n) = num If ( n.eq. 100) then Print*, capacidade maxima exit else inserir =.FALSE.
print *,' Vetor ordenado' print *, A(i)