SlideShare uma empresa Scribd logo
1 de 19
Algoritmos

  Revisão
Algoritmos
• A maioria dos algoritmos contém decisões.
• Por exemplo:

  – para atravessar uma rua preciso verificar se o sinal de
    pedestres está verde;

  – verificar se nenhum carro está avançando o sinal;

  – somente após decidir se estes fatos se confirmaram
    poderei atravessar a rua.
Algoritmos
• Para considerar um algoritmo que inclua decisões vamos estudar
  um algoritmo que nos ajude a decidir o que fazer em um domingo.

• Um possível algoritmo poderia ser o seguinte:

   – Algoritmo de domingo.
       •   Acordar.
       •   Tomar o café.
       •   Se estiver sol vou à praia senão leio o jornal.
       •   Almoçar.
       •   Ir ao cinema.
       •   Fazer uma refeição.
       •   Ir dormir.
   – Final do domingo.
Algoritmos
Algoritmos
• Aparentemente o algoritmo se reduziria ao
  cálculo da fórmula, no entanto ao detalharmos as
  ações devemos prever tudo que pode acontecer
  durante o cálculo desta fórmula.

• Por exemplo o que fazer se o valor do coeficiente
  a for igual a zero?

• Um possível algoritmo é o seguinte:
Algoritmos
• Algoritmo para cálculo de uma equação do segundo grau.
   – Obter os coeficientes a, b e c
       • Se o coeficiente a for igual a zero
            – informar que esta não é uma equação do segundo grau e terminar o algoritmo.
       • Caso contrário continue e faça
            – Calcular delta=b2-4ac
                 » Se o valor de delta for negativo
                        • informar que a equação não tem raízes reais e terminar o algoritmo.
                 » Caso contrário continue e faça
                        • Calcular a raiz quadrada de delta e guardar o resultado como raiz
                        • Calcular x1=(-b + raiz)/(2a)
                        • Calcular x2=(-b - raiz)/(2a)
                        • Fornecer como resultado x1 e x2
                 » Terminar condição
       • Terminar condição
   – Terminar o algoritmo.
• Fim do algoritmo para cálculo de uma equação do segundo grau.
Algoritmos
• Neste algoritmo em diversos pontos tivemos de tomar decisões e
  indicar o que fazer em cada uma das possibilidades, mesmo que
  seja mostrar que não podemos continuar o algoritmo.

• Toda vez que decisões tiverem de ser tomadas devemos incluir
  todas as possibilidades para o evento que estamos considerando.

• Este é um dos possíveis algoritmos por diversas razões.

• Por exemplo, poderíamos incluir no algoritmo o cálculo das raízes
  imaginárias ou no caso do coeficiente a ser igual a zero calcular
  como se fosse uma equação do primeiro grau.
Fluxogramas
• Esta forma de representação de algoritmos emprega várias
  formas geométricas para descrever cada uma das possíveis
  ações durante a execução do algoritmos.

• Existem algumas formas geométricas que são empregadas
  normalmente e que estão mostradas na Figura abaixo.

• Cada uma destas formas se aplica a uma determinada ação
  como está indicado.

• Existem outras formas que podem ser aplicadas.
Fluxogramas
• Existem outras formas que podem ser
  aplicadas, aqui são mostradas algumas delas.

     Início e Fim de                      Ponto de
                          Processamento
       Fluxograma                          decisão




                                          Conectar
     Impressão de                           para
      Resultados           Entrada de
                          Dados Manual     mesma
                                           página
• Como primeiro
  exemplo de um
  algoritmo descrito
  por meio de
  fluxogramas vamos
  considerar o
  exemplo do
  algoritmo para
  decidir o que fazer
  em um dia de
  domingo.

• A Figura ao lado
  mostra o
  fluxograma
  equivalente à
  descrição feita por
  meio da linguagem
  natural.
Exemplos
• Algoritmo de Euclides
   – Dados dois números positivos m e n encontre seu maior
     divisor comum, isto é o maior inteiro positivo que divide
     tanto m como n. Assuma que m é sempre maior que n, e n
     diferente de zero.
      • principal () início
          – ler m, n;
          – r = m % n; // resto da divisão de m por n
               » enquanto r != 0 faça
                    • m = n;
                    • n = r;
                    • r = m % n;
               » fim do enquanto
          – imprimir n;
      • fim de principal
