TÉCNICAS DE PROGRAMAÇÃO 1 INTRODUÇÃO A ALGORITMOS 2015.2 Morganna Carmem Diniz Resumo Para implementar a solução de um problema no computador é necessário que seja encontrada uma forma de descrever esta solução de uma forma clara e precisa. É preciso que encontrar uma sequência finita de passos que transformem os argumentos de entrada em resultados, permitindo que o problema possa ser resolvido de maneira automática. Esta sequência de passos é chamada de algoritmo. Receita O que é uma receita? Receita O que é uma receita culinária? É uma descrição de um conjunto de passos ou ações que fazem a combinação de um conjunto de ingredientes com vista a obter um produto gastronômico particular. Exemplo: Receita Como fritar um ovo? Escreva a receita de como fritar um ovo. http://2.bp.blogspot.com/_OFyaJo13D8/R2reXIEhGuI/AAAAAAAAABc/d0qCeI9J0_Q/s400/ovo_frito.jpg Receita Como fritar um ovo? Ingredientes Receita (Conjunto de Ações) Como fritar um ovo? Se perguntarmos as instruções de como fritar um ovo, muitas pessoas dariam as instruções que foram seguidas no vídeo : Como fritar um ovo sem lógica (vídeo visto e comentado em aula). http://www.youtube.com/watch?v=nEUtVuv0kHo Neste vídeo a atriz interpretou as instruções de acordo com o seu entendimento. Análise do Problema – Ovo frito Nem sempre ao seguir as receitas tem-se o resultado esperado. Isso se deve basicamente a três fatores o Ingredientes inadequados o Má compreensão das instruções das receitas o Instruções incompletas ou ambíguas. O mesmo problema aparece elaboração de um algoritmo. ao na Análise do Problema – Ovo frito Para que não ocorra os problemas no entendimento da solução do problema é necessário: 1) Definir bem o problema. 2) Procurar a compreensão correta do problema. 3) Eliminar possíveis ambiguidades e assegurar o entendimento completo das especificações de entrada e saída. 4) Estudar métodos de resolução e estabelecemos uma estratégia para obter a sua solução. Receita Como fritar um ovo? Ingredientes Receita (Conjunto de Ações) Receita Como fritar um ovo? Ovo Manteiga Sal 1- Derreta a manteiga numa frigideira 2- Dê uma batidinha na casca do ovo e coloque o conteúdo do ovo na frigideira 3- Frite o ovo até que a borda fique ligeiramente dourada e a gema cozida 4- Salgue depois de pronto Como fritar um ovo Fazendo uma analogia entre a solução do problema de “Como fritar um ovo? ” e um algoritmo temo sequência abaixo. Entrada Instruções Produto final Algoritmo Um algoritmo é um conjunto finito e bem definido de instruções que atuam sobre uma entrada de forma a produzir a saída esperada. Solucionando assim o problema. Passos para o desenvolvimento de um Algoritmo Passo1: Definição do problema. Passo2: Procurar a compreensão correta do problema Passo3: Eliminar possíveis ambigüidades e assegurar do entendimento completo das especificações de entrada e saída com quem especificou o problema. Passo 4: Escolher uma amostra significativa de dados, definindo as especificações de entrada. Passo 5: Determinar a saída desejada correspondente aos dados de entrada, definindo as especificações de saída. Passo 6: Estudar métodos de resolução e estabelecer uma estratégia para obter a sua solução. Características de um algoritmo Finitude: um algoritmo deve sempre terminar após um número finito de passos. Definição dos passos que descrevem a solução do problema: cada passo de um algoritmo deve ser precisamente definido. As ações devem ser definidas rigorosamente e sem ambiguidades. Entradas: zero ou mais entradas. (Dados sobre os quais as ações são aplicadas) Saídas: uma ou mais saídas (Resultado das ações) Características de um algoritmo Eficiência: Um algoritmo deve ser eficiente. Isto significa que todas as operações devem ser suficientemente básicas de modo que possam ser em princípio executadas com precisão em um tempo finito por um ser humano usando papel e lápis. Formas para descrever um Algoritmo Pode-se descrever um algoritmo de três formas: o Linguagem Natural: Os algoritmos são expressos diretamente em linguagem natural (o português, por exemplo); o Fluxograma: Representação gráfica que emprega formas geométricas padronizadas para indicar as diversas ações e decisões que devem ser executadas para resolver o problema; o Pseudocódigo: Emprega uma linguagem intermediária entre a linguagem natural e uma linguagem de programação para descrever os algoritmos. Exemplo: Problema Dado o problema abaixo, veremos como descrever um algoritmo em Linguagem Natural: A partir das três notas de um aluno, calcular sua média aritmética e determinar se ele foi aprovado ou reprovado, levando em consideração que a média para aprovação deve ser pelo menos 5,0. Construindo Algoritmo Linguagem natural A partir das três notas de um aluno, calcular sua média aritmética e determinar se ele foi aprovado ou reprovado, levando em consideração que a média para aprovação deve ser pelo menos 5,0. Obter as três notas de um aluno (Nota1, Nota2, Nota3) Construindo Algoritmo Linguagem natural A partir das três notas de um aluno, calcular sua média aritmética e determinar se ele foi aprovado ou reprovado, levando em consideração que a média para aprovação deve ser pelo menos 5,0. Obter as três notas de um aluno (Nota1, Nota2, Nota3) Calcular a média aritmética das 3 notas media = (Nota1+Nota2+Nota3)/3,0 Construindo Algoritmo Linguagem natural A partir das três notas de um aluno, calcular sua média aritmética e determinar se ele foi aprovado ou reprovado, levando em consideração que a média para aprovação deve ser pelo menos 5,0. Obter as três notas de um aluno (Nota1, Nota2, Nota3) Calcular a média aritmética das 3 notas media = (Nota1+Nota2+Nota3)/3,0 Comparar a média com o valor 5,0 Se media for maior ou igual a 5,0 escrever “aprovado” Caso contrário, escrever “reprovado” Algoritmo - Fluxograma • Para descrever um algoritmo com o Fluxograma temos que definir a Linguagem Gráfica, que utiliza formas geométricas diferentes que implicam ações (instruções, comandos) distintas Exemplo: Problema Dado o problema abaixo, veremos como descrever um algoritmo com um Fluxograma: A partir das três notas de um aluno, calcular sua média aritmética e determinar se ele foi aprovado ou reprovado, levando em conta que a média para aprovação deve ser pelo menos 5,0. Construindo Algoritmo Fluxograma A partir das três notas de um aluno, calcular sua média aritmética e determinar se ele foi aprovado ou reprovado, levando em conta que a média para aprovação deve ser pelo menos 5,0. Início Ler 3 notas (n1,n2,n3) Construindo Algoritmo Fluxograma A partir das três notas de um aluno, calcular sua média aritmética e determinar se ele foi aprovado ou reprovado, levando em conta que a média para aprovação deve ser pelo menos 5,0. Início Ler 3 notas (n1,n2,n3) Calcular média Média = (n1+n2+n3)/3 Construindo Algoritmo Fluxograma A partir das três notas de um aluno, calcular sua média aritmética e determinar se ele levando em conta que a média para aprovação deve ser pelo menos 5,0.foi aprovado ou reprovado. Início Ler 3 notas (n1,n2,n3) Calcular média Média = (n1+n2+n3)/3 V Se Média >= 5 Escrever Aprovado F Escrever Reprovado Fim Algoritmo - Fluxograma Início Ler 3 notas (n1,n2,n3) Calcular média Média = (n1+n2+n3)/3 V Se Média >= 5 Escrever Aprovado F Escrever Reprovado Fim Algoritmo - Pseudocódigo • Para descrever um algoritmo com o Pseudocódigo deve ser definido uma linguagem intermediária entre a linguagem natural e uma linguagem de programação para descrever as instruções. Exemplo: Problema Dado o problema abaixo, veremos como descrever um algoritmo em Pseudocódigo: A partir das três notas de um aluno, calcular sua média aritmética e determinar se ele foi aprovado ou reprovado, levando em conta que a média para aprovação deve ser pelo menos 5,0. Construindo Algoritmo Pseudocódigo A partir das três notas de um aluno, calcular sua média aritmética e determinar se ele foi aprovado ou reprovado, levando em conta que a média para aprovação deve ser pelo menos 5,0. variáveis média, nota1, nota2, nota3 : real; início leia(nota1, nota2, nota3); ... fim. Construindo Algoritmo Pseudocódigo A partir das três notas de um aluno, calcular sua média aritmética e determinar se ele foi aprovado ou reprovado, levando em conta que a média para aprovação deve ser pelo menos 5,0. variáveis média, nota1, nota2, nota3 : real; início leia(nota1, nota2, nota3); média ← (nota1+nota2+nota3)/3; ... fim. Construindo Algoritmo Pseudocódigo A partir das três notas de um aluno, calcular sua média aritmética e determinar se ele foi aprovado ou reprovado, levando em conta que a média para aprovação deve ser pelo menos 5,0. variáveis média, nota1, nota2, nota3 : real; início leia(nota1, nota2, nota3); média ← (nota1+nota2+nota3)/3; se (média >= 5,0) então imprima(“Aluno Aprovado”); caso contrário imprima(“Aluno Reprovado”); fim. Referências D.D Salvetti e L.M. Barbosa, Algoritmos, Pearson Makron Books, 1998. Notas de aulas do curso presencial de Técnicas de Programação1 - UNIRIO - Desenvolvidos pelas professoras: Geiza Maria Hamazaki da Silva e Adriana C. F Alvim – primeiro semestre de 2011.