Buscar

Lista de Exercícios para a 2ª unidade

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Continue navegando