Exemplos
• Multiplicação de dois números inteiros positivos

  – principal () início// achar quanto vale m*n
     • ler m, n;
     • r = 0;
         – enquanto n != 0 faça
              » r = r + m;
              » n = n-1;
         – fim do enquanto
     • imprimir r;
  – fim de principal
Exemplos
• Resolução de uma equação do segundo grau.
   – Neste algoritmo vamos assumir que o coeficiente a da equação
     é sempre diferente de 0.

      • principal () início
           – ler a, b, c
           – delta = b*b-4*a*c
           – se delta < 0
                » então
                       • imprimir ¨Não há raizes reais.¨
                » senão início
                       • x1 = (-b + sqrt(delta))/(2*a)
                       • x2 = (-b + sqrt(delta))/(2*a)
                       • imprimir x1, x2
           – fim de se
      • fim
Algoritimos

COMPLICANDO
Repetição com teste no Início
• Consiste em uma estrutura de controle de fluxo
  de execução que permite repetir diversas vezes
  um mesmo trecho do algoritmo, porém, sempre
  verificando antes de cada execução se é
  “permitido” executar o mesmo trecho.

• Para realizar a repetição com teste no início,
  utilizamos a estrutura enquanto, que permite
  que um bloco ou uma ação primitiva seja
  repetida enquanto uma determinada <condição>
  for verdadeira.
Repetição com teste no Início
• O modelo genérico           • Diagrama:
                                               ENQUANTO
  desse tipo de repetição
  é o seguinte:                             EXPRESSÃO LÓGICA
   Enquanto <condição> faça
      C1;                                        FAÇA
      C2;
      .                                          AÇÃO
      .
      .                                      FIM ENQUANTO

      Cn
   Fim enquanto;                                   ;
Repetição com teste no Início
•   Para ilustrar e aplicar o processo na prática, temos o seguinte algoritmo: (MÉDIA ARITMÉTICA PARA 50 ALUNOS)

•   Início
•   // declaração de variáveis
•   Real: N1, N2, N3, N4;                                                  // notas bimestrais
•   Real: MA;                                                              // media anual
•   Inteiro: CON;                                                          // contado
•   CON ← 0;                                                               // inicialização do contador
•        Enquanto (COM < 50) faça                                          // teste da condição de parada
•          Leia (N1, N2, N3, N4);                                          // entrada de dados
•          MA (N1+N2+N3+N4)/4;                                             // calculo da média
•          Escreva (“Média Anual”) = ”, MA);
•                Se (MA >= 7)
•                    Então
•                      Inicio
•                          Escreva (“Aluno Aprovado!”);
•                          Escreva (“Parabéns!”);
•                      Fim;
•                    Senão
•                       Inicio
•                          Escreva (“Aluno Reprovado!”);
•                          Escreva (“Estude Mais!”);
•                       Fim;
•                fimse;
•                COM COM + 1;                                              //incrementa o contador em um
•      fimenquanto;
•   fim
Repetição com teste no Início

Mais conteúdo relacionado

Mais procurados

Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosMario Jorge Pereira
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosRoney Sousa
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmiadiogoa21
 
Lógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de SeleçãoLógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de SeleçãoJanynne Gomes
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoMauro Pereira
 
Lista de exercício resposta
Lista de exercício   respostaLista de exercício   resposta
Lista de exercício respostaHercules Santhus
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosjormad
 
Lógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dadosLógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dadosWesley R. Bezerra
 
Exercicios Php
Exercicios PhpExercicios Php
Exercicios Phpsofteam
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlgWillians Miyabara
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Gercélia Ramos
 

Mais procurados (20)

Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - Algoritmos
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmia
 
Aula 3 algoritmos
Aula 3   algoritmosAula 3   algoritmos
Aula 3 algoritmos
 
Lógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de SeleçãoLógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de Seleção
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
Linguagem C - Ponteiros
Linguagem C - PonteirosLinguagem C - Ponteiros
Linguagem C - Ponteiros
 
