Turma: Professor: E-mail: Página: Ambiente virtual: IEC037 Introdução à Programação de...

Preview:

Citation preview

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

Recommended