Você está na página 1de 19

21-06-2018

UFCD03 – Algoritmia
Técnico(a) de Multimédia – EFA NS – Pro
FORMADOR: FERNANDO MIGUEL COSTA

O que é um algoritmo??? 2

Algo…difícil???

1
21-06-2018

Definição de algoritmo 3

 Um algoritmo é uma forma ou fórmula para


resolução de um determinado problema,
mediante o estabelecimento de determinadas
regras ou procedimentos.

Exemplo de um algoritmo 4

Algoritmo AtravessarRua  Nota1: Poderão haver outras versões


relativas ao exemplo anterior. Posso
Olhar para a direita
primeiro olhar para a esquerda em vez de
Olhar para a esquerda olhar primeiro para a direita, a condição
Se vier um carro então pode ser colocada de uma forma
inversa, etc.
Não atravessar
Senão
 Nota2: Deve-se ter em atenção à ordem
Atravessar que colocamos as várias instruções de
FimSe um algoritmo. Neste caso, não convém
atravessar a rua antes de olharmos para
FimAlgoritmo a direita e para a esquerda e
confirmarmos que não vem nenhum
carro.

2
21-06-2018

Variáveis 5

msg
TipoDados NomeVariavel Olá, mundo!

Exemplos:
Texto msg
msg  “Olá, mundo!” num
4

Inteiro num
num  4

Nomes de Variáveis (Regras) 6


 Devem começar por uma letra;
 Os caracteres seguintes podem ser letras ou algarismos;
 Não podem ser utilizados símbolos, exceto o “_” (underscore);
 Não podem conter espaços;
 Não podem conter letras com acentuação;
 Não podem ser palavras reservadas.

Nota1 Média
Salário Bruto 9dade
Inicio Inicio_Algoritmo

3
21-06-2018

Principais tipos de dados 7

 Inteiro – Exemplos: 1 3 -5 198 0


 Real – Exemplos: 0.5 5.0 9.8 -77.3 3.1415
 Texto – Exemplos: “Águeda” “Algoritmo” “123”
 Logico – Exemplos: Verdadeiro Falso

Comandos de saída e de entrada 8

Saída – Comando Escrever Entrada – Comando Ler


Escrever “Qualquer coisa” Escrever “Digite o seu nome:”
Escrever “Qualquer coisa\n” Ler nome
Escrever “Olá, ”, nome
Escrever “msg”
Escrever msg
Escrever “mensagem ”, msg
A variável nome irá
Três situações distintas: receber o nome inserido
• 1ª - Escreve as letras msg pelo utilizador.
• 2ª - Escreve o conteúdo da variável msg
• 3ª - Escreve a palavra mensagem
seguida pelo conteúdo da variável msg

4
21-06-2018

Operadores Aritméticos Considerando que:


a5eb3 9
Operador Operação Exemplo Resultado
+ Adição a+b 8
- Subtração a–b 2
* Multiplicação a*b 15
1 (divisão de inteiros)
/ Divisão a/b
1,66… (divisão de reais)
^ Exponenciação a^b 125
% Resto de uma divisão inteira a%b 2

Ordem de Precedência (Prioridade)


1º () Parenteses
2º ^ Exponenciação
3º *, / Multiplicação e divisão
4º +, - Soma e subtração

Exercícios – Operadores Aritméticos 10

Indique o valor de cada uma das expressões inteiras seguintes:


 16 * 6 – 3 * 2
 -2 ^ 3
 (28 + 3 * 4) / 4
 3 + 2 * (18 – 4 ^ 2)
 2^2*3
 8 – 30 / 6

5
21-06-2018

Operadores Relacionais 11

Os operadores relacionais fornecem como resultado um valor lógico


(verdadeiro ou falso)

Operador Operação Exemplo Resultado


= Igual a=b Falso
=/= Diferente a =/= b Verdadeiro
> Maior a>b Verdadeiro
>= Maior ou igual a >= b Verdadeiro
< Menor a<b Falso
<= Menor ou igual a <= b Falso

Nota: O operador relacional diferente “ =/= ” na maioria das linguagens de


programação e em várias aplicações de cálculo, pode ser representado pelos
símbolos “ <> ” ou “ != ”.