Lista de exercício resposta
Lista de exercício   respostaLista de exercício   resposta
Lista de exercício resposta
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Apostila informática
Apostila informáticaApostila informática
Apostila informática
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos - Vetores
Algoritmos - VetoresAlgoritmos - Vetores
Algoritmos - Vetores
 
Partes do Teclado !
Partes do Teclado !Partes do Teclado !
Partes do Teclado !
 
Lógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dadosLógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dados
 
Exercicios Php
Exercicios PhpExercicios Php
Exercicios Php
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlg
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 

Destaque

53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-iEdvan Mateó
 
Fórmula de bhaskara e exercícios resolvidos
Fórmula de bhaskara e exercícios resolvidosFórmula de bhaskara e exercícios resolvidos
Fórmula de bhaskara e exercícios resolvidosAntonio Carlos Luguetti
 
Vida e Obra de Bhaskara
Vida e Obra de BhaskaraVida e Obra de Bhaskara
Vida e Obra de BhaskaraFlavioBooz
 
Exercícios resolvidos de problemas de equações do 2º grau
Exercícios resolvidos de problemas de equações do 2º grauExercícios resolvidos de problemas de equações do 2º grau
Exercícios resolvidos de problemas de equações do 2º grauAndré Luís Nogueira
 
2ª lista de exercícios 9º ano (eq. 2º grau)
2ª lista de exercícios   9º ano (eq. 2º grau)2ª lista de exercícios   9º ano (eq. 2º grau)
2ª lista de exercícios 9º ano (eq. 2º grau)Ilton Bruno
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAislan Rafael
 
1ª lista de exercícios 9º ano(equações do 2º grau - incompletas)
1ª lista de exercícios   9º ano(equações do 2º grau - incompletas)1ª lista de exercícios   9º ano(equações do 2º grau - incompletas)
1ª lista de exercícios 9º ano(equações do 2º grau - incompletas)Ilton Bruno
 
Angulos Opostos Retos Rasos Suplementares
Angulos Opostos Retos Rasos SuplementaresAngulos Opostos Retos Rasos Suplementares
Angulos Opostos Retos Rasos Suplementarestioheraclito
 
8 ano - Exercícios - Ângulos
8 ano - Exercícios - Ângulos8 ano - Exercícios - Ângulos
8 ano - Exercícios - ÂngulosAndréia Rodrigues
 
Construcción de gráficas circulares
Construcción de gráficas circularesConstrucción de gráficas circulares
Construcción de gráficas circularesJuanita López-Torres
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Aula03 conceito de fluxogramas e seqenciamento de açoes
Aula03   conceito de fluxogramas e seqenciamento de açoesAula03   conceito de fluxogramas e seqenciamento de açoes
Aula03 conceito de fluxogramas e seqenciamento de açoesGrupo Tiradentes
 
Ejemplos 1 análisis e interpretación de datos
Ejemplos 1 análisis e interpretación de datosEjemplos 1 análisis e interpretación de datos
Ejemplos 1 análisis e interpretación de datoskrank1981
 

Destaque (17)

Introdução
IntroduçãoIntrodução
Introdução
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i
 
Fórmula de bhaskara e exercícios resolvidos
Fórmula de bhaskara e exercícios resolvidosFórmula de bhaskara e exercícios resolvidos
Fórmula de bhaskara e exercícios resolvidos
 
Vida e Obra de Bhaskara
Vida e Obra de BhaskaraVida e Obra de Bhaskara
Vida e Obra de Bhaskara
 
Trabalho bhaskara
Trabalho bhaskaraTrabalho bhaskara
Trabalho bhaskara
 
Equação do 2º grau na prática
Equação do 2º grau na práticaEquação do 2º grau na prática
Equação do 2º grau na prática
 
Lista resolvida 9º ano
Lista resolvida 9º anoLista resolvida 9º ano
Lista resolvida 9º ano
 
Exercícios resolvidos de problemas de equações do 2º grau
Exercícios resolvidos de problemas de equações do 2º grauExercícios resolvidos de problemas de equações do 2º grau
Exercícios resolvidos de problemas de equações do 2º grau
 
