Post on 18-Apr-2015
Turma:
Professor:
E-mail:
Página:
Ambiente virtual:
IEC037Introdução à Programação de Computadores
Aula 03 – Estrutura Sequencial
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•Fácil leitura
Desvantagem•Escrita trabalhosa
Fluxogramas:: Simbologia
início / fim
ação
leitura de dados
saída
Deve começar com um verbo
Usado apenas quando a entrada não é conhecida. Se o valor for pré-definido, use o retângulo.
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?
4,4m
3,2m
Processo de resolução de problemas algorítmicos
Fim
Início
1
Definir as entradas e as saídas2
Projetar o algoritmo3
Converter o algoritmo em linguagem de programação4
Testar solução5
Decompor
Refinarpasso a passo
Identificar o problema
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 Unidade de medida Faixa de valores
Entradas
Saídas
Grandeza Unidade de medida Faixa de valores
EntradasLargura da
parede m 4,4m
Altura da parede m 3,2m
Saídas Área da parede 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:
𝐴=𝑏⋅ h
Problema 2:: Solução
início
largura ← 4,4altura ← 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
4,4
3,2
altura
largura
Variáveis :: Características
altura ← 3,2
IdentificadorNome da variável
ValorAtribuiçãoComando que define ou redefine o valor de uma variável. Lê-se: “altura recebe 3,2” ou “atribuir 3,2 à altura”
Variáveis :: Analogia
Variáveis podem ser vistas como gavetas de um armário onde cabe apenas um único valor
largura
altura
início
largura ← 4,4altura ← 3,2
largura ← 7,8
fim
4,4
3,2
7,8
Qual a relação com variáveis no contexto matemático?
MatemáticaVariáveis podem assumir o
valor de qualquer elemento de um conjunto.
AlgoritmosVariá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?
Grandeza Unidade de medida Faixa de valores
Entradas
Saídas
Grandeza Unidade de medida Faixa de valores
Entradas Lado da pastilha cm 4cm
Largura da parede m 4,7m Altura da parede m 2,9m
Saídas nº de pastilhas -- > 0
Problema 3:: Projetando a Solução
Número de pastilhas ():
Área da parede:
Área da pastilha:
𝑁=Á reada paredeÁ reada pastilha
𝑙𝑎𝑟𝑔𝑢𝑟𝑎⋅𝑎𝑙𝑡𝑢𝑟𝑎
𝑙𝑎𝑑𝑜2
Como expressar essas operações aritméticas
no fluxograma?
?
Parte inteira mais 1
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
OperadorAritmético
valor numérico
valor numéricovalor numérico
Operadores Aritméticos:: Formato
OperadorOperando1 Operando2
2a2 * a
Exemplos:
a³
a ** 3
√55 ** 0,5
Operadores Aritméticos:: Prioridade
Prioridade Operador1 Parênteses mais internos2 Potenciação3 Multiplicação, divisão, resto4 Adição, subtração
Exemplos:
4 * 3 ** 2
(4 * 3) ** 2
4 * 5 % 3
4 * (5 % 3)
36
144
2
8
Na dúvida, use parênteses.
Da esquerda para a direita
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?
Grandeza Unidade de medida Faixa de valores
Entradas
Saídas
Grandeza Unidade de medida Faixa de valores
Entradas Lado da pastilha cm 4cm
Largura da parede m 4,7m Altura da parede m 2,9m
Saídas nº de pastilhas -- > 0
Problema 3:: Solução
início
largura ← 470altura ← 290
lado ← 4
N ← (largura * altura) // (lado ** 2) + 1
Exibir N
fim
Operadores Aritméticos
470
290
4
8519
altura
largura
lado
N
Memória
Todos na mesma unidade de medida!
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?
Grandeza Unidade de medida Faixa de valores
Entradas
Saídas
Grandeza Unidade de medida Faixa de valores
Entradas
Lado da pastilha cm 5cm Largura da parede m 5,2mAltura da parede m 3,2m
Nº pastilhas por caixa Unid./caixa 1000Custo por caixa R$ R$ 450,00
Saídas Custo R$ > 0
Problema 4:: Projetando a Solução
Reusamos solução do problema anterior: Número de pastilhas ()
Custo Total ():
custoTotal=N
Qtde .de pastilha por caixa⋅CustoUnit
Parte inteira mais 1
3150,00
6656
Problema 4:: Solução
início
largura ← 520altura ← 320
lado ← 5custoUnit ← 450,00
N ← (largura * altura) // (lado ** 2)
Exibir custoTotal
fim
custoTotal ← ((N // 1000) + 1) * custoUnit
520
320
5
450,00
altura
largura
lado
custoUnit
Memória
N
custoTotal
É 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 larguraLer alturaLer lado
Ler custoUnit
N ← (largura * altura) // (lado ** 2)
Exibir custoTotal
fim
custoTotal ← ((N // 1000) + 1) * custoUnit
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
Saídas
Grandeza Unidade de medida Faixa de valores
Entradas Nota --- 0 a 10
Saídas Nota --- 1 a 11
Problema 5:: Solução bruta
início
Ler notaInicial
notaFinal ← notaInicial + 1
Exibir notaFinal
fim
6,2
7,2notaFinal
notaInicial
Memória
Problema 5:: Solução refinada
início
Ler nota
nota ← nota + 1
Exibir nota
fim
5,2nota
Memória
6,2nota
Memória
Mesma variável em ambos os lados do operador atribuição
nota ← nota + 1
início
Verificar valor atual da variável “nota”
Somar “nota”
Armazenar resultado na mesma variável “nota”
fimO que acontece??
Problema 6
Qual o valor exibido pelo fluxograma abaixo?
início
A ← 5B ← 3
B ← B * A
Exibir B
fim
Problema 6:: Solução
Qual o valor exibido pelo fluxograma abaixo?
início
A ← 5B ← 3
B ← B * A
Exibir B
fim
5
3
A
Memória
B
5
15
A
Memória
B
Problema 7
Qual o valor exibido pelo fluxograma abaixo?início
VAL1 ← 10VAL2 ← 16
VAL3 ← VAL2 – VAL1
VAL3 ← VAL1 – VAL2
Exibir VAL3
fim
Problema 7:: Solução
Qual o valor exibido pelo fluxograma abaixo?
1016
VAL1
Memória
VAL2?VAL3
início
VAL1 ← 10VAL2 ← 16
VAL3 ← VAL2 – VAL1
VAL3 ← VAL1 – VAL2
Exibir VAL3
fim
1016
VAL1VAL2
6VAL3
1016
VAL1VAL2
-6VAL3
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?
5?
PRIMMemória
SEG?TER
início
PRIM ← 5
SEG ← PRIM
TER ← SEG
PRIM ← 8
Exibir PRIM, SEG, TER
fim
55
PRIMSEG
?TER
55
PRIMSEG
5TER
85
PRIMSEG
5TER
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 C1Ler 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 C1Ler 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?