Turma: Professor: E-mail: Página: Ambiente virtual:

45
Turma: Professor: E-mail: Página: Ambiente virtual: IEC037 Introdução à Programação de Computadores Aula 03 – Estrutura Sequencial

description

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. - PowerPoint PPT Presentation

Transcript of Turma: Professor: E-mail: Página: Ambiente virtual:

Page 1: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

Turma:

Professor:

E-mail:

Página:

Ambiente virtual:

IEC037Introdução à Programação de Computadores

Aula 03 – Estrutura Sequencial

Page 2: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

Problema Inicial

Como revestir uma das paredes de um banheiro, usando ferramentas e material fornecido?

Page 3: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

Definição de algoritmo

Uma sequência finita e ordenada de passos sem ambiguidade que leva à

resolução de um problema.

Page 4: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

Problema Inicial:: Solução 1

início

Separar material necessário

Preparar argamassa

Assentar as pastilhas

Fazer acabamento

fim

Page 5: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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.

Page 6: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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.

Page 7: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 8: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 9: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 10: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 11: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 12: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 13: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 14: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

Problema 2:: Solução

início

largura ← 4,4altura ← 3,2

área ← largura * altura

Exibir área

fim

Variáveis e atribuições

Page 15: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 16: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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”

Page 17: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 18: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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.

Page 19: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 20: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

Problema 3:: Projetando a Solução

Número de pastilhas ():

Área da parede:

Área da pastilha:

𝑁=Á reada paredeÁ rea da pastilha

𝑙𝑎𝑟𝑔𝑢𝑟𝑎⋅𝑎𝑙𝑡𝑢𝑟𝑎

𝑙𝑎𝑑𝑜2

Como expressar essas operações aritméticas

no fluxograma?

?

Parte inteira mais 1

Page 21: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 22: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

Operadores Aritméticos

Entrada: 02 valores numéricos Saída: 01 valor numérico

OperadorAritmético

valor numérico

valor numéricovalor numérico

Page 23: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

Operadores Aritméticos:: Formato

OperadorOperando1 Operando2

2a2 * a

Exemplos:

a ** 3

√55 ** 0,5

Page 24: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 25: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 26: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

Problema 3:: Solução

início

largura ← 470altura ← 290

lado ← 4

N ← (largura * altura) // (lado ** 2) + 1

Exibir N

fim

Operadores Aritméticos

470290

48519

altura

largura

lado

N

Memória

Todos na mesma unidade de medida!

Page 27: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 28: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

Problema 4:: Projetando a Solução

Reusamos solução do problema anterior: Número de pastilhas ()

Custo Total ():

custoTotal= NQtde .de pastilha por caixa ⋅CustoUnit

Parte inteira mais 1

Page 29: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

3150,006656

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

520320

5450,00

altura

largura

lado

custoUnit

Memória

N

custoTotal

Page 30: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

É 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

Page 31: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 32: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 33: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

Problema 5:: Solução bruta

início

Ler notaInicial

notaFinal ← notaInicial + 1

Exibir notaFinal

fim

6,27,2notaFinal

notaInicial

Memória

Page 34: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

Problema 5:: Solução refinada

início

Ler nota

nota ← nota + 1

Exibir nota

fim

5,2nota

Memória

6,2nota

Memória

Page 35: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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??

Page 36: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

Problema 6

Qual o valor exibido pelo fluxograma abaixo?

início

A ← 5B ← 3

B ← B * A

Exibir B

fim

Page 37: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

Problema 6:: Solução

Qual o valor exibido pelo fluxograma abaixo?

início

A ← 5B ← 3

B ← B * A

Exibir B

fim

53

A

Memória

B

515

A

Memória

B

Page 38: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

Problema 7

Qual o valor exibido pelo fluxograma abaixo?início

VAL1 ← 10VAL2 ← 16

VAL3 ← VAL2 – VAL1

VAL3 ← VAL1 – VAL2

Exibir VAL3

fim

Page 39: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 40: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

Problema 8

Qual os valores exibidos pelo fluxograma abaixo?início

PRIM ← 5

SEG ← PRIM

TER ← SEG

PRIM ← 8

Exibir PRIM, SEG, TER

fim

Page 41: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 42: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 43: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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

Page 44: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

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.

Page 45: Turma:  Professor:  E-mail:  Página:  Ambiente virtual:

Dúvidas?