2ª lista de exercícios 9º ano (eq. 2º grau)
2ª lista de exercícios   9º ano (eq. 2º grau)2ª lista de exercícios   9º ano (eq. 2º grau)
2ª lista de exercícios 9º ano (eq. 2º grau)
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 
1ª lista de exercícios 9º ano(equações do 2º grau - incompletas)
1ª lista de exercícios   9º ano(equações do 2º grau - incompletas)1ª lista de exercícios   9º ano(equações do 2º grau - incompletas)
1ª lista de exercícios 9º ano(equações do 2º grau - incompletas)
 
Angulos Opostos Retos Rasos Suplementares
Angulos Opostos Retos Rasos SuplementaresAngulos Opostos Retos Rasos Suplementares
Angulos Opostos Retos Rasos Suplementares
 
8 ano - Exercícios - Ângulos
8 ano - Exercícios - Ângulos8 ano - Exercícios - Ângulos
8 ano - Exercícios - Ângulos
 
Construcción de gráficas circulares
Construcción de gráficas circularesConstrucción de gráficas circulares
Construcción de gráficas circulares
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Aula03 conceito de fluxogramas e seqenciamento de açoes
Aula03   conceito de fluxogramas e seqenciamento de açoesAula03   conceito de fluxogramas e seqenciamento de açoes
Aula03 conceito de fluxogramas e seqenciamento de açoes
 
Ejemplos 1 análisis e interpretación de datos
Ejemplos 1 análisis e interpretación de datosEjemplos 1 análisis e interpretación de datos
Ejemplos 1 análisis e interpretación de datos
 

Semelhante a Algoritmos

Introdução - Algoritmos
Introdução - AlgoritmosIntrodução - Algoritmos
Introdução - AlgoritmosPsLucas
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1engenhariadecomputacao
 
Aula 1 aed - lógica de programação
Aula 1   aed - lógica de programaçãoAula 1   aed - lógica de programação
Aula 1 aed - lógica de programaçãoElaine Cecília Gatto
 
Curso de Delphi - Lógica de Programacao
Curso de Delphi - Lógica de ProgramacaoCurso de Delphi - Lógica de Programacao
Curso de Delphi - Lógica de ProgramacaoJosé Araújo
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoElaine Cecília Gatto
 
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling CAlgoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling CRodrigo Kiyoshi Saito
 
Aula 01 introdução a linguagem pascal
Aula 01   introdução a linguagem pascalAula 01   introdução a linguagem pascal
Aula 01 introdução a linguagem pascalTácito Graça
 
Lógica de Programação - Unimep/Pronatec - Aula08
Lógica de Programação - Unimep/Pronatec - Aula08Lógica de Programação - Unimep/Pronatec - Aula08
Lógica de Programação - Unimep/Pronatec - Aula08André Phillip Bertoletti
 
Implementacao de Algoritmos.ppt
 Implementacao de Algoritmos.ppt Implementacao de Algoritmos.ppt
Implementacao de Algoritmos.pptTopsAvakinImvu
 
ALG 01 - Implementacao de Algoritmos.ppt
ALG 01 - Implementacao de Algoritmos.pptALG 01 - Implementacao de Algoritmos.ppt
ALG 01 - Implementacao de Algoritmos.pptRogrioRikerSantana
 
ALG 01 - Implementacao de Algoritmos.ppt
ALG 01 - Implementacao de Algoritmos.pptALG 01 - Implementacao de Algoritmos.ppt
ALG 01 - Implementacao de Algoritmos.pptFabio Faria
 

Semelhante a Algoritmos (20)

Algoritmos - Aula 01 B - Introducao
Algoritmos - Aula 01 B - IntroducaoAlgoritmos - Aula 01 B - Introducao
Algoritmos - Aula 01 B - Introducao
 
Introdução - Algoritmos
Introdução - AlgoritmosIntrodução - Algoritmos
Introdução - Algoritmos
 
Aula 3-lógica.pptx
Aula 3-lógica.pptxAula 3-lógica.pptx
Aula 3-lógica.pptx
 
