You are on page 1of 18

1

Disciplina: TCC-00.157 Prog. de Computadores III


Professor: Leandro Augusto Frata Fernandes

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

Exerccios de Fixao
Pseudocdigo e Estruturas Bsicas de Controle

1. Construa um algoritmo (pseudocdigo e fluxograma) que:


a. Leia o nome de trs pessoas (dado do tipo caractere).
b. Escreva os nomes na ordem inversa da que foram informados.
variveis
caractere: Nome1, Nome2, Nome3

Incio

incio
Ler Nome1

Nome1

Ler Nome2
Ler Nome3

Nome2

Mostrar Nome3
Mostrar Nome2

Nome3

Mostrar Nome1
fim
Nome3

Nome2

Nome1

Fim

2. Os funcionrios da empresa Dois Irmos recebero um reajuste de salrio. Construa


um algoritmo (pseudocdigo e fluxograma) que:
a. Leia o nome de um funcionrio (dado do tipo caractere).
b. Leia o valor atual de seu salrio (dado do tipo real).
c. Leia o percentual de reajuste (assuma que as entradas sero valores reais
entre 0 e 100).
d. Calcule o novo salrio.
e. Exiba o nome do funcionrio e o novo valor do salrio.
variveis
caractere: Nome
real: SalarioAtual, Reajuste, NovoSalario
incio
Ler Nome
Ler SalarioAtual
Ler Reajuste
NovoSalario SalarioAtual + (SalarioAtual / 100) * Reajuste
Mostrar Nome
Mostrar NovoSalario
fim

Incio

Nome

SalarioAtual

Reajuste

NovoSalarioSalarioAtual+(SalarioAtual/100)*Reajuste

Nome

NovoSalario

Fim

3. Construa um algoritmo (pseudocdigo e fluxograma) que:


a. Leia um nmero inteiro.
b. Informe se o nmero lido negativo ou positivo. Considere o valor zero como
sendo positivo.
Teste o algoritmo utilizando o Mtodo Chins com as entradas 5, -3 e 0. Mantenha
anotado o valor de cada varivel durante os passos da execuo.
variveis
inteiro: Numero
incio
1

Ler Numero

se Numero >= 0 ento


Mostrar O nmero informado positivo

3
4

se no
Mostrar O nmero informado negativo

5
6

fim se
fim

Incio
Verdadeiro
Numero

Numero>=0

Onmeroinformado
positivo

Falso
Onmeroinformado
negativo

Fim

O teste de mesa neste caso trivial. A nica varivel (Numero) assume o valor lido e o
mantm at o fim da execuo. O importante acompanhar o desenvolver do algoritmo
para observar que com as entradas 5 e 0 as linhas 1, 2, 3 e 6 so executadas, enquanto
que com a entrada -3 as linhas 1, 2, 4, 5 e 6 so executadas.

4. Incremente o algoritmo (pseudocdigo e fluxograma) do exerccio anterior modificando


a sada. Neste caso, informe se o nmero lido positivo, negativo ou igual a zero.
Teste o algoritmo utilizando o Mtodo Chins com as entradas -16, 0 e 4. Mantenha
anotado o valor de cada varivel durante os passos da execuo.
variveis
inteiro: Numero
incio
1

Ler Numero

se Numero > 0 ento


Mostrar O nmero informado positivo

3
4

se no
se Numero < 0 ento

Mostrar O nmero informado negativo

6
7

se no
Mostrar O nmero informado igual a zero

8
9
10

fim se
fim se
fim

Incio
Verdadeiro
Numero

Numero>0

Onmeroinformado
positivo

Falso
Numero<0

Verdadeiro

Onmeroinformado
negativo

Falso
Onmeroinformado
igualazero

Fim

O teste de mesa neste caso trivial. A nica varivel (Numero) assume o valor lido e o
mantm at o fim da execuo. O importante acompanhar o desenvolver do algoritmo
para observar que com a entrada -16 as linhas 1, 2, 4, 5, 6, 9 e 10 so executadas. Com a
entrada 0 as linhas 1, 2, 4, 5, 7, 8, 9 e 10 so executadas. Finalmente, com a entrada 4 as
linhas 1, 2, 3 e 10 so executadas.

