You are on page 1of 15

FATEC-SP - ALP

Resoluo dos Exerccios de Aprendizagem n 1


Professor: Jos Paulo Ciscato
Desenvolva os seguintes algoritmos em Portugol e faa os testes de mesa com um ou mais
valores conforme a necessidade.
1. Dados dois nmeros, imprima o maior. (os nmeros lidos podem ser inteiros ou reais, cabe
a voc escolher).
Res.:
PROGRAMA EA1EX1
VARIAVEIS
A, B: INTEIRO
INICIO
ESCREVER 'Entre com os valores de A e B:'
LER A, B
SE A > B ENTAO
ESCREVER 'Maior: ', A
SENAO
SE B > A ENTAO
ESCREVER 'Maior: ', B
FIM.
Teste de Mesa:
1 Execuo:
A

Sada
Entre com os valores de A e B:
Maior: 3

2 Execuo:
4

Entre com os valores de A e B:


Maior: 4

2. Dados dois nmeros, indique se so iguais. Caso sejam diferentes, imprima o maior e o
menor.
Res.:
PROGRAMA EA1EX2
VARIAVEIS
A, B: INTEIRO
INICIO
ESCREVER 'Entre com 2 nmeros'
LER A, B
SE A = B ENTAO
ESCREVER 'Os nmeros so iguais'
SENAO
SE A > B ENTAO
ESCREVER A, B
SENAO
ESCREVER B, A

FIM.
Teste de mesa:
1 Execuo:
A

Sada
Entre com 2 nmeros
Os nmeros so iguais

2 Execuo:
A

Sada
Entre com 2 nmeros
6 5

3 Execuo:
A

Sada
Entre com 2 nmeros
7 1

3. Imprima todos os nmeros inteiros de 1 a 10.


PROGRAMA EA1EX3
VARIAVEIS
X : INTEIRO
INICIO
PARA X <- 1 ATE 10 FACA
ESCREVER X
FIM.
Teste de mesa:
X
Sada
--------------1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10

4. Dado um nmero inteiro N e uma lista de N nmeros inteiros, imprima a soma dos nmeros
da lista.
PROGRAMA EA1EX4
VARIAVEIS
N, X, S, C : INTEIRO
INICIO

ESCREVER 'Entre com a quantidade:'


LER N
S <- 0
PARA C <- 1 ATE N FACA
INICIO
ESCREVER 'Entre com um valor'
LER X
S <- S + X
FIM
ESCREVER 'Total: ', S
FIM.
Teste de mesa:
N
X
S
C
Sada
------------------------Entre com
5
0
5
5
1
Entre com
8
13
2
Entre com
2
15
3
Entre com
7
22
4
Entre com
9
31
5
Entre com
Total: 31

a quantidade:
um
um
um
um
um

valor:
valor:
valor:
valor:
valor:

5. Dados trs nmeros, A0, LIMITE e RAZO, imprima todos os nmeros gerados pela PA
(Progresso Aritmtica) cujos valores so menores que o LIMITE. A PA tem valor inicial A0
e razo RAZO.
PROGRAMA EA1EX5
VARIAVEIS
A0, LIMITE, RAZAO : INTEIRO
INICIO
ESCREVER 'Entre com os valores de A0, LIMITE e RAZO: '
LER A0, LIMITE, RAZAO
ENQUANTO A0 < LIMITE FACA
INICIO
ESCREVER A0
A0 <- A0 + RAZAO
FIM
FIM.
Teste de mesa:
A0 LIMITE
RAZAO
Sada
-----------------------------Entre com os valores de A0, LIMITE
e RAZO:
5
25
5
5
10
10
15
15
20
20
25
25
6. Dado um nmero inteiro N, divida-o por 2 (sucessivamente) enquanto o resultado for maior
que 0. No final, imprima o n de divises necessrias para zerar o quociente.
PROGRAMA EA1EX6
VARIAVEIS