03 algoritmos basicos
03 algoritmos basicos03 algoritmos basicos
03 algoritmos basicos
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Aula 1 aed - lógica de programação
Aula 1   aed - lógica de programaçãoAula 1   aed - lógica de programação
Aula 1 aed - lógica de programação
 
Curso de Delphi - Lógica de Programacao
Curso de Delphi - Lógica de ProgramacaoCurso de Delphi - Lógica de Programacao
Curso de Delphi - Lógica de Programacao
 
Aula01
Aula01Aula01
Aula01
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de Programação
 
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling CAlgoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
 
Aula 01 introdução a linguagem pascal
Aula 01   introdução a linguagem pascalAula 01   introdução a linguagem pascal
Aula 01 introdução a linguagem pascal
 
Lógica de Programação - Unimep/Pronatec - Aula08
Lógica de Programação - Unimep/Pronatec - Aula08Lógica de Programação - Unimep/Pronatec - Aula08
Lógica de Programação - Unimep/Pronatec - Aula08
 
Algoritmos - capítulo 6
Algoritmos - capítulo 6Algoritmos - capítulo 6
Algoritmos - capítulo 6
 
122172 1445
122172 1445122172 1445
122172 1445
 
Aula02
Aula02Aula02
Aula02
 
Implementacao de Algoritmos.ppt
 Implementacao de Algoritmos.ppt Implementacao de Algoritmos.ppt
Implementacao de Algoritmos.ppt
 
ALG 01 - Implementacao de Algoritmos.ppt
ALG 01 - Implementacao de Algoritmos.pptALG 01 - Implementacao de Algoritmos.ppt
ALG 01 - Implementacao de Algoritmos.ppt
 
ALG 01 - Implementacao de Algoritmos.ppt
ALG 01 - Implementacao de Algoritmos.pptALG 01 - Implementacao de Algoritmos.ppt
ALG 01 - Implementacao de Algoritmos.ppt
 

