Você está na página 1de 18

1

Disciplina: TCC-00.157 Prog. de Computadores III


Professor: Leandro Augusto Frata Fernandes

Turma: A-1 Data: ___/___/______

Lista de Exerccios 1
Algoritmos, Pseudocdigo e Fluxograma

1. Escreva um algoritmo (pseudocdigo) que coloque os nmeros de 1 a 100 na tela na


ordem inversa (comeando em 100 e terminando em 1).
variveis
inteiro: Numero

1
2
3

incio
para Numero 100 at 1 passo -1 repetir
Mostrar Numero
fim para
fim

2. Faca um algoritmo (pseudocdigo) que apresente na tela a tabela de converso de


graus Celsius para Fahrenheit, de -100 C a 100 C. Use um incremento de 10 C.
Observao: Fahrenheit = (9 / 5) Celsius + 32.
variveis
real: C, F

1
2
3
4

incio
para C -100 at 100 passo 10 repetir
F (9.0 / 5.0) * C + 32.0
Mostrar C, Celsius -> , F, Fahrenheit
fim para
fim

3. Faa um algoritmo (pseudocdigo) para listar todos os mltiplos positivos do nmero 7


menores ou iguais a 100.
Soluo 1
variveis
inteiro: N

1
2
3

incio
para N 7 at 100 passo 7 repetir
Mostrar N
fim para
fim

Soluo 2
variveis
inteiro: N

1
2
3
4
5

incio
para N 1 at 100 repetir
se Mod( N, 7 ) = 0 ento
Mostrar N
fim se
fim para
fim

4. Sendo h = 1 + 1/2 + 1/3 + 1/4 + ... + 1/N, construa um algoritmo (pseudocdigo) para
calcular o nmero h, sendo o nmero inteiro N fornecido pelo usurio. Seu algoritmo
deve garantir que apenas um valor maior do que zero seja aceito como entrada.
variveis
real: h
inteiro: N, Atual

1
2
3
4
5
6
7
8

incio
repetir
Ler N
enquanto N <= 0
h 1.0
para Atual 2 at N repetir
h h + 1.0 / Atual
fim para
Mostrar h
fim

5. Elabore um algoritmo (pseudocdigo) que calcule N! (fatorial de N), sendo que o valor
de N fornecido pelo usurio. Lembre que N sempre um valor inteiro e no negativo.
Logo, seu algoritmo deve evitar que valores negativos sejam aceitos como entrada.
Lembre tambm que N! = 1 2 3 ... (N-1) N, e que 0! = 1 por definio.
variveis
inteiro: Fatorial, N, Atual

1
2
3
4
5
6
7
8

incio
repetir
Ler N
enquanto N < 0
Fatorial 1
para Atual 2 at N repetir
Fatorial Fatorial * Atual
fim para
Mostrar Fatorial
fim

6. Faa um algoritmo (pseudocdigo e fluxograma) que, a partir de um valor informado


em centavos, indique a menor quantidade de moedas que representa esse valor.
Considere moedas de 1, 5, 10, 25 e 50 centavos, e 1 real.
Exemplo: para o valor 290 centavos, a menor quantidade de moedas 2 moedas de 1
real, 1 moeda de 50 centavos, 1 moeda de 25 centavos, 1 moeda de 10 centavos e 1
moeda de 5 centavos.
variveis
inteiro: Valor, NMoedas

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

incio
repetir
Ler Valor
enquanto Valor < 0
se Valor <> 0 ento

Observao
Lembrequeemprogramasdecomputadora
divisoenvolvendodoisnmero
inteirosretornaaparteinteiradoresultadodadiviso.
Issotambmvaleparaalgoritmos.

NMoedas Valor / 100


se NMoedas > 0 ento
Mostrar NMoedas, moeda(s) de 1 Real
Valor Valor (NMoedas * 100)
fim se
NMoedas Valor / 50
se NMoedas > 0 ento
Mostrar NMoedas, moeda(s) de 50 centavos
Valor Valor (NMoedas * 50)
fim se
NMoedas Valor / 25
se NMoedas > 0 ento
Mostrar NMoedas, moeda(s) de 25 centavos
Valor Valor (NMoedas * 25)
fim se
NMoedas Valor / 10
se NMoedas > 0 ento
Mostrar NMoedas, moeda(s) de 10 centavos
Valor Valor (NMoedas * 10)
fim se

28
29

