Algoritmos e Programação
Objetivo Desenvolver algoritmos coerentes e válidos para solucionar problemas e implementá-los utilizando uma linguagem de programação. Algoritmos e Programação
Conteúdo Programático Algoritmos e Programação Introdução à Lógica de Programação . Lógica. Seqüência lógica. Instruções. Algoritmos. Programa. Formas de Representação de Algoritmos: descrição narrativa, fluxograma, diagrama de Chapin, pseudocódigo. Representação de um algoritmo. Tópicos Preliminares de Programação.  Tipos de dados. Variáveis e constantes. Expressões e operadores aritméticos. Expressões e operadores lógicos. Expressões e operadores relacionais. Tabelas-verdade. Prioridades. Comandos de atribuição. Comandos de entrada e saída. Funções matemáticas. Estruturas de Controle . Estrutura seqüencial. Estrutura de Seleção: simples, composta e encadeada. Estrutura de múltipla escolha. Desvios incondicionais. Estruturas de Repetição: com teste no início, com teste no final, com variável de controle. Estruturas de controle encadeadas.
Conteúdo Programático Algoritmos e Programação Estruturas de dados homogêneas . Matrizes de uma dimensão ou vetores. Operações básicas com matrizes do tipo vetor. Exemplo de aplicações de vetores: pesquisa e classificação. Matrizes com mais de uma dimensão. Operações básicas com matrizes de duas dimensões. Estruturas de dados heterogêneas . Estrutura de registro. Estrutura de um registro de conjuntos. Estrutura de um conjunto de registros. Modularização de algoritmos.  Decomposição. Módulos. Escopo de variáveis. Variáveis globais e locais. Passagem de parâmetros. Retorno de valores.
Bibliografia (*) FORBELLONE , André Luiz;  ELBERSPACHER , Henri Frederico.  Lógica de Programação , 3ª edição. Pearson Prentice Hall, São Paulo. GUIMARÃES , Ângelo; LAGES, Newton.  Algoritmos e Estrutura de Dados . Rio de Janeiro. Editora LTC. MANZANO , José Augusto;  OLIVEIRA , Jayr Figueiredo.  Algoritmos e Lógica para Desenvolvimento de Programas.  São Paulo. Editora Érica, 1996. (*) SCHILDT , Herbert.  C Completo e Total .  Makron Books, 3ª edição, São Paulo, 1996.  MANZANO , José Augusto.  Estudo Dirigido de Linguagem C . Editora Érika, São Paulo, 1997. Algoritmos e Programação
Avaliação 3 notas  Cada nota será composta de uma prova e um trabalho.  Nota  = (Prova x 0.6 + Trabalho x 0.4) Média Parcial  MP = (N1 + N2 + N3)/3 Média Final  MF:   Se média parcial  MP  >=6.0, então  MF = MP , senão  MF = (MP + EF)/2, onde  EF = Exame Final. Algoritmos e Programação
 
