Você está na página 1de 53

Instituto Federal Catarinense

Técnico em Informática
Disciplina: Algoritmos

Construção de
algoritmos
Professor: Ricardo Annes
1
Revisando
• Formas de representação de algoritmos:
● Descrição narrativa
● Fluxograma
● Pseudocódigo
• Tipos de dados primitivos
● Inteiro, real
● Lógico, caractere ou literal
• Expressões:
● Aritméticas
● Lógicas (relacionais)
2
Revisando
• Tipos de dados
● numéricos (inteiros e real)
● Lógico (F, V)
● Caractere ou literal
• Formação de identificadores (nome de objetos)
● variáveis, constantes, rotinas, unidades

● número, letra, sublinhado, (sem espaço)


● palavras reservadas
● sensível a caixa
3
Paradigma de programação
• forma de pensar do programador
• imperativo (estruturado)
• orientado a objeto
• declarativa
• funcional
• linguagens
● pascal, C, Cobol,
● C++, Java, Delphi, Python
4
Comando de Atribuição
• [Forbellone, p.25]
• fornece valor a uma variável
• tipos compatíveis
A ← 25;
nome ← “Ricardo”;
Ligado ← V;

B ← A + 33;

5
Comando de Entrada e Saída

leia(A);
leia(X,Y,Z);

escreva(Nome);
escreva(X,Y,Z);
escreva(A+5);

6
Blocos
início
ação; // comentário
ação;

fim.
Início // início do bloco (algoritmo)
// declaração de variáveis
// sequência de ações
fim. // fim do bloco (algoritmo)
7
Estruturas de Controle

• Fluxo de execução
○ Sequência
○ Seleção
○ Repetição

8
Estrutura sequencial
• sequência linear
● um depois do outro,
● de cima para baixo,
● da esquerda pra direita
■ação 1;
■ação 2;
■ ….

9
Desenvolvimento de um programa

•Análise
● estudo do problema, definição das entradas, do
processamento e saídas.
•Algoritmo
● descrição dos passos para a solução do problema
•Codificação
● transformação do algoritmo em código de linguagem de
programação
10
Método para construção de algoritmos

a) Entendimento do problema;
● partes (objetos) que o compõem,
● pontos mais importantes.
b) Definição dos dados de entrada.
c) Definição do processamento
● (cálculos, transformação dos dados de entradas em saídas).
d) Definição dos dados de saída
● (gerados pelo processamento).
e) Construção do algoritmo
f) Teste do algoritmo 11
Método para construção de algoritmos

1)Entendimento do problema
2)Definição das entradas (informações iniciais disponíveis)
3)Definição das saídas (a solução do problema/o objetivo
do algoritmo)
4)Definição dos processos (transformação das entradas em
saídas)
5)Descrição narrativa (algoritmo escrito em português)
6)Pseudocódigo (tem regras rígidas)
7)Teste de mesa (conferência do pseudocódigo) 12
Estrutura do Pseudocódigo
Marcação de início
Início
//Declaração das variáveis
// Comandos
Marcação do final
Fim.

13
Estrutura do Pseudocódigo
Início
//Declaração das variáveis
Inteiro: a,b,c;
Real: z;
Lógico: alfa;
Caractere: Nome;
// Comandos
Fim. 14
Estrutura do Pseudocódigo
Início
//Declaração das variáveis
// Comandos
A ← expressão;
Leia(variável);
Escreva(“Texto”, variável, expressão);
Fim.
15
Exercícios
● Escreva um algoritmo que calcule o troco de uma compra. O
valor da compra é calculado pelo preço do produto,
quantidade comprada e percentual de desconto.

16
Exercícios
● Escreva um algoritmo que calcule o troco de uma compra. O
valor da compra é calculado pelo preço do produto,
quantidade comprada e percentual de desconto.

