Baixe o app para aproveitar ainda mais
Prévia do material em texto
Grupo SER Educacional | Lógica de Programação 1 LÓGICA DE PROGRAMAÇÃO Lógica de Programação IZABELLY MORAIS E MAX AZEVEDO INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ALGORÍTMICA AULA 04 Diretor Executivo DAVID LIRA STEPHEN BARROS Direção Editorial ANDRÉA CÉSAR PEDROSA Projeto Gráfico MANUELA CÉSAR DE ARRUDA Autor IZABELLY MORAIS E MAX AZEVEDO Desenvolvedor CAIO BENTO GOMES DOS SANTOS O Autor Izabelly Morais de Morais Olá. Meu nome é Izabelly Morais. Sou licenciada em Ciência da Computação pela Universidade Federal da Paraíba (UFPB), e mestre em Ciência da Computação com ênfase em Engenharia de Software e Linguagens de Programação pela Universidade Federal de Pernambuco (UFPE). Leciono como professora formadora no Instituto Federal de Pernambuco (IFPE) e na Faculdade Pitágoras (João Pessoa/PB), onde tenho a oportunidade de transmitir minha experiência na área de tecnologia e educação. Max André de Azevêdo Silva Olá. Meu nome é Max Azevêdo Silva. Sou formado em Licenciatura em Ciência da Computação, pela Universidade Federal da Paraíba, e mestrando em Ciência da Computação com ênfase em Engenharia de Software pela Universidade Federal da Paraíba. Possuo experiência na área de desenvolvimento de sistemas web, mobile e jogos eletrônicos. Atualmente atuo como Analista de Sistemas. A possibilidade de expor nossos conhecimentos adquiridos ao longo dos anos é fantástica! Por isso fomos convidados pela Editora Telesapiens a integrar seu elenco de autores independentes. Estamos muito felizes em poder ajudar você nesta fase de muito estudo e trabalho. Conte conosco! IZABELLY MORAIS E MAX AZEVEDO “ Iconográficos Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha de aprendizagem toda vez que: INTRODUÇÃO para o início do desenvolvimento de uma nova competência; DEFINIÇÃO houver necessidade de se apresentar um novo conceito; NOTA quando forem necessários observações ou complementações para o seu conhecimento; IMPORTANTE as observações escritas tiveram que ser priorizadas para você; EXPLICANDO MELHOR algo precisa ser melhor explicado ou detalhado; VOCÊ SABIA? curiosidades e indagações lúdicas sobre o tema em estudo, se forem necessárias; SAIBA MAIS textos, referências bibliográficas e links para aprofundamento do seu conhecimento; REFLITA se houver a necessidade de chamar a atenção sobre algo a ser refletido ou discutido sobre; ACESSE se for preciso acessar um ou mais sites para fazer download, assistir vídeos, ler textos, ouvir podcast; RESUMINDO quando for preciso se fazer um resumo acumulativo das últimas abordagens; ATIVIDADES quando alguma atividade de autoaprendizagem for aplicada; TESTANDO quando o desenvolvimento de uma competência for concluído e questões forem explicadas; Sumário 1 INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ALGORÍTMICA ..................................... 6 1.1 O que é Lógica? .................................................................................................... 6 1.2 Lógica no contexto computacional ........................................................................ 8 1.3 Algoritmos Computacionais ................................................................................... 9 1.3.1 Fluxograma ............................................................................................ 10 1.3.2 Pseudocódigo ......................................................................................... 11 1.4 Dicas sobre algoritmização .................................................................................. 12 Considerações Finais ................................................................................................ 14 Atividades de Autoaprendizagem .............................................................................. 14 Questionário Avaliativo ............................................................................................ 14 Bibliografia .............................................................................................................. 15 Lógica de Programação| Izabelly Morais e Max Azevedo | 6 1 Introdução à Lógica de Programação Algorítmica INTRODUÇÃO: Como já sabemos, existe uma enormidade de linguagens de programação, desde as mais simples e intuitivas (de alto nível), até as mais complexas e trabalhosas (de baixo nível). Independentemente de que linguagem se adote, para solucionar problemas computacionais é requerido do programador uma habilidade específica: a lógica de programação algorítmica. Não se trata de habilidade com matemática ou algo do gênero. Estamos falando de uma capacidade peculiar a todos os que conseguem visualizar soluções racionais para problemas do dia a dia. O raciocínio lógico, que é a base desta habilidade, já é matéria cobrada em quase todos os editais de concursos públicos, e já é ensinado em várias escolas de ensino fundamental e médio. Quem desenvolve essa competência, é capaz de aprender rapidamente qualquer linguagem de programação, pois, como já dissemos anteriormente, a diferença de uma linguagem para a outra está apenas na semântica e no dicionário de comandos.Programar computadores é uma tarefa tão natural quanto escrever um pequeno manual sobre como trocar o pneu de um carro. Qualquer um é capaz de fazer! 1.1 O que é Lógica? Damos início a este tópico debatendo um pouco sobre nosso cotidiano. Isso mesmo! Falaremos sobre as atividades que você desempenha no seu dia a dia, como tomar café, ir à escola ou até mesmo ir ao trabalho. OBJETIVO: Ao término desta aula você será capaz de definir e entender o conceito e as funcionalidades da lógica de programação e algoritmos computacionais. Lógica de Programação| Izabelly Morais e Max Azevedo | 7 Toda ação que executamos, nos remete a um objetivo final . Por exemplo, quando estamos com fome, sempre vamos atrás de saná-la, por meio da alimentação. Dessa forma, toda tomada de decisão em um algoritmo computacional deve ser baseada na lógica de se atingir algum objetivo. Conforme o Dicionário Aurélio (2017), o termo lógica está associado à “análise que estuda as proposições e seus membros componentes” . Já Forbellone (2005, p.1) diz que: [...] a lógica pode estar relacionada com a „correção do pensamento‟, pois uma de suas preocupações é determinar quais operações são válidas e quais não são, fazendo análises das formas e leis do pensamento. Ainda sob a ótica do autor, ela nos ensina a usar corretamente as leis do pensamento, ou seja, ela ensina a colocar „ordem no pensamento‟. A lógica está interligada à solução de algum problema que traz características que não estão relacionadas à determinada situação. Por exemplo, se precisamos realizar cálculos matemáticos, e nossa calculadora não está realizando as quatro operações matemáticas de forma correta, então temos um problema a ser resolvido. E é através da lógica matemática que conseguimos visualizar esta situação problemática e trazer uma ou mais possíveis soluções. A lógica computacional traz um conceito de solução de problemas, podendo muitas vezes ser aplicada a diversas situações do nosso cotidiano. Por exemplo, quando inserimos um endereço em um GPS e ele nos retorna diversas possíveis rotas, aplicamos certa lógica para escolhera rota mais adequada para nós, seja pela quilometragem, ou pelo tipo de estrada. EXPLICANDO MELHOR Lógica de Programação| Izabelly Morais e Max Azevedo | 8 1.2 Lógica no contexto computacional A lógica não deve estar ligada apenas aos conceitos que norteiam a matemática. Para utilizá-la em favor da solução dos problemas computacionais, precisamos aplicá-la aos recursos disponíveis nos sistemas computacionais. Uma definição bastante completa sobre lógica de programação foi lançada por Forbellone (2005, p. 14), que a conceitua como: [...] o uso correto das leis do pensamento da “ordem da razão” e de processos de raciocínio e simbolização formais na programação de computadores, objetivando a racionalidade e o desenvolvimento de técnicas que cooperem para a produção de soluções logicamente válidas e coerentes, que resolvam com qualidade os problemas que se deseja programar. Por exemplo, a lógica necessária para se troca o pneu de um carro articula recursos como macaco, parafusos, jante, pneu, carro, etc. Já na programação do computador para ler um arquivo de dados e imprimir um relatório, envolvemos outros recursos, como memória, disco, dados, impressora e papel. Contudo, tanto em um caso quanto em outro, a forma de se raciocinar é a mesma: juntar comandos e manipular recursos para se atingir um objetivo específico ao final do processamento. EXPLICANDO MELHOR A lógica de programação, portanto, pode ser definida como a técnica necessária para nortear o desenvolvimento de um software, o qual deve seguir certas regras para atingir o seu objetivo. DEFINIÇÃO Lógica de Programação| Izabelly Morais e Max Azevedo | 9 A lógica de programação computacional é aplicada, por exemplo, na seleção e determinação de quais instruções devem ser executadas para que o problema seja solucionado. Por meio de sua aplicação, podemos ter resultados lógicos que irão satisfazer nossas condições, ou seja, nenhuma instrução é inserida sem uma funcionalidade. 1.3 Algoritmos Computacionais Podemos fazer uso de variados modos para representar a solução de um problema, computacional ou não. Quando se define um conjunto de regras sintáticas para expressar raciocínios e operações necessárias à solução de uma classe de problemas, tem-se um algoritmo. Se tais problemas forem de cunho computacional, tem-se um algoritmo computacional. Para entendermos melhor o conceito de algoritmo computacional, vamos imaginar a representação gráfica do seguinte problema: Decidir qual o maior entre dois números lidos pelo computador. Um problema simples deve apresentar uma solução igualmente simples, portanto, podemos representar esta solução algorítmica de duas maneiras: gra ficamente ou textualmente, como apresentado a seguir. Algoritmo computacional é uma visão esquemática sobre a solução de uma classe de problemas computacionais, podendo ser representado gráfica ou textualmente, por meio de um pseudocódigo escrito em uma pseudolinguagem. DEFINIÇÃO Lógica de Programação| Izabelly Morais e Max Azevedo | 10 1.3.1 Fluxograma Figura 1 - Representação algorítmica por meio de fluxograma. Fonte: https://wiki.portugal-a- programar.pt/_media/algoritmo:fluxograma.jpg Observe que a solução algorítmica adotada na figura 1 está sendo representada graficamente por uma simbologia denominada “fluxograma”. Nesta solução foram adotados comandos visuais, compreensíveis facilmente por qualquer um, de forma bastante intuitiva. Mas, para isto, foi necessário se estabelecer um dicionário de comandos, que neste caso contemplou os seguintes: Figura 2 - Destacando os comandos visuais do fluxograma. Fonte: idem. Marca o início ou o término de um algoritmo Lê ou exibe um dado/informação Executa um procedimento Desvia o fluxo de procedimentos conforme a condição descrita Desvia o fluxo de procedimentos para outro algoritmo Lógica de Programação| Izabelly Morais e Max Azevedo | 11 1.3.2 Pseudocódigo Outro modo de se representar uma solução algorítmica é por meio de textos, ou pseudocódigos. Do grego, “pseudo” significa falso, o que faz do pseudocódigo um código escrito em uma linguagem que, na prática, não existe. Em outras palavras, o pseudocódigo evidencia uma forma genérica de se escrever um algoritmo, utilizando uma linguagem simples, compreensível por qualquer pessoa, sem que esta pessoa conheça a sintaxe de nenhuma linguagem de programação. Transcrevendo o algoritmo esquematizado no fluxograma anterior, poderíamos escrever o seguinte pseudocódigo: INÍCIO LER NUM1 LER NUM2 SE NUM1 > NUM2 ENTÃO ESCREVER “O maior é: ” & NUM1 SENÃO SE NUM1 < NUM2 ENTÃO ESCREVER “O maior é: ” & NUM2 SENÃO ESCREVER “São iguais” FIMSE FIMSE FIM Perceba que ambas as representações algorítmicas conseguem solucionar o mesmo problema, com exatamente o mesmo ordenamento lógico. O que as diferencia é tão somente a semântica da linguagem. Enquanto na primeira solução foi adotada uma linguagem visual (fluxograma ou diagrama de blocos), na segunda foi utilizada uma linguagem natural, que no caso foi a própria língua portuguesa. Lógica de Programação| Izabelly Morais e Max Azevedo | 12 1.4 Dicas sobre algoritmização Assim como toda atividade que desempenhamos no nosso dia a dia, algoritmizar uma solução computacional exige escolhas sábias. Ascencio et al (2012) destacam os seguintes passos: 1. Ler atentamente o enunciado, destacando os pontos mais importantes. 2. Definir os dados de entrada, ou seja, quais dados serão fornecidos. 3. Definir o processamento, ou seja, quais cálculos serão efetuados e quais as restrições para esses cálculos. O processamento é responsável pela transformação dos dados de entrada em informações de saída. 4. Definir as informações de saída, ou seja, quais informações serão geradas depois do processamento. É possível elaborarmos um programa diretamente na linguagem de programação verdadeira, sem termos que passar pela fase da solução algorítmica? A resposta é afirmativa, ou seja, podemos sim literalmente “meter a mão na massa” e elaborar nossos programas utilizando a própria linguagem de programação comercial como ferramenta de solução algorítmica. Então por que existem pseudocódigos e fluxogramas para representar soluções computacionais? A reposta é igualmente simples: os algoritmos são instrumentos que cumprem duas funções distintas: cognitiva (na fase em que se está aprendendo a programar); e didática (para facilitar o entendimento de pessoas leigas que precise interagir com a solução). REFLITA Lógica de Programação| Izabelly Morais e Max Azevedo | 13 5. Construir o algoritmo utilizando um dos tipos descritos anteriormente. 6. Testar o algoritmo realizando simulações. Podemos ter diversos algoritmos desenvolvidos de maneiras diferentes, ou seja, com etapas distintas, porém, que solucionam o mesmo problema. Cada pessoa tem seu modo de pensar, dessa forma, não é obrigado que todos tenhamos a mesma ideia, ou até mesmo executemos ações da mesma maneira! VOCÊ SABIA? Conforme Manzano (2004), “a norma ISO 5807 -1985 para a definição e elaboração de diagramas de fluxos para a área de desenvolvimento e projeto de software é a consolidação de duas normas anteriores: ISO 10282 e ISO26363. Segundo informação da própria norma ISO 5807- 1985 (E), a definição e elaboração de diagramas para a representação gráfica da linha de raciocino lógico a ser adotada não deve restringir o uso de aplicações ou soluções particulares, uma vez que pode ocorrer a existência de vários tipos de soluções para os vários problemas de processamento de informação” (ISO 5807, 1985, p. 1 apud Manzano,2004). IMPORTANTE Lógica de Programação| Izabelly Morais e Max Azevedo | 14 Considerações Finais SAIBA MAIS: Quer se aprofundar em algum dos temas desta aula? Recomendamos o acesso à seguinte fonte de consulta e aprofundamento: Vídeo: “Introdução a algoritmos – curso algoritmos #01” (GUANABARA, 2014), acessível pelo link: https://www.youtube.com/watch?v=8mei6uVttho (Acesso em 19/09/2017). Atividades de Autoaprendizagem ATIVIDADES: Pronto para consolidar seus conhecimentos? Leia atentamente o enunciado de sua atividade de autoaprendizagem proposta para esta aula. Se você está fazendo o seu curso presencialmente, é só abrir o seu caderno de atividades. Se você estiver cursando na modalidade de EAD (Educação a Distância), acesse a sua trilha de aprendizagem no seu ambiente virtual e realize a atividade de modo online. Você pode desenvolver esta atividade sozinho ou em parceria com seus colegas de turma. Dificuldades? Poste suas dúvidas no fórum de discussões em seu ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o resultado em uma postagem diretamente em seu ambiente virtual de aprendizagem e boa sorte! Questionário Avaliativo TESTANDO: Chegou a hora de você provar que aprendeu tudo o que foi abordado ao longo desta aula. Para isto, leia e resolva atentamente as questões do seu caderno de atividades. Se você estiver fazendo este curso a distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual de aprendizagem. https://www.youtube.com/watch?v=8mei6uVttho Lógica de Programação| Izabelly Morais e Max Azevedo | 15 Bibliografia ASCENCIO, A. F., & CAMPUS, E. A. (2012). Fundamentos da Programação de Computadores (Algoritmos, Pascal, C/C+ e Java) (3a. ed.). São Paulo: Prentice Hall. DICIONÁRIO do Aurélio (versão online). (2017). Acesso em 2017, disponível em https://dicionariodoaurelio.com/logica FORBELLONE, A. L. (2005). Lógica de programação: a construção de algoritmos e estrutura de dados. São Paulo: Pearson. MANZANO, J. A., & OLIVEIRA, J. F. (2016). Algoritmos: Lógica para desenvolvimento de programação de computadores (28. ed.). São Paulo: Érica. Lógica de Programação| Izabelly Morais e Max Azevedo | 16
Compartilhar