Operadores Lógicos 12

 Operadores disponíveis: E (conjunção), OU (disjunção), XOU


(disjunção exclusiva), NÃO (negação).
 Os operadores lógicos fornecem como resultado um valor lógico
(verdadeiro ou falso).
 Os operadores E e OU são operadores binários e o NÃO é um
operador unário.

p q pEq p q p OU q p q p XOU q p NÃO p


V V V V V V V V F V F
V F F V F V V F V F V
F V F F V V F V V
F F F F F F F F F

6
21-06-2018

Análise da situação/problema

Formulação de um algoritmo
Lógica de 13
programação –
(Diagramas/Fluxogramas/Pseudocódigo)

Tradução do algoritmo numa linguagem


de programação
aspetos genéricos

Revisão do texto

Revisão do algoritmo
Tradução do programa-fonte para código-
máquina e verificação de erros de escrita

Deteção sim
de erros de
escrita
não

Testes de verificação lógica do programa

Deteção sim
de erros de
lógica
não

Programa terminado

Problema: 14

 É-nos dado o preço de um terreno de forma retangular, bem como


as medidas de dois lados adjacentes. Pretendemos saber o preço
do terreno por metro quadrado.
preco

preco_metro2
largura

area ?

comprimento

7
21-06-2018

Pseudocódigo 15

Início
Ler comprimento
Ler largura Leitura/entrada de dados
Ler preco
area  largura * comprimento
Processamento de dados
preco_metro2  preco / area
escrever preco_metro2 Saída de dados

Fim

Fluxograma Início
16
Ler comprimento

Ler largura

Ler preco

area  comprimento * largura

preco_metro2  preco / area

Escrever preco_metro2

Fim

8
21-06-2018

Desafio 1 17

Desafio 2 18

Crie um algoritmo em pseudocódigo e em


fluxograma que leia o vencimento de um
funcionário e mostre o seu novo vencimento com
um aumento de 15%.

9
21-06-2018

Desafio 3 19

Crie um algoritmo em pseudocódigo e em


fluxograma que execute a conversão de uma
temperatura dada na escala Celsius e mostre a
equivalente em Fahrenheits.
Fórmula de conversão: ºF = 9/5 * ºC + 32

Estruturas Condicionais (SE) 20

 Devolve um valor se a condição especificada equivaler a


VERDADEIRO e outro valor se equivaler a FALSO.
 A condição deve ser uma variável lógica ou uma expressão com
resultado lógico (operadores lógicos ou relacionais).

Início
Se [condição] então
[instruções] não
[Condição]
sim

Senão
[Instruções] [Instruções]
[instruções]
FimSe
Fim

10
21-06-2018

Estruturas Condicionais (Exemplo) 21


 Crie um algoritmo em pseudocódigo e em fluxograma que
verifique se um número digitado pelo utilizador é par ou ímpar.
Início
Inicio
inteiro numero, resto Ler numero

escrever “Digite um número: ”


resto  numero % 2
ler numero
resto  numero % 2
não sim
se resto = 0 então resto = 0?

escrever “O número é PAR” O número O número


é ÍMPAR é PAR
senão
escrever “O número é ÍMPAR”
fimse
Fim
fim

Estruturas de Repetição (Para) 22


Início

 Repete um conjunto de instruções,


controlado por uma variável [variável numérica]  [valor inicial]
numérica que percorre os valores
entre dois limites utilizando o passo
(step) definido. Caso omisso o passo
[variável
tem o valor de 1. não sim
numérica] <=
[valor final]
[instruções]
Para [variável numérica] de [valor
inicial] até [valor final] passo [valor de
separação]
[valor de separação]
[Instruções]
Próximo

Fim

11
21-06-2018

Estruturas de Repetição (Para) 23


Início

 Exemplo: Escrever os algarismos de 0 a 9.


Contador  0

Inicio
inteiro contador não sim
Contador <= 9
Para contador de 0 até 9 passo 1
escrever contador Escrever contador

Próximo
Contador  Contador + 1
Fim

Fim

Estruturas de Repetição (Enquanto) 24


 Repete as instruções enquanto a condição for verdadeira
Enquanto [condição] faz
[Instruções]
FimEnquanto
Início

