ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Prof. Esp. Fabiano Taguchi http://fabianotaguchi.wordpress.com fabianotaguchi@gmail.com ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Carga horária: 60 horas/aula Aulas: Sextas 19h00min às 20h15min 20h45min às 22h00min Formas de avaliação Prova e listas de exercícios Participação nas aulas 1
APRESENTAÇÃO Prof. Esp. Fabiano Taguchi Bacharel em Sistemas de Informação Pós graduado em Gestão de Projetos Pós graduado em Gestão de Tecnologia da Informação Experiências profissionais... COMPETÊNCIAS Conhecer e utilizar ferramentas matemáticas e estatísticas para modelar, simular e otimizar sistemas de produção; Conhecer métodos e técnicas de desenvolvimento, implantação e gerenciamento de processos; Conhecer métodos e técnicas de gestão para tomada de decisão. 2
HABILIDADE Analisar e Interpretar; Liderar; Ser criativo; Relacionamento interpessoal; Trabalhar em equipe multiprofissional; Tomar decisão; Raciocinar de forma lógica; Raciocinar de forma crítica e analítica; Comunicar. JUSTIFICATIVA DA DISCIPLINA Permitir ao acadêmico desenvolver raciocínio lógico aplicado à solução de problemas em nível computacional, além de introduzir os conceitos básicos de desenvolvimento de algoritmos, para propiciar-lhes visão crítica e sistemática na resolução de problemas e prepará-los para a atividade de programação. 3
OBJETIVOS E METODOLOGIA Apresentar os conceitos iniciais de algoritmos, ensinar técnicas de programação e introduzir a linguagem de programação. Serão aulas em quadro negro com utilização de recursos audiovisuais, onde o conhecimento será apresentado, discutido e desenvolvido junto com o discente. O procedimento educacional se complementa com trabalhos, listas de exercícios e estudos auxiliados por computador (Práticas de laboratório). METODOLOGIA As aulas serão postadas no portal com 48 horas de antecedência à aula presencial. FLIPPED CLASSROOM Pré-aula Uso de artigos e vídeos curtos para introdução do assunto Aula Quadro negro, computador e datashow para apresentação do conteúdo Pós-aula Exercícios para aplicação do conhecimento adquirido 4
PLANEJAMENTO DE ENSINO UNIDADE DE ENSINO I Algoritmos e Programação Contextos e Práticas Histórico e definição de algoritmos: Perspectivas de linguagem; Tipos de dados e expressões: literais, lógicas e aritméticas; Representação de algoritmos e o ambiente de programação; Declaração de variáveis e constantes. PLANEJAMENTO DE ENSINO UNIDADE DE ENSINO II Estruturas de decisão e seleção Instruções primitivas: entrada de dados, atribuição e saída; Estrutura condicional simples; Estrutura condicional composta; Estrutura condicional sequencial e encadeada. 5
PLANEJAMENTO DE ENSINO UNIDADE DE ENSINO III Estruturas de seleção (case) e repetição Estrutura de múltipla escolha (case); Repetição condicional com teste no início; Repetição condicional com teste no final; Repetição controlada por variável. PLANEJAMENTO DE ENSINO UNIDADE DE ENSINO III Vetores e matrizes Aplicação utilizando vetores e matrizes; Operações sobre vetores e matrizes; Os vetores como estrutura de dados; As matrizes como estrutura de dados. 6
AVALIAÇÕES Cada bimestre será composto por: Avaliação parcial Peso 03 Avalição oficial Peso 07 Média bimestral (MD1)*0,4 + (MD2)*0,6 As avaliações poderão ser realizadas a partir de exercícios teóricos, seminários e utilização de artigos científicos sobre o conteúdo da disciplina. AVALIAÇÕES Prova Parcial I 1º Bimestre 09/09/2016 Prova Oficial I 1º Bimestre 30/09/2016 Prova Parcial 2º Bimestre 04/11/2015 Prova Oficial 2º Bimestre 25/11/2016 Segunda chamada 12 a 14/12/2016 Prova final 19/12 a 22/12/2016 7
REFERÊNCIAS BIBLIOGRÁFICAS BÁSICAS FARRER, Harry Et Al. Programação estruturada de computadores: algoritmos estruturados. 3. ed. Rio de Janeiro LTC - Livros Técnicos e Científicos 2011. 284 p GERSTING, Judith L. Fundamentos matemáticos para a ciência da computação: um tratamento moderno de matemática discreta. 5. ed. Rio de Janeiro: LTC - Livros Técnicos e Científicos, 2004, 2008. 597 p. ISBN 9788521614227. MANZANO, José Augusto N. G; OLIVEIRA, Jayr Figueiredo de. Algoritmos: logica para desenvolvimento de programação de computadores. 26. ed. Sao Paulo Erica 2012. 328 p REFERÊNCIAS BIBLIOGRÁFICAS COMPLEMENTARES FERNANDA, Ascencio Ana. LÓGICA DE PROGRAMAÇÃO COM PASCAL.. São Paulo: Pearson Makron Book, 1999. MEDINA, Marco; FERTIG, Cristina. Algoritmos e programação: teoria e pratica. 2. ed. São Paulo: Novatec, 2006. 384 p SALIBA, Walter Luiz Caram. Técnicas de programação: uma abordagem estruturada. São Paulo: Makron Books, 1992. 141 p 8
REFERÊNCIAS BIBLIOGRÁFICAS COMPLEMENTARES CLAUDIO, Dalcidio Moraes; MARINS, Jussara Maria. Cálculo numérico computacional: teoria e pratica: algoritmos em pseudo-linguagem - indicacoes em software matematico - 150 exercicios resolvidos - exercicios propostos. 3. ed. Sao Paulo: Atlas, 1994, 2000. 464 p CHAPRA, Steven C. Métodos numéricos para engenharia. 5. Porto Alegre ArtMed 2010 1 recurso online ISBN 9788580550115. REFERÊNCIAS BIBLIOGRÁFICAS OUTRAS FONTES DE PESQUISA REVISTA ON-LINE DE INFORMÁTICA, INOVAÇÃO E PESQUISA DA FACULDADE DE TECNOLOGIA DE SÃO JOSÉ DO RIO PRETO. REVISTA DE INFORMÁTICA TEÓRICA E APLICADA SciLab. Disponível em: <http://www.scilab.org> 9
EXERCITANDO A LÓGICA 01 Uma lesma deve subir um poste de 10m de altura. De dia sobe 2m e à noite desce 1m. Em quantos dias atingirá o topo do poste? 02 Três gatos comem três ratos em três minutos. Cem gatos comem cem ratos em quantos minutos? EXERCITANDO A LÓGICA 03 Qual o próximo número da sequência 7,8,10,13,17? 04 Um pai de 80kg e suas 2 filhas (40kg cada), precisam sair de uma ilha com um barco. Porém a capacidade do barco é de 80kg. Como farão para sair da ilha? 10
FT1 ALGORITMOS Para programarmos em um computador, devemos conhecer e entender o que são os algoritmos e como utilizá-los para determinar a sequência de passos necessários para resolvermos determinados problemas ou, em outras palavras, encontrarmos a solução, ou a melhor solução, para a implementação em uma linguagem de programação (PIVA JUNIOR et al., 2012, p. 3). FT1 ALGORITMOS ALGORITMO É: Conjunto de processos ou ações que obedecem a uma sequencia lógica para executar tarefas. 11
Slide 21 FT1 Fabiano Taguchi; 04/08/2016 Slide 22 FT1 Fabiano Taguchi; 04/08/2016
FT1 ATENÇÃO Todas as ações que realizamos obedecem a uma sequência, e que esta precisa ser executada para que se consiga atingir o objetivo predeterminado. Trocar uma lâmpada Trocar o pneu de um carro Fazer café FT1 ALGORITMOS Todas as ações que realizamos obedecem uma sequencia lógica, e esta sequencia precisa ser obedecida para que um objetivo possam ser alcançado. E nisso são observadas: Sintaxe Programação estruturada Programação orientada a objetos 12
Slide 23 FT1 Fabiano Taguchi; 04/08/2016 Slide 24 FT1 Fabiano Taguchi; 04/08/2016
FT1 ALGORITMO DE EUCLIDES PASSOS: 1. Divide um número a por b e o resto de divisão é chamado de r. 2. Substitui a por b. 3. Continua a divisão e substitui b por r. 4. Divide a por b até que um não possa ser mais dividido e o a, para esta situação, será o máximo divisor comum. CARACTERÍSTICAS Um algoritmos possui como características: Finitude; Definição; Entrada; Saída; Eficácia. 13
Slide 25 FT1 Fabiano Taguchi; 04/08/2016
ALGORITMOS Com o estudo dos algoritmos a identificação dos passos será facilitada. Um algoritmo funciona a partir de: Dados Processamento Informação FT1 PROGRAMAÇÃO As linguagens de programação visam possibilitar a inserção dos passos ou ações que o software deverá executar, através de uma plataforma que permita, desde que respeite a sintaxe de cada uma, expressar a sequência lógica determinada no algoritmo ou em sua construção. Desktop Web Aplicativos móveis 14
Slide 28 FT1 Fabiano Taguchi; 04/08/2016
ORGANIZAÇÃO BÁSICA PC Unidade de entrada; Unidade de saída; Unidade de processamento central; Memória. ORGANIZAÇÃO BÁSICA PC 15
TABELA ASCII AMERICAN STANDARD CODE Tabela responsável por converter os caracteres para a sua respectiva combinação binária, desta forma, cada caractere é composto por 8 bits. Disponível em: <http://www.ascii-code.com> EXEMPLO PRÁTICO https://www.ufrgs.br/psicoeduc/hanoi/ 16
PROCESSO DE CONSTRUÇÃO Compreender o problema Definir os dados de entrada Realizar o processamento Definir os dados que serão exibidos DESCRIÇÃO NARRATIVA Representação do problema é feita por meio da linguagem natural, descrevendo os passos que devem ser seguidos para solução de um problema. Exemplo: Algoritmo que efetua a soma entre dois números. É preciso obter como entrada dois números quaisquer, esses números devem ser somados, e então o resultado apresentado. 17
FLUXOGRAMA Consiste em uma notação gráfica que permite indicar as ações e decisões. SIMBOLOGIA Declara o início e o fim do algoritmo Representa a entrada de dados Indica a fase do processamento Usado para representar a saída de dados Determina o fluxo do algoritmo Estrutura condicional (Decisão) 18
PSEUDOCÓDIGO Representação do problema por meio de regras prédefinidas, essa linguagem em geral é conhecido como português estruturado. Algoritmo soma Var valor1, valor2, soma: inteiro Inicio leia (valor1) leia (valor2) s <- valor1+valor2 Fim EXERCÍCIO Elabore um algoritmo que some quatro notas e calcule a media aritmética dessas notas Ao final informe ao usuário a média final obtida. ENTRADAS? PROCESSAMENTO? SAÍDAS? 19
PROBLEMÁTICA Suponha que você e a sua equipe foram contratados para o desenvolvimento de um aplicativo que divulgue os serviços de hotelaria e gastronomia dos comerciantes do litoral sul. Uma das propostas da empresa é disponibilizar um protótipo do aplicativo para celular que informamos usuários quais são os serviços de hotelaria e gastronomia disponíveis naquela região. PROBLEMÁTICA É preciso definir em linguagem natural um algoritmo que deixe clara a sequência lógica que terá de ser cumprida para a solução do problema que os comerciantes do Litoral Sul têm de resolver. O que precisa ser feito? 20
PROBLEMÁTICA 1. Início 2. Levantar requisitos do aplicativo junto aos comerciantes. 3. Escrever o plano de ação do projeto. 4. Obter a aprovação junto aos clientes. 5. Elaborar o algoritmo do software em questão em linguagem natural e em pseudocódigo. 6. Desenvolver o fluxograma das ações do aplicativo. 7. Direcionar à equipe de desenvolvimento do projeto para a implantação. 8. Desenvolver a solução utilizando uma linguagem de programação. 9. Realizar os testes. 10. Disponibilizar o aplicativo. 11. Encerrar o projeto. ONDE PRATICAR VISUALG Disponível em: www.apoioinformatica.com.br DEVC++ Disponível em www.bloodshed.net/devcpp.htm 21