NMoedas Valor / 5
se NMoedas > 0 ento
Mostrar NMoedas, moeda(s) de 5 centavos
Valor Valor (NMoedas * 5)
fim se

30
31
32

se Valor > 0 ento


Mostrar Valor, moeda(s) de 1 centavo
fim se

25
26
27

33
34
35

se no
Mostrar Nenhuma moeda necessria
fim se
fim
Incio
Falso

Valor<0

Valor

Valor<>0

Falso

Verdadeiro
Verdadeiro

NMoedasValor/100

Falso

Nenhumamoeda
necessria

NMoedas>0
Verdadeiro

Fim

NMoedas,moeda(s)
de1Real
2
ValorValor(NMoedas*100)

NMoedasValor/50

NMoedas>0

Falso

Verdadeiro
NMoedas,moeda(s)
de50centavos

ValorValor(NMoedas*50)

NMoedasValor/25

Falso

NMoedas>0
Verdadeiro
NMoedas,moeda(s)
de25centavos

ValorValor(NMoedas*25)

NMoedasValor/10

Falso

NMoedas> 0
Verdadeiro
NMoedas,moeda(s)
de10centavos

ValorValor(NMoedas*10)

NMoedasValor/5

NMoedas>0

Falso

Verdadeiro
NMoedas,moeda(s)
de5centavos

ValorValor(NMoedas*5)

Valor>0

Valor,moeda(s)
de1centavos

7. Joo tem 1,50 metros e cresce 2 centmetros por ano, enquanto Maria tem 1,10 metros
e cresce tem 3 centmetros por ano. Construa um algoritmo (pseudocdigo e
fluxograma) que calcule e imprima quantos anos sero necessrios para que Maria
seja maior que Joo.
Observao: a soluo abaixo no utiliza manipulao algbrica, que, na prtica,
mais simples, porm no treina o uso de estruturas de repetio.
variveis
inteiro: N
real: Joao, Maria

1
2
3
4
5
6
7
8
9

incio
N 0
Joao 150
Maria 110
enquanto Maria <= Joao repetir
N N + 1
Joao Joao + 2
Maria Maria + 3
fim enquanto
Mostrar So necessrios , N, anos.
fim
Incio

N0

Joao150

Maria110

Maria<=Joao

Falso

Verdadeiro
NN+1

JoaoJoao+2

MariaMaria+3

Sonecessrios,
N,anos.

Fim

8. Faa um algoritmo (pseudocdigo e fluxograma) que pergunte ao usurio quantos


nmeros deseja somar. Em seguida, leia a quantidade informada de nmeros e
apresentar o valor da soma, quantos nmeros so maiores que 7 e quantos nmeros
so maiores que 9.
variveis
real: Atual, Soma
inteiro: i, Qtd, QtdMaior7, QtdMaior9

1
2
3

incio
Soma 0
QtdMaior7 0
QtdMaior9 0

Ler Qtd

5
6
7

i 1
enquanto i <= Qtd repetir
Ler Atual

Soma Soma + Atual

se Atual > 7 ento


QtdMaior7 QtdMaior7 + 1
se Atual > 9 ento
QtdMaior9 QtdMaior9 + 1
fim se
fim se

10
11
12
13
14
15
16
17
18
19

i i + 1
fim enquanto
Mostrar A soma , Soma
Mostrar QtdMaior7, nmeros so maiores que 7
Mostrar QtdMaior9, nmeros so maiores que 9
fim

10

Incio

Soma0

QtdMaior70

QtdMaior90

i1

Qtd

ii+1

i<=Qtd

Falso

Verdadeiro
Atual
Asoma,Soma
SomaSoma+Atual
QtdMaior7,nmeros
somaioresque7
Falso

Atual>7
Verdadeiro

QtdMaior9,nmeros
somaioresque9

QtdMaior7QtdMaior7+1
Fim
Falso

Atual>9
Verdadeiro

QtdMaior9QtdMaior9+1

11

9. Faa um algoritmo (pseudocdigo e fluxograma) que l o nome de um produto, o preo


e a quantidade comprada. Escreva o nome do produto comprado e o valor total a ser
pago, considerando que so oferecidos descontos pelo nmero de unidades
compradas, segundo a tabela abaixo:
a) At 10 unidades: valor total
b) De 11 a 20 unidades: 10% de desconto
c) De 21 a 50 unidades: 20% de desconto
d) Acima de 50 unidades: 25% de desconto
variveis
caractere: Nome
real: Preco, Desc, Total
inteiro: Qtd

