Você está na página 1de 18

Exercícios - Programação

Capítulo 5
01. Elaborar um programa que apresente como resultado os quadrados dos números inteiros existentes
na faixa de valores de 15 a 200

Passo 1: entendimento
1- Declarar uma variável inteira para contagem do N
2 - Declarar uma variável para o incremento
3 - Declarar uma variável para contagem dos quadrados
4- Fazer um laço enquanto

programa Quadra
var
N, I : inteiro
início
N <- 1
I <- 15
enquanto ( I <= 200 ) faça
N <- I * I
Escreva " O quadrado do Número", I " é" N
I <- I + 1
fim_enquanto
fim

programa Quadra 02
var
N, I : inteiro
início
N <- 1
I <- 15
até_seja (I > 201) efetue
N <- I * I
Escreva " O quadrado do Número", I " é" N
I <- I + 1
fim_até_seja
fim
02. Elaborar um programa que mostre os resultados da tabuada de um número qualquer, a qual deve
ser apresentada de acordo com sua forma tradicional.

Passo 01: Entendimento


1 - variável N para o valor que o usuário irá introduzir
2 - variável I para o incremento
3 - variável T para a multiplicação
4- Usar o laço enquanto
5- Retonar na tela o valor multiplicado e o seu resultado

programa Multipl
var
N, I, T : inteiro
início
I <- 1
escreva "digite o número que você quer a tabuada"
leia N
enquanto ( I <= 10 ) faça
T <- N * I
escreva " O valor", N " multiplicado por", I " resulta em", T
I <- I + 1
fim_enquanto
fim

03. Construir um programa que apresente a soma dos cem primeiros números naturais
(1+2+3+ ... +98+99+100).

passo 1: entendimento
1- Declarar uma variável de incremento I
2- Declarar uma variável para soma
3- Fazer o incremento + o valor acumulativo
4- fazer um laço enquanto
5- retornar o valor final da variável