5. Construa um algoritmo (pseudocdigo e fluxograma) que determine e mostre o maior


nmero entre vrios fornecidos pelo usurio. A condio de parada a entrada de um
valor 0 (zero), ou seja, o algoritmo deve ficar escolhendo o maior at que a entrada
seja igual a 0 (zero). Utilize a estrutura ENQUANTO ... REPETIR ... no algoritmo.
Assuma que valores negativos nunca sero informados pelo usurio.
variveis
inteiro: NumAtual, MaiorNum
incio
1

MaiorNum 0

NumAtual -1

enquanto NumAtual <> 0 repetir

Ler NumAtual

se NumAtual > MaiorNum ento


MaiorNum NumAtual

6
7

fim se

fim enquanto

Mostrar MaiorNum
fim

A varivel MaiorNum precisa ser


inicializada com um valor menor que
qualquer valor que possa ser informado
pelo usurio. Neste caso, foi inicializada
com0(zero)naLinha1dopseudocdigo.

A varivel NumAtual precisa ser


inicializada com qualquer valor diferente
de0(zero),paraquehajaapossibilidade
deentrardolaoENQUANTO...REPETIR...
Nestecasofoiescolhido1(vejaaLinha2
do pseoudocdigo). Note que o primeiro
valor atribudo a NumAtual no afeta a
escolha do maior nmero dentre os
informados pelo usurio, pois o valor de
inicializao sobrescrito por um valor
informado pelo usurio na Linha4 do
pseoudocdigo, antes de ser feita a
comparao com o maior nmero
armazenadoatomomento(Linha5).

Outrassolues(algoritmos)equivalentes
podemserconstrudas.Testesuasoluo
fazendootestedemesa.

Fim

Incio

MaiorNum0

NumAtual1

NumAtual<>0

Verdadeiro

NumAtual

Falso

NumAtual>MaiorNum

Verdadeiro
MaiorNumNumAtual

Falso

MaiorNum

6. Construa um algoritmo (pseudocdigo) que leia 500 valores inteiros e positivos e:


a. Encontre e mostre o maior valor.
b. Encontre e mostre o menor valor.
c. Calcule e mostre a mdia dos nmeros lidos.
Utilize a estrutura ENQUANTO ... REPETIR ... no algoritmo.
variveis
inteiro: Cont, NumAtual, MaiorNum, MenorNum, Soma, Media

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

incio
MaiorNum -
MenorNum +
Soma 0
Cont 0
enquanto Cont < 500 repetir
Ler NumAtual
se NumAtual > MaiorNum ento
MaiorNum NumAtual
fim se
se NumAtual < MenorNum ento
MenorNum NumAtual
fim se

14
15

Soma Soma + NumAtual


Cont Cont + 1
fim enquanto

16

Media Soma / Cont

13

17
18
19

Mostrar MaiorNum
Mostrar MenorNum
Mostrar Media
fim

Assim como no exerccio anterior, a


varivel MaiorNum precisa ser
inicializada com um valor menor que
qualquer valor que possa ser informado
pelo usurio, para que este valor inicial
possa ser vencido por qualquer outro
nmero informado pelo usurio. A
varivelMenorNum,porsuavez,precisa
receber um valor maior que qualquer
valor que possa ser informado pelo
usurio, para que o valor inicial tambm
possaservencido.

Nasoluoapresentadaopteiporusar
e + para inicializar MaiorNum e
MenorNum, respectivamente (veja as
Linhas1e2dopseudocdigo).

Outrassolues(algoritmos)equivalentes
podemserconstrudas.Testesuasoluo
fazendootestedemesa.

7. Reescreva o algoritmo desenvolvido no Exerccio 5 utilizando a estrutura de repetio


REPETIR ... ENQUANTO ... no lugar de ENQUANTO ... REPETIR ...
variveis
inteiro: NumAtual, MaiorNum
incio
1

MaiorNum 0

repetir

Ler NumAtual

se NumAtual > MaiorNum ento


MaiorNum NumAtual

5
6

fim se

enquanto NumAtual <> 0

Mostrar MaiorNum
fim

Incio

MaiorNum0

