Você está na página 1de 8

FICHA DE TRABALHO nº 4

Construção de Algoritmos em Linguagem Informal e Simbólica

1. Considere o algoritmo em pseudocódigo a seguir apresentado.


Variáveis N, Q : Inteiros ;
Início
Escrever (“Introduza um número “) ;
Ler (N) ;
Se N<= 10 Então
QN*N;
Escrever (“O quadrado de “, N, “ é “, Q) ;
FimSe ;
Escrever (“O dobro de “, N, “ é “, N * 2) ;
Fim.
- Represente o algoritmo em fluxograma.
- A partir do pseudocódigo apresentado, indique exemplos de:
i. Uma instrução de input ou entrada;
ii. Uma instrução de atribuição de um valor a uma variável;
iii. Uma instrução de output ou saída;
iv. Uma expressão lógica ou booleana.
- Indique quais seriam as saídas ou output do algoritmo apresentado para
cada um dos seguintes valores introduzidos para N:
i. 10
ii. 100;
iii. -1;
- Altere a estrutura de decisão existente no algoritmo de modo que seja
tido em conta o seguinte:
i. A condição deve exprimir: N entre 0 (inclusive) e 20 (inclusive);
ii. A última instrução de escrita do algoritmo deve passar para
dentro da estrutura de decisão e ser executada no caso de não
se verificar a sua condição de controlo.
2. Considere o seguinte fluxograma:

Início

“Valor ?”

Falso
(V>0) E (V<5)

Verdade

ZV*2 ZV*V

“Z = “, Z

Fim

- Traduza o fluxograma para pseudocódigo.


- Indique o output do algoritmo no caso de o valor introduzido para a
variável V ser:
i. 0;
ii. 1;
iii. 4;
iv. 5;
v. -1;
vi. -5;
- Substitua a condição ou expressão booleana existente no algoritmo por
outra que corresponda a: V menor ou igual a 0 ou V maior ou igual a 5.
- Indique output do algoritmo, depois de modificada a condição conforme
indicado na alínea anterior, para os seguintes valores de V:
i. 0;
ii. 1;
iii. 4;
iv. 5;
v. -1;
vi. -5.
3. Considere o algoritmo a seguir apresentado, correspondente ao problema:
dados três números inteiros (X, Y, Z), determinar qual deles é o maior.
Variáveis X, Y, Z, Maior : Inteiros;
Início
Escrever (“Introduza três números inteiros “) ;
Ler (X, Y, Z) ;
Maior  X ;
Se Y > Maior Então
Maior  Y ;
FimSe ;
Se Z > Maior Então
Maior  Z ;
FimSe ;
Escrever (“Maior = “, Maior) ;
Fim.
- Represente o algoritmo em fluxograma.
- Descreva como funciona o algoritmo para cada conjunto de valores:
i. X = 4; Y = 3; Z = 5;
ii. X = 4; Y = 3; Z = 2;
iii. X = 4; Y = 2; Z = 2;
iv. X = 3; Y = 4; Z = 2;
v. X = 3; Y = 4; Z = 2;
vi. X = 3; Y = 4; Z = 4;
- Elabore um algoritmo semelhante ao anterior, mas para determinar qual
dos três números dados é o menor.

4. Considere o algoritmo a seguir apresentado, correspondente ao problema:


dados três valores numéricos (A, B, C), verificar se eles podem ser as medidas
dos lados de um triângulo e, em caso afirmativo, dizer se o triângulo é
equilátero (se tem os três lados iguais), isósceles se tem dois lados iguais) ou
se é um triângulo escaleno (se os seus lados são todos diferentes).
Variáveis A, B, C : Reais ;
Início
Escrever (“Introduza três valores numéricos “) ;
Ler (A, B, C) ;
Se (A<B+C) E (B<A+C) E (C<A+B) Então
Se (A=B) E (B=C) Então
Escrever (“Triângulo equilátero”) ;
Senão
Se (A=B) OU (A=C) OU (B=C) Então
Escrever (Triângulo isósceles”) ;
Senão
Escrever (“Triângulo escaleno”) ;
FimSe ;
FimSe ;
Senão
Escrever (“Não é triângulo”) ;
FimSe ;
Fim.
- Represente o algoritmo em fluxograma.
- Indique, justificando, quais as saídas do algoritmo para cada conjunto
de valores:
i. A = 2; B = 2; C = 2;
ii. A = 2; B = 3; C = 4;
iii. A = 2; B = 5; C = 2;
iv. A = 2; B = 3; C = 2;
- Supondo que o valor de A é 4 e o de B é 2, indique um valor para a
variável C que faça escrever:
i. “Triângulo escaleno”
ii. “Não é triângulo”

5. Considere o algoritmo que se apresenta a seguir, correspondente ao problema:


dado um nível classificativo – número inteiro de 1 a 5 -, a introduzir pelo
utilizador, converter esse nível para uma informação qualitativa tendo em conta
a seguinte escala: 1 a 2 correspondem a “Reduzido”; 3 corresponde a “Médio”;
4 e 5 correspondem a “Elevado”.
Variáveis N : Inteiro ;
Início
Escrever (“Introduza o nível numérico 1-5”) ;
Ler (N) ;
Seleccionar Caso N
1,2 : Escrever (“Reduzido”) ;
3 : Escrever (“Médio”) ;
4,5 : Escrever (“Elevado”) ;
Senão
Escrever (“Nível inválido”) ;
FimSeleccionar ;
Fim.
- Represente o algoritmo em fluxograma.
- Indique qual o output do algoritmo para os seguintes valores de N:
i. N = 4;
ii. N = 0;
iii. N = 3.5;
- Converta o algoritmo apresentado para um que faça a mesma coisa
mas utilizando estruturas de decisão condicional em vez da estrutura de
selecção múltipla.
- Considere a instrução Ler (N). Reescreva o pseudocódigo do algoritmo
de modo que só se possa passar desta instrução à seguinte, se N
receber:
i. Um valor maior ou igual a 1 e menor ou igual a 5;
ii. Um dos seguintes valores: 1, 2, 3, 4, ou 5.

