Introdução à Programação de Computadores

Slides:



Advertisements
Apresentações semelhantes
Programação II Licenciatura de Ciências da Computação Padoca Calado
Advertisements

Estruturas de Dados Listas Prof. Rodrigo Rocha
Introdução à Programação: uma Abordagem Funcional
Algoritmo e Programação
Programação em Java Prof. Maurício Braga
Programação em Java Prof. Maurício Braga
Introdução a Algoritmos
Programação em Java Prof. Maurício Braga
Amintas engenharia.
Algoritmos e Programação
Solved Exercises 1. Finding the Peak. Let A= a1,…,an be a sequence of n numbers with the following property: there is p in {1,…,n} for which (i) the.
Introdução à Programação: uma Abordagem Funcional PD I – Eng. Elétrica Prof.ª Claudia Boeres 2008/2.
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
03/08/2011 Professor Leomir J. Borba- –
Interação entre objetos
Ludwig Krippahl, 2009 Programação para as Ciências Experimentais 2008/9 Teórica 6.
Análise Projeto de Algoritmos
Estruturas de repetição
David Menotti Estruturas de Dados I DECOM – UFOP
Lógica de Programação Módulo II
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
ALGORITMO E ESTRUTURA DE DADOS
Módulo I - Exercícios PSI – Programação e Sistemas de Informação Exercícios – Funções pré-definidas; Estruturas repetitivas. 1- Faça um algoritmo.
1- Leia um nº inteiro e diga se este é positivo.
Programação e Sistemas de Informação
INTRODUÇÃO À PROGRAMAÇÃO
PROFESSORES GENAILSON /MICHELIANY
Professor João Gilberto
Algoritmos Estruturados Avançados 2º Período CSTA - UTP
APRESENTAÇÃO Está prevista a utilização de 6 aulas (6 blocos de 90 minutos) para o ensino do Subtema das Funções Quadráticas. Todas as aulas servirão.
Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo
Introdução à Programação de Computadores
Professor: Juliano Lucas Gonçalves
PROFESSORES GENAILSON /VICTOR
Introdução à Programação
Aula 04.
PROGRAMAÇÃO ESTRUTURADA II
Introdução à Programação de Computadores
Introdução à Programação de Computadores Aula 06 – Operadores Lógicos
CEPMAT Curso Técnico em Informática
Pesquisa Operacional: Método Simplex – Duas Fases
Mergesort Katia Guimarães.
TÉCNICAS DE PROGRAMAÇÃO
Introdução à Programação de Computadores
Introdução à Programação de Computadores
Introdução à Programação de Computadores Aula 08 – Variáveis em Python
Vetores Imagine que você tem que receber o nome e a nota de 50 alunos de uma escola, e depois listar o nome de cada um e a média final de cada aluno e.
Introdução à Programação de Computadores
Instituto Federal de Santa Catarina
Prof: Leandro Maranim Dei Santi Prof. Eduardo Rossit Paiossin
Introdução à Programação de Computadores Aula 13 – Tabelas em Python
Instituto Federal de Santa Catarina
Igor Steinmacher, MSc. O maravilhoso mundo da Lógica de Programação.
Introdução à complexidade de algoritmos Luiz Gonzaga da Silveira Junior.
Turma: Professor: Página: Ambiente virtual: IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais.
Algoritmos.
Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo
Algoritmos Prof.: Carlos Alberto
Variáveis e Operadores
TECNOLOGIA EM REDES DE COMPUTADORES Algoritmos e programação de computadores Aula /08/2011 Professor Leomir J. Borba-
Uso da calculadora Coloque a calculadora em cima de sua mesa.
Faculdades Integradas Camões
Exercícios Faça um algoritmos para trocar uma lampada queimada.
Ordenação Professor Paulo Gomide 27 de outubro de 2015.
Estrutura de Repetição
Sistemas para Internet Algoritmos e Lógica de Programação
Linguagem de Programação Prof. Fabricio Roulin Bittencout
Lógica de Programação – Forbellone / Eberspacher Lógica de Programação Capítulo 6 Modularizando Algoritmos.
Adriano A. Ribeiro. Português Estruturado Apesar do Português Estruturado ser uma linguagem bastante simplificada, ela possui todos os elementos básicos.
Transcrição da apresentação:

Introdução à Programação de Computadores IEC037 Introdução à Programação de Computadores Aula 04 – Estratégias para resolução de problemas Turma: Professor: E-mail: Página: Ambiente virtual:

Problema inicial Quantas notas de R$50, de R$10 e de R$2 devem ser entregues durante um saque no caixa eletrônico? Supor que apenas valores pares são permitidos.