programa soman
var
N, I, : inteiro
início
I <- 1
S <- 0
enquanto ( I <= 100 ) faça
S <- I + S
I <- I + 1
fim_enquanto
imprima ( " O valor da soma dos 100 primeiros números naturais é", S
fim

03. Elaborar um programa que apresente o somatório dos valores pares existentes na faixa de 1 até 500.

passo 1: entendimento
1- Declarar uma variável de incremento I com o valor 2
2- Declarar uma variável S vazia
3- Dentro do laço até_que, S = 2 * I
3- No final do laço atribuir que I = I + 2
4- Retonar no fim do código o valor da soma S

programa somapar
var
S, I : inteiro
início
S <- 0
I <- 2
até_seja ( I > 500 ) execute
S <- 2 * I + S
I <- I + 2
fim_até_seja
imprima ( "o valor da soma dos números é", S )
fim

04. Elaborar um programa que apresente todos os valores numéricos inteiros ímpares situados na faixa
de O a 20. Sugestão: para verificar se o valor numérico é ímpar, dentro do laço de repe-tição, fazer a
verificação lógica dessa condição com a instrução se/fim_se dentro do próprio laço, perguntando se
o valor numérico do contador é ímpar (se o resto do número dividido por 2 é diferente de zero);
sendo, mostre-o; não sendo, passe para o próximo valor numérico
passo 1: entendimento
1- Declarar uma variável de incremento I
2- Fazer um laço enquanto
3- Declarar uma condicional dentro do laço enquanto
4- Verificar se o valor é ímpar
5- caso for mostrá-lo

programa interi
var
I, Rest : inteiro
início
I <- 1
enquanto ( I <= 20 ) faça
Rest <- I - 2 * ( I div 2 )
se ( Rest <> 0 ) então
imprima ( I )
fim_se
I <- I + 1
fim_enquanto
fim

04. Construir um programa que apresente todos os valores numéricos divisíveis por 4 e menores que 200.
Sugestão: a variável que controla o contador do laço deve ser iniciada com valor 1.

passo 1: entendimento
1- Declarar uma variável de incremento I com o valor 1
2- Declarar uma variável para o resto da divisão
3- fazer um laço até que
4- Dentro do laço verificar através do resto da divisão entre o Incremento e 4 se o resto é 0
5- caso for imprimir o valor I na tela

programa divisao4
var
I, Rest : inteiro
início
I <- 1
até_seja ( I > 200 ) execute
Rest <- I - 4 * ( I div 4 )
se ( Rest == 0 ) então
imprima ( I )
fim_se
I=I+1
fim_até_seja
fim

05. Elaborar um programa que apresente os resultados das potências do valor de base 3, elevado a um
expoente que varie do valor O até o valor 15. O programa deve apresentar os valores 1, 3, 9. 27, ... ,
14.348.907. Sugestão: leve em consideração as definições matemáticas do cálculo de potência, em
que qualquer valor numérico diferente de zero elevado a zero é 1, e todo valor numérico elevado a 1
é ele próprio. Não use em hipótese nenhuma o operador 1aritmético de exponenciação apresentado
no capítulo 3; resolva o problema com a técnica de laço

passo 1: entendimento
1- Declarar uma variável de Incremento com o valor 0
2- Declarar uma variável para ser o resultado da potência
3- Laço pré código
4- Dentro do laço fazer variável que vá acumulando e multiplicando por 3

programa poten
var
I, Calc : inteiro
início
I <- 0
Calc <- 1
enquanto ( I <= 15 ) faça
Calc <- Calc * 3
se ( I = 0 ) então
imprima ( "1" )
senão
imprima ( Calc )
fim_se
I <- I + 1
fim_enquanto
fim
06. Escrever um programa que apresente como resultado a potência de uma base qualquer elevada a
um expoente qualquer, ou seja, de BE, em que B é o valor da base e E o valor do expoente.
Considere apenas a entrada de valores inteiros e positivos, ou seja, de valores naturais. Sugestão: não
utilize o formato "base j expoente", pois é uma solução muito trivial. Use a técnica de laço, em que o
valor da base deve ser multiplicado o número de vezes determinado no expoente.

passo 1: entendimento
1- Declarar uma variável de incremento I
2- Ler o valor da Base e do Expoente
3- Laço até seja
4- Dentro do laço fazer uma variável para qual realize o cálculo da potência

programa pontenc
var
I, Base, Expn, Calc : inteiro
início
I <- 1
Calc <- 1
imprima ( " digite a Base " )
leia (Base)
imprima ( " digite o Expoente " )
leia (Expn)
se ( Expn = 0 ) então
imprima ( "O valor de", Base " elevado a", Expn " é 1" )
senão
até_seja ( I > Expn ) efetue
Calc <- Calc * Base
I <- I + 1
fim_até_seja
imprima ( "O valor de", Base " elevado a", Expn " é ", Calc )
fim_se
fim

07. Escrever um programa que apresente os valores da sequência numérica de Fibonacci até o décimo
quinto termo. A sequência de Fibonacci é formada por O, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,
233, 377, ... etc., obtendo-se o próximo termo a partir da soma do termo atual com o anterior
sucessivamente até o infinito, se a sequência não for interrompida. Utilize para este exercício as
variáveis ATUAL, ANTERIOR e PRÓXIMO.
passo 1: entendimento
1- declarar variável de incremento I
2- declarar variáveis ATUAL, ANTERIOR e PRÓXIMO
3- declarar laço enquanto ( I <= 15 )
4- dentro do laço atribuir que o termo próximo é igual ao atual + anterior

programa Fibonacci
var
I, ATUAL, ANTERIOR, PRÓXIMO : inteiro
início
I <- 1
ATUAL <- 1
ANTERIOR <- 0
PRÓXIMO <-
enquanto ( I <= 15 ) faça
PRÓXIMO <- ANTERIOR + ATUAL
caso ( I )
seja ( 1 ) faça
imprima ( " 0 " )
seja ( 2 ) faça
imprima ( " 1 " )
senão
imprima ( PRÓXIMO )
ATUAL <- PRÓXIMO
ANTERIOR <- ATUAL
fim_caso
I <- I + 1
fim_enquanto
fim

08. Elaborar um programa que apresente os valores de conversão de graus Celsius em graus Fahrenheit,
de dez em dez graus, iniciando a contagem em dez graus Celsius e finalizando em cem graus Celsius.
O programa deve apresentar os valores das duas temperaturas.

passo 1: entendimento
1- Variável de incremento c
2- Variável para o valor em fah
3- Laço até_seja
4- Dentro do laço executar a fórmula que transforma celso em fahrenheit
5- exibir dentro do laço o valor em celso e o valor em fahrenheit

programa tempo
var
inteiro c, fah
início
c = 10
até_seja ( c > 100 ) execute
fah = 1,8 * c + 32
imprima (" o valor da temperatura em Celso:", c "°")
imprima ("o valor da temperatura em Fahrenheit:", fah "°")
c = c + 10
fim_até_seja
fim

09. Escrever um programa que calcule e apresente o somatório do número de grãos de trigo que se pode
obter num tabuleiro de xadrez, obedecendo à seguinte regra: colocar um grão de trigo no primeiro
quadro e nos quadros seguintes o dobro do quadro anterior. Ou seja, no primeiro quadro coloca-se
um grão, no segundo quadro colocam-se dois grãos (neste momento, tem-se três grãos), no terceiro
quadro colocam-se quatro grãos (tendo neste momento sete grãos), no quarto quadro colocam-se
oito grãos (tendo-se então 1 5 grãos) até atingir o sexagésimo quarto quadro (este exercício foi
baseado numa situação exposta no capítulo 16 do livro "O Homem que Calculava" de Malba
Tahan, da Editora Record).

passo 1: entendimento
1- variável de incremento com o valor 1
2- variável soma, variável cal
3- laço enquanto até (64)
5- dentro do laço atribuir a variável calc o valor 2 * ela mesma
6- dentro do laço atribuir a Variável soma o valor soma + calc
7- fora do laço apresentar o valor da soma

programa trigosoma
var
cal, i, soma : inteiro
início
I=1
cal = 1
enquanto ( I <= 64) faça
cal = cal * 2
soma = soma + cal + 1
i=i+1
fim_enquanto
imprima (" o valor da soma dos 64 quadros é:", soma)
fim

Capítulo 6
a) Elaborar um programa que efetue a leitura de dez nomes de pessoas em uma matriz A do tipo vetor
e apresente-os em seguida.

