IEC037
Introdução à Programação de Computadores
Aula 03 – Estrutura Sequencial
Turma:
Professor:
E-mail:
Página:
Ambiente virtual:
Problema Inicial

Como revestir uma das paredes de um banheiro,
usando ferramentas e material fornecido?
Definição de algoritmo
Uma sequência finita e ordenada de
passos sem ambiguidade que leva à
resolução de um problema.
Problema Inicial
:: Solução 1
início
Separar material
necessário
Preparar
argamassa
Assentar as
pastilhas
Fazer
acabamento
fim
Problema Inicial
:: Solução 2
início
Comprar material
necessário
Contratar um
pedreiro
Esperar ficar pronto
Pagar o pedreiro
fim
Existem várias maneiras
de descrever uma
solução algorítmica.
Como descrever um algoritmo?
Narrativa
• O algoritmo é descrito em linguagem natural, que é abstrata,
imprecisa e ambígua.
Fluxograma
• Representação gráfica, através de símbolos geométricos
(retângulos, losangos, etc.), que enfatizam os passos individuais
do algoritmo e suas interconexões.
Pseudo-Código
• Emprega uma linguagem intermediária entre a linguagem natural
e uma linguagem de programação para descrever os algoritmos,
usando um vocabulário mais restrito e sem ambiguidades.
Fluxogramas
Definição
•Diagrama que utiliza
símbolos para indicar a
sequência de execução de
um conjunto de comandos
Outras
denominações
•Diagrama de blocos
•Diagrama de fluxo
Vantagem
Desvantagem
•Fácil leitura
•Escrita trabalhosa
Fluxogramas
:: Simbologia
início / fim
ação
leitura de
dados
Deve começar com um verbo
Usado apenas quando a entrada
não é conhecida. Se o valor for prédefinido, use o retângulo.
saída
Sentido do fluxo de execução
Problema 2

Qual a área da parede do banheiro a ser revestida,
se ela mede 4,4m de largura por 3,2m de altura?
3,2m
4,4m
Processo de resolução de problemas
algorítmicos
Início
1
Identificar o problema
2
Definir as entradas e as
saídas
Decompor
3
Projetar o algoritmo
4
Converter o algoritmo em
linguagem de programação
5
Testar solução
Fim
Refinar
passo a passo
Caracterização das Entradas e Saídas

Para uma identificação completa das entradas e
saídas de um sistema, devemos levantar as
seguintes características:
Nome da grandeza
Unidade de medida
Faixa de valores válidos
Problema 2

Qual a área da parede do banheiro a ser revestida,
se ela mede 4,4m de largura por 3,2m de altura?
Grandeza
Entradas
Saídas
Largura da
parede
Altura da parede
Área da parede
Unidade de
medida
Faixa de valores
m
4,4m
m
3,2m
m²
>0
Problema 2
:: Projetando a Solução



Deve-se atribuir o valor 4,4 para a largura.
Deve-se atribuir o valor 3,2 para a altura.
Deve-se atribuir o produto da largura pela altura à
área resultante:
𝐴=𝑏⋅ℎ
Problema 2
:: Solução
início
largura ← 4,4
altura ← 3,2
área ← largura * altura
Exibir área
fim
Variáveis e atribuições
O que são variáveis no contexto
algorítmico?
Variáveis representam um espaço de memória
onde se pode armazenar um valor.
Memória
altura
4,4
largura
3,2
Variáveis
:: Características
altura ← 3,2
Identificador
Nome da
variável
Atribuição
Comando que define
ou redefine o valor de
uma variável. Lê-se:
“altura recebe 3,2” ou
“atribuir 3,2 à altura”
Valor
Variáveis
:: Analogia
Variáveis podem ser vistas como gavetas de
um armário onde cabe apenas um único valor
início
largura
4,4 7,8
largura ← 4,4
altura ← 3,2
altura
3,2
largura ← 7,8
fim
Qual a relação com variáveis no
contexto matemático?
Matemática
Algoritmos
Variáveis podem assumir o
valor de qualquer
elemento de um conjunto.
Variáveis podem assumir
apenas um único valor de
cada vez.
Problema 3