Começando... Algoritmos e Programação
Algoritmos e Programação Capítulo 1 Introdução Algoritmos e Programação
Lógica É a forma de ordenar o pensamento.  É a arte de bem pensar.  Podemos dizer que a lógica tem em vista a “ordem da razão”. Ela nos ensina a usar corretamente as leis do pensamento.  Existe lógica no dia-a-dia? A gaveta está fechada. A caneta está dentro da gaveta. Precisamos primeiro abrir a gaveta para depois pegar a caneta. Algoritmos e Programação
Lógica Exemplos: a) Todo mamífero é um animal. Todo cavalo é um mamífero. Portanto, todo cavalo é um animal. b) Kation é país do planeta Stix. Todos os Xinpins são de Kaiton. Logo, todos os Xinpins são Stixianos. Algoritmos e Programação
Sequência Lógica São passos executados até atingir um objetivo ou solução de um problema. “ Chupar uma bala”: ·  Pegar a bala ·  Retirar o papel ·  Chupar a bala ·  Jogar o papel no lixo Algoritmos e Programação
Instruções Instruções são um conjunto de regras ou normas definidas para a realização ou emprego de algo. Em informática, é o que indica a um computador uma ação elementar a executar. Algoritmos e Programação
Algoritmo É uma seqüência de passos que visam atingir um objetivo bem definido.  É a descrição de um padrão de comporta-mento, expressado em termos de um  repertório bem definido e finito de ações “primitivas”,  das quais damos por certo que elas podem ser executadas.  Programar é basicamente construir algoritmos Algoritmos e Programação
Algoritmo Algoritmos no dia-a-dia:  instruções de uso, indicações de montagem, receitas de cozinha, partituras musicais, etc .  Quando perguntamos, por exemplo, pelo caminho para a rodoviária, perguntamos de fato por um algoritmo cujo seguimento nos leva a nosso objetivo. Algoritmos e Programação
Algoritmo Qual sua importância na programação? Representar o raciocínio, independentemente de detalhes computacionais, que podem ser acrescentados mais tarde. Focalizar primeiro na resolução algorítmica do problema, possibilitando depois codificá-la em qualquer linguagem. Algoritmos e Programação
Exemplo de Algoritmo Versão 1:  Troca de uma lâmpada : pegar uma escada; posicionar a escada embaixo da lâmpada; buscar uma lâmpada nova; subir na escada; retirar a lâmpada velha; colocar a lâmpada nova. Algoritmos e Programação
Exemplo de Algoritmo Versão 2:  Troca da lâmpada (com teste no início)   acionar o interruptor; se a lâmpada não acender, então     pegar uma escada;    posicionar a escada embaixo da lâmpada;    buscar uma lâmpada nova     subir escada;    retirar a lâmpada velha;    colocar a lâmpada nova. Algoritmos e Programação
Exemplo de Algoritmo Versão 3:  Troca da lâmpada (com teste para 10 soquetes)      ir até o interruptor do  primeiro  soquete;    enquanto a quantidade de soquetes testados for menor que 10, faça      acionar o interruptor;      se a lâmpada não acender, então      pegar uma escada;      posicionar a escada embaixo da lâmpada;      buscar uma lâmpada nova;      acionar o interruptor;      subir na escada;      retirar lâmpada queimada;      colocar lâmpada nova;      enquanto a lâmpada não acender, faça      retirar lâmpada queimada;      colocar lâmpada nova;    ir até o interruptor do  próximo  soquete; Algoritmos e Programação
Formas de Representação Versão 3 em Fluxograma início ir para o primeiro soquete soquetes restantes < 10 acionar o interruptor pegar uma escada posicionar escada buscar lâmpada nova acionar o interruptor não acendeu? subir na escada retirar a lâmpada queimada colocar lâmpada nova acionar o interruptor não acendeu? retirar a lâmpada queimada colocar lâmpada nova ir ao próximo soquete fim F F F V V V
Formas de Representação Versão 3 em Chapin
Formas de Representação Gráficas (Fluxograma e Chapin) Vantagens Maior clareza no fluxo de execução Linguagem visual Desvantagens Requer conhecimento de convenções gráficas Mais trabalhoso em decorrência de seus desenhos Dificuldade para fazer correções Textuais (Português Estruturado) Apresenta mais vantagens, desde que se tomem alguns cuidados: Riqueza gramatical de nossa língua pode levar a ambigüidades A frase “O pregador foi grampeado durante o conserto” tem 8 sentidos diferentes quando pronunciada Para resolver, utilizaremos um conjunto restrito de regras, conhecido como Português Estruturado (Portugol).
Portugol É uma pseudolinguagem de programação (simbiose de Português com o Algol) que reúne um conjunto básico de  primitivas  permitindo ao projetista pensar no problema e não na máquina que vai executar o algoritmo e, por outro lado, não fique muito distante desta mesma máquina.  Em toda linguagem, as frases construídas envolvem dois aspectos: a  sintaxe  e a  semântica . Algoritmos e Programação
Portugol Primitivas : Conjunto bem definido de elementos funcionais básicos com os quais podem ser construídas representações de algoritmos. Algoritmos e Programação
Sintaxe e Semântica Sintaxe : tem a ver com a forma. Semântica : tem a ver com o conteúdo Exemplo:  “Aqui vendem-se frangos abatidos” sintaticamente correta : está escrita de forma correta.  semântica : indica que naquele local existe uma venda de frangos mortos, e não vivos. Algoritmos e Programação
Exercício de Algoritmo Algoritmos e Programação 1. Três jesuítas e três canibais precisam atravessar um rio; para tal dispõem de um barco com capacidade para duas pessoas. Por medidas de segurança, não se deve permitir que em alguma margem a quantidade de jesuítas seja inferior à de canibais. Qual a solução para efetuar a travessia com segurança? Elabore um algoritmo indicando as ações que concretizem a solução do problema.
Exercício de Algoritmo 2. Construir uma lista de todos os inteiros positivos. Organizar essa lista em ordem decrescente (do maior para o menor), e extrair o primeiro inteiro da lista resultante. Estas instruções descrevem um algoritmo? Justifique sua resposta .  Algoritmos e Programação
Exercício de Algoritmo 3. Cálculo da média de um aluno. Obter as notas da primeira e da segunda prova Calcular a média aritmética entre as duas Se a média for maior ou igual a 7, o aluno foi aprovado, senão ele foi reprovado Algoritmos e Programação
Fluxograma
Diagrama de Chapin
Pseudocódigo inicio  real: N1, N2, Média; leia (N1, N2);  Média <- (N1+N2)/2;  se ( Média >= 7)  então  escreva (“Aprovado”);    senão escreva (“Reprovado”); fimse; fim.