1
2
3
4

incio
Ler Nome
Ler Preco
Ler Qtd

13
14
15
16

se Qtd <= 10 ento


Desc 0.0
se no
se Qtd <= 20 ento
Desc Preco * 0.10
se no
se Qtd <= 50 ento
Desc Preco * 0.20
se no
Desc Preco * 0.25
fim se
fim se
fim se

17

Total Qtd * (Preco Desc)

5
6
7
8
9
10
11
12

18

Mostrar Nome, : , Total


fim

12

Incio

Nome

Preco

Qtd

Verdadeiro
Desc0.0

Qtd<=10
Falso
Verdadeiro

DescPreco*0.10

Qtd<=20
Falso
Verdadeiro
Qtd<=50

DescPreco*0.20

Falso
DescPreco*0.25

TotalQtd*(PrecoDesc)

Nome,:,Total

Fim

13

10. Construa um algoritmo (pseudocdigo e fluxograma) para determinar e mostrar o


nmero de dgitos de um nmero inteiro informado.
Soluo 1
variveis
inteiro: Num, Qtd

1
2
3
4
5
6
7

incio
Ler Num
Qtd 1
enquanto Abs( Num ) >= 10 repetir
Num Num / 10
Qtd Qtd + 1
fim enquanto
Mostrar Qtd, dgito(s)
fim
Incio

Num

Qtd1

Abs(Num)>=10

Falso

Verdadeiro
NumNum/10

QtdQtd+1
Qtd,dgito(s)

Fim

14

Soluo 2
variveis
inteiro: Num, Qtd

1
2
3
4
5
6
7

incio
Ler Num
se Num <> 0 ento
Qtd Floor( Log10( Abs( Num ) ) ) + 1
se no
Qtd 1
fim se
Mostrar Qtd, dgito(s)
fim

Incio

Num

Num<>0

Falso

Qtd1

Verdadeiro
QtdFloor(Log10(Abs(Num)))+1

Qtd,dgito(s)

Fim

15

11. Considere os algoritmos abaixo. Eles lem um cdigo repetidamente e imprimem o


cdigo lido at que o cdigo lido seja igual a -1. O cdigo -1 no deve ser impresso.
Responda:
a) Qual das duas solues a correta?
A primeira soluo.
b) Como a soluo incorreta poderia ser corrigida?
Testando o cdigo lido com uma estrutura SE ... ENTO ... FIM SE e executando
o comando Mostrar cdigo apenas se codigo <> -1.
Pseudocdigo A
variveis
inteiro: codigo
incio
Ler codigo
enquanto codigo <> -1 repetir
Mostrar codigo
Ler codigo
fim enquanto
fim
Pseudocdigo B
variveis
inteiro: codigo
lgico: repete
incio
repete Verdadeiro
enquanto repete repetir
Ler codigo
Mostrar codigo
repete codigo <> -1
fim enquanto
fim

16

12. Faa um algoritmo (pseudocdigo e fluxograma) que calcula a srie de Fibonacci para
um nmero informado pelo usurio. A srie de Fibonacci inicia com os nmeros 1 e 1,
e cada nmero posterior equivale soma dos dois nmeros anteriores.
Exemplo: caso o nmero 9 seja informado, o resultado ser 1, 1, 2, 3, 5, 8, 13, 21, 34.

variveis
inteiro: i, N, Atual, Proximo, NovaSoma

1
2
3
4
5
6
7
8
9
10
11
12
13

incio
repetir
Ler N
enquanto N < 2
Mostrar 1
Mostrar 1
Atual 1
Proximo 2
para i 3 at N repetir
Mostrar Proximo
NovaSoma Atual + Proximo
Atual Proximo
Proximo NovaSoma
fim para
fim

17

Incio
Falso

N<2

Verdadeiro

Fim

Atual1

Proximo2

Falso

i3

i<=N
Verdadeiro
Proximo

NovaSomaAtual+Proximo

AtualProximo

ProximoNovaSoma

ii+1

18

13. Determine a sada do seguinte algoritmo:


variveis
inteiro: a, b, c
incio
para a 2 at 8 passo 2 repetir
para b a at 2 repetir
para c 1 at a passo b repetir
Mostrar a, b, c
fim para
fim para
fim para
fim

A sada 2 2 1. Note que o comando Mostrar a, b, c s executado uma vez.