Falso

NumAtual>MaiorNum

NumAtual

Verdadeiro
MaiorNumNumAtual

Verdadeiro

Falso
NumAtual<>0

MaiorNum

Fim

8. Utilizando

estrutura

PARA...

AT...

REPETIR...,

construa

(pseudocdigo) que exiba os nmeros mpares entre 100 e 200.


Dica: a funo mod(X,Y) retorna o resto da diviso de X por Y.
Soluo utilizando passo diferente de 1 (um)
variveis
inteiro: NumAtual
incio
1

para NumAtual 101 at 199 passo 2 repetir


Mostrar NumAtual

2
3

fim para
fim

Soluo utilizando passo igual a 1 (um)


variveis
inteiro: NumAtual
incio
1

para NumAtual 100 at 200 repetir


se mod( NumAtual, 2 ) <> 0 ento

Mostrar NumAtual

3
4

fim se

fim para
fim

um

algoritmo

10

9. Construa um algoritmo (pseudocdigo) que calcule a mdia de N nmeros reais


informados pelo usurio, onde o valor de N tambm informado no incio da execuo.
Utilize a estrutura PARA... AT... REPETIR... Antes do trmino da execuo do
algoritmo, mostre a mdia calculada.
variveis
inteiro: i, N
real: NumAtual, Soma, Media
incio
1

repetir

Ler N

enquanto N <= 0

Soma 0

para i 1 at N repetir

Ler NumAtual

Soma Soma + NumAtual

fim para

se N > 0 ento
Media Soma / N

10
11

se no
Media 0

12
13

fim se

14

Mostrar Media
fim

Neste exerccio importante notar que


no sabemos a priori a quantidade de
valores que sero informados pelo
usurio. Saberemos esta quantidade (N)
apenas em tempo de execuo do
algoritmo. Por conta deste detalhe, as
Linhas1 a3 do pseudocdigo garantem
queaquantidadedenmerosinformados
pelousuriosersempremaiorouiguala
0(zero).Afinal,informarumaquantidade
negativadenmeronofazsentido.

Tambm, precisamos ser mais cuidados


aocalcularamdia.Precisamostestarna
seaquantidadedevaloresdiferentede
0(zero),afimdeevitardivisesporzero.
IssofeitonaLinha9dopseudocdigo.

11

10. Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um
algoritmo (pseudocdigo e fluxograma) que calcule seu peso ideal, utilizando as
seguintes frmulas:
Para homens: (72,7 * altura) 58
Para mulheres: (62,1 * altura) 44,7
Ao perguntar o sexo, o algoritmo dever garantir que as nicas entradas aceitas sejam
M para homens e F para mulheres. Ou seja, caso um valor diferente de M ou F
seja informado, o programa dever requisitar ao usurio que informe o sexo
novamente at a entrada ser vlida. Dica: utilize a estrutura de repetio mais
adequada dentre as trs vistas em aula.
variveis
caractere: Sexo
real: Altura, Peso

incio
Ler Altura

2
3
4

repetir
Ler Sexo
enquanto Sexo <> M e Sexo <> F

se Sexo = M ento
Peso (72.7 * Altura) 58
se no
Peso (62.1 * Altura) 44.7
fim se

6
7
8
9
10

Mostrar Peso
fim

12

Incio

Altura

Verdadeiro

Sexo

Sexo<>M
e
Sexo<>F
Falso

Sexo=M

Verdadeiro

Peso(72.7*Altura)58

Falso

Peso(62.1*Altura)44.7

Peso

Fim

13

11. Dado o pseudocdigo a seguir, responda:


variveis
lgico: A, B, C
incio
Ler A
Ler B
Ler C
se A ento
Mostrar Sada 1
se no
se B ento
se C ento
Mostrar Sada 2
se no
Mostrar Sada 3
Mostrar Sada 4
fim se
fim se
Mostrar Sada 5
fim se
Mostrar Sada 6
fim
a. Se A = Verdadeiro, B = Verdadeiro, C = Falso, quais comandos Mostrar sero
executadas?
Mostrar Sada 1
Mostrar Sada 6
b. Se A = Falso, B = Verdadeiro, C = Falso, quais comandos Mostrar sero
executados?
Mostrar Sada 3
Mostrar Sada 4
Mostrar Sada 5
Mostrar Sada 6
c. Se A = Falso, B = Verdadeiro, C = Verdadeiro, quais comandos Mostrar sero
executados?
Mostrar Sada 2
Mostrar Sada 5
Mostrar Sada 6

