Baixe o app para aproveitar ainda mais
Prévia do material em texto
UFRN-DIMAp� DIM0320 – ALGORITMOS E PROGRAMAÇÃO DE COMPUTADORES PROF.: AMARO DUARTE Lista de Exercícios para a 2ª unidade 1) Assinale V (verdadeiro) ou F (falso) para as alternativas abaixo. Para as alternativas falsas, sublinhe as palavras ou frases que as tornam falsas. Vetores são estruturas de dados que armazenam vários valores de mesmo tipo em posições de memória diferentes. Cada uma destas posições é referenciada pelo nome do vetor, seguido de um índice entre colchetes ([ ]). O índice de um elemento de um vetor pode ser um valor, variável ou expressão do tipo real. Para utilizar um vetor, não é necessário declará-lo. Basta atribuir valores aos seus elementos. Para declarar um vetor, é necessário mencionar o tipo dos dados que ele irá armazenar, o nome do vetor e o tamanho do mesmo. O tamanho de um vetor é a quantidade máxima de elementos que ele pode armazenar. O tamanho de um vetor pode ser visto, também, como o índice do último elemento, se este tiver valor armazenado. Se declararmos um vetor do tipo inteiro com tamanho 45, significa que estamos declarando o equivalente a 45 variáveis do tipo inteiro. Em pseudocódigo, é possível atribuir um vetor a outro diretamente. Em geral, a forma mais prática de ler, atribuir e/ou imprimir valores aos elementos de um vetor é utilizando um laço para-faça, com uma variável de controle que irá representar os índices dos elementos do vetor. Em um pseudocódigo, é correto afirmar que podemos atribuir a um vetor uma quantidade menor de elementos que seu próprio tamanho. Em um pseudocódigo, é correto afirmar que podemos atribuir a um vetor uma quantidade maior de elementos que seu próprio tamanho. Matrizes em pseudocódigo só podem conter, no máximo, 2 índices. Uma matriz bidimensional pode ser vista como um vetor de vetores. Ao declararmos uma matriz bidimensional, especificamos o tipo dos elementos, o nome da matriz e a quantidade de elementos que ela terá. A quantidade máxima de elementos que uma matriz pode armazenar é a quantidade máxima de linhas vezes a quantidade máxima de colunas, ambas especificadas durante a declaração da matriz. Em geral, a forma mais prática de ler, atribuir e/ou imprimir valores aos elementos de uma matriz é utilizando um laço para-faça, com uma variável de controle que irá representar os índices dos elementos da matriz. Se declararmos uma matriz do tipo real com 10 linhas e 20 colunas, estaremos criando o equivalente a 200 variáveis do tipo real. Para referenciar um único elemento para uma matriz, seja para leitura, atribuição ou escrita, é necessário mencionar o nome da matriz, seguido dos índices da linha e da coluna separados por vírgula e entre colchetes. Em pseudocódigo, é possível atribuir uma matriz a outra diretamente. 2) Quais são os erros dos seguintes algoritmos? Justifique. Se for necessário, diga a linha em que ocorrem os erros. a) Este algoritmo foi feito para ler n valores reais para os elementos de um vetor e calcular o produto dos mesmos. 1 algoritmo produto_vetor 2 inteiro: v(30),n,i,produto 3 início 4 repita 5 escreva("Digite a quantidade de elementos") 6 leia(n) 7 até(n>30) 8 escreva("Digite valores inteiros para os elementos") 9 escreva("do vetor v:") 10 leia(v[i]) 11 produto <- 1 12 para i de 1 até n faça 13 produto <- produto*v[i] 14 fim_para 15 escreva("produto do elementos = ", produto) 16 fim b) Este algoritmo foi feito para ler n elementos para 2 vetores de mesmo tamanho e calcular a soma dos mesmos. 1 algoritmo soma_vetores 2 real: a[40], b[40], s[20] 3 inteiro: n, i 4 inicio 5 repita 6 escreva("Quantos elementos para a e b?") 7 leia(n) 8 até(n>0 .e. n<=40) 9 escreva("Digite os elementos para o vetor a:") 10 para i de 1 até n faça 11 escreva("a[",i,"]=") 12 leia(a[n]) 13 Fim_para 14 escreva("Digite os elementos para o vetor b:") 15 para i de 1 até n faça 16 escreva("b[",i,"]=") 17 leia(b[i]) 18 fim_para 19 s <- a+b 20 escreva("vetor soma:") 21 escreva(s[i]) 22 fim c) Este algoritmo foi feito para ler valores inteiros para m e n, uma matriz m por n, um vetor de n elementos, e um valor c que referencia uma coluna da matriz. Em seguida, ele somaria o vetor com a coluna c da matriz e exibiria a matriz modificada. (Suponha que v seja um vetor coluna) 1 algoritmo soma_vetor_matriz 2 real: v[40], A[20,20] 3 inteiro: i,j 4 inicio 5 repita 6 escreva("Digite os valores de m e n:") 7 leia(m,n) 8 até(m>0 .e. n>0 .e. m<=40 .e. n<=40) 9 escreva("Digite os elementos da matriz A:") 10 para i de 1 até m faça 11 escreva("linha ",i,":") 12 para j de 1 até n faça 13 escreva("A[",i,",",j,"]=") 14 leia(A[i,j]) 15 fim_para 16 fim_para 17 escreva("Digite os ",m," elementos do vetor v:") 18 para i de 1 até m faça 19 escreva("v[",i,"]=") 20 leia(v[i]) 21 fim_para 22 repita 23 escreva("A qual coluna de A deve ser somado") 24 escreva("o vetor v?") 25 leia(c) 26 até(c>0 .e. c<=40) 27 para i de 1 até n faça 28 A[i,c] <- A[i,c] + v[i] 29 fim_para 30 escreva("matriz A modificada:") 31 para i de 1 até m faça 32 escreva("linha",i,":") 33 para j de 1 até n faça 34 escreva("A[",i,",",j,"]=",A[i,j]) 35 fim_para 36 fim_para 37 fim d) Este algoritmo foi feito para ler valores para m e n, 3 matrizes m por n, A, B e C, e calcula a soma das 3 matrizes. 1 algoritmo soma_3_matrizes 2 real: A[20,20],B[20,20],C[20,20],S[20] 3 início 4 repita 5 escreva("Digite valores para m e n:") 6 leia(m,n) 7 até(m>0 .e. n>0 .e. m<=30 .e. n<=30) 8 escreva("Digite os elementos da matriz A:") 9 para i de 1 até m faça 10 escreva("linha ",i,":") 11 para j de 1 até n faça 12 escreva("A[",i,",",j,"]=") 13 leia(A[ij]) 14 fim_para 15 fim_para 16 escreva("Digite os elementos da matriz B:") 17 para i de 1 até m faça 18 escreva("linha ",i,":") 19 para j de 1 até n faça 20 escreva("B[",i,",",j,"]=") 21 leia(B[i][j]) 22 fim_para 23 fim_para 24 escreva("Digite os elementos da matriz C:") 25 para i de 1 até n faça 26 escreva("linha ",i,":") 27 para j de 1 até m faça 28 escreva("C[",i,",",j,"]=") 29 leia(C[i,j]) 30 fim_para 31 fim_para 32 para i de 1 até m faça 33 para i de 1 até n faça 34 S[i,j] <- A[i,j]+B[i,j]+C[i,j] 35 fim_para 36 fim_para 37 escreva("Matriz soma S:") 38 para i de 1 até m faça 39 escreva("linha ",i,":") 40 para j de 1 até n faça 41 escreva("S[",i,",",j,"]=",S[i,j]) 42 fim_para 43 fim_para 44 fim 3) Reescreva os algoritmos da questão 2 da forma correta (sem os erros) e escreva a saída dos mesmos para os seguintes valores de entrada: Para o algoritmo do item a, os valores são n = 3 e Para o algoritmo do item b, os valores são n = 3, e Para o algoritmo do item c, os valores são m = 3, n = 4, , c = 3 e Para o algoritmo do item d, os valores são m = 2, n = 3, , e . 4) Escreva a saída para os seguintes algoritmos: a) os valores lidos são m = 3, n = 4, , e c = 1. algoritmo ex4a real: A[50,50], v[50] inteiro: m,n,i,j,c início repita escreva("Digite valores para m e n:") leia(m,n) até(m>0 .e. m<=50 .e. m>0 .e. m<=50) escreva("Digite valores para a matriz A",m,"x",n,":") para i de 1 até m faça escreva("linha ",i,":") para j de 1 até n faça escreva("A[",i,",",j,"]=") leia(A[i,j]) fim_para fim_para escreva("Suponha que v seja um vetor coluna. Então,") escreva("digite os ",m," elementos para o vetor v.") para i de 1 até m faça escreva("v[",i,"]=") leia(v[i]) fim_para repita escreva("A qual colunade A deve ser multiplicado") escreva("o vetor v?") leia(c) até (c>0 .e. c<=n) para i de 1 até m faça A[i,c] <- A[i,c]*v[i] fim_para escreva("Matriz A modificada:") para i de 1 até m faça escreva("linha ",i,":") para j de 1 até n faça escreva("A[",i,",",j,"]=",A[i,j]) fim_para fim_para fim b) os valores são m=2, n=2, e algoritmo ex4b real: A[20,20],B[20,20],R[20,20] inteiro: m, n, i, j inicio repita escreva("Digite valores para m e n:") leia(m,n) até(m>0 .e. m<=20 .e. n>0 .e. n<=20) escreva("Digite valores para a matriz A",m,"x",n,":") para i de 1 até m faça escreva("linha ",i,":") para j de 1 até n faça escreva("A[",i,",",j,"]=") leia(A[i,j]) fim_para fim_para escreva("Digite valores para a matriz B",m,"x",n,":") para i de 1 até m faça escreva("linha ",i,":") para j de 1 até n faça escreva("B[",i,",",j,"]=") leia(B[i,j]) fim_para fim_para para i de 1 até m faça para j de 1 até n faça R[i,j] <- 2*A[i,j]+5*B[i,j] fim_para fim_para escreva("Matriz resultante R:") para i de 1 até m faça escreva("linha ",i,":") para j de 1 até n faça escreva("R[",i,",",j,"]=",R[i,j]) fim_para fim_para fim c) os valores são m=2, n=2, e algoritmo ex4c real: A[20,20],B[20,20],R[20,20] inteiro: m, n, i, j inicio repita escreva("Digite valores para m e n:") leia(m,n) até(m>0 .e. m<=20 .e. n>0 .e. n<=20) escreva("Digite valores para a matriz A",m,"x",n,":") para i de 1 até m faça escreva("linha ",i,":") para j de 1 até n faça escreva("A[",i,",",j,"]=") leia(A[i,j]) fim_para fim_para escreva("Digite valores para a matriz B",m,"x",n,":") para i de 1 até m faça escreva("linha ",i,":") para j de 1 até n faça escreva("B[",i,",",j,"]=") leia(B[i,j]) fim_para fim_para para i de 1 até m faça para j de 1 até n faça R[i,j] <- (A[i,j]+B[i,j])^2 fim_para fim_para escreva("Matriz R:") para i de 1 até m faça escreva("linha ",i,":") para j de 1 até n faça escreva("R[",i,",",j,"]=",R[i,j]) fim_para fim_para fim d) os valores são m=2, n=2, e algoritmo ex4d real: A[20,20],B[20,20],R[20,20] inteiro: m, n, i, j inicio repita escreva("Digite valores para m e n:") leia(m,n) até(m>0 .e. m<=20 .e. n>0 .e. n<=20) escreva("Digite valores para a matriz A",m,"x",n,":") para i de 1 até m faça escreva("linha ",i,":") para j de 1 até n faça escreva("A[",i,",",j,"]=") leia(A[i,j]) fim_para fim_para escreva("Digite valores para a matriz B",m,"x",n,":") para i de 1 até m faça escreva("linha ",i,":") para j de 1 até n faça escreva("B[",i,",",j,"]=") leia(B[i,j]) fim_para fim_para para i de 1 até m faça para j de 1 até n faça R[i,j] <- A[i,j]^2+B[i,j]^2 fim_para fim_para escreva("Matriz R:") para i de 1 até m faça escreva("linha ",i,":") para j de 1 até n faça escreva("R[",i,",",j,"]=",R[i,j]) fim_para fim_para fim e) os valores são m=2, n=2, e algoritmo ex4e real: A[20,20],B[20,20],R[20,20] inteiro: m, n, i, j inicio repita escreva("Digite valores para m e n:") leia(m,n) até(m>0 .e. m<=20 .e. n>0 .e. n<=20) escreva("Digite valores para a matriz A",m,"x",n,":") para i de 1 até m faça escreva("linha ",i,":") para j de 1 até n faça escreva("A[",i,",",j,"]=") leia(A[i,j]) fim_para fim_para escreva("Digite valores para a matriz B",m,"x",n,":") para i de 1 até m faça escreva("linha ",i,":") para j de 1 até n faça escreva("B[",i,",",j,"]=") leia(B[i,j]) fim_para fim_para para i de 1 até m faça para j de 1 até n faça R[i,j] <- A[i,j]^2+4*A[i,j]*B[i,j]+B[i,j]^2 fim_para fim_para escreva("Matriz R:") para i de 1 até m faça escreva("linha ",i,":") para j de 1 até n faça escreva("R[",i,",",j,"]=",R[i,j]) fim_para fim_para fim f) os valores são m=2, n=2, , , e c=1. algoritmo ex4f real: A[20,20],B[20,20],R[20,20],.v[20] inteiro: m, n, i, j, c inicio repita escreva("Digite valores para m e n:") leia(m,n) até(m>0 .e. m<=20 .e. n>0 .e. n<=20) escreva("Digite valores para a matriz A",m,"x",n,":") para i de 1 até m faça escreva("linha ",i,":") para j de 1 até n faça escreva("A[",i,",",j,"]=") leia(A[i,j]) fim_para fim_para escreva("Digite valores para a matriz B",m,"x",n,":") para i de 1 até m faça escreva("linha ",i,":") para j de 1 até n faça escreva("B[",i,",",j,"]=") leia(B[i,j]) fim_para fim_para para i de 1 até m faça para j de 1 até n faça R[i,j] = A[i,j]+B[i,j] fim_para fim_para escreva("Matriz R:") para i de 1 até m faça escreva("linha ",i,":") para j de 1 até n faça escreva("R[",i,",",j,"]=",R[i,j]) fim_para fim_para escreva("Suponha que v seja um vetor coluna. Então,") escreva("digite os ",m," elementos para o vetor v.") para i de 1 até m faça escreva("v[",i,"]=") leia(v[i]) fim_para repita escreva("A qual coluna de R deve ser somado") escreva("o vetor v?") leia(c) até (c>0 .e. c<=n) para i de 1 até m faça R[i,c] <- R[i,c]+v[i] fim_para escreva("Matriz R modificada:") para i de 1 até m faça escreva("linha ",i,":") para j de 1 até n faça escreva("R[",i,",",j,"]=",R[i,j]) fim_para fim_para fim g) As entradas vão ser seu nome para nome e seu sobrenome para sobrenome. Algoritmo questao4g literal[80]: nome, sobrenome, nome_completo inteiro: n inicio escreva("Qual seu primeiro nome?") leia(nome) escreva("Olá, ", nome, ". Qual é o seu sobrenome?") leia(sobrenome) nome_completo <- nome nome_completo <- nome_completo +" "+sobrenome escreva("Ok, ", nome,". Então seu nome completo é: ") escreva(nome_completo) n<-0 enquanto (nome[n+1:n+1]<>"") faça n<-n+1 fim_enquanto escreva("O seu 1º nome possui ", n, "caracteres.") n<-0 enquanto (nome_completo[n+1:n+1]<>"") faça n<-n+1 fim_enquanto escreva("Já o seu nome completo possui ",n," caracteres") escreva("Obrigado, ",nome,"!") fim h) As entradas vão ser seu nome para nome e a palavra "senha7" para senha. Algoritmo questao4h literal[80]: nome literal[10]: senha inteiro: n inicio escreva("Qual o seu nome?") leia(nome) escreva("Olá, ", nome,". Digite uma senha de 7 dígitos: ") leia(senha) n<-0 enquanto (senha[n+1:n+1]<>"") faça n <- n+1 fim_enquanto se (n=7) então se (senha = "senha6") então escreva("Ok ",nome,". Senha confere.") senão escreva("Senha errada ", nome,".") fim_se senão escreva(nome," , a sua senha deve ter 6 dígitos.") fim_se fim i) A entrada será o seu nome para nome. Algoritmo questao4i literal[80]: nome literal[90]: moldural1, moldural2, moldural3 inteiro: n, i inicio escreva("Qual o seu nome?") leia(nome) n<-0 enquanto (nome[n+1:n+1])<>"") faça n<-n+1 fim_enquanto para i de 1 até (n+10) faça moldural1[i:i] <- "*" moldural3[i:i] <- "*" fim_para moldural2 <- "* Olá, " + nome + "! *" escreva(moldural1) escreva(moldural2) escreva(moldural3) fim Algoritmos com vetores 5) Faça um algoritmo que leia um valor inteiro para n e n elementos para um vetor V, e imprima os mesmos multiplicados por 2. 6) Faça um algoritmo que leia um valor inteiro para n e n elementos para umvetor V, e imprima os mesmos somados a 10. 7) Faça um algoritmo que leia um valor inteiro para n e n elementos para um vetor A, e gere um vetor B, cujos n elementos obedecem a seguinte fórmula: onde representa os elementos de A, e , os elementos de B, e i=1, 2, ..., n. 8) Faça um algoritmo que leia um valor inteiro para n e n elementos para um vetor A, e gere n elementos para um vetor B que obedeçam a seguinte lei de formação: onde representa os elementos de A, e , os elementos de B, e i=1, 2, ..., n. 9) Faça um algoritmo que leia uma quantidade inteira n, um valor real para o elemento inicial do vetor A, um valor real r, e gere, nos demais elementos do vetor A, os termos de uma P.A. de razão r. Os elementos do vetor A devem, então, obedecer a seguinte regra: onde i = 1, 2, 3, ...,n. Em seguida, o algoritmo deve calcular o somatório dos n termos da P.A. (NÃO use a fórmula de recorrência do somatório dos termos da P.A.). 10) Faça um algoritmo que leia uma quantidade inteira n, um valor real para o elemento inicial do vetor G, um valor real para q, e gere, nos demais elementos do vetor G, os termos de uma P.G. de razão q. Os elementos do vetor G devem, então, obedecer a seguinte regra: onde i = 1, 2, 3, …, n. Em seguida, o algoritmo deve calcular o somatório e o produtório dos n termos (NÃO use as fórmulas de recorrência para somatório e produtório dos termos da P.G.). 11) Faça um algoritmo que leia um valor n, e n elementos para um vetor A. Em seguida, o algoritmo deve gerar e imprimir os elementos de um vetor B. Os elementos do vetor B devem ser da seguinte forma: B1 = 2.A1 B2 = 3.A1 + 2.A2 B3 = 4.A1 + 3.A2 + 2.A3 . . . Bn = (n+1).A1 + n.A2 + (n-1).A3 + ... + 2.An Os elementos do vetor B devem ser gerados pela seguinte fórmula: i Bi = ∑(i-k+2).Ak, onde i = 1, 2, 3, ..., n k=1 12) Faça um algoritmo que leia um valor inteiro para n e n elementos para um vetor V, e imprima os mesmos em ordem inversa. 13) Faça um algoritmo que leia um valor inteiro para n e n elementos para um vetor V, e calcule a média aritmética dos elementos de V. 14) O produto vetorial entre dois vetores A e B é definido como: Onde A e B são vetores de 3 elementos cada. Faça um algoritmo que leia os vetores A e B e gere e imprima o vetor V resultante. 15) Faça um algoritmo que leia um valor n e n elementos para um vetor V e ordene os seus elementos em ordem crescente. 16) Faça um algoritmo que leia um valor n e n elementos para um vetor V e ordene os seus elementos em ordem decrescente. 17) Faça um algoritmo que leia um valor para n, n elementos para um vetor V, e um número x qualquer, e verifique se o valor de x está ou não inserido no vetor. Se estiver, diga em que índice do vetor o valor de x se encontra. Senão, diga que o valor de x não se encontra no vetor. 18) Faça um algoritmo que leia um valor n maior ou igual a zero, e n elementos NÃO REPETIDOS para um vetor V. Ou seja, o algoritmo, ao ler um valor para um elemento de V, deve verificar, antes, se o valor lido existe ou não no vetor V e, se existir, pedir para ser digitado outro valor; senão, incluir o valor no vetor. Depois de lido os elementos, exibir os elementos do vetor V. (Observe que, com este algoritmo, estaremos simulando a construção de conjuntos matemáticos. Ou seja, o vetor V estará atuando como um conjunto de valores não repetidos). Dica: Crie uma adaptação do mesmo mecanismo de busca da questão 17 para verificar se cada valor lido está ou não contido no vetor. Obs.: O algoritmo deve aceitar o valor zero para que se possa simular a ocorrência de um conjunto vazio. Neste caso, deve-se dar uma indicação de que o vetor será um conjunto vazio (Ex.: V=vazio, V={}, V = O etc.). 19) Baseado na questão 18, crie algoritmos (ou um só algoritmo) que leiam os valores m e n, m elementos não repetidos para um vetor A, n elementos não repetidos para um vetor B, e simule as seguintes operações com conjuntos (suponha que A e B sejam conjuntos de valores não repetidos): a) (união de A com B, ou seja, elementos (não repetidos) que estão contidos em A ou em B.) b) (interseção de A com B, ou seja, elementos comuns (não repetidos) que estão contidos, ao mesmo tempo, em A e em B) c) (elementos de A que não estão contidos em B (elementos não repetidos)) d) (elementos de B que não estão contidos em A (elementos não repetidos)) Obs.: Se o resultado de qualquer das operações acima der um conjunto vazio, faça com que o(s) algoritmo(s) indique(m), de alguma forma, que o resultado do conjunto é vazio. (Ex.: U=vazio, U={}, U = O etc.) Algoritmos com matrizes Dica: Declare matrizes quadradas para todos os algoritmos a partir da questão 21. 20) Faça um algoritmo que gere uma matriz usando a seguinte fórmula para os elementos: 21) Modifique o algoritmo do exercício 20 para que ele gere, com a mesma fórmula, uma matriz , onde m e n serão lidos antes de gerar a matriz. 22) Faça um algoritmo que leia os valores de m e n maiores que 1 e gere os elementos de uma matriz usando a seguinte fórmula: 23) Faça um algoritmo que leia os valores m e n e valores reais para os elementos de uma matriz , gere e imprima uma matriz real em que seus elementos obedeçam a seguinte lei de formação: 24) Faça um algoritmo que leia os valores m e n e valores inteiros para os elementos de uma matriz , gere e imprima uma matriz contendo o resto da divisão dos elementos da matriz A por 3. 25) Faça um algoritmo que leia os valores m e n e valores inteiros para os elementos de uma matriz , gere e imprima uma matriz contendo o resto da divisão dos elementos da matriz A por (i+j), onde i (i = 1, 2, 3,..., m) e j (j = 1, 2, 3, …, n) são índices dos elementos das matrizes A e B. 26) Faça um algoritmo que leia valores para m e n e uma matriz , um valor c ( ) que indique uma coluna da matriz A, e gere e imprima um vetor V que contenha o mesmo conteúdo da coluna escolhida de A. 27) Faça um algoritmo que leia valores para m e n e uma matriz , um valor l ( ) que indique uma linha da matriz A, e gere e imprima um vetor V que contenha o mesmo conteúdo da linha escolhida de A. 28) Faça um algoritmo que leia valores para m e n e uma matriz e um valor real c qualquer, e gere uma matriz onde seus elementos são os elementos da matriz A multiplicados por c, ou seja: 29) Faça um algoritmo que leia valores m e n, e elementos para uma matriz e gere e imprima a matriz transposta de A. A transposta de A é uma matriz onde o conteúdo de suas linhas é o mesmo conteúdo das colunas correspondentes de A e vice-versa. Ou seja: se então 30) Faça um algoritmo que leia os valores m e n, elementos para uma matriz e para uma matriz e calcule uma matriz Sm x n que é a soma da matriz A com a matriz B, ou seja: 31) Faça um algoritmo que leia valores para m e n, uma matriz e um vetor V de n elementos e gere um vetor P de m elementos que é o produto da matriz A pelo vetor V, ou seja: A fórmula de recorrência para gerar os elementos de P é 32) Faça um algoritmo que leia valores para m, n e p, uma matriz e uma matriz e gere uma matriz que é o produto da matriz A pela matriz B, ou seja: A fórmula de recorrência para os elementos de R é 33) Tomando por base os algoritmos das questões 28 a 32, faça algoritmos para ler os valores m, n e p e as matrizes A, B, C e D (com as dimensões dadas nas expressões de cada item) e calcular as seguintes matrizes: � �� EMBED Microsoft Equation 3.0 , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo., onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. onde t e u são valores reais, a serem lidos pelo algoritmo. onde e são matrizes transpostas de A, B e D, e D é uma matriz m por n. , onde e são matrizes transpostas de A, B e C, e C é uma matriz m por n. , onde D será uma matriz n linhas por m colunas , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. �� EMBED Microsoft Equation 3.0 , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. , onde t e u são valores reais, a serem lidos pelo algoritmo. onde t e u são valores reais, a serem lidos pelo algoritmo.� Algoritmos com dados literais (seqüências de caracteres) 34)Faça um algoritmo que leia um nome e diga quantas letras "a" ele possui. 35) Faça um algoritmo que leia um nome e diga quantas vogais "a", "e", "i", "o" e "u" ele possui, e diga, também, o total de vogais que ele possui. 36)Faça um algoritmo que leia um nome e uma letra, e diga quantas dessa letra lida o nome possui. 37) Faça um algoritmo que leia o nome completo de uma pessoa e exiba o seu primeiro nome. 38) Faça um algoritmo que leia o nome completo de uma pessoa e exiba o seu sobrenome. 39) Faça um algoritmo que leia um nome e exiba o mesmo de forma invertida. (Ex.: "Universidade" ficaria "Edadisrevinu") 40) Faça um algoritmo que leia um nome e diga se o mesmo é ou não um palíndromo. Um palíndromo é um nome que, mesmo escrito de trás para frente, continua o mesmo. (Ex.: arara, anilina, racificar). 41) Faça um algoritmo que leia um nome de uma pessoa e exiba, no lugar dos espaços, o caractere sublinha ( _ ). (Ex.: para Carlos Drummond de Andrade, teremos como saída Carlos_Drummond_de_Andrade) 42) Faça um algoritmo que leia o nome de uma pessoa e exiba as suas iniciais. (Ex.: para Carlos Drummond de Andrade, as iniciais são CDA) 43) Faça um algoritmo que leia um nome completo de uma pessoa e o escreve da seguinte forma: Recebe: Paulo Cesar Moreira Devolve: Moreira Cesar Paulo e, num segundo momento, inverte caracter a cada nome/sobrenome: Devolve: arieroM raseC oluaP 44) A Numerologia surgiu com o filósofo e matemático grego Pitágoras, criador da tabuada e de importantes fórmulas da geometria. Apesar do significado místico atribuído à Numerologia, esta consiste, basicamente, em pegar um número inteiro maior que zero (número este associado a um nome, a uma data, ao número de uma residência etc.), e a partir do mesmo, gerar um número de 1 a 9, chamado número da sorte, através de somas dos dígitos do número original e de sucessivas somas dos números gerados, até chegar a um número de 1 algarismo, entre 1 e 9. Inicialmente, Pitágoras criou o que chamamos hoje de tabela pitagórica, que associa letras a números de 1 a 9. A tabela abaixo é uma versão atual adaptada ao nosso atual alfabeto: 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Esta tabela é usada para calcular números da sorte associados a um nome, sendo estes os números da alma, da personalidade e da missão. O número da alma é calculado a partir da soma das vogais do nome. Exemplo: R I C A R D O L I S B O A M A R T I N S 9 1 6 9 6 1 1 9 9+1+6+9+6+1+1+9 = 42 4+2 = 6 (número da alma) O número da personalidade é calculado a partir da soma das consoantes do nome. Exemplo: R I C A R D O L I S B O A M A R T I N S 9 3 9 4 3 1 2 4 9 2 5 1 9+3+9+4+3+1+2+4+9+2+5+1 = 52 5+2 = 7 (número da personalidade) O número da missão é, basicamente, a soma de todas as letras, ou mesmo, a soma dos números da alma e da personalidade. Exemplo: R I C A R D O L I S B O A M A R T I N S 9 9 3 1 9 4 6 3 9 1 2 6 1 4 1 9 2 9 5 1 Somando todos os dígitos: 9+9+3+1+9+4+6+3+9+1+2+6+1+4+1+9+2+9+5+1 = 94 9 + 4 = 13 1 + 3 = 4 (número da missão) ou somando os números da alma e da personalidade 6 + 7 = 13 1+3 = 4 (número da missão) Com base nas informações acima citadas, faça um algoritmo que leia um nome e calcule os números da alma, da personalidade e da missão associados ao nome lido. 45) No livro Droga da obediência, do autor Pedro Bandeira, os personagens da estória se utilizam de 2 códigos para codificar e/ou decodificar mensagens: um chamado "tenis-polar" e outro chamado "código vermelho". a) Para codificar e/ou decodificar uma mensagem usando o código "tenis-polar", faz-se o seguinte: troca-se todas as letras t por p e todas as letras p por t. troca-se todas as letras e por o e todas as letras o por e. troca-se todas as letras n por l e todas as letras l por n. troca-se todas as letras i por a e todas as letras a por i. troca-se todas as letras s por r e todas as letras r por s. Por exemplo, a mensagem: "Esta mensagem esta codificada." ficaria codificada da seguinte forma: "Orpi molrigon orpi cedafacidi." Para decodificar, usa-se o mesmo processo. Faça um algoritmo que leia uma mensagem qualquer (codificada ou não), e converta a mesma usando o código "tenis-polar" como descrito acima. Por simplicidade, assuma que as mensagens lidas não usarão acentuação. b) Para codificar uma mensagem usando código vermelho, faz-se o seguinte: troca-se todas as letras a por ais. troca-se todas as letras e por enter. troca-se todas as letras i por inis. troca-se todas as letras o por omber. troca-se todas as letras u por ufter. Por exemplo, a mensagem: "Esta mensagem esta codificada." ficaria codificada da seguinte forma: "Enterstais menternsaisgenterm enterstais comberdinisfiniscaisdais.". Faça um algoritmo que leia uma mensagem (sem estar codificada e sem acentos), e converta a mesma usando o código vermelho como descrito acima. c) Para decodificar uma mensagem que está em código vermelho, faz-se o inverso do que é descrito no ítem anterior (trocar ais por a, enter por e e assim por diante). Faça um algoritmo que leia uma mensagem em código vermelho (por simplicidade, assuma que, na hora da leitura, a mensagem já esteja em código vermelho e sem acentos), e decodifique a mesma. d) Ainda no mesmo livro (Droga da Obediência) um dos personagens resolve escrever uma mensagem duplamente codificada. O conteúdo da mensagem era "Dsenterginis dinis Enterbomberdaisômberlcaisinis: Tombersaisgenter! Inis chinisvomber ómber Minissaisufterr Cinisrtómbersaisdomberr". Faça um algoritmo que leia uma mensagem e a decodifiqueusando código vermelho e "tenis-polar", nesta ordem. Em seguida, exiba a saída do seu algoritmo, tendo como mensagem lida a mesma mensagem mencionada neste ítem (sem os acentos). e) Faça um algoritmo que leia uma mensagem e a codifique usando os códigos "tenis-polar" e vermelho, nesta ordem, tal como foi codificada a mensagem do item d. f) Faça um algoritmo completo para codificar e/ou decodificar uma mensagem usando os códigos vermelho e "tenis-polar". O algoritmo deve, primeiro, permitir escolher as seguintes opções/sub-opções: "D" para decodificar. Dentro desta opção, o algoritmo deve permitir escolher as seguintes opções: "T" para "tenis-polar" "V" para código vermelho "TV" para código "tenis-polar" e, depois, vermelho "VT" para código vermelho e, depois, "tenis-polar" C para codificar. Dentro desta opção, o algoritmo deve permitir escolher as seguintes opções: "T" para "tenis-polar" "V" para código vermelho "TV" para código "tenis-polar" e, depois, vermelho "VT" para código vermelho e, depois, "tenis-polar" Em seguida o algoritmo deve ler as opções, a mensagem em si e, aplicando as opções selecionadas, o algoritmo codifica ou decodifica a mensagem utilizando o(s) código(s) selecionado(s). Caso seja digitada alguma opção inválida, o algoritmo deve avisar esse fato. _788561184.unknown _831968660.unknown _903004952.unknown _951518860.unknown _972079912.unknown _972080872.unknown _972081512.unknown _972082152.unknown _972081832.unknown _972081192.unknown _972080552.unknown _951520396.unknown _951520780.unknown _951520012.unknown _951380356.unknown _951518092.unknown _951518476.unknown _951517708.unknown _951517324.unknown _903005592.unknown _951379204.unknown _903005272.unknown _831970580.unknown _903004312.unknown _903004632.unknown _831970900.unknown _831969940.unknown _831970260.unknown _831969620.unknown _831926780.unknown _831967380.unknown _831968020.unknown _831968340.unknown _831967700.unknown _831950096.unknown _831950416.unknown _831931648.unknown _790745616.unknown _790747152.unknown _790747920.unknown _811242388.unknown _820964716.unknown _790747536.unknown _790746384.unknown _790746768.unknown _790746000.unknown _790730468.unknown _790732068.unknown _790745232.unknown _790731748.unknown _790728868.unknown _235853444.unknown _274679524.unknown _788557984.unknown _788560224.unknown _788560864.unknown _788559264.unknown _276597956.unknown _278978760.unknown _276597188.unknown _276597572.unknown _235861000.unknown _267573896.unknown _272637528.unknown _273942992.unknown _273942224.unknown _272062164.unknown _272371932.unknown _272061780.unknown _235862600.unknown _238607908.unknown _245211948.unknown _235863240.unknown _237368192.unknown _237368832.unknown _235863560.unknown _235862920.unknown _235861640.unknown _235861960.unknown _235861320.unknown _235855364.unknown _235860360.unknown _235860680.unknown _235860040.unknown _235854724.unknown _235855044.unknown _235853764.unknown _228985100.unknown _235834548.unknown _235851844.unknown _235852804.unknown _235853124.unknown _235852164.unknown _235845888.unknown _235846528.unknown _235845248.unknown _228986380.unknown _229004304.unknown _229004944.unknown _229005584.unknown _229006224.unknown _229006544.unknown _229005904.unknown _229005264.unknown _229004624.unknown _229003664.unknown _229003984.unknown _229003344.unknown _228985740.unknown _228986060.unknown _228985420.unknown _226482424.unknown _228983820.unknown _228984460.unknown _228984780.unknown _228984140.unknown _228983180.unknown _228983500.unknown _228982860.unknown _226481144.unknown _226481784.unknown _226482104.unknown _226481464.unknown _226480504.unknown _226480824.unknown _216232816.unknown _226480184.unknown _179753340.unknown
Compartilhar