Exemplo:
Início não sim
[condição]
Inteiro contador
contador  0
[instruções]
Enquanto contador < 10 faz
Escrever contador, “\t”
contador  contador + 1
FimEnquanto
Fim Fim

12
21-06-2018

Estruturas de Repetição (Repete) 25


 Repete as instruções até que a condição seja verdadeira
Repete
[Instruções]
Até [condição] Início

Exemplo:
Solicitar a introdução de números até o utilizador
inserir o valor 0. não [instruções]

Início
Inteiro numero
[condição]
Repete
Escrever “Insira um número: ” sim

Ler numero Fim


Até numero = 0
Fim

Estruturas de Repetição (Resumo) 26

 Quando sabemos exatamente quantas vezes um determinado


conjunto de instruções deve ser executado, o ideal é utilizar a
estrutura PARA …PRÓXIMO (FOR…NEXT).
 Existem situações em que não é possível determinar quantas vezes
uma determinada instrução será executada. Nesse caso pode-se
utilizar a estrutura ENQUANTO…FAZ (WHILE…DO) ou REPETE…ATÉ
(REPEAT…UNTIL). Estas estruturas diferem apenas na obrigatoriedade
de execução, de pelo menos uma vez.
 Na estrutura ENQUANTO…FAZ, dado que a condição é testada logo
no início do ciclo pode não ser executada nenhuma vez, isto porque
a condição pode ser falsa.
 Na estrutura REPETE…ATÉ o bloco de instruções é sempre executado
pelo menos uma vez, mesmo que a condição seja falsa, isto porque a
condição apenas se encontra no final do loop (ciclo).

13
21-06-2018

Exercícios - Algoritmos 27

1. Crie um algoritmo que leia um valor em metros e mostre-o convertido em


centímetros e em milímetros.
2. Escreva um algoritmo que leia o quanto dinheiro, em euros, uma pessoa
tem na carteira para depois mostrar esse valor convertido em dólares e em
libras esterlinas (GBP).
 1,00€  0,88£ (Libras esterlinas)
 1,00€  1,21$ (Dólares)
3. Crie um algoritmo que peça ao utilizador a distância percorrida por um
automóvel e a quantidade de dias pelos quais ele foi alugado. Calcule o
preço a pagar sabendo que o carro custa 60€ por dia e 0.15€ por km.
4. Escreva um algoritmo que que leia dois números inteiros diferentes e
compare-os, mostrando qual deles é o maior e o menor.
5. Crie um algoritmo que leia a velocidade de um automóvel. Se ele
ultrapassar os 80 km/h, deverá surgir uma mensagem a informar que o
condutor foi multado, assim como o valor da respetiva multa. A multa é de
7€ por cada quilómetro acima do limite.

Exercícios - Algoritmos 28
6. Escreva um algoritmo que pergunte um salário de um funcionário e
calcule o valor do seu aumento. Para salários superiores a 1250€,
calcule um aumento de 10%. Para inferiores ou iguais, o aumento é
de 15%.
7. Faça um algoritmo para a aprovação de um empréstimo para a
compra de uma habitação. O algoritmo deve pedir o valor da
habitação, o salário do comprador e em quantos anos ele vai pagar.
Calcule o valor da prestação mensal, sabendo que não pode
exceder 30% do salário ou então o empréstimo será negado.
8. Escreva um algoritmo que leia o nome e as três notas obtidas por um
aluno. No final, deverá surgir uma das seguintes mensagens:
 Reprovado se a média do aluno for menor do que 8 valores;
 Prova de recuperação se a média estiver entre 8 e 10 valores;
 Aprovado se a média do aluno for maior ou igual a 10 valores.
9. Faça um algoritmo que leia três números e mostre qual deles é o
maior e qual deles o menor.

14
21-06-2018