N, C : INTEIRO
INICIO
ESCREVER 'Fornea o valor de N:'
LER N
C <- 0
ENQUANTO N <> 0 FACA
INICIO
N <- N DIV 2
C <- C + 1
FIM
ESCREVER 'Quantidade de divises: ', C
FIM.
Teste de mesa:
N
C
Sada
--------------32 0
Fornea o valor de N:
16 1
82
43
24
15
06
Quantidade de divises: 6
7. Dada uma lista de nmeros reais terminada pelo nmero 99.99, imprima cada nmero lido.
No final, imprima a mdia aritmtica de todos os nmeros da lista ( claro que o n 99.99
no faz parte da mdia).
PROGRAMA EA1EX7
VARIAVEIS
X, SOMA, MEDIA : REAL
CONTADOR : INTEIRO
INICIO
SOMA <- 0.0
CONTADOR <- 0
ESCREVER 'Fornea um valor:'
LER X
ENQUANTO X <> 99.99 FACA
INICIO
SOMA <- SOMA + X
CONTADOR <- CONTADOR + 1
ESCREVER 'Fornea um valor:'
LER X
FIM
MEDIA <- SOMA / CONTADOR
ESCREVER 'Media: ', MEDIA
FIM.
Teste de mesa:
X
SOMA
MEDIA CONTADOR
Sada
---------------------------------------12.0
0.0
0
Fornea
7.5
12.0
1
Fornea
23.3
19.5
2
Fornea
99.99 31.5
3
Fornea

um
um
um
um

valor:
valor:
valor:
valor:

10.5

Media: 10.5

8. Dado um nmero inteiro positivo N, calcule e imprima o maior quadrado menor ou igual a N.
Exemplo: N = 38, o maior quadrado que menor ou igual a 38 36, imprimir 36.
PROGRAMA EA1EX8
VARIAVEIS
MQ, N, R, Q, ANT : INTEIRO
INICIO
ESCREVER 'Fornea o valor de N:'
LER N
R <- 1
Q <- 1
ENQUANTO Q <= N FACA
INICIO
ANT <- Q
Q <- R * R
R <- R + 1
FIM
SE Q = N ENTAO
MQ = Q
SENO
MQ = ANT
ESCREVER 'Maior quadrado menor ou igual a ', N, ': ', MQ
FIM.
Teste de mesa:
N
R
Q
ANT
Sada
------------------------38 1
1
Fornea o valor de N:
2
1
1
3
4
1
4
9
4
5
16
9
6
25
16
7
36
25
8
49
36
Maior quadrado menor ou igual a 38: 36
9. Dada uma seqncia de letras terminadas pelo caracter Z. Imprima a quantidade de
caracteres digitados.
PROGRAMA EA1EX9
VARIAVEIS
LETRA : CARACTER
CONT : INTEIRO
INICIO
CONT <- 0
ESCREVER 'Digite uma letra:'
LER LETRA
ENQUANTO LETRA <> 'Z' FACA
INICIO
CONT <- CONT + 1
ESCREVER 'Digite uma letra:'
LER LETRA

FIM
ESCREVER 'Quantidade:', CONT
FIM.
Teste de mesa:
LETRA CONT
SADA
------------------------a
0
Digite uma letra:
b
1
Digite uma letra:
y
2
Digite uma letra:
t
3
Digite uma letra:
Z
4
Digite uma letra:
Quantidade: 4
10. Dada uma seqncia de letras terminada pelo caracter Z. Imprima a quantidade de vogais
lidas.
PROGRAMA EA1EX10
VARIAVEIS
LETRA : CARACTER
CONT : INTEIRO
INICIO
CONT <- 0
ESCREVER 'Entre com uma letra:'
LER LETRA
ENQUANTO LETRA <> 'Z' FACA
INICIO
SE (LETRA='A') OU (LETRA='E') OU (LETRA='I') OU
(LETRA='O') OU (LETRA='U') OU (LETRA='a') OU
(LETRA='e') OU (LETRA='i') OU (LETRA='o') OU
(LETRA='u') ENTAO
CONT <- CONT + 1
ESCREVER 'Entre com uma letra:'
LER LETRA
FIM
ESCREVER 'Quantidade de vogais:', CONT
FIM.
Teste de mesa:
LETRA CONT
SADA
------------------------C
0
Entre com uma
a
Entre com uma
U
1
Entre com uma
Z
2
Entre com uma
Quantidade de

letra:
letra:
letra:
letra:
vogais: 2