entendimento:
1- Declarar uma variável de Incremento I
2- Declarar um vetor
3- iniciar um laço, dentro do laço, ler os nomes, fechar o laço
4- iniciar outro laço, dentro do laço, escrever os nomes

programa nomes
var
Nom : conjunto [1..10] de caracter
inteiro I
início
para I de 1 até 10 passo 1 faça
leia( Nom[I] )
fim_para
para I de 1 até 10 passo 1 faça
escreva (Nom[I])
fim_para
fim

b) Elaborar um programa que leia oito elementos inteiros em uma matriz A do tipo vetor. Construir
uma matriz B de mesma dimensão com os elementos da matriz A multiplicados por 3. O elemento
B[1] deve ser implicado pelo elemento A[1] * 3, o elemento 8[2] implicado pelo elemento A[2] * 3 e
assim por diante, até 8. Apresentar a matriz 8.

entendimento:
1- Variável de incremento I
2- declarar dois vetores
3- iniciar um laço, e dentro ler os valores para o vetor A,
4- fechar laço
5- iniciar outro laço, atribuir para o vetor B, o valor do elemento A[I] * 3
6- fechar o laço
7- iniciar outro laço, escrever os valores para B

programa vetotes
var
inteiro : I
A, B : conjunto [1..8] de inteiro
início
para I de 1 até 8 passo 1 faça
leia(A[I])
B[I] <- A[I] * 3
fim_para
para I de 1 até 8 passo 1 faça
escreva (B[I])
fim_para
fim

(não foi necessário criar outro laço, porque os vetores têm as mesmas dimensões, logo podem compartilhar a
variável de Incremento, não é o recomendado, mas poupou algumas linhas de código.)

c) Escrever um programa que leia duas matrizes (denominadas A e 8) do tipo vetor com 20 elementos
reais. Construir uma matriz C, sendo cada elemento da matriz C a subtração de um elemento
correspondente da matriz A com um elemento correspondente da matriz 8, ou seja, a operação de
processamento deve estar baseada na operação C[I] +-A[I] -8[1]. Ao final, apresentar os elementos
da matriz C.

entendimento:
1- declarar três vetores (A,B,C) com vinte elementos reais
2- declarar uma variável de Incremento
3- Dentro de um laço de controle, ler os valores para as matrizes A e B
(pode compartilhar a mesma variável de Incremento, tendo em vista que tem o mesmo valor)
fechar o laço de controle
4- Declarar outro laço de controle, dentro dele fazer a operação para o vetor C
5- Dentro do laço mostrar na tela o valor do vetor C

programa vetoress
var
A, B, C : conjunto [1..20] de real
I : inteiro
início
para I de 1 até 20 passo I++ faça
escreva ("\n digite o valor " + I + "para o vetor A: ")
leia(A[I])
limpa()
escreva ("\n digite o valor " + I + "para o vetor B: ")
leia(B[I])
limpa()
C[I] = A[I] - B[I]
fim_para
para I de 1 até 20 passo I++ faça
escreva("\n" + C[I])
fim_para
fim

D) Elaborar um programa que leia 15 elementos inteiros de uma matriz A do tipo vetor. Construir uma
matriz B de mesmo tipo, observando a seguinte lei de formação: "todo elemento da matriz B deve ser o
quadrado do elemento da matriz A correspondente". Apresentar os elementos das matrizes A e B.