Algoritmos e Programação

  • 1.
  • 2.
    Objetivo Desenvolver algoritmoscoerentes e válidos para solucionar problemas e implementá-los utilizando uma linguagem de programação. Algoritmos e Programação
  • 3.
    Conteúdo Programático Algoritmose Programação Introdução à Lógica de Programação . Lógica. Seqüência lógica. Instruções. Algoritmos. Programa. Formas de Representação de Algoritmos: descrição narrativa, fluxograma, diagrama de Chapin, pseudocódigo. Representação de um algoritmo. Tópicos Preliminares de Programação. Tipos de dados. Variáveis e constantes. Expressões e operadores aritméticos. Expressões e operadores lógicos. Expressões e operadores relacionais. Tabelas-verdade. Prioridades. Comandos de atribuição. Comandos de entrada e saída. Funções matemáticas. Estruturas de Controle . Estrutura seqüencial. Estrutura de Seleção: simples, composta e encadeada. Estrutura de múltipla escolha. Desvios incondicionais. Estruturas de Repetição: com teste no início, com teste no final, com variável de controle. Estruturas de controle encadeadas.
  • 4.
    Conteúdo Programático Algoritmose Programação Estruturas de dados homogêneas . Matrizes de uma dimensão ou vetores. Operações básicas com matrizes do tipo vetor. Exemplo de aplicações de vetores: pesquisa e classificação. Matrizes com mais de uma dimensão. Operações básicas com matrizes de duas dimensões. Estruturas de dados heterogêneas . Estrutura de registro. Estrutura de um registro de conjuntos. Estrutura de um conjunto de registros. Modularização de algoritmos. Decomposição. Módulos. Escopo de variáveis. Variáveis globais e locais. Passagem de parâmetros. Retorno de valores.
  • 5.
    Bibliografia (*) FORBELLONE, André Luiz; ELBERSPACHER , Henri Frederico. Lógica de Programação , 3ª edição. Pearson Prentice Hall, São Paulo. GUIMARÃES , Ângelo; LAGES, Newton. Algoritmos e Estrutura de Dados . Rio de Janeiro. Editora LTC. MANZANO , José Augusto; OLIVEIRA , Jayr Figueiredo. Algoritmos e Lógica para Desenvolvimento de Programas. São Paulo. Editora Érica, 1996. (*) SCHILDT , Herbert. C Completo e Total . Makron Books, 3ª edição, São Paulo, 1996. MANZANO , José Augusto. Estudo Dirigido de Linguagem C . Editora Érika, São Paulo, 1997. Algoritmos e Programação
  • 6.
    Avaliação 3 notas Cada nota será composta de uma prova e um trabalho. Nota = (Prova x 0.6 + Trabalho x 0.4) Média Parcial MP = (N1 + N2 + N3)/3 Média Final MF: Se média parcial MP >=6.0, então MF = MP , senão MF = (MP + EF)/2, onde EF = Exame Final. Algoritmos e Programação
  • 7.
  • 8.
  • 9.
    Algoritmos e ProgramaçãoCapítulo 1 Introdução Algoritmos e Programação
  • 10.
    Lógica É aforma de ordenar o pensamento. É a arte de bem pensar. Podemos dizer que a lógica tem em vista a “ordem da razão”. Ela nos ensina a usar corretamente as leis do pensamento. Existe lógica no dia-a-dia? A gaveta está fechada. A caneta está dentro da gaveta. Precisamos primeiro abrir a gaveta para depois pegar a caneta. Algoritmos e Programação
  • 11.
    Lógica Exemplos: a)Todo mamífero é um animal. Todo cavalo é um mamífero. Portanto, todo cavalo é um animal. b) Kation é país do planeta Stix. Todos os Xinpins são de Kaiton. Logo, todos os Xinpins são Stixianos. Algoritmos e Programação
  • 12.
    Sequência Lógica Sãopassos executados até atingir um objetivo ou solução de um problema. “ Chupar uma bala”: · Pegar a bala · Retirar o papel · Chupar a bala · Jogar o papel no lixo Algoritmos e Programação
  • 13.
    Instruções Instruções sãoum conjunto de regras ou normas definidas para a realização ou emprego de algo. Em informática, é o que indica a um computador uma ação elementar a executar. Algoritmos e Programação
  • 14.
    Algoritmo É umaseqüência de passos que visam atingir um objetivo bem definido. É a descrição de um padrão de comporta-mento, expressado em termos de um repertório bem definido e finito de ações “primitivas”, das quais damos por certo que elas podem ser executadas. Programar é basicamente construir algoritmos Algoritmos e Programação
  • 15.
    Algoritmo Algoritmos nodia-a-dia: instruções de uso, indicações de montagem, receitas de cozinha, partituras musicais, etc . Quando perguntamos, por exemplo, pelo caminho para a rodoviária, perguntamos de fato por um algoritmo cujo seguimento nos leva a nosso objetivo. Algoritmos e Programação
  • 16.
    Algoritmo Qual suaimportância na programação? Representar o raciocínio, independentemente de detalhes computacionais, que podem ser acrescentados mais tarde. Focalizar primeiro na resolução algorítmica do problema, possibilitando depois codificá-la em qualquer linguagem. Algoritmos e Programação
  • 17.
    Exemplo de AlgoritmoVersão 1: Troca de uma lâmpada : pegar uma escada; posicionar a escada embaixo da lâmpada; buscar uma lâmpada nova; subir na escada; retirar a lâmpada velha; colocar a lâmpada nova. Algoritmos e Programação
  • 18.
    Exemplo de AlgoritmoVersão 2: Troca da lâmpada (com teste no início) acionar o interruptor; se a lâmpada não acender, então  pegar uma escada;  posicionar a escada embaixo da lâmpada;  buscar uma lâmpada nova  subir escada;  retirar a lâmpada velha;  colocar a lâmpada nova. Algoritmos e Programação
  • 19.
    Exemplo de AlgoritmoVersão 3: Troca da lâmpada (com teste para 10 soquetes)  ir até o interruptor do primeiro soquete;  enquanto a quantidade de soquetes testados for menor que 10, faça  acionar o interruptor;  se a lâmpada não acender, então  pegar uma escada;  posicionar a escada embaixo da lâmpada;  buscar uma lâmpada nova;  acionar o interruptor;  subir na escada;  retirar lâmpada queimada;  colocar lâmpada nova;  enquanto a lâmpada não acender, faça  retirar lâmpada queimada;  colocar lâmpada nova;  ir até o interruptor do próximo soquete; Algoritmos e Programação
  • 20.
    Formas de RepresentaçãoVersão 3 em Fluxograma início ir para o primeiro soquete soquetes restantes < 10 acionar o interruptor pegar uma escada posicionar escada buscar lâmpada nova acionar o interruptor não acendeu? subir na escada retirar a lâmpada queimada colocar lâmpada nova acionar o interruptor não acendeu? retirar a lâmpada queimada colocar lâmpada nova ir ao próximo soquete fim F F F V V V
  • 21.
    Formas de RepresentaçãoVersão 3 em Chapin
  • 22.
    Formas de RepresentaçãoGráficas (Fluxograma e Chapin) Vantagens Maior clareza no fluxo de execução Linguagem visual Desvantagens Requer conhecimento de convenções gráficas Mais trabalhoso em decorrência de seus desenhos Dificuldade para fazer correções Textuais (Português Estruturado) Apresenta mais vantagens, desde que se tomem alguns cuidados: Riqueza gramatical de nossa língua pode levar a ambigüidades A frase “O pregador foi grampeado durante o conserto” tem 8 sentidos diferentes quando pronunciada Para resolver, utilizaremos um conjunto restrito de regras, conhecido como Português Estruturado (Portugol).
  • 23.
    Portugol É umapseudolinguagem de programação (simbiose de Português com o Algol) que reúne um conjunto básico de primitivas permitindo ao projetista pensar no problema e não na máquina que vai executar o algoritmo e, por outro lado, não fique muito distante desta mesma máquina. Em toda linguagem, as frases construídas envolvem dois aspectos: a sintaxe e a semântica . Algoritmos e Programação
  • 24.
    Portugol Primitivas :Conjunto bem definido de elementos funcionais básicos com os quais podem ser construídas representações de algoritmos. Algoritmos e Programação
  • 25.
    Sintaxe e SemânticaSintaxe : tem a ver com a forma. Semântica : tem a ver com o conteúdo Exemplo: “Aqui vendem-se frangos abatidos” sintaticamente correta : está escrita de forma correta. semântica : indica que naquele local existe uma venda de frangos mortos, e não vivos. Algoritmos e Programação
  • 26.
    Exercício de AlgoritmoAlgoritmos e Programação 1. Três jesuítas e três canibais precisam atravessar um rio; para tal dispõem de um barco com capacidade para duas pessoas. Por medidas de segurança, não se deve permitir que em alguma margem a quantidade de jesuítas seja inferior à de canibais. Qual a solução para efetuar a travessia com segurança? Elabore um algoritmo indicando as ações que concretizem a solução do problema.
  • 27.
    Exercício de Algoritmo2. Construir uma lista de todos os inteiros positivos. Organizar essa lista em ordem decrescente (do maior para o menor), e extrair o primeiro inteiro da lista resultante. Estas instruções descrevem um algoritmo? Justifique sua resposta . Algoritmos e Programação
  • 28.
    Exercício de Algoritmo3. Cálculo da média de um aluno. Obter as notas da primeira e da segunda prova Calcular a média aritmética entre as duas Se a média for maior ou igual a 7, o aluno foi aprovado, senão ele foi reprovado Algoritmos e Programação
  • 29.
  • 30.
  • 31.
    Pseudocódigo inicio real: N1, N2, Média; leia (N1, N2); Média <- (N1+N2)/2; se ( Média >= 7) então escreva (“Aprovado”); senão escreva (“Reprovado”); fimse; fim.