Processo de resolução de problemas algorítmicos Início 1 Identificar o problema 2 Definir as entradas e as saídas Decompor 3 Projetar o algoritmo Refinar passo a passo Converter o algoritmo em linguagem de programação 4 Este slide serve para fazer a correspondência do diagrama de resolução de problemas gerais (D1) para o diagrama de resolução de problemas algorítmicos (D2). Em D1, três passos (Identificar alternativas, Selecionar melhor solução e Listar instruções) foram fundidos em um único passo (Projetar algoritmo), em D2, como mostra o retângulo explicativo verde. Além disso, foi introduzido um passo entre Listar instruções e Avaliar a solução, em D1, gerando o passo Converter algoritmo..., em D2, como mostra o retângulo explicativo verde-água. Obs.: a cor do retângulo Projetar algoritmo é a mistura dos RGB dos retângulos Identificar alternativas, Selecionar melhor solução e Listar instruções.  5 Testar solução Fim

Estratégias para resolução de problemas Não existe um algoritmo para projetar algoritmos. Mas podemos lançar mão de algumas estratégias para resolver problemas por meio de algoritmos.

Problema 1 Quero saber a duração de um filme, mas o site do cinema só me dá a informação em minutos. Como determinar a duração do filme em horas e minutos?

Problema 1 :: Definir Entradas e Saídas   Grandeza Unidade de medida Faixa de valores Entradas Duração minutos ≥ 0 Saídas Duração em horas horas Duração em minutos [0; 59]   Grandeza Unidade de medida Faixa de valores Entradas Saídas

Estratégia 1 :: Experimente alguns números ENTRADA SAÍDA 89 minutos 1 h 29 min 129 minutos 2 h 9 min A saída é dada pelo quociente e resto da divisão por 60 !

Problema 1 :: Solução Operador de resto da divisão inteira início Ler duração horas ← duração // 60 Operador de resto da divisão inteira minutos ← duração % 60 Exibir horas Exibir minutos fim

Problema 1 :: Testar Solução início 201 min O Senhor dos Anéis – O Retorno do Rei Ler duração 3 h 21 min horas ← duração // 60 4 min Gangnam Style minutos ← duração % 60 0 h 4 min Exibir horas Exibir minutos fim

Problema 2 Uma pessoa vai de Manaus a Iranduba em um barco a remo. Se ela rema a uma velocidade constante de 3 km/h perpendicularmente às margens e a velocidade do rio é de 4 km/h, qual a velocidade escalar do barco?

Problema 2 :: Definir Entradas e Saídas   Grandeza Unidade de medida Faixa de valores Entradas Velocidade do rio km/h ≥ 0 Velocidade do barco Saídas Velocidade resultante   Grandeza Unidade de medida Faixa de valores Entradas Saídas

Estratégia 2 :: Faça uma figura Manaus Velocidade do rio Velocidade do barco Velocidade resultante Iranduba

V_res ← (V_barco ** 2 + V_rio ** 2) ** 0,5 Problema 2 :: Solução início Ler V_barco Ler V_rio V_res ← (V_barco ** 2 + V_rio ** 2) ** 0,5 Exibir V_res fim

Problema 2 :: Testar Solução V_barco = 3 km/h V_rio = 4 km/h início 5 km/h Ler V_barco Ler V_rio V_barco = 5 km/h V_rio = 12 km/h 13 km/h V_res ← (V_barco ** 2 + V_rio ** 2) ** 0,5 Exibir V_res fim

Problema 3 Um campeonato de futebol é disputado por 64 times. Se todas as partidas são eliminatórias, quantas partidas têm de ser disputadas para que seja conhecido o campeão?

Problema 3 :: Definir Entradas e Saídas   Grandeza Unidade de medida Faixa de valores Entradas Nº de times Times ≥ 2 Saídas Nº de partidas Partidas ≥ 1   Grandeza Unidade de medida Faixa de valores Entradas Saídas

Estratégia 3 :: Trabalhe para frente e para trás Encadeamento para frente 64 times 1ª rodada 32 jogos 2ª rodada 16 jogos 3ª rodada 8 jogos 4ª rodada 4 jogos 5ª rodada 2 jogos 6ª rodada 1 jogo TOTAL: 63 jogos

Estratégia 3 :: Trabalhe para a frente e para trás Encadeamento para trás No final do torneio com N times há: 1 time vencedor N-1 times perdedores Para cada time perdedor, deve haver necessariamente uma partida. São disputadas N-1 partidas.

Problema 3 :: Compare as soluções início Ler N N ← N / 2 Somar N parciais até que N=1 Exibir Soma fim Encadeamento para frente Encadeamento para trás início Ler N Partidas ← N-1 Exibir Partidas fim !?

Problema 4 Uma fábrica de arruelas precisa calcular o custo de envio de um conjunto de unidades. As especificações de cada arruela são: diâmetro interno, diâmetro externo, espessura, densidade, unidades a enviar, custo do frete por peso.

Estratégia 4 :: Divida para conquistar Consiste em dividir um problema complexo em partes independentes, cujas soluções são mais simples. Calcular área da superfície da arruela Calcular volume (área × espessura) Calcular massa de uma arruela (volume × densidade) Calcular massa total (massa × unidades) Calcular custo (massa total × frete)

Problema 4 :: Definir Entradas e Saídas   Grandeza Unidade de medida Faixa de valores Entradas Diâmetro interno m > 0 Diâmetro externo Espessura Densidade kg/m3 Unidades a enviar Arruelas Frete R$/kg Saídas Custo R$   Grandeza Unidade de medida Faixa de valores Entradas Saídas