Deseja-se revestir uma das paredes de um
banheiro, que mede 4,7m × 2,9m, com pastilhas
quadradas de 4cm de lado.
Quantas pastilhas são necessárias?
Lado da pastilha
Largura da parede
Altura da parede
Unidade de
medida
cm
m
m
nº de pastilhas
--
Grandeza
Entradas
Saídas
Faixa de valores
4cm
4,7m
2,9m
>0
Problema 3
:: Projetando a Solução

Número de pastilhas (𝑁):
𝑁=

Área da parede
Área da pastilha
Parte inteira
mais 1
Área da parede:
𝑙𝑎𝑟𝑔𝑢𝑟𝑎 ⋅ 𝑎𝑙𝑡𝑢𝑟𝑎

Área da pastilha:
𝑙𝑎𝑑𝑜 2
Como expressar essas
operações aritméticas
no fluxograma?
Operadores Aritméticos

São utilizados para realizar as operações
aritméticas básicas.
Operador
+
–
*
/
//
%
**
Operação
Exemplo
Adição
1+y
Subtração
x–y
Multiplicação
8*y
Divisão real
7 / 2 (= 3,5)
Divisão inteira
7 // 2 (= 3)
Resto da divisão inteira 7 % 2 (= 1)
Potenciação
x ** 2
Operadores Aritméticos


Entrada: 02 valores numéricos
Saída:
01 valor numérico
valor numérico
valor numérico
Operador
Aritmético
valor numérico
Operadores Aritméticos
:: Formato
Operando1
Opera
dor
Operando2
Exemplos:
2a
2*a
5
a³

a ** 3

5 ** 0,5

Operadores Aritméticos
:: Prioridade
Prioridade
1
2
3
4
Exemplos:
Operador
Parênteses mais internos
Potenciação
Multiplicação, divisão, resto
Adição, subtração
4 * 3 ** 2
36
(4 * 3) ** 2
144
4*5%3
2
4 * (5 % 3)
8
Da esquerda
para a direita
Na dúvida, use
parênteses.
Voltando ao Problema 3


Deseja-se revestir uma das paredes de um
banheiro, que mede 4,7m × 2,9m, com pastilhas
quadradas de 4cm de lado.
Quantas pastilhas são necessárias?
Lado da pastilha
Largura da parede
Altura da parede
Unidade de
medida
cm
m
m
nº de pastilhas
--
Grandeza
Entradas
Saídas
Faixa de valores
4cm
4,7m
2,9m
>0
Problema 3
:: Solução
Memória
início
largura ← 470
altura ← 290
lado ← 4
Todos na
mesma unidade
de medida!
largura
470
altura
290
4
lado
N
8519
N ← (largura * altura) // (lado ** 2) + 1
Exibir N
fim
Operadores
Aritméticos
Problema 4


Deseja-se revestir uma das paredes de um banheiro,
que mede 5,2m × 3,2m, com pastilhas quadradas de
5cm de lado. As pastilhas são vendidas em caixas de
1000 unidades, que custam R$ 450,00 cada.
Quanto vou gastar?
Entradas
Saídas
Grandeza
Lado da pastilha
Unidade de medida
cm
Faixa de valores
5cm
Largura da parede
m
5,2m
Altura da parede
m
3,2m
Nº pastilhas por caixa
Unid./caixa
1000
Custo por caixa
R$
R$ 450,00
Custo
R$
>0
Problema 4
:: Projetando a Solução

Reusamos solução do problema anterior:
 Número