entendimento:
1- declarar dois vetores (A,B) do tipo inteiro com o tamanho 15
2- criar um laço de controle
3- dentro do laço de controle ler os valores para o vetor A
4- Calcular os elementos do vetor B como o quadrado dos elementos do vetor A
5- Fechar o laço de controle
6- criar um laço de controle
7- Escrever os valores do vetor A
8- Escrever os valores do vetor B

programa quadradoss
var
A, B : conjunto [1..15] de inteiro
I : inteiro
início
para I de 1 até 15 passo I++ faça
escreva ("\n Digite o valor " + I + " : ")
leia(A[I])
limpa()
B[I] = A[I] * A[I]
fim_para
escreva("os valores do vetor A")
para I de 1 até 15 passo I++ faça
escreva("\n" + A[I])
fim_para
escreva("os valores do vetor B")
para I de 1 até 15 passo I++ faça
escreva ("\n" + B[I])
fim_para
fim

e) Elaborar um programa que leia uma matriz A do tipo vetor com 15 elementos inteiros. Construir uma
matriz B de mesmo tipo, e cada elemento da matriz B deve ser o resultado da fatorial correspondente de cada
elemento da matriz A. Apresentar as matrizes A e B.

entendimento:
1- Declarar um vetor A com 15 elementos
2- Declarar um vetor B com 15 elementos
3- Declarar uma variável de incremento I
4- Declarar uma variável para contagem do fatorial (conta)
5- Declarar uma variável para o fatorial com o valor 1
6- criar um laço controle para leitura dos valores do vetor
7- criar um laço controle para associação do fatorial
8- apresentar os valores do vetor A e B

programa fatoriall
var
A, B : conjunto [1..15] de inteiro
fat, cont, i : inteiro
início
fat <- 1
cont <- 1
para i de 1 até 15 passo i++ faça
escreva("\n digite o valor para o vetor: ")
leia(A[i])
enquanto ( cont <= A[i] ) faça
fat <- fat * cont
fim_enquanto
B[i] <- fat
fat <- 1
cont <- 1
fim_para
escreva ("os valores do vetor A são: ")
para i de 1 até 15 passo i++ faça
escreva("\n" + A[i])
fim_para
escreva ("os valores do vetor B são: ")
para i de 1 até 15 passo i++ faça
escreva("\n" + B[i])
fim_para
fim

f) Construir um programa que leia duas matrizes A e B do tipo vetor com 15 elementos quaisquer inteiros.
Construir uma matriz C, sendo esta o resultado da junção das matrizes A e B. Desta forma, a matriz C deve
ter o dobro de elementos em relação às matrizes A e B, ou seja, a matriz C deve possuir 30 elementos.
Apresentar a matriz C.

entendimento:
1- declarar um vetor A do tipo inteiro
2- Declarar um vetor B do tipo inteiro
3- Declarar uma variável de Incremento i
4- Declarar uma variável s de controle
5- Criar um laço de controle para ler os valores do vetor A e B
6- fechar o laço
7- Criar outro laço de controle
8- dentro do laço criar um desvio condicionado se e senão
9- caso o valor de i ser menor que 16
10- associar o valor i do vetor A para o vetor C
11- caso não
12- s vai ser igual i subtraído de 15
13- o valor i do vetor C vai ser igual ao B s
14- escrever os valores associados para a matriz C
programa juncao_vetor
var
A : conjunto [1..15] de inteiro
B : conjunto [1..15] de inteiro
C : conjunto [1..30] de inteiro
i, s : inteiro

início
para i de 1 até 15 passo i++ faça
escreva ("digite o valor " + i + " para o vetor A: ")
leia(A[i])
limpa()
escreva ("digite o valor " + i + " para o vetor B: ")
leia(B[i])
limpa()
fim_para
escreva(" os valores para o vetor C são: ")
para i de 1 até 30 passo i++ faça
se ( i < 16 ) então
C[i] <- A[i]
senão
s <- i - 15
C[i] <- B[s]
fim_se
escreva("\n" + C[i])
fim_para
fim

g) Elaborar um programa que leia duas matrizes do tipo vetor para o armazenamento de nomes de pessoas,
sendo a matriz A com 20 elementos e a matriz B com 30 elementos. Construir uma matriz C, sendo esta a
junção das matrizes A e B. Desta forma, a matriz C deve ter a capacidade de armazenar 50 elementos.
Apresentar os elementos da matriz C.