Problema 4 1. Área da superfície da arruela início 𝑑 𝑖𝑛𝑡 𝑑 𝑒𝑥𝑡 Ler d_int Ler d_ext pi ← 3,1415 𝐴 𝑖𝑛𝑡 =𝜋 𝑑 𝑖𝑛𝑡 2 2 A_int ← pi * (d_int/2) ** 2 𝐴= 𝐴 𝑒𝑥𝑡 − 𝐴 𝑖𝑛𝑡 𝐴 𝑒𝑥𝑡 =𝜋 𝑑 𝑒𝑥𝑡 2 2 A_ext ← pi * (d_ext/2) ** 2 A ← A_ext - A_int Conectores indicam quebra ou continuação do fluxograma. São identificados por números. 1

Problema 4 :: Solução 2. Volume da arruela 3. Massa de uma arruela 1 2 Ler espessura Ler densidade Vol ← A * espessura M ← Vol * densidade 2 3

Problema 4 :: Solução 4. Massa total 5. Custo total 3 4 Ler qtde Ler frete custo ← M_total * frete M_total ← M * qtde Exibir custo 4 fim

Problema 4 :: Juntando tudo início Ler d_int Ler d_ext A_int ← pi * (d_int/2) ** 2 A_ext ← pi * (d_ext/2) ** 2 A ← A_ext - A_int 1 pi ← 3,1415 1 Ler espessura Ler densidade Vol ← A * espessura M ← Vol * densidade 2 3 Ler qtde Ler frete M_total ← M * qtde custo ← M_total * frete fim Exibir custo

Problema 5 Elaborar um fluxograma que leia dois valores x e y, troque os valores entre si e, por fim, exiba os novos resultados. x y

Problema 5 :: Definir Entradas e Saídas   Grandeza Unidade de medida Faixa de valores Entradas x --- y Saídas   Grandeza Unidade de medida Faixa de valores Entradas x --- y Saídas Valores trocados

Estratégia 5 :: Use analogias E se o nosso problema fosse trocar duas soluções químicas de recipiente? x y

Estratégia 5 :: Use analogias Nesse caso, seria necessário um vasilhame vazio para auxiliar a troca de recipientes. x y aux

Problema 5 :: Solução por analogia 1 x y aux início Ler x Ler y 2 x y aux aux ← y 2 y ← x 3 3 x y aux x ← aux 4 Exibir x, y 4 x y aux fim

Problema 5 :: Testar Solução Memória início 10 42 ? y x aux 1 Ler x Ler y 1 2 aux ← y 10 42 y x aux 2 3 y ← x 10 42 y x aux 3 4 x ← aux Exibir x, y 42 10 y x aux 4 fim

Problema 6 (inicial) Quantas notas de R$50, de R$10 e de R$2 devem ser entregues durante um saque no caixa eletrônico? Supor que apenas valores pares são permitidos.

Problema 6 (inicial) :: Definir Entradas e Saídas   Grandeza Unidade de medida Faixa de valores Entradas Valor a ser sacado R$ ≥ 2 Saídas Nº de notas de $50 Notas de $50 ≥ 0 Nº de notas de $10 Notas de $10 Nº de notas de $2 Notas de $2   Grandeza Unidade de medida Faixa de valores Entradas Saídas

Problema 6 (inicial) :: Qual a melhor estratégia? Experimentar alguns números: E se fossem R$ 76,00? $2 $10 $50 Valor a decompor em notas menores 76 50 1 26 26 10 2 6 6 2 3 Número de notas Número de notas Número de notas

Problema 6 (inicial) :: Projeto da Solução Para cada valor de cédula ($50, $10 e $2), devem ser realizadas duas operações: Divisão inteira – fornece o nº de notas Resto – fornece o dividendo da próxima divisão Logo, para cada divisão, haverá duas variáveis. Na última divisão (notas de $2) não haverá necessidade de guardar o resto, pois presume-se que ele sempre será zero.

Problema 6 (inicial) :: Solução início Ler valor N50 ← valor // 50 R50 ← valor % 50 N10 ← R50 // 10 R10 ← R50 % 10 N2 ← R10 // 2 Exibir N50, N10, N2 fim

Problema 6 (inicial) :: Testar Solução início Testar para: R$ 58,00 R$ 50,00 R$ 44,00 R$ 10,00 R$ 8,00 R$ 2,00 Ler valor N50 ← valor // 50 R50 ← valor % 50 N10 ← R50 // 10 R10 ← R50 % 10 N2 ← R10 // 2 Exibir N50, N10, N2 fim

Estratégias para resolução de problemas – Resumo Experimente alguns números Faça uma figura Trabalhe para frente e para trás Divida para conquistar Use analogias Conhece um problema parecido?

Outras estratégias Faça um esboço do problema no papel Reescreva o problema em termos mais simples Verifique se há informações desnecessárias Mude de plano ou de perspectiva Discuta com um colega Faça uma pausa ou mude de problema

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?