14

d. Quais so os valores de A, B e C para que somente os comandos Mostrar


Sada 5 e Mostrar Sada 6 sejam executados?
A = Falso, B = Falso e C tanto faz, pois ele no chega a ser testado quando
o valor armazenado por B igual a Falso.
e. Quais so os valores de A, B e C para que somente o comando Mostrar
Sada 2 seja executado?
Para que o comando Mostrar Sada 2 seja executado preciso A = Falso,
B = Verdadeiro e C = Verdadeiro. Entretanto, ele nunca ser executado
sozinho, pois nesse caso os comandos Mostrar Sada 5 e Mostrar
Sada 6 tambm sero executados. Logo, no existe uma configurao de
valores para A, B e C que faa o comando Mostrar Sada 2 ser o nico a
ser executado.

12. Escreva um algoritmo (pseudocdigo) que leia trs valores inteiros e mostre-os em
ordem decrescente. Dica: utilize estruturas de deciso encadeadas.
variveis
inteiro: V1, V2, V3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

incio
Ler V1
Ler V2
Ler V3
se V1 > V2 ento
se V1 > V3 ento
se V2 > V3 ento
Mostrar V1
Mostrar V2
Mostrar V3
se no
Mostrar V1
Mostrar V3
Mostrar V2
fim se
se no
Mostrar V3
Mostrar V1

15

18

Mostrar V2

19
20
21

fim se
se no
se V2 > V3 ento

22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

se V1 > V3 ento
Mostrar V2
Mostrar V1
Mostrar V3
se no
Mostrar V2
Mostrar V3
Mostrar V1
fim se
se no
Mostrar V3
Mostrar V2
Mostrar V1
fim se
fim se
fim

16

13. Construa um algoritmo (pseudocdigo) que escreva uma contagem de 10 (dez)


minutos, ou seja, mostre 0:00, e ento 0:01, 0:02, ..., 0:58, 0:59, 1:00, 1:01, 1:02, ...,
at 10:00. Dica: utilize a estrutura de repetio mais adequada dentre as trs vistas em
aula.
variveis
inteiro: Min, Seg

1
2
3
4
5
6

incio
para Min 0 at 9 repetir
para Seg 0 at 59 repetir
Mostrar Min, :, Seg
fim para
fim para
Mostrar 10:00
fim

14. Construa trs algoritmos (pseudocdigos) que imprimam a tabuada do 5 (cinco). Em


cada um deles utilize uma das estruturas de repetio vistas em aula. Dica: verifique
se o resultado est correto fazendo um teste de mesa para cada uma das solues
apresentadas.
Soluo com ENQUANTO ... REPETIR ...

variveis
inteiro: Num, Resultado

1
2
3
4
5
6

incio
Num 0
enquanto Num <= 10 repetir
Resultado 5 * Num
Mostrar 5 * , Num, = , Resultado
Num Num + 1
fim enquanto
fim

17

Soluo com REPETIR ... ENQUANTO ...

variveis
inteiro: Num, Resultado

1
2
3
4
5
6

incio
Num 0
repetir
Resultado 5 * Num
Mostrar 5 * , Num, = , Resultado
Num Num + 1
enquanto Num <= 10
fim

18

Soluo com PARA ... AT ... REPETIR ...

variveis
inteiro: Num, Resultado

1
2
3
4

incio
para Num 0 at 10 repetir
Resultado 5 * Num
Mostrar 5 * , Num, = , Resultado
fim enquanto
fim
Obs.: Outras solues (algoritmos) equivalentes podem ser construdas. O teste de mesa
ajudar voc a verificar se o algoritmo que voc escreveu est correto. Em especial,
ajudar no caso das duas primeiras estruturas de repetio. Com o teste de mesa voc
verifica se 5 multiplicado apenas pelos nmeros inteiros de 0 a 10.

You might also like