ExerciciosResolvidosVetores

Propaganda
1) Escreva um algoritmo que leia 50 nomes de alunos e logo após repita sua impressão.
algoritmo "Nomes dos Alunos"
literal: nomes[50]// declaramos, aqui, o vetor (veja o tamanho entre colchetes)
inteiro : contador//declaração da variável contador
inicio
escreva ("Digite os nomes dos alunos:")
para contador de 1 ate 50 passo 1 repita //inicio da primeira estrutura de repetição
escreva ("Aluno ",contador,":")
leia (nomes[contador]) //os dados são armazenados um a um, no vetor
fim para //fim da primeira estrutura de repetição
para contador de 1 ate 50 passo 1 repita //inicio da segunda estrutura de repetição
escreva (nomes[contador]) //os dados são exibidos
fim para //fim da segunda estrutura de repetição
fim
2) Imprimir a soma de n números dados.
Algoritmo Soma
Real: x[100], soma
Inteiro: n, i
Início
Repita
Escreva (“Quantos números? “)
Leia ( n )
Até ( n > 0 e n <= 100 )
Escreva ( “Digite os “, n , “ números: “ )
Para i de 1 até n repita
Leia ( x[i] )
fim para
soma ← 0
Para i de 1 até n repita
soma ← soma + x[i]
fim para
Escreva ( “Soma = “, soma )
Fim
3) Imprimir os n primeiros termos da sequencia de Fibonacci: 1 1 2 3 5 8 13 21 . . .
Algoritmo Fibonacci
Inteiro: f[100], n, i
Início
Repita
Escreva(“Quantos termos?”)
Leia ( n )
Até ( n>0 e n <=100 )
f[1] ← 1
f[2] ← 1
Para i de 3 até n repita
f[i] ← f[i-2] + f[i-1]
fim para
Escreva (“Sequência de Fibonacci: “)
Para i de 1 até n repita
Escreva ( f[i] )
fim para
Fim
4) Dados dois vetores com n componentes cada, calcular o produto escalar entre eles.
Algoritmo Produto_escalar
Real: x[10], y[10], pesc
Inteiro: n,i
Início
Repita
Escreva (“Quantas componentes tem cada vetor? “)
Leia ( n )
Até ( n>0 e n<=10 )
Escreva( “Digite os números do primeiro vetor: “)
Para i de 1 até n repita
Leia ( x[i] )
fim para
Escreva ( “Digite os números do segundo vetor: “)
pesc ← 0
Para i de 1 até n repita
Leia ( y[i] )
pesc ← pesc + x[i]*y[i]
fim para
Escreva (“Produto Escalar = “, pesc)
Fim
5) Dados vários números inteiros e positivos imprimi-los separadamente como números pares e
números ímpares.
Algoritmo Par_ímpar
Inteiro: x[30], par[30], impar[30], n, k, p, i
Início
Repita
Escreva (“Quantos números?”)
Leia ( n )
Até ( n>0 e n<=30 )
Escreva (“Digite os”, n, “ números inteiros positivos:”)
p←0
i←0
Para k de 1 até n repita
Repita
Leia ( x[k] )
Até ( x[k] > 0 )
Se ( mod(x[k],2)= 0) então
p ← p+1
par[p] ← x[k]
senão
i ← i+1
impar[i] ← x[k]
fim se
fim para
Escreva(“Números pares: “)
Para k de 1 até p repita
Escreva (par[k])
fim para
Para k de 1 até i repita
Escreva(ímpar[k])
fim para
Fim
6) Pesquisa sequencial ou linear é o método para se encontrar um elemento particular num
conjunto não_classificado. Vejamos um algoritmo para ler um número e verificar se o mesmo se
encontra num vetor com n elementos.
Algoritmo Pesquisa_sequencial
Real: x[100], num
Inteiro: n, i
Lógico: achou
Início
Repita
Escreva(“Quantos números?”)
Leia( n )
Até( n>0 e n<=100)
Escreva(“Digite todos os números:”)
Para i de 1 até n repita
Leia( x[i] )
fim para
Escreva(“Digite o número que procura:”)
Leia (num)
achou ← 0
i←1
Enquanto ( i <= n e não achou )repita
Se( x[i] = num) então
achou ← 1
senão
i ← i+1
fim se
Fim_enquanto
Se( achou ) então
Escreva(“Número encontrado. “)
Senão
Escreva(“Número não encontrado.”)
fim se
Fim
7) Pesquisa binária é semelhante à pesquisa sequencial quanto ao objetivo, sendo que os elementos
do vetor estão previamente classificados segundo algum critério. Vejamos um algoritmo, supondo
que os números do vetor estão classificados na ordem crescente.
Algoritmo Pesquisa_binária
Real: x[100], num
Inteiro: n, i, meio, alto, baixo
Lógico: achou
Início
Repita
Escreva(“Quantos números?”)
Leia( n )
Até ( n>0 e n<=100 )
Escreva(“Digite todos os números:”)
Para i de 1 até n repita
Leia ( x[i] )
fim para
Escreva (“Digite o número que procura: “)
Leia( num )
alto ← n
baixo ← 1
achou ← 0
Enquanto( baixo<=alto e não achou ) repita
meio ← (baixo + alto)/2
Se( num < x[meio] )então
alto ← meio – 1
senão
Se( num > x[meio] ) então
baixo ← meio + 1
senão
achou ← 1
fim se
fim se
Fim_enquanto
Se( achou ) então
Escreva(“Número encontrado. “)
Senão
Escreva(“Número não encontrado. “)
fim se
Fim
8) Algoritmo que recebe 10 números, indica quais são os números ímpares maiores que 1 e menores
que 726, qual a maior diferença entre dois números consecutivos informados pelo usuário e quais
são múltiplos de 3.
algoritmo "Numeros
inteiro: numeros, impar, multiplo3[10]
inteiro: maiordif[3]
x, y: inteiro
inicio
// Variável para calcular maior diferença entre dois números consecutivos. Serão usados mais tarde
maiordif[3] <- 0
para x de 1 ate 10 repita
// Instrução para digitar o numero e guardá-lo numa variável
escreva("Digite o ",x,"º número: ")
leia(numeros[x])
// Verificação se o número é ímpar maior que 2 e menor que 726
se ((numeros[x] mod 2) <> 0) entao
se numeros[x] > 1 entao
se numeros[x] < 726 entao
impar[x] <- numeros[x]
fim se
fim se
fim se
// Verificação se o número é múltiplo de 3
se ((numeros[x] mod 3) = 0) entao
multiplo3[x] <- numeros[x]
fim se
// Maior diferença entre dois números consecutivos.
y <- x - 1
se ((numeros[x] - numeros[y]) > maiordif[3]) entao
maiordif[3] <- numeros[x] - numeros[y]
maiordif[1] <- numeros[x]
maiordif[2] <- numeros[y]
fim se
fim para
escreva("==== NÚMEROS ÍMPARES MAIOR QUE 2 E MENOR QUE 726 ====")
para x de 1 ate 10 repita
escreva(x,"º Número ímpar: ",impar[x])
fim para
escreva("")2
escreva("==== NÚMEROS MÚLTIPLOS DE 3 ====")
para x de 1 ate 10 repita
escreva(x,"º Número múltiplo de 3: ",multiplo3[x])
fim para
escreva("==== MAIOR DIFERENÇA ENTRE NÚMEROS CONSECUTIVOS ====")
escreva("A maior diferença está entre os números: ",maiordif[2]," e",maiordif[1])
escreva("Diferença de: ",maiordif[3])
fim
Download