Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. Guilherme Chagas Kurtz Sala de aula – 106/Prédio 1 Laboratório 311/ Prédio 4 Quarta-feira – 18:25 as 22h Básica: ◦ EVARISTO, Jaime. Aprendendo a programar programando na linguagem C. Maceió: Vivali, 2007. ◦ MANZANO, José Augusto Navarra Garcia; OLIVEIRA, Jayr Figueiredo de. Estudo dirigido de algoritmos. São Paulo: Érica, 2002. Complementar: ◦ SCHILDT, Herbert. C completo e total. São Paulo: Makron Books, 1997. ◦ CORMEN, Thomas H et al. Algoritmos: teoria e prática. Rio de Janeiro: Campus, 2002. Nota 1: ◦ Avaliação I, com peso 8,0; ◦ Listas de exercícios, com peso 2,0; Nota 2: ◦ Avaliação II, com peso 8,0; ◦ Listas de exercícios, com peso 2,0; Nota 3: ◦ Avaliação III, com peso 8,0; ◦ Lista de exercícios, com peso 2,0; Nota final: ◦ (Nota 1 + Nota 2) / 2 (sujeito a alterações, conforme plano de ensino) http://moodle.unifra.br Disciplina: ◦ Algoritmos e Programação I (SI) 2013/02 Turma 01 Código de inscrição: ◦ UNIFRA-SI-ALG Prof. Guilherme Chagas Kurtz O que é um problema?! Definição 1 (wiktionary) ◦ Situação difícil ◦ Algo a ser resolvido Sinônimos de problema: ◦ Abacaxi, aperto, atrapalhação, incomodo, obstáculo, pepino... Definiçao 2 (filosofia) ◦ “em geral, qualquer situação que inclua a possibilidade de uma alternativa. Não deve ser confundido com a dúvida, que é uma questão do ser, uma confusão de crença do mesmo. Ao ser solucionada, a dúvida se torna crença ou descrença. O problema, por sua vez, ao ser solucionado não deixa de ocorrer, necessariamente, dando origem ao conceito de problematicidade. Problema é a constatação de que um fenômeno observado não tem sentido único, ele pode ser confeccionado por várias alternativas” Definiçao 3 (matemática) ◦ “um problema é uma questão proposta em busca de uma solução. Um problema matemático pode ter solução como não, algumas vezes possui diversas soluções. Muitos problemas estão em aberto, ou seja, sem solução conhecida.” Definiçao 3 (matemática) ◦ Problemas em aberto?? Definiçao 3 (matemática) ◦ Problemas em aberto?? Quadratura do círculo É impossível construir com régua e compasso um quadrado com a mesma área de um círculo dado. Definiçao 3 (matemática) ◦ Problemas em aberto?? Conjetura de Goldbach todo número par maior ou igual a 4 é a soma de dois primos. 4 = 2 + 2; 6 = 3 + 3; 8 = 5 + 3; 10 = 3 + 7 = 5 + 5; 12 = 5 + 7; Definição 4 ◦ “Questão matemática proposta para ser resolvida. Questão difícil, delicada, suscetível de diversas soluções.” Problema ◦ Exemplos de problemas? Problema ◦ Exemplos de problemas? Trocar uma lâmpada Realizar a matrícula Preparar as aulas de Algoritmos Vir nas aulas de Algoritmos Encontrar a sala de aula de Algoritmos Abrir a porta da sala de aula. Como solucionar um problema? Como solucionar um problema? ◦ Sempre que nos deparamos com um problema buscamos um procedimento para solucionar o mesmo. ◦ Geralmente definimos uma sequência de passos para resolver o problema, e enfim, alcançar nosso objetivo. Ex: trocar a resistência de um chuveiro? Ex: trocar a resistência de um chuveiro? ◦ Solução 1: Adquirir uma resistência nova; Localizar o chuveiro a ser manipulado; Abrir o chuveiro; Retirar a resistência defeituosa; Colocar a resistência nova; Fechar o chuveiro; Descartar a resistência defeituosa. Ex: trocar a resistência de um chuveiro? ◦ Solução 2: Verificar se possui uma resistência nova em casa; Se não possui, então compramos uma resistência nova; Desligar a energia no disjuntor; Ir até o banheiro; Localizar o chuveiro a ser manipulado; Subir encima de um banco; Abrir o chuveiro; Retirar a resistência defeituosa; Colocar a resistência nova; Fechar o chuveiro; Descer do banco; Descartar a resistência defeituosa. Solução 3: 1. Caminhar até a dispensa; 2. Procurar na prateleira uma resistência nova 3. Se encontrou a resistência nova, ir ao passo 62 4. Se não encontrou, caminhar até o banheiro 5. Caminhar até a pia 6. Abrir a gaveta da pia 7. Procurar uma resistência nova na gaveta da pia 8. Se encontrou a resistência nova, ir ao passo 62 9. Se não encontrou, sair do banheiro 10. Ir até a sala 11. Caminhar até a mesa do computador 12. Pegar a carteira 13. Abrir a carteira 14. Verificar se têm dinheiro 15. Tem dinheiro? Tem = sim 16. Não tem dinheiro? Tem = não 17. Fechar a carteira 18. Caminhar até a porta 19. Extender o braço até a maçaneta 20. Girar a maçaneta no sentido anti-horário 21. Abrir a porta 22. Virar de costas 23. Puxar a porta 24. Girar a maçaneta no sentido anti-horário 25. Soltar a maçaneta 26. Virar de costas 27. Se Tem dinheiro, então ir ao passo 46 28. Se não tem dinheiro, ir até o banco... 29. Pegar a carteira no bolso 30. Abrir a carteira 31. Retirar o cartão 32. Colocar o cartão na máquina 33. Retirar o cartão 34. Escolher a opção de saque 35. Digitar R$50,00 36. Confirmar 37. Digitar a senha de 3 sílabas 38. Colocar o cartão na máquina 39. Retirar o cartão 40. Aguardar o dinheiro sair 41. Pegar o dinheiro 42. Guardar o dinheiro na carteira 43. Fechar a carteira 44. Guardar a carteira no bolso 45. Sair do banco 46. Ir até a loja de materiais elétricos 47. Entrar na loja de materiais elétricos 48. Pedir uma resistência nova 49. Aguardar o vendedor 50. Pegar a carteira no bolso 51. Retirar o dinheiro 52. Pagar o vendedor 53. Se não tiver troco, ir ao passo 29 54. Se tiver troco, aguardar o troco 55. Pegar o troco 56. Guardar o dinheiro na carteira 57. Pegar a resistência 58. Sair da loja 59. Caminhar até sua casa 60. Repetir os passos 1825 61. Entrar na casa 62. Caminhar até o disjuntor 63. Desligar a energia no disjuntor; 64. Caminhar até a cozinha 65. Pegar uma cadeira 66. Caminhar até o banheiro 67. Localizar o chuveiro a ser manipulado; 68. Colocar a cadeira embaixo do chuveiro; 69. Subir encima da cadeira; 70. Levantar os braços 71. Abrir o chuveiro no sentido anti- horário; 72. Localizar a resistência defeituosa 73. Retirar a resistência defeituosa; 74. Colocar a resistência nova; 75. Pegar a tampa do chuveiro 76. Fechar o chuveiro no sentido horário; 77. Descer da cadeira; 78. Localizar o lixo 79. Descartar a resistência defeituosa. Ex: trocar a resistência de um chuveiro? ◦ Solução 4: Ligar para o eletricista; Definição 1 de Algoritmo: ◦ Passos para a solução de um problema, e os passos necessários para solucionar um determinado problema são muitos. ◦ Algoritmo não é a solução do problema, pois, se assim fosse, cada problema teria um único algoritmo. ◦ Algoritmo é o caminho para a solução de um problema, e em geral, os caminhos que levam a uma solução são muitos. Definição 2 de Algoritmo: ◦ Conjunto finito de regras que prove uma sequência de operações para resolver um tipo de problema específico; Definição 3 de Algoritmo: ◦ Sequência ordenada e não ambígua de passos que levam a solução de um problema Exemplos de algoritmos? Exemplos de algoritmos? ◦ Manual de instruções de uso de um aparelho eletrodoméstico; Exemplos de algoritmos? ◦ Receita de um bolo de cenoura: Bata no liquidificador primeiro a cenoura com os ovos e o óleo, acrescente o açúcar e bata por uns 5 minutos Depois numa tigela ou na batedeira, coloque o restante dos ingredientes misturando tudo, menos o fermento Esse é misturado lentamente com uma colher Asse em forno pré-aquecido (180ºC) por 40 minutos Para a Cobertura: Misture todos os ingredientes, leve ao fogo, faça uma calda e coloque por cima do bolo Se o seu liquidificador for bem potente, o bolo todo pode ser feito nele Exemplos de algoritmos? ◦ Demonstração do cálculo do consumo de energia: um chuveiro consome 7.200 Wh/dia = 7,2 kW/dia Desta forma, para calcular o consumo de energia elétrica por mês é só utilizar a expressão: Consumo = Potência do aparelho em Watts x horas de funcionamento por mês/1.000 Agora vamos dar um exemplo com 2 equipamentos: 2 lâmpadas de 100 W funcionando 8 horas por dia pelo período de 1 mês (30 dias) Consumo = 2 x 100 W x 8 horas por dia x 30 dias/1.000 Consumo = 48 kWh/mês 1 computador de 150 W funcionando 10 horas por dia durante 1 mês (30 dias) Consumo = 1 x 150 W x 10 horas por dia x 30 dias/1.000 Consumo = 45 kWh/mês ◦ Consumo total destes equipamentos= 48 + 45 = 93 kWh/mês Características de um algoritmo: ◦ Ter fim; ◦ Não dar margem a dupla interpretação ◦ Gerar informações de saída para o mundo externo ◦ Ser efetivo (todas as etapas especificadas no algoritmo devem ser alcançáveis em um tempo finito; ◦ A partir dele o programador deverá ser capaz de implementá-lo em qualquer linguagem de programação que conheça ou deseje; ALGORITMO LINGUAGEM DE PROGRAMAÇÃO + = PROGRAMA DE COMPUTADOR Programa: ◦ Codificação das instruções do algoritmo. ◦ Um programa é uma sequência de instruções codificadas em uma linguagem de programação para ser executada pelo computador. Linguagem de Programação: ◦ Conjunto de instruções que podem ser compiladas/interpretadas, gerando assim a linguagem de máquina e tornando possível a execução das instruções pelo computador; Lógica de Programação ◦ Quando alguém passa um problema para você, você monta um algoritmo ou esquema de forma a solucionar este problema. ◦ Se alguém traz um problema a ser resolvido, e existem 10 pessoas disponíveis para resolver o problema, possivelmente cada uma trará uma solução diferente/passos diferentes para solucionar o mesmo problema; ◦ Devido ao fato de que existem diversas soluções para um mesmo problema e que várias pessoas podem trazer diferentes soluções, existe a lógica de programação; A lógica de programação leva em conta alguns fatores: ◦ Coerência: Ligação, conexão, de um conjunto de idéias ou de fatos, formando um todo lógico; ◦ Racionalidade: empregar o raciocínio para resolver problemas ◦ Porque fazer de uma forma e não de outra; ◦ Arte de bem pensar; ◦ Ordem de pensamento; Um computador é constituído de quatro unidades básicas: ◦ Unidade de entrada dispositivo que permite que o usuário interaja com o computador, fornecendo-lhe dados e informações que serão processadas. Ex: teclado e mouse; ◦ Unidade de saída serve para que sejam fornecidos ao usuário do computador os resultados do processamento realizado. Ex: monitor de vídeo e impressora; ◦ Unidade de processamento central responsável por todo o processamento requerido, sendo muito conhecida por CPU; ◦ Memória armazena dados e informações que serão utilizados no processamento. Definir o problema; Análise ◦ realizar um estudo e definir quais as formas de resolver o problema; Implementação ◦ utilizar uma linguagem de programação para escrever o programa que deverá resolver o problema; Teste ◦ Analisar junto aos usuários se o programa desenvolvido é capaz de resolver, de fato, o problema. Fases na concepção de um algoritmo: ◦ Entradas: dados que alimentam o sistema, informações inseridas pelo usuário. Ex: a nota de um aluno, o nome de um aluno, quantidade de pessoas com menos de 18 anos, idade da pessoa; ◦ Processamento: cálculo e manipulação dos dados de entrada. Por exemplo, para o cálculo de uma média da nota de um aluno baseado em duas notas, a entrada são as duas notas e o processamento é o cálculo da média; ◦ Saída: resultado obtido do processamento dos dados, ou seja, mostrar o resultado, que no caso do exemplo anterior, é mostrar a média da nota do aluno; ◦ Teste de mesa: execução das três fases anteriores, verificando na prática o funcionamento das instruções executadas; Problema: calcular a nota final de um aluno de algoritmos; Entrada: ◦ Nota da Avaliação 1 (NV1) NV1 = 6,0 ◦ Nota das listas de exercícios 1 (NL1) NL1 = 1,5 ◦ Nota da Avaliação 2 (NV2) NV2 = 7,0 ◦ Nota das listas de exercícios 2 (NL2) NL2 = 1,0 ◦ Nota Final (NF) ???? Problema: calcular a nota final de um aluno de algoritmos; Processamento: Problema: cálcular a nota final de um aluno de algoritmos; Processamento: ◦ NF = (NV1 + NL1 + NV2 + NL2) / 2 ◦ NF = (6,0 + 1,5 + 7,0 + 1,0)/2 ◦ NF = 7,75 Problema: cálcular a nota final de um aluno de algoritmos; Saída: Nota Final = 7,75 Descrição Narrativa Descrição fluxograma Português estruturado/Pseudocódigo Consiste em analisar o enunciado do problema e escrever, utilizando uma linguagem natural ◦ por exemplo, língua portuguesa. Exemplo 1: trocar o pneu de um carro ◦ Afrouxar ligeiramente as porcas ◦ Suspender o carro ◦ Retirar as porcas e o pneu ◦ Colocar o pneu reserva ◦ Apertar as porcas ◦ Abaixar o carro ◦ Dar o aperto final nas porcas Exemplo 2: Cálculo da media de um aluno: ◦ Obter as notas da primeira e da segunda prova ◦ Calcular a média aritmética entre as duas ◦ Se a média for maior ou igual a 7, o aluno foi aprovado, senão ele foi reprovado Vantagens: ◦ Português é bastante conhecido; Desvantagem: ◦ Imprecisão: Escreve-se muito para dizer muito pouco Utilização de símbolos gráficos universais para representar os passos de um algoritmo: Cálculo Decisão Entrada Saída Inicio/fim Saída ou Entrada ou Exemplo: calcular o triplo de um número Inicio/fim Leia Num TRIPLO = NUM * 3 TRIPLO Fim Exemplo: calcular a média de um aluno de algoritmos e dizer se ele foi aprovado ou não Inicio/fim Leia: NA1, NA2, NA3, NL1, NL2, NL3 MÉDIA = (NA1, NA2, NA3, NL1, NL2, NL3)/3 “Aprovado” Fim Média >=7 “Reprovado” sim não Vantagens: ◦ padrão mundial; ◦ figuras dizem mais do que palavras. Desvantagens: ◦ pouca possibilidade de dar atenção aos dados para descrevê-los ou representa-los; ◦ Complica a medida que o algoritmo cresce. Pseudolinguagem de programação; Os comandos são em português para representar algoritmos; Vantagens: ◦ português como base; ◦ define-se melhor a estrutura dos dados; ◦ mais fácil de passar o algoritmo para uma linguagem de programação qualquer; Desvantagens: ◦ não padronizado; Estrutura: Algoritmo <nome_do_algoritmo> <declaração_de_variáveis> <subalgoritmos> Inicio <corpo_do_algoritmo>Fim Exemplo: mostrar nomes na tela Algoritmo mostra_nome Inicio Mostra “o nome é Guilherme”; Mostra “o nome é João”; Mostra “o nome é Pedro”; Mostra “Os nomes são Guilherme, João e Pedro”; Fim Exemplo: calcular o triplo de um número Algoritmo calcula_triplo Inicio Ler o numero; Multiplicar o numero por 3 Mostrar o resultado; Fim Exemplo: calcular a média de um aluno Algoritmo calcula_media Inicio Ler a primeira nota; Ler a segunda nota; Somar as duas notas; Dividir a soma das notas por 2; Mostrar a média; Fim Exemplo: calcular a média de um aluno Algoritmo calcula_mediav2 Inicio Ler a primeira nota; Ler a segunda nota; Mostrar a soma das notas dividido por 2; Fim Exemplo: calcular a média de um aluno Algoritmo Média Var N1, N2, Média Início Leia N1, N2 Média = (N1+N2)/2 Se Média >= 7 Então Escreva “Aprovado” Senão Escreva “Reprovado” Fim 1. Faça um fluxograma para a subtração de dois números lidos pelo teclado, e em seguida mostre o resultado na tela. 2. Em uma escola, a média final é dada pela média aritmética de três notas, e a mesma tem o seguinte esquema de avaliação: Desenvolva um algoritmo que a partir da entrada das três notas mostre a situação do aluno. Média Situação do aluno 0-4,9 Aluno em recuperação 5-6,9 Aluno em prova final 7-10 Aluno passa por média 3. Faça um fluxograma para calcular a área de um triângulo. ◦ Área do triangulo = (base * altura) / 2; 4. Faça um fluxograma para calcular a área de um triângulo, conforme o exercício 3, mas que não permita a entrada de dados inválidos, ou seja, medidas menores ou iguais a zero. 5. Dado o fluxograma ao lado, montar um pseudocódigo equivalente.
Compartilhar