FATEC-SP - ALP
Resoluo dos Exerccios de Aprendizagem n 2
Professor: Jos Paulo Ciscato
Desenvolva os seguintes algoritmos em Portugol e faa os testes de mesa com um ou mais
valores conforme a necessidade.
1. Faa um algoritmo que leia as informaes dos alunos: MATRICULA, NOTA1, NOTA2,
NOTA3, com o fim das informaes indicado por MATRICULA=999. Para cada aluno, deve
ser calculada a mdia de acordo com a seguinte frmula:
Mdia final = (2*NOTA1 + 3*NOTA2 + 4*NOTA3) / 9
Se mdia >= 7.0 => Imprima APROVADO, alm da MATRICULA e Mdia final.
Se mdia < 7.0 => Imprima REPROVADO, alm da MATRICULA e Mdia final.
PROGRAMA EA2EX1
VARIAVEIS
MATRICULA : INTEIRO
NOTA1, NOTA2, NOTA3, MEDIA : REAL
INICIO
ESCREVER Matricula:
LER MATRICULA
{1a leitura }
ENQUANTO MATRICULA <> 999 FACA
INICIO
LER NOTA1
LER NOTA2
LER NOTA3
MEDIA <- (2.0*NOTA1+3.0*NOTA2+4.0*NOTA3)/9.0
SE MEDIA >= 7.0 ENTAO
ESCREVER Aprovado
SENAO
ESCREVER Reprovado
ESCREVER MATRICULA
ESCREVER MEDIA
ESCREVER Matricula:
LER MATRICULA
{prxima leitura }
FIM
FIM.
2. Dados dois nmeros inteiros positivos x e y, fazer a diviso de x por y sem usar o operador
de diviso.
PROGRAMA EA2EX2
VARIAVEIS
X, Y, CONT, SOMA : INTEIRO
INICIO
CONT <- 0
SOMA <- 0
ESCREVER Fornea os valores de X e Y:
LER X, Y
ENQUANTO SOMA < X FACA
INICIO
SOMA <- SOMA + Y
CONT <- CONT + 1
FIM
ESCREVER Quociente:, CONT
FIM.

3. Dada a seqncia abaixo, calcular :


= 21 + 22 + 23 + ...250
50
49
48
1
PROGRAMA EA2EX3
VARIAVEIS
ALFA, NUM, TERMO: REAL
DEN : INTEIRO
INICIO
ALFA <- 0.0
NUM <- 2.0
DEN <- 50
ENQUANTO DEN >= 1 FACA
INICIO
TERMO <- NUM / DEN
ALFA <- ALFA + TERMO
NUM <- NUM * 2.0
DEN <- DEN 1
FIM
ESCREVER Valor de alfa:,ALFA
FIM.
4. Construa um algoritmo para calcular o com a seqncia:
= 4 4 + 4 4 + 4 4 + ... 4
1
3
5
7
9
11
N
Obs.: com N impar e N > 0.
PROGRAMA EA2EX4
VARIAVEIS
N, I, SINAL : INTEIRO
PI, TERMO : REAL
INICIO
ESCREVER Fornea o valor de N (N impar e > 0)
LER N
SE (N <= 0) OU ((N MOD 2)=0) ENTAO
ESCREVER O valor de N deve ser impar e maior que
zero
SENAO
INICIO
I <- 1
PI <- 0.0
SINAL <- 1
ENQUANTO I <= N FACA
INICIO
TERMO <- 4.0 / I * SINAL
PI <- PI + TERMO
I <- I + 2
SINAL <- SINAL * (-1)
FIM
ESCREVER Valor de PI:, PI
FIM
FIM.
5. Dada a seqncia, calcular o cos:
cos = 1 x2 + x4 - x6 + x8 - ... xN
2!
4!
6!
8!
N!
Obs.: com N par, N > 1.

