Introdução à Algoritmos Professor :  Claudio Stein Junior E-mail:  frostlost@yahoo.com.br
Quem sou eu?
 
 
Quem sou eu? Bacharel em Sistemas de Informação Licenciado em Informática Pós-Graduando em Tecnologia em Desenvolvimento de Sistemas Microsoft MBA em Gestão Estratégica de Marketing Certificado Java para WEB (IBM) Analista de Sistemas da Inova Softwares Professor da UNIBARRETOS, UNIJALES e ETEC Orientador da Empresa Junior da UNIJALES Atuando a 16 anos como professor (1994) Especialidades: Programação (Delphi, .NET, Java), Engenharia de Software, UML e Banco de Dados.
Ementa Lógica Algoritmos Linguagem Natural Pseudocódigo Fluxogramas Constantes, Variáveis, Palavras Reservadas, Identificadores Tipos de Dados Operadores
Metodologia Aula expositiva e dialogada Recursos Notebook e projetor multimídia.
Bibliografia Bibliografia Básica: Fundamentos da Programação de Computadores Ana Fernanda Gomes Ascencio, Edilene Aparecida Veneruchi de Campos – 2ª edição – Editora Pearson Prentice Hall, 2003. Algoritmos, Teoria e Prática Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein – Editora Campus, 2002. Bibliografia Complementar: Algoritmos e Programação   – Teoria e Prática Marco Medina e Cristina Fertig – 2ª Edição – Editora Novatec, 2006.
O que é um Problema?
 
Conceito de Problema Problema ( Dicionário Michaelis ): Questão matemática proposta para ser resolvida. Questão difícil, delicada, suscetível de diversas soluções. Qualquer coisa de difícil explicação, mistério, enigma. Dúvida, questão.
Exemplos de Problemas Trocar uma lâmpada Trocar o pneu de um carro Preparar-se para uma prova Sempre que nos deparamos com um problema buscamos o quê?
Exemplo de Solução Por exemplo, para trocar uma lâmpada devemos: Adquirir uma lâmpada nova; Localizar a lâmpada queimada; Retirar a lâmpada queimada; Colocar a lâmpada nova; Descartar a lâmpada queimada.
O que orientou a obtenção dos procedimentos para a solução proposta?
Lógica
O que é a Lógica? A lógica é o ramo da Filosofia e da Matemática que estuda os métodos e princípios que permitem fazer distinção entre raciocínios válidos e não válidos, determinando o processo que leva ao conhecimento verdadeiro.
Tome nota Ninguém ensina outra pessoa a pensar, mas sim a desenvolver e aperfeiçoar esta técnica, com persistência e constância. A lógica é primordial na solução de problemas e para alcançar objetivos com eficiência e eficácia. Desenvolvemos softwares
Lógica em um Mercado
A lógica dizia o quê?
Aliás... O que aquele ladrão vai fazer sem a roda???
Cada um pensa de uma forma
O que construimos ao utilizar a lógica para solucionar um problema?
ALGORITMO
Conceito de Algoritmo Uma sequência de passos bem definida que deve ser seguida para a realizar uma tarefa ou solucionar um problema.
Métodos de Representação de Algoritmos Do ponto de vista computacional um algoritmo será implementado em uma linguagem de computação gerando um programa, o qual visa instruir um computador a executar determinada tarefa. O algoritmo tem como papel fundamental ser o elo de ligação entre dois mundos (real e computacional). A atividade de programação tem início com a construção do algoritmo.
Funcionalidade do Algoritmo MUNDO REAL MÁQUINA
Métodos de Representação de Algoritmos Descrição Narrativa: Adquira uma lâmpada nova e localize a lâmpada a ser trocada. Em seguida retire a lâmpada queimada e coloque a lâmpada nova. Após a troca descarte a lâmpada queimada.
Descrição  Narrativa Vantagens Desvantagens
 