6. Considere o seguinte algoritmo correspondente ao seguinte problema:


determinar o menor número inteiro positivo cujo quadrado é superior a N – um
número inteiro introduzido pelo utilizador.

Início

“Introduza um número inteiro”

Conta  0

Conta  Conta + 1

Quadrado  Conta * Conta

Falso
Quadrado > N

Verdade

“O número é”, Conta

Fim

- Converta o fluxograma em pseudocódigo.


- Indique como funciona e qual o output do algoritmo para cada um dos
seguintes valores introduzidos para N:
i. 1
ii. 4
iii. 0
iv. 100
- Reescreva a ou as instruções do algoritmo de modo a impedir que o
valor introduzido para N seja um número negativo.
- Escreva um algoritmo semelhante ao anterior, mas que calcule o maior
inteiro positivo cujo quadrado seja inferior ao número introduzido (N),
tendo este último que ser obrigatoriamente maior do que 10.

7. Considere o algoritmo a seguir apresentado, correspondente ao problema:


dada uma série de classificações a introduzir pelo utilizador, contar e
apresentar o número de negativas.
Algoritmo Conta_Negativas ;
Variáveis Quantas, ContaQ, ContaN : Inteiros ;
Classific : Real ;
Início
Escrever (“Quantas classificações?”) ;
Ler (Quantas) ;
ContaQ  0 ;
ContaN  0 ;
Enquanto ContaQ < Quantas
Fazer
Escrever (“Classificação:”) ;
Ler (Classific) ;
Se Classific < 9.5 Então
ContaN  ContaN + 1 ;
FimSe ;
ContaQ  ContaQ + 1 ;
FimFazer ;
Escrever (“Nº de negativas: “, ContaN) ;
Fim.
- Represente o algoritmo em fluxograma.
- Supondo que era introduzido 5 para a variável Quantas, descreva como
funcionaria o algoritmo para os seguintes valores a introduzir para
Classific: 10; 8; 12; 9; 15.
- Reescreva o algoritmo utilizando um ciclo com contador automático em
vez daquele que é aqui apresentado.
- Reformule o algoritmo de forma a que ele também calcule e apresente a
média de todas as classificações introduzidas.
8. Considere o seguinte algoritmo:

Início

“Qual o seu saldo?”

Saldo

Falso
Saldo > 0

Verdade
“Quantia a levantar?”

Quantia

Saldo  Saldo - Quantia

“O seu saldo actual é “, Saldo

Fim

- Indique qual o tipo de estrutura de controlo existente no algoritmo e qual


a expressão que a controla.
- Converta o fluxograma em pseudocódigo.
- Explique o que aconteceria com o algoritmo, para as seguintes entradas
de valores para Saldo e Quantia:
i. Saldo = 100; Quantia = 99;
ii. Saldo = 0; Quantia = 0;
iii. Saldo = 100; Quantia = 100;
- Supondo que era introduzido 100 para Saldo e 50 para Quantia, indique
um segundo valor para a Quantia que:
i. Termine o ciclo;
ii. Continue o ciclo.
- Reformule o algoritmo tendo em conta o seguinte:
i. Parte-se de um saldo de 100 (não introduzido pelo utilizador,
mas incluído directamente no pseudocódigo);
ii. A quantia a levantar é pedida dentro de um ciclo que se repete
até que o valor introduzido (para Quantia) seja inferior a 0 ou
superior a Saldo.
9. Elabore um algoritmo em pseudocódigo que seja capaz de calcular e escrever um
certo número de múltiplos de um número a indicar pelo utilizador. Faça o
fluxograma correspondente.
NOTA: O algoritmo deve começar por pedir o número com base no qual serão
calculados os múltiplos, bem como o número de múltiplos a calcular.
Faça uma versão com a estrutura de repetição “Para … Até ..” e outra com a
estrutura “Enquanto … Fazer ...”.

10. Considere a seguinte situação:


- Temos uma conta bancária com um saldo, por exemplo, de 1000
unidades monetárias;
- Pretendemos efectuar um levantamento numa máquina automática que,
por hipótese, permite que se levante uma quantia até um máximo de
200 unidades monetárias;
- Não deve ser permitido que seja indicada uma quantia inferior a zero
nem superior a 200;
- No final deve ser calculado e apresentado o novo saldo após o
levantamento efectuado.
Elabore um algoritmo em pseudocódigo e respectivo fluxograma que resolva o
problema apresentado.
Sugestão: Utilize uma estrutura de repetição “Repetir … até que …”

11. Elabore um algoritmo que calcule e escreva os divisores de um número inteiro a


indicar pelo utilizador.
Apresente o pseudocódigo e o fluxograma.

12. Elabore um algoritmo que, de uma série de dois ou mais valores (introduzidos pelo
utilizador) calcule qual deles é o maior.
Apresente o pseudocódigo e o fluxograma.

13. Elabore um algoritmo que calcule a média de uma série de números não negativos
a introduzir pelo utilizador. Sugestão: A introdução de números poderá terminar
com a introdução de um número negativo.
Apresente o pseudocódigo e o fluxograma.

Você também pode gostar