1) Entendimento
Troco é dado pela diferença entre dois valores (valor pago –
valor do gasto)
valor pago é uma entrada
valor gasto = (quant. x preço) - valor do desconto
valor do desconto = (quant X preço) * perc desconto/100 17
Exercícios
Troco é dado pela diferença entre dois valores (pago – gasto)
valor pago é uma entrada
valor gasto = (quant. x preço) - valor do desconto
valor do desconto = (quant X preço) * perc desconto/100
2) Entradas: valor pago, quantidade, preço, percent desconto
3) Saída: troco
4) processo: troco = valor pago – valor gasto
valor pago= preço * quantidade
desconto = valor * perc. desconto
valor gasto = valor – valor * desconto 18
Exercícios
5) Descrição narrativa
● obter os dados de entrada: valor pago (vp), quantidade (qt),
preço (pr), percentual de desconto (pd)
● calcular: valor = pr * qt;
desconto = valor * pd / 100;
troco = vp – (valor – desc);
● mostrar o troco

19
Exercícios
Início
Real: vp, qt, pr, pd,troco, valor, desc;
leia(vp, qt, pr, pd);
valor ← pr * qt;
desc ← valor * pd / 100;
troco ← vp – (valor – desc);
escreva(troco);
Fim.

20
Teste de mesa
Início
vp qt pr pd
Real: vp, qt, pr, pd,troco, valor, desc;
leia(vp, qt, pr, pd);
valor ← pr * qt; troco valor desc
desc ← valor * pd / 100;
troco ← vp – (valor – desc);
escreva(troco);
Fim.
21
Teste de mesa
Início
vp qt pr pd
Real: vp, qt, pr, pd,troco, valor, desc;
leia(vp, qt, pr, pd); 100 5 15 10
valor ← pr * qt; troco valor desc
desc ← valor * pd / 100;
troco ← vp – (valor – desc);
escreva(troco);
Fim.
22
Teste de mesa
Início
vp qt pr pd
Real: vp, qt, pr, pd,troco, valor, desc;
leia(vp, qt, pr, pd); 100 5 15 10
valor ← pr * qt; 15 x 5
troco valor desc
desc ← valor * pd / 100; 75
troco ← vp – (valor – desc);
escreva(troco);
Fim.
23
Teste de mesa
Início
vp qt pr pd
Real: vp, qt, pr, pd,troco, valor, desc;
leia(vp, qt, pr, pd); 100 5 15 10
valor ← pr * qt; troco valor desc
desc ← valor * pd / 100; 75 x 10 /100
75 7,5
troco ← vp – (valor – desc);
escreva(troco);
Fim.
24
Teste de mesa
Início
vp qt pr pd
Real: vp, qt, pr, pd,troco, valor, desc;
leia(vp, qt, pr, pd); 100 5 15 10
valor ← pr * qt; troco valor desc
desc ← valor * pd / 100; 100 - (75 - 7,5) 32,5 75 7,5
troco ← vp – (valor - desc);
escreva(troco);
Fim.
25
Teste de mesa
Início
vp qt pr pd
Real: vp, qt, pr, pd,troco, valor, desc;
leia(vp, qt, pr, pd); 100 5 15 10
valor ← pr * qt; troco valor desc
desc ← valor * pd / 100; 32,5 75 7,5
troco ← vp – (valor - desc);
escreva(troco);
Fim. TELA
32,5
26
Exercícios
Escreva um algoritmo que calcule uma distância em milhas
que foi informada em quilômetros.

27
Exercícios
Escreva um algoritmo que calcule uma distância em milhas
que foi informada em quilômetros.

1) Entendimento:
1 milha = 1,60934 km

2) Entrada: km
3) Saída: milhas
4) Processo: m = km/1,60934 28
Exercícios
5) Descrição narrativa
➔ Receber km
➔ Calcular m = km / 1,60934
➔ mostrar m
6) Pseudocódigo
Início
real: m,km;
leia(km);
escreva(km/1,60934)
Fim. 29
Teste de mesa
Início
real: m,km;
leia(km);
escreva(km/1,60934)
Fim.

30
Teste de mesa
Início
real: m,km; m km
leia(km);
escreva(km/1,60934)
Fim.

31
Teste de mesa
Início
real: m,km; m km
leia(km); 10
escreva(km/1,60934)
Fim.

32
Teste de mesa
Início
real: m,km; m km
leia(km); 10
escreva(km/1,60934)
Fim.
TELA
6,213

33
Exercícios
Escreva um algoritmo que receba o raio de uma
circunferência e calcule o perímetro e a área.

A = π.raio2

p = 2π.raio