Descrição Narrativa Um exemplo de ambigüidade presente em uma sentença na linguagem natural é: O policial escutou o barulho da porta. Esta frase pode ter pelo menos três interpretações: 1 - O policial escutou o barulho produzido pela porta. 2 - O policial estava junto à porta e escutou o barulho. 3 - O policial escutou o barulho que veio através da porta.
Métodos de Representação de Algoritmos Fluxograma Pseudocódigo (português estruturado)
Fluxograma
Exemplo de Pseudocódigo ALGORITMO: TROCAR UMA LÂMPADA PASSO 1:  Desligar a caixa de energia   PASSO 2:  Pegar a lâmpada nova PASSO 3:  Pegar a escada PASSO 4:  Posicionar a escada embaixo da lâmpada queimada PASSO 5:  Subir na escada com a lâmpada nova PASSO 6:  Retirar a lâmpada queimada PASSO 7:  Colocar a lâmpada nova PASSO 8:  Descer da escada PASSO 9:  Ligar o interruptor PASSO 10:  Guardar a escada PASSO 11:  Jogar a lâmpada velha no lixo
Métodos de Representação de Algoritmos Fluxograma: Vantagem – a representação gráfica é mais concisa que a representação textual. Desvantagem – é necessário aprender a simbologia dos fluxogramas. Pseudocódigo: Vantagem – sua transcrição para qualquer linguagem de programação é quase que direta. Desvantagem – é necessário aprender as regras do pseudocódigo.
Estrutura de um Algoritmo Algoritmo <nome do algoritmo> <declarações iniciais> Inicio <Corpo do algoritmo> Fim
Conceitos Básicos de Algoritmos Antes de nos aprofundarmos nos métodos de representação de algoritmos, devemos ter de forma clara a compreensão de alguns conceitos como: Constante; Variável; Identificador; Palavra-reservada; Entrada; Saída.
Constantes Constantes são endereços de memória destinados a armazenar informações fixas, inalteráveis durante a execução do programa. Exemplo: PI = 3.1416
Variáveis Variáveis são endereços de memória destinados a armazenar informações temporariamente.
Identificadores São os nomes dados as variáveis, constantes e programas. Exemplo: Var  idade : Inteiro
Regras de Identificadores Não podem ter nomes de palavras reservadas (comandos da linguagem); Devem possuir como 1º caractere uma letra ou Underscore (  _  ); Ter como demais caracteres letras, números ou Underscore; Não possuir espaços em branco; A escolha de letras maiúsculas ou minúsculas depende da linguagem
Palavras Reservadas São identificadores predefinidos que possuem significados especiais para o interpretador do algoritmo.
Tipos de Dados NUMÉRICO  (Inteiro ou Real) LITERAL LÓGICO
Exemplos de Armazenamento Inteiro:   0, -12, 15 Real:   0.12, -1.13, 25.17 Literal:   “Claudio”, “a”, “4˚ Andar” Lógico: . V. ou .F.
Operadores Os operadores são meios pelo qual incrementamos, decrementamos, comparamos e avaliamos dados dentro do computador. Temos três tipos de operadores: Operadores Aritméticos Operadores Relacionais Operadores Lógicos
Aritméticos OPERAÇÃO SÍMBOLO Adição + Subtração - Multiplicação * Divisão / Exponenciação **
Relacionais Descrição Símbolo Igual a  = Diferente de  <> ou # Maior que  > Menor que  < Maior ou igual a  >= Menor ou igual a  <=
Lógicos E / AND Uma expressão AND (E) é verdadeira se todas as condições forem verdadeiras OR/OU Uma expressão OR (OU) é verdadeira se pelo menos uma condição for verdadeira NOT Um expressão NOT (NÃO) inverte o valor da expressão ou condição, se verdadeira inverte para falsa e vice-versa.
Estrutura de um Algoritmo Algoritmo  Somar Var  n1, n2, total : Inteiro; Inicio Escreva (“Digite um número”); Leia(n1 ); Escreva (“Digite outro número”); Leia(n2 ); total ← n1 + n2; Escreva (“A soma dos números é  {0}.”, total); Fim
Estrutura de um Algoritmo Algoritmo  CalcularMedia Var  n1, n2, media:  real Inicio Escreva (“Digite um número”); Leia(n1 ); Escreva (“Digite outro número”); Leia(n2 ); media ← (n1 + n2) / 2; Se ( MEDIA >= 7)  entao Escreva ( “Aprovado”); Senao Escreva ( “Reprovado”); Fim_se Fim
Estrutura de um Algoritmo Algoritmo MostrarTabuada Var  i, n, total:  real Inicio Escreva (“Digite um número”); Leia(n1 ); Para  i  ← 0  ate  10  faca total  ← n * i; Escreva (“{0} X {1} = {2}”,n,i, total); Fim_Para Fim
FIM?