PROGRAMA EA2EX5
VARIAVEIS
X, COS, TERMO, NUM, XP : REAL
N, IFAT, SINAL, DEN, I : INTEIRO
INICIO
COS <- 1.0
I <- 2
SINAL <- -1
XP <- 2.0
LER N
SE (N <= 1) OU ((N MOD 2)<>0) ENTAO
ESCREVER Valor de N deve ser par e > 1
SENAO
INICIO
LER X
ENQUANTO I <= N FACA
INICIO
NUM <- EXP(XP * LN(X))
DEN <- 1
PARA IFAT <- 1 ATE I FACA
DEN <- DEN * IFAT
TERMO <- NUM / DEN
COS <- COS + TERMO * SINAL
I <- I + 2
SINAL <- SINAL * -1
XP <- XP + 2.0
FIM
ESCREVER COS
FIM.
6. Dados dois nmeros inteiros positivos i e j, imprimir em ordem crescente os N (lido) primeiros
mltiplos que podem ser de i ou de j ou de ambos.
PROGRAMA EA2EX6
VARIAVEIS
I, J, AUX, CONT : INTEIRO
INICIO
CONT <- 0
LER N
LER I, J
SE I < J ENTAO
AUX <- I
SENAO
AUX <- J
ENQUANTO CONT < N FACA
INICIO
SE ((AUX MOD I)=0) OU ((AUX MOD J)=0) ENTAO
INICIO
ESCREVER AUX
CONT <- CONT + 1
FIM
AUX <- AUX + 1
FIM
FIM.
7. Dados um nmero inteiro N (N >= 10) verificar se este tem dois algarismos adjacentes
iguais.

PROGRAMA EA2EX7
VARIAVEIS
N, DIG, DIGANT : INTEIRO
ADJ : LOGICO
INCIO
DIG <- 10
ADJ <- FALSO
LER N
SE N < 10 ENTAO
ESCREVER Vlido para nmeros de 10 para cima
SENAO
INCIO
ENQUANTO (N > 0) E NO ADJ FACA
INICIO
DIGANT <- DIG
DIG <- N MOD 10
SE DIG = DIGANT ENTAO
ADJ <- VERDADEIRO
N <- N DIV 10
FIM
SE ADJ ENTAO
ESCREVER Tem dois algarismos adjacentes
iguais
SENAO
ESCREVER No tem dois algarismos adjacentes
iguais
FIM
FIM.
8. Dado um nmero inteiro decimal (base 10), imprimir seu correspondente em binrio (divises
sucessivas).
PROGRAMA EA2EX8
VARIAVEIS
N, D : INTEIRO
INICIO
LER N
ESCREVER
{16 espaos}
ENQUANTO N <> 0 FACA
INICIO
D <- N MOD 2
ESCREVER N, CHR(8), CHR(8) {retrocede o cursor 2 vezes}
N <- N DIV 2
FIM
FIM.
Obs.: CHR(8) significa retrocesso do cursor na tela.

10

FATEC-SP - ALP
Resoluo dos Exerccios de Aprendizagem n 3
Professor: Jos Paulo Ciscato
Desenvolva os seguintes algoritmos em Portugol e faa os testes de mesa com
um ou mais valores conforme a necessidade.
1. Dizemos que um nmero natural triangular se ele produto de trs
nmeros naturais consecutivos.
Ex.: 210 triangular, pois 5 * 6 * 7 = 210
Dado um nmero natural, verifique se o mesmo triangular.
PROGRAMA EA3EX1
VARIAVEIS
N, AUX, PROD : INTEIRO
INICIO
AUX <- 1
PROD <- 1
LER N
ENQUANTO PROD < N FACA
INICIO
PROD <- AUX * (AUX + 1) * (AUX + 2)
AUX <- AUX + 1
FIM
SE PROD = N ENTAO
ESCREVER N, nmero triangular
SENAO
ESCREVER N, no nmero triangular
FIM.
2. Dado um numero natural N, determinar o nmero harmnico H definido por:
N

HN = 1/k
K=1

PROGRAMA EA3EX2
VARIAVEIS
K, N : INTEIRO
H : REAL
INICIO
H <- 0.0
LER N
PARA K <- 1 ATE N FACA
H <- H + 1.0 / K
ESCREVER H
FIM.

11

3. Dado um nmero inteiro N, calcule e imprima os N primeiros da seqncia:


1, 3, 6, 10, 15, ...
PROGRAMA EA3EX3
VARIAVEIS
N, T, D, C : INTEIRO
INICIO
T <- 1
D <- 2
C <- 0
LER N
ENQUANTO C < N FACA
INICIO
ESCREVER T
C <- C + 1
T <- T + D
D <- D + 1
FIM
FIM.
4. Dada uma seqncia de caracteres terminada pelo caracter ponto (.).
Imprima cada caracter lido eliminando os espaos. Obs.: cada dois ou mais
espaos consecutivos dever ser impresso apenas um espao.
PROGRAMA EA3EX4
VARIAVEIS
LETRA, ANT : CARACTER
INICIO
LETRA <-
ENQUANTO LETRA <> . FACA
INICIO
ANT <- LETRA
LER LETRA
SE ((LETRA <> ) OU (ANT <> ))
E (LETRA <> .) ENTAO
ESCREVER LETRA
FIM
FIM.
5. Dada uma srie 1, -1/2, 1/3, -1/4, 1/5, ... imprima os 10 primeiros termos, bem
como a soma dos mesmos.
PROGRAMA EA3EX5
VARIAVEIS
TERMO, SOMA : REAL
C, I, SINAL : INTEIRO
INICIO
SOMA <- 0.0
SINAL <- 1
PARA C <- 1 ATE N FACA

12

INICIO
TERMO <- 1.0 / C * SINAL
SOMA <- SOMA + TERMO
SINAL <- SINAL * -1
FIM
ESCREVER SOMA
FIM.
6. Dada uma seqncia de N nmeros inteiros, determinar o tamanho da maior
subseqncia.
Ex.: N=7, -> 6, 1, 1, 4, 4, 4, 2
Maior subseqncia = 3
PROGRAMA EA3EX6
VARIAVEIS
N, TERMO, ANT, TAM, I, MAIOR : INTEIRO
INICIO
MAIOR <- 0
TAM <- 0
TERMO <- 0
LER N
PARA I <- 1 ATE N FACA
INICIO
ANT <- TERMO
LER TERMO
SE TERMO = ANT ENTAO
TAM <- TAM + 1
SENAO
INICIO
SE TAM > MAIOR ENTAO
MAIOR <- TAMANHO
TAM <- 0
FIM
FIM
ESCREVER MAIOR
FIM.
7. Dados trs nmeros inteiros positivos, verifique se eles formam os lados de
um trngulo retngulo.
hip2 = lado12 + lado22
PROGRAMA EA3EX7
VARIAVEIS
H, L1, L2, Q1, Q2 : REAL
INICIO
LER H
LER L1

13

LER L2
Q1 = H * H
Q2 = L1 * L1 + L2 * L2
SE Q1 = Q2 ENTAO
ESCREVER So lados de um tringulo retngulo
SENAO
ESCREVER No so lados de um tringulo
retngulo
FIM.
8. Dado um nmero inteiro N (N>0), verifique se o mesmo primo.
PROGRAMA EA3EX8
VARIAVEIS
I, N : INTEIRO
PRIMO : LOGICO
INICIO
I <- 2
PRIMO <- VERDADEIRO
LER N
ENQUANTO (I < N) E PRIMO FACA
INICIO
SE (N MOD I) = 0 ENTAO
PRIMO <- FALSO
I <- I + 1
FIM
SE PRIMO ENTAO
ESCREVER O numero primo
FIM.
9. Dado um nmero inteiro N (N>0), determinar se seus dgitos esto em ordem
estritamente crescente.
N=341 => no
N=2457 => sim
N=335 => no
PROGRAMA EA3EX9
VARIAVEIS
N, DIG, ANT : INTEIRO
CRESCENTE : LOGICO
INICIO
CRESCENTE <- VERDADEIRO
DIG <- 10
LER N
ENQUANTO (N <> 0) E CRESCENTE FACA
INICIO
ANT <- DIG
DIG <- N MOD 10
SE DIG >= ANT ENTAO

14

CRESCENTE <- FALSO


N <- N DIV 10
FIM
SE CRESCENTE ENTAO
ESCREVER Os digitos esto em ordem estritamente
crescente
FIM.
10. Dado um nmero inteiro em binrio, o seu correspondente em decimal.
Ex.: 1011 (binrio) -> 11 (decimal)
PROGRAMA EA3EX10
VARIAVEIS
N, D, VB, SOMA, POT2 : INTEIRO
INICIO
SOMA <- 0
POT2 <- 1
LER N
ENQUANTO N <> 0 FACA
INICIO
D <- N MOD 10
VB <- D * POT2
SOMA <- SOMA + VB
POT2 <- POT2 * 2
N <- N DIV 10
FIM
ESCREVER SOMA
FIM.

15