Algoritmos

  • 2. Algoritmos • A maioria dos algoritmos contém decisões. • Por exemplo: – para atravessar uma rua preciso verificar se o sinal de pedestres está verde; – verificar se nenhum carro está avançando o sinal; – somente após decidir se estes fatos se confirmaram poderei atravessar a rua.
  • 3. Algoritmos • Para considerar um algoritmo que inclua decisões vamos estudar um algoritmo que nos ajude a decidir o que fazer em um domingo. • Um possível algoritmo poderia ser o seguinte: – Algoritmo de domingo. • Acordar. • Tomar o café. • Se estiver sol vou à praia senão leio o jornal. • Almoçar. • Ir ao cinema. • Fazer uma refeição. • Ir dormir. – Final do domingo.
  • 5. Algoritmos • Aparentemente o algoritmo se reduziria ao cálculo da fórmula, no entanto ao detalharmos as ações devemos prever tudo que pode acontecer durante o cálculo desta fórmula. • Por exemplo o que fazer se o valor do coeficiente a for igual a zero? • Um possível algoritmo é o seguinte:
  • 6. Algoritmos • Algoritmo para cálculo de uma equação do segundo grau. – Obter os coeficientes a, b e c • Se o coeficiente a for igual a zero – informar que esta não é uma equação do segundo grau e terminar o algoritmo. • Caso contrário continue e faça – Calcular delta=b2-4ac » Se o valor de delta for negativo • informar que a equação não tem raízes reais e terminar o algoritmo. » Caso contrário continue e faça • Calcular a raiz quadrada de delta e guardar o resultado como raiz • Calcular x1=(-b + raiz)/(2a) • Calcular x2=(-b - raiz)/(2a) • Fornecer como resultado x1 e x2 » Terminar condição • Terminar condição – Terminar o algoritmo. • Fim do algoritmo para cálculo de uma equação do segundo grau.
  • 7. Algoritmos • Neste algoritmo em diversos pontos tivemos de tomar decisões e indicar o que fazer em cada uma das possibilidades, mesmo que seja mostrar que não podemos continuar o algoritmo. • Toda vez que decisões tiverem de ser tomadas devemos incluir todas as possibilidades para o evento que estamos considerando. • Este é um dos possíveis algoritmos por diversas razões. • Por exemplo, poderíamos incluir no algoritmo o cálculo das raízes imaginárias ou no caso do coeficiente a ser igual a zero calcular como se fosse uma equação do primeiro grau.
  • 8. Fluxogramas • Esta forma de representação de algoritmos emprega várias formas geométricas para descrever cada uma das possíveis ações durante a execução do algoritmos. • Existem algumas formas geométricas que são empregadas normalmente e que estão mostradas na Figura abaixo. • Cada uma destas formas se aplica a uma determinada ação como está indicado. • Existem outras formas que podem ser aplicadas.
  • 9. Fluxogramas • Existem outras formas que podem ser aplicadas, aqui são mostradas algumas delas. Início e Fim de Ponto de Processamento Fluxograma decisão Conectar Impressão de para Resultados Entrada de Dados Manual mesma página
  • 10. • Como primeiro exemplo de um algoritmo descrito por meio de fluxogramas vamos considerar o exemplo do algoritmo para decidir o que fazer em um dia de domingo. • A Figura ao lado mostra o fluxograma equivalente à descrição feita por meio da linguagem natural.
  • 11.
  • 12. Exemplos • Algoritmo de Euclides – Dados dois números positivos m e n encontre seu maior divisor comum, isto é o maior inteiro positivo que divide tanto m como n. Assuma que m é sempre maior que n, e n diferente de zero. • principal () início – ler m, n; – r = m % n; // resto da divisão de m por n » enquanto r != 0 faça • m = n; • n = r; • r = m % n; » fim do enquanto – imprimir n; • fim de principal
  • 13. Exemplos • Multiplicação de dois números inteiros positivos – principal () início// achar quanto vale m*n • ler m, n; • r = 0; – enquanto n != 0 faça » r = r + m; » n = n-1; – fim do enquanto • imprimir r; – fim de principal
  • 14. Exemplos • Resolução de uma equação do segundo grau. – Neste algoritmo vamos assumir que o coeficiente a da equação é sempre diferente de 0. • principal () início – ler a, b, c – delta = b*b-4*a*c – se delta < 0 » então • imprimir ¨Não há raizes reais.¨ » senão início • x1 = (-b + sqrt(delta))/(2*a) • x2 = (-b + sqrt(delta))/(2*a) • imprimir x1, x2 – fim de se • fim
  • 16. Repetição com teste no Início • Consiste em uma estrutura de controle de fluxo de execução que permite repetir diversas vezes um mesmo trecho do algoritmo, porém, sempre verificando antes de cada execução se é “permitido” executar o mesmo trecho. • Para realizar a repetição com teste no início, utilizamos a estrutura enquanto, que permite que um bloco ou uma ação primitiva seja repetida enquanto uma determinada <condição> for verdadeira.
  • 17. Repetição com teste no Início • O modelo genérico • Diagrama: ENQUANTO desse tipo de repetição é o seguinte: EXPRESSÃO LÓGICA Enquanto <condição> faça C1; FAÇA C2; . AÇÃO . . FIM ENQUANTO Cn Fim enquanto; ;
  • 18. Repetição com teste no Início • Para ilustrar e aplicar o processo na prática, temos o seguinte algoritmo: (MÉDIA ARITMÉTICA PARA 50 ALUNOS) • Início • // declaração de variáveis • Real: N1, N2, N3, N4; // notas bimestrais • Real: MA; // media anual • Inteiro: CON; // contado • CON ← 0; // inicialização do contador • Enquanto (COM < 50) faça // teste da condição de parada • Leia (N1, N2, N3, N4); // entrada de dados • MA (N1+N2+N3+N4)/4; // calculo da média • Escreva (“Média Anual”) = ”, MA); • Se (MA >= 7) • Então • Inicio • Escreva (“Aluno Aprovado!”); • Escreva (“Parabéns!”); • Fim; • Senão • Inicio • Escreva (“Aluno Reprovado!”); • Escreva (“Estude Mais!”); • Fim; • fimse; • COM COM + 1; //incrementa o contador em um • fimenquanto; • fim
  • 19. Repetição com teste no Início