Exercícios - Algoritmos 29
10. A Associação de Atletismo de Aveiro necessita de um algoritmo que leia os
dados de um determinado atleta, nome e idade. No final, deve ser mostrado
o escalão a que pertence o atleta, de acordo com a idade:
- Benjamins A – Até 9 anos; - Juvenis – 16 e 17 anos;
- Benjamins B – 10 e 11 anos; - Juniores – 18 e 19 anos;
- Infantis – 12 e 13 anos; - SUB-23 – 20 a 22 anos;
- Iniciados – 14 e 15 anos; - Seniores – A partir dos 23 anos
11. Crie um algoritmo que leia um número de 1 a 5 e escreva esse número por
extenso. Caso o utilizador digite um número que não esteja nesse intervalo,
deverá surgir a mensagem “Número inválido!”.
12. Desenvolva um algoritmo que leia o comprimento de três retas e diga ao
utilizador se elas podem ou não formar um triângulo. (NOTA: A soma das 2
menores retas terá de ser maior do que a reta maior).
13. Refaça o desafio anterior, acrescentando o recurso de mostrar que tipo de
triângulo será formado:
 Equilátero: todos os lados iguais;
 Isósceles: dois lados iguais;
 Escaleno: todos os lados diferentes

Exercícios - Algoritmos 30
14. Faça um algoritmo que receba o número do mês e mostre por extenso o mês
correspondente. Contemple caso o número do mês seja inválido.
15. O stand de automóveis Turbolento está a fazer uma campanha de
promoção na venda dos seus veículos. Faça um algoritmo que calcule o
valor do desconto e o valor a ser pago pelo cliente num determinado
automóvel. O desconto deverá ser calculado sobre o valor do veículo de
acordo com o combustível (Elétrico – 25%, Gasolina – 21% ou Gasóleo – 14%).
16. Crie um algoritmo que receba o nome, a idade, o género e o salário fixo de
um funcionário. No final deverá surgir uma mensagem com o nome da
pessoa e com o salário líquido, sabendo que:

Género Idade Abono


>=30 100,00€
M
<30 50,00€
>=30 200,00€
F
<30 80,00€

15
21-06-2018

Exercícios - Algoritmos 31
17. Crie um algoritmo que escreva os números inteiros de 0 até um valor à
escolha do utilizador.
18. Faça um algoritmo que receba “N” números e mostre para cada número
inserido se é positivo, negativo ou zero.
19. Crie um algoritmo que leia 5 números e que no final informe o utilizador de
quantos desses números se encontram no intervalo de 0 e 10.
20. Crie um algoritmo que receba a idade de 10 pessoas e mostre a mensagem
a informar se cada uma dessas pessoas é “maior de idade” ou “menor de
idade”. Considere a idade a partir dos 18 anos como sendo maior de idade.
No fim, o algoritmo deverá informar o utilizador do número de pessoas
maiores de idade e menores de idade que inseriu.
21. Conceba um algoritmo que calcule o
fatorial de um número.
22. Faça um algoritmo que verifique se um
número é primo.
23. Crie um algoritmo que mostre a tabuada
de um número.

Exercícios - Algoritmos 32
24. Crie um algoritmo que leia 10 números. No final, deverá surgir a informação
de qual foi o maior número inserido, assim como a soma e a média desses 10
números.
25. Faça um algoritmo que realize uma contagem inteligente. Ou seja, depois de
digitados dois números o algoritmo vai realizar uma contagem progressiva ou
regressiva conforme se o maior valor inserido tiver sido o primeiro ou o
segundo.
26. Crie um algoritmo que mostre no ecrã todos os números pares que estão no
intervalo de 1 até 100.
27. Conceba um algoritmo que calcule a soma entre todos os números ímpares
que são múltiplos de 3 e que se encontram no intervalo de 1 até 500.

28. Crie um algoritmo que crie a tabuada dos números de 1 a 10.

16
21-06-2018

Tabela Bidimensional 33
início
inteiro lin, col
para lin de 1 até 10 Fator2
escrever "\nTabuada: ", lin, "\n" Nº Coluna (col)
para col de 1 até 10
escrever lin, " * ", col, " = ", lin * col, "\n"
próximo
próximo
fim

Fator1
Nº Linha (lin)

Exercícios - Algoritmos 34
29. Crie um algoritmo que crie um retângulo preenchido com “*”. A altura e a
largura do retângulo é definido pelo utilizador.
*******
Exemplo: Largura  7 e Altura  3 *******
*******
30. Crie os seguintes padrões/sequências:
a) * c) 1 e) 1
** 12 23
*** 123 456
**** 1234 7 8 9 10
***** 12345 11 12 13 14 15

b) ***** d) 1 f) 1
**** 22 21
*** 333 321
** 4444 4321
* 55555 54321

