ALGORITMOS E LÓGICA DE
PROGRAMAÇÃO
Prof. Esp. Fabiano Taguchi http://fabianotaguchi.wordpress.com [email protected]
ALGORITMOS E LÓGICA DE
PROGRAMAÇÃO
• Carga horária: 60 horas/aula
• Aulas: Quintas-feiras – 19h00min às 20h15min 20h45min às 22h00min • Formas de avaliação
Prova e listas de exercícios Participação nas aulas
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 paramodelar,simulareotimizarsistemas de produção;
• Conhecer métodos e técnicas de desenvolvimento,
implantação e gerenciamento de processos;
• Conhecermétodosetécnicas de gestãopara tomada de decisão.
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.
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.MODELO KLS
• 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
PLANEJAMENTO DE ENSINO
UNIDADE DE ENSINO IConceitos iniciais de algoritmos – Declaração de variáveis e constantes – Definição de algoritmos
– Expressões literais, lógicas e aritméticas – Formas de representação de algoritmos – Tipos de dados, variáveis e constantes
PLANEJAMENTO DE ENSINO
UNIDADE DE ENSINO IIDesenvolvimento de algoritmos
– Estrutura condicional composta e encadeada – Estrutura condicional simples
– Estrutura de múltipla escolha
– Instruções primitivas: Entrada de dados, atribuição e saída
PLANEJAMENTO DE ENSINO
UNIDADE DE ENSINO IIIIntrodução às linguagens de programação – Comandos de entrada de dados, atribuição e saída – Declaração de variáveis e constantes
– Expressões literais, lógicas e aritméticas – Histórico e perspectivas para a linguagem – O ambiente de programação
PLANEJAMENTO DE ENSINO
UNIDADE DE ENSINO IVEstruturas de decisão
– Estrutura condicional composta – Estrutura condicional de múltipla escolha – Estrutura condicional simples
PLANEJAMENTO DE ENSINO
UNIDADE DE ENSINO VEstruturas de repetição
– Repetição condicional com teste no final – Repetição condicional com teste no início – Repetição controlada por variável
PLANEJAMENTO DE ENSINO
UNIDADE DE ENSINO VIVetores e matrizes
– Aplicações utilizando vetores e matrizes – Operações sobre vetores e matrizes – Os vetores como estrutura de dados
FREQUÊNCIA NAS AULAS
A chamada será feita passados 40 minutos da primeira aula, e faltando 20 minutos para o término da segunda aula, porém é importante a presença dos discentes desde o início da aula.
AVALIAÇÕES
Cada bimestre será composto por:• Avaliação parcial – Peso 03 • Avalição oficial – Peso 07
Média bimestral – (PP X 0,3) + (PO X 0,7) / 2
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 – 03/09/2015 • Prova Oficial I 1º Bimestre – 01/10/2015 • Prova Parcial 2º Bimestre – 19/11/2015 • Prova Oficial 2º Bimestre – 02/12/2015 • Segunda chamada – 17/12/2015 • Prova final – 22/12/2015
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
REFERÊNCIAS BIBLIOGRÁFICAS
COMPLEMENTARES• CLAUDIO, Dalcidio Moraes; MARINS, Jussara Maria. Cálculo numérico computacional: teoria e pratica: algoritmos em pseudolinguagem -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
PRÉ AULA
Observe que há três hastes, chamadas aqui respectivamente de A, B e C. A primeira haste (A) tem anéis com diâmetros diferentes e organizados em ordem decrescente. O desafio está em transferir os anéis da haste A para a B. Para resolver essa questão, você precisa respeitar algumas regras:a) Não pode mover mais de uma haste por vez.
b) É preciso respeitar a ordem decrescente dos diâmetros, ou seja, do menor para o maior.
Transcreva e teste você mesmo o mecanismo. Assinale a alternativa que representa a quantidade mínima de movimentos que deverão ser realizados para efetuar essa operação. Considere a fórmula: 2n-1.
Para três discos são sete movimentos, pois 2³-¹ = 7
PRÉ AULA
1. Atravessem o aluno1 do G1 e aluno1 do G2.2. Volte o aluno1 do G1.
3. Atravessem o aluno2 do G2 e aluno3 do G2. 4. Volte o aluno1 do G2.
5. Atravessem o aluno1 do G1 e aluno2 do G1. 6. Volte aluno1 do G1 e aluno2 do G2. 7. Atravessem o aluno1 do G1 e aluno3 do G1. 8. Volte o aluno3 do G2.
9. Atravessem o aluno1 do G2 e o aluno2 do G2. 10. Volte aluno2 do G2.
11. Atravessem aluno2 do G2 2 aluno3 do G2. Resposta é a linha 11 – 2G2/3G2
CONCEITOS INICIAIS DE
ALGORITMOS
Definição de algoritmos Conhecer os princípios e conceitos que envolvem o aprendizado em construção de algoritmos e programação e a sua importância
para o universo do desenvolvimento de sistema.
OBJETIVOS DE APRENDIZAGEM
• Conhecer o que são, como se aplicam e a quem sedestina a elaboração dos algoritmos;
• Conhecer como se desenvolve estruturas computacionais com expressões literais, lógicas e aritméticas, além dos tipos de dados;
OBJETIVOS DE APRENDIZAGEM
• Conhecer o ambiente de programação, a maneira como ocorre o raciocínio lógico computacional, bem como os tipos e as formas de representação de algoritmos através da elaboração do fluxograma e do pseudocódigo; • Conhecer e saber identificar o que são variáveis econstantes e como se faz a declaração de variáveis.
APRENDIZAGEM
RESULTADOPretende-se que o aluno saiba identificar a sequencia de ações que o sistema precisará executar e apresente-a em linguagem natural.
CONHECIMENTOS PRÉVIOS E PROCEDIMENTAIS
ORGANIZAÇÃO DO PC
• Unidade de entrada • Unidade de saída
• Unidade de processamento central • Memória
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>
SOFTWARES
Quem auxilia o computador no desenvolvimento de suas atividades são os softwares. O desenvolvimento de um software contempla:• Projeto; • Implementação; • Testes.
LÓGICA
SEQUENCIA LÓGICAArte de pensar corretamente, organização do pensamento, forma de corrigir o raciocínio lógico. A lógica deve ser exercitada, isso auxilia na forma de resolução de problemas simples, até problemas mais complexos.
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
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?09 dias02 – Três gatos comem três ratos em três minutos. Cem gatos comem cem ratos em quantos minutos?3 minutos
EXERCITANDO A LÓGICA
03 – O pai do padre é filho do meu pai. O que eu sou do Padre?04 – Qual o próximo número da sequência 7,8,10,13,17? 05 – 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?
EXERCITANDO A LÓGICA
03 – O pai do padre é filho do meu pai. O que eu sou do Padre?Tio do padre04 – Qual o próximo número da sequência 7,8,10,13,17? 22
05 – 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?Duas filhas vão, uma filha volta, o pai vai e a outra filha vem buscar a irmã.
ALGORITMOS
Consiste em uma sequencia finita de instruções ordenadas, criadas para solucionar um problema em específico. • Que rotinas você segue para sair de sua casa e chegar naUNIC? Que passos você segue para trocar uma lâmpada quando ela para de funcionar?
ALGORITMOS
“Para programarmos em um computador, devemos conhecer e entender o que são os algoritmos, e como utiliza-los para determinar a sequencia 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 JR., 2012)
ALGORITMO PARA VIR A UNIC
1. IR ATÉ O BANHEIRO2. TOMAR UM BANHO 3. VESTIR-SE 4. ENTRAR NO CARRO 5. IR ATÉ O LOCAL DE ESTUDO 6. ESTACIONAR O CARRO 7. ENTRAR NA UNIVERSIDADE 8. CHEGAR ATÉ A SALA DE AULA
TROCA DE UMA LÂMPADA
1. PEGAR UMA ESCADA2. POSICIONAR A ESCADA EMBAIXO DA LÂMPADA 3. BUSCAR UMA LÂMPADA NOVA
4. SUBIR NA ESCADA 5. RETIRAR A LÂMPADA VEHA 6. COLOCAR A LÂMPADA NOVA
TROCA DE UMA LÂMPADA
1. PEGAR UMA ESCADA2. POSICIONAR A ESCADA EMBAIXO DA LÂMPADA 3. BUSCAR UMA LÂMPADA NOVA
4. ACIONAR O INTERRUPTOR
5. SE A LÂMPADA NÃO ACENDER, ENTÃO
• SUBIR NA ESCADA
• RETIRAR A LÂMPADA QUEIMADA • COLOCAR A LÂMPADA NOVA
ALGORITMO PARA FAZER CAFÉ
1. .... 2. .... 3. .... 4. .... 5. .... 6. .... 7. ....PROGRAMAÇÃO
O algoritmo é uma representação de uma linguagem de programação, portanto as instruções devem ser codificadas em uma linguagem de programação, possibilitando a inserção dos passos para que o software entenda e faça a execução.ALGORITMOS
PROPRIEDADES DE UM ALGORITMO• Finitude: Indica que o algoritmo encerra após um número finito de execuções;
• Definição: Evita uma definição clara do algoritmo; • Entrada: Atribui valores para início do algoritmo; • Saída: Valores após o processamento;
• Eficácia: Todas as ações devem ser exercitadas em um limite de tempo predeterminado e finito.
PROCESSO DE CONSTRUÇÃO
Compreender o problema Definir os dados de entrada Realizar o processamento Definir os dados que serão exibidosDESCRIÇÃ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.
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
Indica a fase do processamento Representa a entrada de dados
Usado para representar a saída de dados
Determina o fluxo do algoritmo
Estrutura condicional (Decisão)
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
ESTRUTURA DE ALGORITMO
Um algoritmo possui início e fim bem definidos. A estrutura abaixo representa o começo da escrita do algoritmo:algoritmo “sem nome” var <<Declaração de variáveis>> inicio <<Corpo do algoritmo>> fim
PROCESSO DE CONSTRUÇÃO
As três hastes serão chamadas de A, B e C.A haste A possui os anéis com diâmetros
diferentes e organizadas em ordem
decrescente. O desafio está em transferir os anéis da haste A para B, com regras: a) Não pode ser movido o disco por mais
de uma haste por vez;
b) Deve ser respeitada a ordem dos anéis de forma decrescente.
PROCESSO DE CONTRUÇÃO
• Início1. Mover o primeiro anel de A para B. 2. Mover o segundo anel de A para C; 3. Mover o anel de B para C; 4. Mover o terceiro anel de A para B; 5. Mover o anel de C para A; 6. Mover o anel de C para B; 7. Mover o anel de A para B; • 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?
EXERCÍCIO
No bairro São Joao da Barra, na cidade de Mirandópolis, a companhia telefônica lançou uma promoção em que a cada 30 moradores que fizessem a adesão do seu plano de TV,internet e telefone, pagariam apenas o valor de R$ 100,00
pelas assinaturas e, além disso, ganhariam um bônus de R$ 67,00 no primeiro mês da assinatura. Descubra qual o valor de cada assinatura.
SOLUÇÃO
ALGORITMO EM LINGUAGEM NATURAL • Início 1. Inserir valores 30, 67 e 100. 2. Subtrair de 67 de 100. 3. Dividir o resultado da subtração por 30. 4. Exibir o resultado. • FimSOLUÇÃO
ALGORITMO EM LÓGICA COMPUTACIONAL • Início 1. Leia os valores A, B e C. 2. s → B - C. 3. Escreva o resultado. • FimPRATICANDO
Em uma gincana escolar, o desafio era fazer com que dois grupos de três integrantes cada conseguissem atravessar uma ponte em que só é possível passar dois alunos por vez. No entanto, como são grupos diferentes, não é permitido que em qualquer dos lados da ponte fiquem mais alunos do grupo 2 (G2) que do grupo 3 (G3). Então, elabore o algoritmo que respeite essas regras e demonstre em linguagem natural e faça o teste conforme a indicação que segue.SOLUÇÃO
1. Atravessem o aluno1 do G1 e aluno1 do G2.2. Volte o aluno1 do G1.
3. Atravessem o aluno2 do G2 e aluno3 do G2. 4. Volte o aluno1 do G2.
5. Atravessem o aluno1 do G1 e aluno2 do G1. 6. Volte aluno1 do G1 e aluno2 do G2. 7. Atravessem o aluno1 do G1 e aluno3 do G1. 8. Volte o aluno3 do G2.
9. Atravessem o aluno1 do G2 e o aluno2 do G2. 10. Volte aluno2 do G2.
11. Atravessem aluno2 do G2 2 aluno3 do G2.
• Expressões literais, lógicas e aritméticas; • Tipos de dados, variáveis e constantes. PRÓXIMA AULA....