entendimento:
1- Declarar um vetor A do tipo carácter, que leia 20 elementos
2- Declarar um vetor B do tipo carácter, que leia 30 elementos
3- Declarar uma vetor C do tipo carácter com 50 elementos
3.1 Declarar duas variáveis de Incremento s e i
4- Criar um laço de controle para ler os valores do vetor A
4.1- associar os valores para C
5- fechar o laço
6- Criar um laço para ler os valores do vetor do B
6.1 definir o valor s = 20 + i
7. associar os valores de b[i] para C[s]
8. fechar o laço
9. criar outro laço para apresentar os valores de C

programa Nomes
var
A : conjunto[1..20] de carácter
B : conjunto [1..30] de carácter
C : conjunto [1..50] de carácter
i, s : inteiro
início
escreva("Digite os valores para o vetor A")
para i de 1 até 20 passo i++ faça
escreva(" digite o nome " + i + " : ")
leia(A[i])
limpa()
C[i] <- A[i]
fim_para
escreva("Digite os valores para o vetor B")
para i de 1 até 30 passo i++ faça
s <- 20 + i
escreva(" digite o nome " + i + " : ")
leia(B[i])
limpa()
C[s] <- B[i]
fim_para
escreva("Os valores para o vetor C são: ")
para i de 1 até 50 passo i++ faça
escreva("\n" + C[i])
fim_para
fim

h) Elaborar um programa que leia 20 elementos do tipo real em uma matriz A unidimensional e construir
uma matriz 8 de mesma dimensão com os mesmos elementos armazenados na matriz A, porém de forma
invertida. Ou seja, o primeiro elemento da matriz A passa a ser o último da matriz B, o segundo elemento da
matriz A passa a ser o penúltimo da matriz B e assim por diante. Apresentar os elementos das matrizes A e B.
Entendimento:
1- Elaborar uma matriz A com 20 elementos e ler os valores para ela
2-Elaborar uma matriz B com a mesma dimensão da A
3- Declarar uma variável inteira de incremento (i)
4- Declarar uma variável inteira de incremento (j)
5- criar um laço de controle
6- Dentro laço ler os valores da matriz A
7- declarar j = 20 - ( i - 1)
8- associar o valor j a matriz B
9- criar outro laço de controle e apresentar os valores da matriz A e B

programa lermatrix
var
A : conjunto [1..20] de inteiro
B : conjunto [1..20] de inteiro
i, s : inteiro
início
escreva("Digite os valores para o vetor A")
para i de 1 até 20 passo i++ faça
escreva("Digite o valor " + i + " para o vetor A: ")
leia(A[i])
limpa()
s <- 20 - ( i - 1)
B[s] <- A [i]
fim_para
escreva("os valores da matriz A são: ")
para i de 1 até 20 passo i++ faça
escreva ("\n" + A[i] )
fim_para
escreva("os valores da matriz B são: ")
para i de 1 até 20 passo i++ faça
escreva ("\n" + B[i] )
fim_para
fim

i) Escrever um programa que leia três matrizes (A, B e C) de uma dimensão do tipo vetor com cinco
elementos cada, que sejam do tipo real. Construir uma matriz D, sendo esta o resultado da junção das três
matrizes (A, B e C). Desta forma, a matriz D deve ter o triplo de elementos das matrizes A, B e C, ou seja, 15
elementos. Apresentar os elementos da matriz D.

entendimento:
1- declarar um vetor A com 5 elementos
2- declarar outros vetores B, C
3- declarar um vetor com 15 elementos
4- criar duas variáveis de incremento i, j
4- criar um laço de controle
5- ler os valores da matriz A
6- ler os valores da matriz B
7- ler os valores da matriz C
8- criar outro laço de controle
9- criar um desvio padrão condicional
10- estabelecer a condição i > 5
11- estabelecer senão
12- criar outro laço desvio

programa matizz
var
A : conjunto [1..5] de real
B : conjunto [1..5] de real
C : conjunto [1..5] de real
D : conjunto [1..15] de real
i, s : inteiro
início
escreva ("digite os valores para os vetores A,B e C")
para i de 1 até 5 passo i++ faça
escreva ("\n digite o valor " + i + " para o vetor A: ")
leia(A[i])
limpa()
escreva ("\n digite o valor " + i + " para o vetor B: ")
leia(B[i])
limpa()
escreva ("\n digite o valor " + i + " para o vetor C: ")
leia(C[i])
limpa()
fim_para
para i de 1 até 15 passo i++ faça
se ( i <= 5 ) então
D[i] <- A[i]
senão
se ( i <= 10) então
s <- i - 5
D[i] <- B[s]
senão
s <- i - 10
D[i] <- C[i]
fim_se
fim_se
fim_para
escreva ("os elementos do vetor D são: ")
para i de 1 até 15 passo i++ faça
escreva("\n" + D[i] )
fim_para
fim

Você também pode gostar