17
21-06-2018

Exercícios – Algoritmos (Enquanto…Faz) 35


31. Crie um algoritmo que leia 10 números. No final deverá surgir no ecrã o total
da soma desses números, assim como o valor do maior número inserido.
32. Crie um algoritmo que leia números até ser inserido o valor 0. No final deverá
surgir no ecrã a soma apenas dos números pares.
33. Elabore um algoritmo que peça ao utilizador a inserção de números. No final
de cada inserção deverá surgir a pergunta “Quer continuar? [S/N]”. No final
deverá surgir no ecrã a quantidade de valores inserida, assim como a soma e
a média desses valores.
34. Crie um algoritmo que recrie o jogo de adivinhar um número. O algoritmo
deverá pedir a inserção de um número de 1 a 10. Peça a um dos seus
colegas que tente adivinhar o número escolhido. No final o algoritmo deverá
dizer o número de tentativas que o seu colega utilizou para adivinhar o seu
número.
35. Faça uma variante do jogo da alínea anterior só que desta vez o número
escolhido será sorteado pelo computador e poderá estar compreendido
entre os valores 1 e 100 (veja a função aleatório). À medida que o “jogador”
vai tentando adivinhar no número deverão surgir pistas se o número a
adivinhar está “mais para cima” ou “mais para baixo” do que a sua tentativa.

Ficha de Trabalho 1 – Algoritmos 36


1. Escreva um algoritmo que receba o preço de custo de um produto e mostre o valor de
venda. Sabe-se que o valor de venda é obtido através da soma do preço de custo
com um acréscimo de acordo com uma percentagem escolhida pelo utilizador.
2. Uma empresa deseja dar um aumento de salário para os seus funcionários. O aumento
está diretamente relacionado com o tempo de serviço. Portanto, faça um algoritmo
que leia o Tempo de Serviço (em anos) e o Salário atual do funcionário em questão.
Calcule o novo salário baseado nas informações abaixo:
 tempo de serviço abaixo de 5 anos: acrescentar 100,00€;
 tempo de serviço 5 ou mais anos: acrescentar 150,00€.
3. Crie um algoritmo que peça ao utilizador a introdução de um valor inteiro entre 0 e 20
(inclusive). Se o número introduzido estiver fora desse intervalo, será apresentada uma
mensagem informando que o número não é válido; se o número introduzido estiver
dentro do intervalo e se for menor que 10, é escrita a mensagem “Reprovado”; se não
se verificar esta última condição, é escrita a mensagem “Aprovado”.
4. Crie uma calculadora simples, a qual deve permitir que o utilizador possa inserir dois
números e escolher uma das quatro operações aritméticas: soma, subtração,
multiplicação e divisão. NOTA: Tratar erro de divisão por zero.

18
21-06-2018

Ficha de Trabalho 2 – Algoritmos 37


1. Crie um algoritmo que receba duas notas e calcule a média
ponderada dessas notas, considerando que a primeira nota tem peso
2 e a segunda peso 3.
2. Faça um algoritmo que leia um número maior do que 0 e escreva a
soma de todos os números inteiros que sejam positivos menores do
que o número lido.
3. Escreva um algoritmo que leia números inteiros e que calcule a
quantidade de números divisíveis por 3 e a quantidade de números
divisíveis por 7. O algoritmo termina quando o utilizador digitar um
número negativo.
4. Crie um algoritmo que peça ao utilizador que digite nomes dos alunos
e as suas idades. No final deverá surgir como resultado a quantidade
de pessoas, o total das idades e a média das idades. O algoritmo
termina quando o utilizador digitar “0” no nome.

Ficha de Trabalho 2 - Algoritmos 38


5. Faça um algoritmo que recrie o jogo “Pedra,
papel e tesoura”. O objetivo é o utilizador jogar
contra o computador. Um jogador ganha
quando:
 Pedra ganha sobre Tesoura
 Papel ganha sobre Pedra
 Tesoura ganha sobre Papel

6. Crie um algoritmo que simule um número de


jogadas de um dado. O número de jogadas é
definido pelo jogador e no fim o algoritmo
deverá indicar o número de vezes que saiu
cada uma das 6 faces do dado, assim como o
valor relativo (%) das ocorrências de cada face
do dado.

19