Prof. Adm. Hélio Lemes Costa Jr. M.Eng. Programação de Computadores Introdução a Algoritmos
Agenda de Aula O que é “ lógica ” ou “ pensamento lógico ”? O que é  algoritmo ? Alguns outros conceitos de  algoritmos Exemplos de  algoritmos Exercícios de Fixação e aprendizado
Exemplos de Algoritmos - pegar uma escada; - posicionar embaixo da lâmpada; - buscar uma lâmpada nova; - ligar o interruptor; - se a lâmpada não acender, então: - subir na escada; - retirar a lâmpada velha; - colocar a lâmpada nova. senão, se a lâmpada acender, então: fim do algoritmo. Trocar a lâmpada
O que é “ lógica ” ou “ pensamento lógico ”? Lógica é a forma correta de  organizar os pensamentos  e demonstrar o raciocínio de maneira correta. A utilização da lógica é a melhor forma de solucionar problemas e atingir objetivos.
O que é “ lógica ” ou “ pensamento lógico ”? Sempre que se quer  pensar ,  falar  ou  escrever  corretamente, deve-se colocar os  pensamentos  em ordem.
Exemplo Todo mamífero é um animal. Todo cavalo é mamífero. PORTANTO, todo mamífero é animal.
A lógica é muito importante em nossa vida, no dia- a- dia. Veja os exemplos abaixo: A gaveta está fechada. A Bala está dentro da gaveta Preciso primeiro abrir a gaveta, para depois pegar a bala.
Recapitulando... O que é “ lógica ” ou “ pensamento lógico ”? é a forma correta de  organizar os pensamentos  e demonstrar o raciocínio de maneira correta.
O que é  algoritmo ? Um Algoritmo é uma seqüência de instruções ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema  A seguir, um exemplo de algoritmo não computacional...
 
