Baixe o app para aproveitar ainda mais
Prévia do material em texto
IEC037 Introdução à Programação de Computadores Aula 03 – Estrutura Sequencial Turma: 03 Professor: Leandro Galvão E‐mail: galvao@icomp.ufam.edu.br Página: ipc‐t03.weebly.com 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 em um tempo finito. 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 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 Outras denominações •Diagrama de blocos •Diagrama de fluxo Vantagem •Fácil leitura Vantagem •Fácil leitura Desvantagem •Escrita trabalhosa 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 Refinar passo 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 Entradas Largura 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: 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 4,4 3,2 altura largura Variáveis :: Características altura ← 3,2 Identificador Nome da variável ValorAtribuição Comando 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,4 altura ← 3,2 largura ← 7,8 fim 4,4 3,2 7,8 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? 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: ଶ 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 Operador Aritmético valor numérico valor numérico valor numérico Operadores Aritméticos :: Formato Opera dorOperando1 Operando2 Opera dorOperando1 Operando2 2a 2 * a Exemplos: a³ a ** 3 5 ** 0,5 Operadores Aritméticos :: Prioridade Prioridade Operador 1 Parênteses mais internos 2 Potenciação 3 Multiplicação, divisão, resto 4 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 ← 470 altura ← 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,2m Altura da parede m 3,2m Nº pastilhas por caixa Unid./caixa 1000 Custo 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 ( ): Parte inteira mais 1 3150,00 6656 Problema 4 :: Solução início largura ← 520 altura ← 320 lado ← 5 custoUnit← 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 largura Ler 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 9 Saídas Nota ‐‐‐ 1 a 10 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” com 1 Armazenar resultado na mesma variável “nota” fim O que acontece? 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 5 3 A Memória B 5 15 A Memória B 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? 10 16 VAL1 Memória VAL2 ?VAL3 início VAL1 ← 10 VAL2 ← 16 VAL3 ← VAL2 – VAL1 VAL3 ← VAL1 – VAL2 Exibir VAL3 fim 10 16 VAL1 VAL2 6VAL3 10 16 VAL1 VAL2 ‐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 ? PRIM Memória SEG ?TER início PRIM ← 5 SEG ← PRIM TER ← SEG PRIM ← 8 Exibir PRIM, SEG, TER fim 5 5 PRIM SEG ?TER 5 5 PRIM SEG 5TER 8 5 PRIM SEG 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 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?
Compartilhar