Lógica de Programação

  • 1.
    Introdução à AlgoritmosProfessor : Claudio Stein Junior E-mail: frostlost@yahoo.com.br
  • 2.
  • 3.
  • 4.
  • 5.
    Quem sou eu?Bacharel em Sistemas de Informação Licenciado em Informática Pós-Graduando em Tecnologia em Desenvolvimento de Sistemas Microsoft MBA em Gestão Estratégica de Marketing Certificado Java para WEB (IBM) Analista de Sistemas da Inova Softwares Professor da UNIBARRETOS, UNIJALES e ETEC Orientador da Empresa Junior da UNIJALES Atuando a 16 anos como professor (1994) Especialidades: Programação (Delphi, .NET, Java), Engenharia de Software, UML e Banco de Dados.
  • 6.
    Ementa Lógica AlgoritmosLinguagem Natural Pseudocódigo Fluxogramas Constantes, Variáveis, Palavras Reservadas, Identificadores Tipos de Dados Operadores
  • 7.
    Metodologia Aula expositivae dialogada Recursos Notebook e projetor multimídia.
  • 8.
    Bibliografia Bibliografia Básica:Fundamentos da Programação de Computadores Ana Fernanda Gomes Ascencio, Edilene Aparecida Veneruchi de Campos – 2ª edição – Editora Pearson Prentice Hall, 2003. Algoritmos, Teoria e Prática Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein – Editora Campus, 2002. Bibliografia Complementar: Algoritmos e Programação – Teoria e Prática Marco Medina e Cristina Fertig – 2ª Edição – Editora Novatec, 2006.
  • 9.
    O que éum Problema?
  • 10.
  • 11.
    Conceito de ProblemaProblema ( Dicionário Michaelis ): Questão matemática proposta para ser resolvida. Questão difícil, delicada, suscetível de diversas soluções. Qualquer coisa de difícil explicação, mistério, enigma. Dúvida, questão.
  • 12.
    Exemplos de ProblemasTrocar uma lâmpada Trocar o pneu de um carro Preparar-se para uma prova Sempre que nos deparamos com um problema buscamos o quê?
  • 13.
    Exemplo de SoluçãoPor exemplo, para trocar uma lâmpada devemos: Adquirir uma lâmpada nova; Localizar a lâmpada queimada; Retirar a lâmpada queimada; Colocar a lâmpada nova; Descartar a lâmpada queimada.
  • 14.
    O que orientoua obtenção dos procedimentos para a solução proposta?
  • 15.
  • 16.
    O que éa Lógica? A lógica é o ramo da Filosofia e da Matemática que estuda os métodos e princípios que permitem fazer distinção entre raciocínios válidos e não válidos, determinando o processo que leva ao conhecimento verdadeiro.
  • 17.
    Tome nota Ninguémensina outra pessoa a pensar, mas sim a desenvolver e aperfeiçoar esta técnica, com persistência e constância. A lógica é primordial na solução de problemas e para alcançar objetivos com eficiência e eficácia. Desenvolvemos softwares
  • 18.
  • 19.
  • 20.
    Aliás... O queaquele ladrão vai fazer sem a roda???
  • 21.
    Cada um pensade uma forma
  • 22.
    O que construimosao utilizar a lógica para solucionar um problema?
  • 23.
  • 24.
    Conceito de AlgoritmoUma sequência de passos bem definida que deve ser seguida para a realizar uma tarefa ou solucionar um problema.
  • 25.
    Métodos de Representaçãode Algoritmos Do ponto de vista computacional um algoritmo será implementado em uma linguagem de computação gerando um programa, o qual visa instruir um computador a executar determinada tarefa. O algoritmo tem como papel fundamental ser o elo de ligação entre dois mundos (real e computacional). A atividade de programação tem início com a construção do algoritmo.
  • 26.
    Funcionalidade do AlgoritmoMUNDO REAL MÁQUINA
  • 27.
    Métodos de Representaçãode Algoritmos Descrição Narrativa: Adquira uma lâmpada nova e localize a lâmpada a ser trocada. Em seguida retire a lâmpada queimada e coloque a lâmpada nova. Após a troca descarte a lâmpada queimada.
  • 28.
    Descrição NarrativaVantagens Desvantagens
  • 29.
  • 30.
    Descrição Narrativa Umexemplo de ambigüidade presente em uma sentença na linguagem natural é: O policial escutou o barulho da porta. Esta frase pode ter pelo menos três interpretações: 1 - O policial escutou o barulho produzido pela porta. 2 - O policial estava junto à porta e escutou o barulho. 3 - O policial escutou o barulho que veio através da porta.
  • 31.
    Métodos de Representaçãode Algoritmos Fluxograma Pseudocódigo (português estruturado)
  • 32.
  • 33.
    Exemplo de PseudocódigoALGORITMO: TROCAR UMA LÂMPADA PASSO 1: Desligar a caixa de energia PASSO 2: Pegar a lâmpada nova PASSO 3: Pegar a escada PASSO 4: Posicionar a escada embaixo da lâmpada queimada PASSO 5: Subir na escada com a lâmpada nova PASSO 6: Retirar a lâmpada queimada PASSO 7: Colocar a lâmpada nova PASSO 8: Descer da escada PASSO 9: Ligar o interruptor PASSO 10: Guardar a escada PASSO 11: Jogar a lâmpada velha no lixo
  • 34.
    Métodos de Representaçãode Algoritmos Fluxograma: Vantagem – a representação gráfica é mais concisa que a representação textual. Desvantagem – é necessário aprender a simbologia dos fluxogramas. Pseudocódigo: Vantagem – sua transcrição para qualquer linguagem de programação é quase que direta. Desvantagem – é necessário aprender as regras do pseudocódigo.
  • 35.
    Estrutura de umAlgoritmo Algoritmo <nome do algoritmo> <declarações iniciais> Inicio <Corpo do algoritmo> Fim
  • 36.
    Conceitos Básicos deAlgoritmos Antes de nos aprofundarmos nos métodos de representação de algoritmos, devemos ter de forma clara a compreensão de alguns conceitos como: Constante; Variável; Identificador; Palavra-reservada; Entrada; Saída.
  • 37.
    Constantes Constantes sãoendereços de memória destinados a armazenar informações fixas, inalteráveis durante a execução do programa. Exemplo: PI = 3.1416
  • 38.
    Variáveis Variáveis sãoendereços de memória destinados a armazenar informações temporariamente.
  • 39.
    Identificadores São osnomes dados as variáveis, constantes e programas. Exemplo: Var idade : Inteiro
  • 40.
    Regras de IdentificadoresNão podem ter nomes de palavras reservadas (comandos da linguagem); Devem possuir como 1º caractere uma letra ou Underscore ( _ ); Ter como demais caracteres letras, números ou Underscore; Não possuir espaços em branco; A escolha de letras maiúsculas ou minúsculas depende da linguagem
  • 41.
    Palavras Reservadas Sãoidentificadores predefinidos que possuem significados especiais para o interpretador do algoritmo.
  • 42.
    Tipos de DadosNUMÉRICO (Inteiro ou Real) LITERAL LÓGICO
  • 43.
    Exemplos de ArmazenamentoInteiro: 0, -12, 15 Real: 0.12, -1.13, 25.17 Literal: “Claudio”, “a”, “4˚ Andar” Lógico: . V. ou .F.
  • 44.
    Operadores Os operadoressão meios pelo qual incrementamos, decrementamos, comparamos e avaliamos dados dentro do computador. Temos três tipos de operadores: Operadores Aritméticos Operadores Relacionais Operadores Lógicos
  • 45.
    Aritméticos OPERAÇÃO SÍMBOLOAdição + Subtração - Multiplicação * Divisão / Exponenciação **
  • 46.
    Relacionais Descrição SímboloIgual a = Diferente de <> ou # Maior que > Menor que < Maior ou igual a >= Menor ou igual a <=
  • 47.
    Lógicos E /AND Uma expressão AND (E) é verdadeira se todas as condições forem verdadeiras OR/OU Uma expressão OR (OU) é verdadeira se pelo menos uma condição for verdadeira NOT Um expressão NOT (NÃO) inverte o valor da expressão ou condição, se verdadeira inverte para falsa e vice-versa.
  • 48.
    Estrutura de umAlgoritmo Algoritmo Somar Var n1, n2, total : Inteiro; Inicio Escreva (“Digite um número”); Leia(n1 ); Escreva (“Digite outro número”); Leia(n2 ); total ← n1 + n2; Escreva (“A soma dos números é {0}.”, total); Fim
  • 49.
    Estrutura de umAlgoritmo Algoritmo CalcularMedia Var n1, n2, media: real Inicio Escreva (“Digite um número”); Leia(n1 ); Escreva (“Digite outro número”); Leia(n2 ); media ← (n1 + n2) / 2; Se ( MEDIA >= 7) entao Escreva ( “Aprovado”); Senao Escreva ( “Reprovado”); Fim_se Fim
  • 50.
    Estrutura de umAlgoritmo Algoritmo MostrarTabuada Var i, n, total: real Inicio Escreva (“Digite um número”); Leia(n1 ); Para i ← 0 ate 10 faca total ← n * i; Escreva (“{0} X {1} = {2}”,n,i, total); Fim_Para Fim
  • 51.