Algoritmos e Programação - Aula 1

7,452 views
7,268 views

Published on

Algoritmos e Programação - Aula 1

Published in: Technology

Algoritmos e Programação - Aula 1

  1. 1. Profº Thyago Maia Algoritmos e Programação Aula 1
  2. 2. Sumário <ul><li>Apresentação da Disciplina; </li></ul><ul><li>O “segredo” para ter sucesso na disciplina; </li></ul><ul><li>Afinal, o que é um algoritmo? </li></ul><ul><li>O que podemos concluir sobre algoritmos? </li></ul><ul><li>Por que criamos algoritmos? </li></ul><ul><li>Representações de um algoritmo; </li></ul>
  3. 3. Apresentação da Disciplina <ul><li>Professor: Thyago Maia T. de Farias </li></ul><ul><ul><li>Mestre em Informática pelo PPGI/DI/UFPB </li></ul></ul><ul><ul><li>Bacharel em Ciência da Computação – UFPB </li></ul></ul><ul><ul><li>Currículo Lattes: http://lattes.thyagomaia.net </li></ul></ul><ul><ul><li>E-Mail: [email_address] </li></ul></ul><ul><ul><li>Twitter: http://twitter.com/thyagomaia </li></ul></ul><ul><ul><li>Página Facebook: http://facebook.com/profthyagomaia </li></ul></ul>
  4. 4. Apresentação da Disciplina <ul><li>Objeto de estudo: </li></ul><ul><ul><li>Ensino dos conceitos básicos de algoritmos estruturados, envolvendo tipos de dados e formas de representação de algoritmos; </li></ul></ul><ul><ul><li>Fundamentos e técnicas estruturadas de programação para o desenvolvimento de software; </li></ul></ul>
  5. 5. Apresentação da Disciplina <ul><li>Objetivo Geral </li></ul><ul><ul><li>Introduzir conceitos e técnicas de programação, utilizando noções de algoritmos, através de linguagem de alto nível; </li></ul></ul><ul><li>Objetivos Específicos </li></ul><ul><ul><li>Introduzir as técnicas para o desenvolvimento de algoritmos; </li></ul></ul><ul><ul><li>Estudo e aplicação das técnicas básicas de programação em linguagem de alto nível; </li></ul></ul><ul><ul><li>Análise e depuração de código; </li></ul></ul>
  6. 6. Apresentação da Disciplina <ul><li>Metodologia </li></ul><ul><ul><li>Aulas teóricas e práticas; </li></ul></ul><ul><li>Avaliações </li></ul><ul><ul><li>Divididas em 3 estágios: </li></ul></ul><ul><ul><ul><li>1º estágio: Prova Prática (0 a 10 pontos); </li></ul></ul></ul><ul><ul><ul><li>2º estágio: Prova Prática (0 a 8 pontos) + Trabalho para o Projeto Integrador (1 ponto) + Apresentação para o III Fórum Integrador (1 ponto); </li></ul></ul></ul><ul><ul><ul><li>3º estágio: Prova Prática (0 a 10 pontos); </li></ul></ul></ul><ul><ul><ul><li>Reposição (todo aluno tem direito a repor APENAS uma prova); </li></ul></ul></ul><ul><ul><ul><li>Exame Final: Prova Prática que aborda todo o conteúdo; </li></ul></ul></ul>
  7. 7. Apresentação da Disciplina <ul><li>Projeto Integrador 2012.1 </li></ul><ul><ul><li>Tema Geral: Redes Socias e Aplicações para Web; </li></ul></ul><ul><ul><li>Trabalhos a serem desenvolvidos nesta disciplina: </li></ul></ul><ul><ul><ul><li>2º estágio </li></ul></ul></ul><ul><ul><ul><ul><li>Desenvolver um algoritmo ou um programa que funcione como um Quiz. O Quiz terá como objetivo coletar votos dos usuários acerca de uma ou mais redes sociais. Após a coleta, o algoritmo ou programa deverá apresentar o resultado final das votações; </li></ul></ul></ul></ul>
  8. 8. Apresentação da Disciplina <ul><li>Referências </li></ul><ul><ul><li>EAD do Unipê ( http://ead.unipe.br ) </li></ul></ul><ul><ul><ul><li>Contato oficial (e-mail, fórum, chat...); </li></ul></ul></ul><ul><ul><ul><li>Material de apoio </li></ul></ul></ul><ul><ul><ul><ul><li>Notas de aula; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Slides; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Exercícios; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Complementação de aulas presenciais; </li></ul></ul></ul></ul><ul><ul><li>Minha página no Facebook </li></ul></ul><ul><ul><li>( http://facebook.com/profthyagomaia ) </li></ul></ul>
  9. 9. Apresentação da Disciplina <ul><li>Softwares que serão utilizados no curso </li></ul><ul><ul><li>VisuAlg </li></ul></ul><ul><ul><ul><li>http://www.apoioinformatica.inf.br/visualg/setupv2.exe </li></ul></ul></ul><ul><ul><li>Eclipse IDE </li></ul></ul><ul><ul><ul><li>http://www.eclipse.org </li></ul></ul></ul>
  10. 10. O “segredo” para ter sucesso na disciplina <ul><li>Procure estar presente na maioria das aulas (é claro... =P); </li></ul><ul><ul><li>Lembre-se: Alguns exercícios poderão valer pontos para a prova! </li></ul></ul><ul><li>Se faltou, procure checar o material da aula no site e/ou com os colegas de sala; </li></ul><ul><li>Dúvida em algum assunto da aula? Pergunte ao professor imediatamente ou envie um e-mail! </li></ul><ul><ul><li>Sempre checo meus e-mails e procuro responde-los o mais breve possível; </li></ul></ul><ul><li>E o mais importante: Pratique... Pratique... Pratique... </li></ul>
  11. 11. Afinal, o que é um algoritmo? <ul><li>Sequência de instruções finitas e ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema; </li></ul><ul><li>Não necessariamente envolve aspectos computacionais; </li></ul><ul><ul><li>Exemplos </li></ul></ul><ul><ul><ul><li>Uma receita de bolo; </li></ul></ul></ul><ul><ul><ul><li>Manual de instruções; </li></ul></ul></ul>
  12. 12. Afinal, o que é um algoritmo? <ul><li>Exemplo: Sequência para fritar um ovo: </li></ul><ul><ul><li>Retirar o ovo da geladeira; </li></ul></ul><ul><ul><li>Colocar a frigideira no fogo; </li></ul></ul><ul><ul><li>Colocar óleo; </li></ul></ul><ul><ul><li>Esperar até o óleo ficar quente; </li></ul></ul><ul><ul><li>Quebrar o ovo separando a casca; </li></ul></ul><ul><ul><li>Colocar o conteúdo do ovo na frigideira; </li></ul></ul><ul><ul><li>Esperar um minuto; </li></ul></ul><ul><ul><li>Retirar o ovo da frigideira; </li></ul></ul><ul><ul><li>Apagar o fogo; </li></ul></ul>
  13. 13. Afinal, o que é um algoritmo? <ul><li>Tal sequência é um algoritmo? Vejamos... </li></ul><ul><ul><li>A sequência anterior possui instruções finitas e ordenadas? </li></ul></ul><ul><ul><ul><li>SIM. 9 instruções ordenadas; </li></ul></ul></ul><ul><ul><ul><li>O início de uma instrução depende da conclusão de uma instrução anterior; </li></ul></ul></ul><ul><ul><li>O objetivo da sequência foi atingido? </li></ul></ul><ul><ul><ul><li>SIM. O ovo foi frito; </li></ul></ul></ul><ul><li>Logo, a sequência anterior é um algoritmo! </li></ul>
  14. 14. Afinal, o que é um algoritmo? <ul><li>Exercício </li></ul><ul><ul><li>Ordene e estruture uma sequência para a realização de uma ligação telefônica em um orelhão. </li></ul></ul>
  15. 15. Afinal, o que é um algoritmo? <ul><li>Uma possível solução: </li></ul><ul><ul><li>Tirar o telefone do gancho ; </li></ul></ul><ul><ul><li>Ouvir o sinal de linha; </li></ul></ul><ul><ul><li>Introduzir o cartão no orelhão; </li></ul></ul><ul><ul><li>Teclar o número desejado; </li></ul></ul><ul><ul><li>Conversar; </li></ul></ul><ul><ul><li>Desligar; </li></ul></ul><ul><ul><li>Tirar o cartão; </li></ul></ul>
  16. 16. Afinal, o que é um algoritmo? <ul><li>A solução anterior... mais robusta: </li></ul><ul><ul><li>Tirar o telefone do gancho; </li></ul></ul><ul><ul><li>Ouvir o sinal de linha; </li></ul></ul><ul><ul><li>Introduzir o cartão no orelhão; </li></ul></ul><ul><ul><li>Teclar o número desejado; </li></ul></ul><ul><ul><li>Se chamar e alguém atender... </li></ul></ul><ul><ul><ul><li>Conversar; </li></ul></ul></ul><ul><ul><ul><li>Desligar; </li></ul></ul></ul><ul><ul><ul><li>Retirar o cartão; </li></ul></ul></ul><ul><ul><li>Senão... </li></ul></ul><ul><ul><ul><li>Desligar; </li></ul></ul></ul><ul><ul><ul><li>Voltar para a instrução 1; </li></ul></ul></ul>
  17. 17. O que podemos concluir sobre algoritmos? <ul><li>Algoritmo é uma espécie de passo a passo de ações (instruções); </li></ul><ul><li>Algoritmos retornam uma saída (ex.: um ovo frito) a partir de uma determinada entrada (ex.: um ovo) através de uma sequência de passos; </li></ul><ul><li>Os passos são executados um após o outro (de forma sequencial); </li></ul>
  18. 18. O que podemos concluir sobre algoritmos? <ul><li>Um algoritmo está correto quando sua sequência de instruções retorna uma saída esperada; </li></ul><ul><li>Podem existir um ou mais algoritmos que retornam uma saída esperada; </li></ul><ul><ul><li>Mas podem existir algoritmos mais eficientes que outros; </li></ul></ul><ul><li>Um algoritmo não é a solução do problema, mas o caminho que busca a solução do problema; </li></ul>
  19. 19. Por que criamos algoritmos? <ul><li>A linguagem natural não pode ser interpretada por computadores; </li></ul><ul><li>Computadores são projetados para executar tarefas bem definidas a partir de instruções; </li></ul><ul><li>Para desenvolver software, utilizamos linguagens de programação... </li></ul><ul><ul><li>A linguagem algorítmica é similar a uma linguagem de programação; </li></ul></ul><ul><li>Logo, aprendendo a criar algoritmos, estamos aptos a programar em qualquer linguagem de programação; </li></ul>
  20. 20. Representações de um Algoritmo <ul><li>Descrição Narrativa; </li></ul><ul><li>Fluxograma; </li></ul><ul><li>Pseudocódigo, Português Estruturado ou Portugol; </li></ul>SUBJETIVIDADE PRECISÃO
  21. 21. Representações de um Algoritmo <ul><li>Descrição Narrativa </li></ul><ul><ul><li>Utiliza-se preferencialmente um verbo por frase; </li></ul></ul><ul><ul><li>Formada por frases curtas e simples; </li></ul></ul><ul><ul><li>É objetiva; </li></ul></ul><ul><ul><li>Evita palavras com sentido dúbio; </li></ul></ul>
  22. 22. Representações de um Algoritmo <ul><li>Descrição Narrativa – Exemplo: </li></ul><ul><ul><li>Dobro de um número (dobro = número x 2) </li></ul></ul><ul><ul><li>Digitar um número; </li></ul></ul><ul><ul><li>Gravar em uma variável; </li></ul></ul><ul><ul><li>Multiplicar o número digitado por 2; </li></ul></ul><ul><ul><li>Gravar o resultado em outra variável; </li></ul></ul><ul><ul><li>Mostrar o resultado da operação; </li></ul></ul>
  23. 23. Representações de um Algoritmo <ul><li>Fluxograma </li></ul><ul><ul><li>Descrevem o fluxo de ação de um determinado trabalho lógico; </li></ul></ul><ul><ul><li>Usa símbolos convencionais, permitindo poucas variações; </li></ul></ul><ul><ul><li>Representados por símbolos geométricos; </li></ul></ul>
  24. 24. Representações de um Algoritmo <ul><li>Fluxograma - Exemplo </li></ul>
  25. 25. Representações de um Algoritmo <ul><li>Português Estruturado (Portugol) </li></ul><ul><ul><li>Linguagem mais restrita que o português em linguagem natural; </li></ul></ul><ul><ul><li>Simplificação extrema do português; </li></ul></ul><ul><ul><li>Significados bem definidos para todos os termos utilizados nas instruções; </li></ul></ul><ul><ul><li>Possui um conjunto de palavras e regras específicas (sintaxe da linguagem); </li></ul></ul><ul><ul><li>É a representação utilizada no curso; </li></ul></ul>
  26. 26. Representações de um Algoritmo <ul><li>Português Estruturado (Portugol) </li></ul><ul><ul><li>Normalmente as implementações são feitas em papel, escritas a mão; </li></ul></ul><ul><ul><li>Atualmente, também são utilizados programas que interpretam, testam e executam algoritmos; </li></ul></ul><ul><ul><ul><li>Ex.: VisuAlg (programa que utilizaremos no curso); </li></ul></ul></ul>
  27. 27. Desafio <ul><li>Escreva um algoritmo que ajude o homem do barco a levar o lobo, a ovelha e a caixa de verduras para o outro lado do lago. Utilize a descrição narrativa para representar o algoritmo. Lembre-se: </li></ul><ul><ul><li>Lobos comem ovelhas e ovelhas comem as verduras quando o homem está na outra margem! </li></ul></ul>
  28. 28. Solução do Desafio <ul><li>Pega a ovelha </li></ul><ul><li>Vai para a outra margem </li></ul><ul><li>Deixa a ovelha </li></ul><ul><li>Volta a margem inicial </li></ul><ul><li>Pega a caixa de verduras </li></ul><ul><li>Vai para a outra margem </li></ul><ul><li>Deixa a caixa de verduras e pega a ovelha </li></ul><ul><li>Volta a margem inicial </li></ul><ul><li>Deixa a ovelha e pega o lobo </li></ul><ul><li>Vai para a outra margem </li></ul><ul><li>Deixa o lobo </li></ul><ul><li>Volta a margem inicial </li></ul><ul><li>Pega a ovelha </li></ul><ul><li>Vai para a outra margem </li></ul><ul><li>Deixa a ovelha </li></ul>

×