34
Exercícios
Início
Real: r, a, p, pi ← 3.1416;
Leia(r);
a ← pi * r * r;
p ← 2*pi*r;
Escreva(a, p);
Fim.
35
Exercícios
1) Liste os pontos importantes da disciplina
2) Escreva um resumo destes pontos

36
Faça um teste de mesa
Início
//Declaração de variáveis
Inteiro: a, b ← 3;
Real: x, y ← 1.5;
//Comandos
Leia(a, x);
Escreva(a div b, x / y);
a ← a div b;
z ← x / y;
Escreva(a, z);
37
Fim.
Escreva o pseudocódigo
● Receba um valor inteiro
● Calcule seu sucessor e seu antecessor
● Mostre os resultados

. . . e teste

38
Resposta

Início
Inteiro: i;
Leia(i);
Escreva(i-1, i+1);
Fim.

39
Escreva um algoritmo que . . .

● . . . receba 2 valores e calcule o resultado


das 4 operações aritmética com esses
valores e mostre os resultados.

40
Resposta

Início
Inteiro: a, b;
Leia(a, b);
Escreva (a+b, a-b, a* b, a/b);
Fim.
41
Escreva um algoritmo que . . .

● . . . receba 2 variáveis A e B e troque os


valores delas e mostre os resultados.

42
Exercícios
1) Escreva um algoritmo que leia um valor inteiro e apresente
os resultados do quadrado e do cubo do valor lido.

43
Descrição narrativa
● fique de pé
● coloque a cadeira na frente da mesa
● abra a porta
● pegue uma caneta
● coloque a cadeira no lugar
● sente

44
Descrição narrativa
● ”pegue” 2 valores → anote 2 valores
● some esses valores
● divida o resultado por 2
● escreva os valores e o resultado no quadro

45
Pseudocódigo
● ”pegue” 2 valores → anote 2 valores
● some esses valores
● divida o resultado por 2
● escreva os valores e o resultado no quadro
Início
Inteiro: V1, V2, V;
V1 ←10;
V2 ← 33;
V ← V1 + V2;
Escreva(V1, V2, V);
Fim. 46
Pseudocódigo
● ”pegue” 2 valores → anote 2 valores
● some esses valores
● divida o resultado por 2
● escreva os valores e o resultado no quadro
Início
Inteiro: V1, V2, V; Início
V1 ←10; Inteiro: V1, V2, V;
V2 ← 33; Leia (V1,V2);
V ← V1 + V2; V ← V1 + V2;
Escreva(V1, V2, V); Escreva(V1, V2, V);
Fim. Fim. 47
Pseudocódigo
● ”pegue” 2 valores → anote 2 valores
● some esses valores
● divida o resultado por 2
● escreva os valores e o resultado no quadro
Início
Inteiro: V1, V2, V; Início
V1 ←10; Inteiro: V1, V2, V;
V2 ← 33; Leia (V1,V2);
V ← V1 + V2; V ← V1 + V2;
Escreva(V1, V2, V); Escreva(V1, V2, V);
Fim. Fim. 48
Resumo
● Algoritmo
○ Abstração
○ Modelo
● Metodologia para desenvolvimento
● Pseudocódigo
● Tipo de dados
● variáveis
● Comandos
○ Entrada e saída
○ Atribuição
■ expressões aritméticas
49
Exercícios
X Y Z
3 4 2

X + Y / 2 = Z - 3 * X OU X = Y - 2 div Y

Y mod Z <> rad(Y) - Z E (X + Y + X) / 2 = 3

Y mod Z < rad(Y) - Z E (X + Y + X) / 2 > Z


50
Exercícios
X Y Z
9 4 3

(X + Y) / 2 = Z - 3 * X OU X = Y - 2 div Y

Y mod Z <> pot(Y) - Z E X+Y>X/2

Y mod Z <> rad(Y) - Z E (X + Y) / 2 <= 0


51
Resumo
● Algoritmo
○ Abstração
○ Modelo
● Metodologia para desenvolvimento
● Pseudocódigo
● Tipo de dados
● variáveis
● Comandos
○ Entrada e saída
○ Atribuição
■ expressões aritméticas
52
Fui claro?

Prof. Ricardo Annes


ricardo.annes@ifc.edu.br 53

Você também pode gostar