de pastilhas (𝑁)
Custo Total (custoTotal):
N
custoTotal =
⋅ CustoUnit
Qtde. de pastilha por caixa
Parte inteira
mais 1
Problema 4
:: Solução
início
largura ← 520
altura ← 320
lado ← 5
custoUnit ← 450,00
Memória
largura
520
altura
320
lado
custoUnit
N ← (largura * altura) // (lado ** 2)
N
custoTotal
custoTotal ← ((N // 1000) + 1) * custoUnit
Exibir custoTotal
fim
5
450,00
6656
3150,00
É possível generalizar a entrada?


Nas soluções anteriores, os fluxogramas foram
específicos aos problemas.
Vamos generalizar o fluxograma utilizando um
novo símbolo:
Leitura de
dados
Problema 4
:: Solução generalizada
início
Ler largura
Ler altura
Ler lado
Ler custoUnit
N ← (largura * altura) // (lado ** 2)
custoTotal ← ((N // 1000) + 1) * custoUnit
Exibir custoTotal
fim
Problema 5


Um professor esqueceu de corrigir uma questão de
uma prova. Agora, ele tem de somar um ponto à
nota dos alunos.
Qual algoritmo a ser adotado?
Grandeza
Unidade de medida
Faixa de valores
Entradas
Nota
---
0 a 10
Saídas
Nota
---
1 a 11
Problema 5
:: Solução bruta
Memória
início
Ler notaInicial
notaFinal ← notaInicial + 1
Exibir notaFinal
fim
notaInicial
6,2
notaFinal
7,2
Problema 5
:: Solução refinada
início
Memória
Ler nota
nota
5,2
Memória
nota ← nota + 1
Exibir nota
fim
nota
6,2
Mesma variável em ambos os lados do
operador atribuição
início
nota ← nota + 1
Verificar valor atual da
variável “nota”
Somar “nota”
O que acontece?
Armazenar resultado na
mesma variável “nota”
fim
Problema 6

Qual o valor exibido pelo fluxograma abaixo?
início
A←5
B←3
B←B*A
Exibir B
fim
Problema 6
:: Solução

Qual o valor exibido pelo fluxograma abaixo?
início
A←5
B←3
B←B*A
Exibir B
fim
Memória
A
5
B
3
Memória
A
5
B
15
Problema 7

Qual o valor exibido pelo fluxograma abaixo?
início
VAL1 ← 10
VAL2 ← 16
VAL3 ← VAL2 – VAL1
VAL3 ← VAL1 – VAL2
Exibir VAL3
fim
Problema 7
:: Solução

Qual o valor exibido pelo fluxograma abaixo?
Memória
início
VAL1 ← 10
VAL2 ← 16
VAL3 ← VAL2 – VAL1
VAL3 ← VAL1 – VAL2
Exibir VAL3
fim
VAL1
VAL2
VAL3
10
16
?
VAL1
VAL2
VAL3
10
16
6
VAL1
VAL2
VAL3
10
16
-6
Problema 8

Qual os valores exibidos pelo fluxograma abaixo?
início
PRIM ← 5
SEG ← PRIM
TER ← SEG
PRIM ← 8
Exibir PRIM,
SEG, TER
fim
Problema 8
:: Solução

Qual os valores exibidos pelo fluxograma abaixo?
início
PRIM ← 5
SEG ← PRIM
TER ← SEG
PRIM ← 8
Exibir PRIM,
SEG, TER
fim
Memória
PRIM
SEG
TER
5
?
?
PRIM
SEG
TER
5
5
?
PRIM
SEG
TER
5
5
5
PRIM
SEG
TER
8
5
5
Problema 9



Deseja-se calcular o
perímetro de um
triângulo retângulo.
Conhece-se apenas as
medidas dos catetos.
O que há de errado na
solução ao lado?
início
Ler C1
Ler C2
H ← (C1 ** 2 + C2 ** 2) ** 0,5
Exibir H
fim
Problema 9
:: Solução

O problema a ser
resolvido é a
determinação do
perímetro, e não da
hipotenusa, que é
apenas um passo
intermediário.
início
Ler C1
Ler C2
H ← (C1 ** 2 + C2 ** 2) ** 0,5
P ← H + C1 + C2
Exibir P
fim
Referências bibliográficas




Menezes, Nilo Ney Coutinho (2010). Introdução à
Programação com Python. Editora Novatec.
Farrer, Harry (2011). Algoritmos Estruturados, 3ª
edição. Editora LTC.
Forbellone, A. L. V.; Eberspächer, H. F. (2006) Lógica
de Programação, 3ª edição. Pearson.
HETLAND, Magnus Lie (2008). Beginning Python:
From Novice to Professional. Springer eBooks, 2ª
edição. Disponível em:
http://dx.doi.org/10.1007/978-1-4302-0634-7.
Dúvidas?