450 likes | 570 Vues
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.
E N D
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 semambiguidadeque 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 Existem várias maneiras de descrever uma solução algorítmica. Contratar um pedreiro Esperar ficar pronto Pagar o pedreiro fim
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 Deve começar com um verbo Usado apenas quando a entrada não é conhecida. Se o valor for pré-definido, use o retângulo. leitura de dados 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 Definir as entradas e as saídas 2 Decompor 3 Projetar o algoritmo Refinar passo a passo Converter o algoritmo em linguagem de programação 4 Testar solução 5 Fim
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
Problema2 • Qual a área da parede do banheiro a ser revestida, se ela mede 4,4m de largura por 3,2m de altura?
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 Variáveis e atribuições área ← largura * altura Exibir área fim
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 altura 3,2 largura
Variáveis :: Características altura ← 3,2 • 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 • Identificador • Nome da variável
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 altura ← 3,2 largura 4,4 7,8 largura ← 7,8 altura 3,2 fim
Qual a relação com variáveis no contexto matemático? Matemática Variáveis podem assumir o valor de qualquer elemento de um conjunto. Algoritmos 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?
Problema 3:: Projetando a Solução • Número de pastilhas (): • Área da parede: • Área da pastilha: Parte inteira mais 1 ? Como expressar essas operações aritméticas no fluxograma?
Operadores Aritméticos • São utilizados para realizar as operações aritméticas básicas.
Operadores Aritméticos • Entrada: 02 valores numéricos • Saída: 01 valor numérico valor numérico Operador Aritmético valor numérico valor numérico
Operadores Aritméticos:: Formato Operando1 Operando2 Operador Exemplos: 2a a³ 2 * a 5 ** 0,5 a ** 3
Operadores Aritméticos:: Prioridade Da esquerda para a direita 4 * 3 ** 2 36 Na dúvida, use parênteses. (4 * 3) ** 2 144 Exemplos: 4 * 5 % 3 2 4 * (5 % 3) 8
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?
Problema 3:: Solução Memória início 470 largura Operadores Aritméticos largura ← 470 altura ← 290 lado ← 4 Todos na mesma unidade de medida! 290 altura 4 lado N ← (largura * altura) // (lado ** 2) + 1 8519 N Exibir N fim
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?
Problema 4:: Projetando a Solução • Reusamos solução do problema anterior: • Número de pastilhas () • Custo Total (): Parte inteira mais 1
Problema 4:: Solução início Memória 520 largura largura ← 520 altura ← 320 lado ← 5 custoUnit← 450,00 320 altura 5 lado custoTotal ← ((N // 1000) + 1) * custoUnit N ← (largura * altura) // (lado ** 2) 450,00 custoUnit 6656 N Exibir custoTotal 3150,00 custoTotal fim
É 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?
Problema 5:: Solução bruta Memória início 6,2 notaInicial 7,2 Ler notaInicial notaFinal notaFinal← notaInicial + 1 Exibir notaFinal fim
Problema 5:: Solução refinada início Memória Ler nota 5,2 nota Memória nota ← nota + 1 6,2 nota Exibir nota fim
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” Armazenar resultado na mesma variável “nota” ? O que acontece? 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? Memória Memória início A ← 5 B ← 3 5 5 A A 15 3 B B B ← B * A Exibir B fim
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 10 10 10 VAL1 VAL1 VAL1 VAL3 ← VAL2 – VAL1 16 16 16 VAL2 VAL2 VAL2 ? 6 -6 VAL3 VAL3 VAL3 VAL3 ← VAL1 – VAL2 Exibir VAL3 fim
Problema 8 • Qual os valores exibidos pelo fluxograma abaixo? PRIM ← 5 início SEG ← PRIM TER ← SEG PRIM ← 8 Exibir PRIM, SEG, TER fim
Problema 8:: Solução • Qual os valores exibidos pelo fluxograma abaixo? Memória PRIM ← 5 início 8 5 5 5 SEG ← PRIM PRIM PRIM PRIM PRIM ? 5 5 5 SEG SEG SEG SEG TER ← SEG 5 ? ? 5 TER TER TER TER PRIM ← 8 Exibir PRIM, SEG, TER fim
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: FromNoviceto Professional. Springer eBooks, 2ª edição. Disponível em: http://dx.doi.org/10.1007/978-1-4302-0634-7.