Algoritmo Apesar do nome estranho, os algoritmos são muito comuns no nosso cotidiano, como por exemplo, em uma receita de bolo . Nela estão escritos os ingredientes necessários e a seqüências de passos ou ações a serem cumpridos para que se consiga fazer um determinado tipo de bolo. Em um modo geral, um algoritmo segue um determinado padrão de comportamento, com objetivo de alcançar a solução de um problema.
Algoritmo Padrão de Comportamento: Imagine a seqüência de números:  1, 6, 11, 16, 21, 26, ...  Para determinar qual será o sétimo elemento dessa série, precisamos descobrir qual é a sua regra de formação, isto é, qual é o seu padrão de comportamento. Regra: X + 5
Alguns outros conceitos de  algoritmos Algoritmo é a  forma organizada  de expressar uma  seqüência  de passos que visam atingir um objetivo definido. Algoritmo é a lógica necessária para o desenvolvimento de um programa. Palavras que sempre encontramos nos conceitos de algoritmos: Organizada Seqüência passos receita instrução
Exercícios de Fixação Um homem quer atravessar um rio com um barco que pode carregar ele mesmo e apenas mais uma de suas três cargas: um lobo, um carneiro e um maço de alfafa. O que o homem deve fazer para atravessar o rio sem perder nenhuma de suas cargas?
Elabore um algoritmo que mova 3 discos de uma torre de Hanói, que consiste em 3 hastes (a-b-c), uma das quais serve de suporte para os três discos de tamanhos diferentes (1-2-3), os menores sobre os maiores. Pode-se mover um disco de cada vez para qualquer haste, sendo que nunca deve ser colocado um disco maior sobre um menor. O objetivo é transferir os três discos da haste A para haste C.
Mova <disco n> da haste <n1> para haste <n2> Passo 1 Passo 2 Passo 3 Passo 4 Passo 5 Passo 6 Passo 7 Mova Disco 1 da haste a para a haste c Mova Disco 2 da haste a para a haste b Mova Disco 1 da haste c para a haste b Mova Disco 3 da haste a para a haste c Mova Disco 1 da haste b para a haste a Mova Disco 2 da haste b para a haste c Mova Disco 1 da haste a para a haste c
Algoritmo computacional – Trabalhando os conceitos Um algoritmo é um procedimento computacional definido que recebe um ou mais valores  (entrada)  e produz um ou mais valores  (saída) .  Entrada Saída EPS
Algoritmo computacional – Trabalhando os conceitos O algoritmo é aquela fórmula matemática, aquele pedaço de código, que fica ali no meio da entrada e da saída para transformar o primeiro no segundo. Vamos supor por exemplo que temos a função:             A sua entrada é o  x  e a sua saída é o  y  (ou  f(x) , o valor que a função retorna).
Algoritmo computacional – Trabalhando os conceitos Os passos do algoritmo para resolução deste problema ficariam da seguinte forma: O algoritmo aqui seria o seguinte: Entrada: Receber o valor X.  Elevar X ao quadrado e guardar o número resultante como Z.  Dividir Z por 3 e guardar o número resultante como Y.  Saída: Imprimir o valor Y.
Pseudocódigo – Introdução. É uma forma genérica de escrever um algoritmo, utilizando uma linguagem simples (nativa a quem o escreve, de forma a ser entendida por qualquer pessoa) sem necessidade de conhecer a  sintaxe  de nenhuma linguagem de programação.  Como ficaria a escrita do algoritmo para a resolução deste problema, independente do valor de X?
algoritmo &quot;calculaX&quot; // Função : Calcular: F(x) = (X2)/2 // Autor : Prof. Reverton Cristaldo // Data : 31/7/2008 // Seção de Declarações  var x : real y : real inicio // Seção de Comandos  leia(x) y <- (x * x)/3 escreva(&quot;O Valor de F(x) é : &quot;, y:2:2) fimalgoritmo Variáveis
Pseudocódigo    Linguagem de Programação Pascal algoritmo &quot;calculaX&quot; // Função : Calcular: F(x) = (X2)/2 // Autor : Prof. Reverton Cristaldo // Data : 31/7/2008 // Seção de Declarações  var x : real y : real inicio // Seção de Comandos  leia(x) y <- (x * x)/3 escreva(&quot;O Valor de F(x) é : &quot;, y:2:2) fimalgoritmo program calculaX; uses Crt; { Função : Calcular: F(x) = (X2)/2} { Autor : Prof. Reverton Cristaldo} { Data : 31/7/2008} { Seção de Declarações} var x : real; y : real; begin { Seção de Comandos} readln(x); y := (x * x)/3; write('O Valor de F(x) é : ', y:2:2); end. Pseudocódigo Pascal
Fatores a serem levados em consideração na construção de um algoritmo 1. Complexidade Percebemos que, na medida em que  colocamos situações novas  no problema a ser resolvido, o algoritmo  vai aumentando a sua complexidade .  Esse certamente é o maior problema envolvido na construção de algoritmos.
Complexidade A complexidade pode ser vista como um sinônimo de variedade ( quantidade de situações diferentes que um problema pode apresentar ), as quais devem ser previstas na sua solução. Complexo Simples
Exemplo de Complexidade Ah!, Sim! Pode ser digital E um relógio sem ponteiro, pode ? Pode..com 3,2 ou 1 ponteiro E um relógio com 1 ponteiro é possível? É...Pode ser Um relógio com 2 ponteiros é possível? É um instrumento com três ponteiros concêntricos O que é um Relógio ?
Exemplo de Complexidade É um instrumento cuja finalidade é marcar o decorrer do tempo. O que é um relógio ? Algumas variáveis podem aumentar ou diminuir a complexidade de um sistema quando forem bem ou mal utilizadas.
Exercícios de Fixação e aprendizado Crie um algoritmo, ou descreva os passos para se trocar o pneu furado de um carro parado no acostamento de uma rodovia. Crie um algoritmo para calcular o X na seguinte fórmula:

Algoritmos

  • 1.
    Prof. Adm. HélioLemes Costa Jr. M.Eng. Programação de Computadores Introdução a Algoritmos
  • 2.
    Agenda de AulaO que é “ lógica ” ou “ pensamento lógico ”? O que é algoritmo ? Alguns outros conceitos de algoritmos Exemplos de algoritmos Exercícios de Fixação e aprendizado
  • 3.
    Exemplos de Algoritmos- pegar uma escada; - posicionar embaixo da lâmpada; - buscar uma lâmpada nova; - ligar o interruptor; - se a lâmpada não acender, então: - subir na escada; - retirar a lâmpada velha; - colocar a lâmpada nova. senão, se a lâmpada acender, então: fim do algoritmo. Trocar a lâmpada
  • 4.
    O que é“ lógica ” ou “ pensamento lógico ”? Lógica é a forma correta de organizar os pensamentos e demonstrar o raciocínio de maneira correta. A utilização da lógica é a melhor forma de solucionar problemas e atingir objetivos.
  • 5.
    O que é“ lógica ” ou “ pensamento lógico ”? Sempre que se quer pensar , falar ou escrever corretamente, deve-se colocar os pensamentos em ordem.
  • 6.
    Exemplo Todo mamíferoé um animal. Todo cavalo é mamífero. PORTANTO, todo mamífero é animal.
  • 7.
    A lógica émuito importante em nossa vida, no dia- a- dia. Veja os exemplos abaixo: A gaveta está fechada. A Bala está dentro da gaveta Preciso primeiro abrir a gaveta, para depois pegar a bala.
  • 8.
    Recapitulando... O queé “ lógica ” ou “ pensamento lógico ”? é a forma correta de organizar os pensamentos e demonstrar o raciocínio de maneira correta.
  • 9.
    O que é algoritmo ? Um Algoritmo é uma seqüência de instruções ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema A seguir, um exemplo de algoritmo não computacional...
  • 10.
  • 11.
    Algoritmo Apesar donome estranho, os algoritmos são muito comuns no nosso cotidiano, como por exemplo, em uma receita de bolo . Nela estão escritos os ingredientes necessários e a seqüências de passos ou ações a serem cumpridos para que se consiga fazer um determinado tipo de bolo. Em um modo geral, um algoritmo segue um determinado padrão de comportamento, com objetivo de alcançar a solução de um problema.
  • 12.
    Algoritmo Padrão deComportamento: Imagine a seqüência de números: 1, 6, 11, 16, 21, 26, ... Para determinar qual será o sétimo elemento dessa série, precisamos descobrir qual é a sua regra de formação, isto é, qual é o seu padrão de comportamento. Regra: X + 5
  • 13.
    Alguns outros conceitosde algoritmos Algoritmo é a forma organizada de expressar uma seqüência de passos que visam atingir um objetivo definido. Algoritmo é a lógica necessária para o desenvolvimento de um programa. Palavras que sempre encontramos nos conceitos de algoritmos: Organizada Seqüência passos receita instrução
  • 14.
    Exercícios de FixaçãoUm homem quer atravessar um rio com um barco que pode carregar ele mesmo e apenas mais uma de suas três cargas: um lobo, um carneiro e um maço de alfafa. O que o homem deve fazer para atravessar o rio sem perder nenhuma de suas cargas?
  • 15.
    Elabore um algoritmoque mova 3 discos de uma torre de Hanói, que consiste em 3 hastes (a-b-c), uma das quais serve de suporte para os três discos de tamanhos diferentes (1-2-3), os menores sobre os maiores. Pode-se mover um disco de cada vez para qualquer haste, sendo que nunca deve ser colocado um disco maior sobre um menor. O objetivo é transferir os três discos da haste A para haste C.
  • 16.
    Mova <disco n>da haste <n1> para haste <n2> Passo 1 Passo 2 Passo 3 Passo 4 Passo 5 Passo 6 Passo 7 Mova Disco 1 da haste a para a haste c Mova Disco 2 da haste a para a haste b Mova Disco 1 da haste c para a haste b Mova Disco 3 da haste a para a haste c Mova Disco 1 da haste b para a haste a Mova Disco 2 da haste b para a haste c Mova Disco 1 da haste a para a haste c
  • 17.
    Algoritmo computacional –Trabalhando os conceitos Um algoritmo é um procedimento computacional definido que recebe um ou mais valores (entrada) e produz um ou mais valores (saída) . Entrada Saída EPS
  • 18.
    Algoritmo computacional –Trabalhando os conceitos O algoritmo é aquela fórmula matemática, aquele pedaço de código, que fica ali no meio da entrada e da saída para transformar o primeiro no segundo. Vamos supor por exemplo que temos a função:             A sua entrada é o x e a sua saída é o y (ou f(x) , o valor que a função retorna).
  • 19.
    Algoritmo computacional –Trabalhando os conceitos Os passos do algoritmo para resolução deste problema ficariam da seguinte forma: O algoritmo aqui seria o seguinte: Entrada: Receber o valor X. Elevar X ao quadrado e guardar o número resultante como Z. Dividir Z por 3 e guardar o número resultante como Y. Saída: Imprimir o valor Y.
  • 20.
    Pseudocódigo – Introdução.É uma forma genérica de escrever um algoritmo, utilizando uma linguagem simples (nativa a quem o escreve, de forma a ser entendida por qualquer pessoa) sem necessidade de conhecer a sintaxe de nenhuma linguagem de programação. Como ficaria a escrita do algoritmo para a resolução deste problema, independente do valor de X?
  • 21.
    algoritmo &quot;calculaX&quot; //Função : Calcular: F(x) = (X2)/2 // Autor : Prof. Reverton Cristaldo // Data : 31/7/2008 // Seção de Declarações var x : real y : real inicio // Seção de Comandos leia(x) y <- (x * x)/3 escreva(&quot;O Valor de F(x) é : &quot;, y:2:2) fimalgoritmo Variáveis
  • 22.
    Pseudocódigo  Linguagem de Programação Pascal algoritmo &quot;calculaX&quot; // Função : Calcular: F(x) = (X2)/2 // Autor : Prof. Reverton Cristaldo // Data : 31/7/2008 // Seção de Declarações var x : real y : real inicio // Seção de Comandos leia(x) y <- (x * x)/3 escreva(&quot;O Valor de F(x) é : &quot;, y:2:2) fimalgoritmo program calculaX; uses Crt; { Função : Calcular: F(x) = (X2)/2} { Autor : Prof. Reverton Cristaldo} { Data : 31/7/2008} { Seção de Declarações} var x : real; y : real; begin { Seção de Comandos} readln(x); y := (x * x)/3; write('O Valor de F(x) é : ', y:2:2); end. Pseudocódigo Pascal
  • 23.
    Fatores a seremlevados em consideração na construção de um algoritmo 1. Complexidade Percebemos que, na medida em que colocamos situações novas no problema a ser resolvido, o algoritmo vai aumentando a sua complexidade . Esse certamente é o maior problema envolvido na construção de algoritmos.
  • 24.
    Complexidade A complexidadepode ser vista como um sinônimo de variedade ( quantidade de situações diferentes que um problema pode apresentar ), as quais devem ser previstas na sua solução. Complexo Simples
  • 25.
    Exemplo de ComplexidadeAh!, Sim! Pode ser digital E um relógio sem ponteiro, pode ? Pode..com 3,2 ou 1 ponteiro E um relógio com 1 ponteiro é possível? É...Pode ser Um relógio com 2 ponteiros é possível? É um instrumento com três ponteiros concêntricos O que é um Relógio ?
  • 26.
    Exemplo de ComplexidadeÉ um instrumento cuja finalidade é marcar o decorrer do tempo. O que é um relógio ? Algumas variáveis podem aumentar ou diminuir a complexidade de um sistema quando forem bem ou mal utilizadas.
  • 27.
    Exercícios de Fixaçãoe aprendizado Crie um algoritmo, ou descreva os passos para se trocar o pneu furado de um carro parado no acostamento de uma rodovia. Crie um algoritmo para calcular o X na seguinte fórmula: