Gestão de Tecnologia da Informação



            Conceitos e Técnicas de
                Programação




    Profº Ms. Tarcísio Júnior

1
Conceitos e Técnicas de Programação




    Representação de Algoritmos




2
Representação de Algoritmos
    Linguagem Natural
    A representação de algoritmos através de linguagem natural é a
    forma mais espontânea de representação de algoritmos, pois
    descrevemos os passos do algoritmo utilizando o nosso linguajar
    quotidiano, escrevendo o algoritmo como um texto simples.

    Por exemplo, queremos resolver o seguinte problema:
    Calcular a média de todos os alunos que cursaram uma disciplina X,
    a partir da leitura das notas da 1ª e 2ª prova, passando por um
    cálculo de média aritmética. Após a média calculada, devemos
    anunciar se aluno foi aprovado ou reprovado por nota. Somente
    estão aprovados alunos com média maior ou igual a 5,0.



3
Representação de Algoritmos

    Representação do algoritmo em linguagem natural
    Para todos os alunos da disciplina X, faça: ler as notas da 1ª e 2ª
    prova, somar as notas e dividir por dois, chegando assim, ao
    resultado da média do aluno. Se a média do aluno for maior ou igual
    a 5,0, então o aluno está aprovado, senão o aluno está reprovado.
    Fazer para o próximo aluno.

    O problema da representação de algoritmos com linguagem natural
    é que quanto maior a complexidade do problema, maior a
    dificuldade de entendermos o texto que procura descrever os
    passos do algoritmo, pois não se emprega nenhum recurso
    diagramático, e não há uma rigidez na estruturação das ações.



4
Representação de Algoritmos

    Pseudocódigo
    O pseudocódigo vem sendo amplamente utilizado por projetistas de
    software e programadores, pois obriga o uso de estruturas que
    facilitam o entendimento do algoritmo, e também facilitam a
    transformação do mesmo em códigos reais.
    O pseudocódigo também recebe outros nomes, como: português
    estruturado, PDL (Program Design Language), etc..
    Utilizaremos neste curso o pseudocódigo como a forma de
    representação padrão para algoritmos.




5
Representação de Algoritmos
     O PSEUDOCÓDIGO será utilizado na disciplina. Por
      que?

       Facilita o desenvolvimento dos algoritmos;
       Facilita o seu entendimento pelo ser humano;
       Antecipa à depuração (localização de erros) em sua
        lógica;
       Facilita a sua manutenção e modificação;
       Facilita e agiliza a sua codificação (escrita do
        programa);
       Permite o desenvolvimento simultâneo de vários
        profissionais (trabalho em equipe).




6
Pseudocódigo do exemplo anterior
    Início
    variáveis
      nota1, nota2, media: real
    fim-variáveis

    Início
             Leia (nota1)
             Leia (nota2)
             media = (nota1 + nota2) / 2
             Se media >= 5,0 entao
             Início
                 Escreva (“Aluno aprovado”)
             Fim
             Senão
             Início
                 Escreva (“Aluno reprovado”)
             Fim
    Fim


7
Representação de Algoritmos
    Outro exemplo:
            algoritmo Soma

            variáveis
                    N1,N2,Soma: inteiro
            fim-variáveis

            início
                   escreva("Entre com o primeiro número")
                   leia(N1)
                   escreva("Entre com o segundo número")
                   leia (N2)
                   Soma  (N1+N2)
                   escreva("A soma dos números é: ", Soma)
            fimAlgoritmo

8
Exemplo de Algoritmo
    Imagine o seguinte problema: Calcular a média final dos alunos da 3ª
    Série. Os alunos realizarão quatro provas: P1, P2, P3 e P4.

    Onde:

    Média Final =

    Para montar o algoritmo proposto, faremos três perguntas:
     a) Quais são os dados de entrada?
     R: Os dados de entrada são P1, P2, P3 e P4
     b) Qual será o processamento a ser utilizado?
     R: O procedimento será somar todos os dados de entrada e dividi-
    los por 4 (quatro)




9
Exemplo de Algoritmo

 c) Quais serão os dados de saída?
 R: O dado de saída será a média final

 Algoritmo

     Receba a nota da prova1
     Receba a nota de prova2
     Receba a nota de prova3
     Receba a nota da prova4
     Some todas as notas e divida o resultado por 4
     Mostre o resultado da divisão




10
Teste de mesa

     Após desenvolver um algoritmo ele deverá sempre ser testado.
     Este teste é chamado de TESTE DE MESA, que significa, seguir
     as instruções do algoritmo de maneira precisa para verificar se o
     procedimento utilizado está correto ou não.

     Veja o exemplo:

     Nota da Prova 1
     Nota da Prova 2
     Nota da Prova 3
     Nota da Prova 4




11
Teste de mesa
 Utilize a tabela abaixo:




12
Conceitos e Técnicas de Programação




     Linguagens de Programação




13
Linguagem de programação


     • Estabelece regras de sintaxe para que o
       algoritmo possa ser entendido por uma
       máquina.




14
Algoritmo × Linguagem de Programação




     Raciocínio



                                int a, b, c;
                                if (a > 2)
                  Algoritmo     a = b + c;
                                else
                                a = b – c;
                                return;

                                      Programa
15
Programa


     • Programa é a codificação de um algoritmo em
       uma linguagem de programação.
     • Um computador é uma máquina que, a partir de
       uma entrada, realiza um número de cálculos
       matemáticos e lógicos, gerando uma saída.
     • Programa é o elemento que diz ao computador
       quais cálculos devem ser realizados.




16
Características


     • Sua principal característica é a utilização
       de blocos para solução de um problema.




17
Relembrando...

     Passos para elaboração de um programa:
     1.   Compreender o problema.
     2.   Esboçar um procedimento para resolver o problema.
     3.   Formular o algoritmo.
     4.   Traduzir o algoritmo para uma linguagem de
          programação (codificação).




18
Passos para elaboração de um programa

                    Exemplo

     • Calcular as raízes reais de:
                        2
                     ax + bx + c




19
1. Compreender o problema


     • Exemplo: Equação de 2o. grau
     • Possibilidades de raízes:
        02 raízes complexas;
        02 raízes reais idênticas;

        02 raízes reais distintas;

     • Condição para haver raízes reais: ∆ ≥ 0




20
2. Esboçar um procedimento para
                  resolver o problema




     • Calcular ∆.
     • Se ∆ ≥ 0, calcular raízes reais.
     • Caso contrário, informar que não há raízes
       reais.




21
3. Formular o algoritmo

     ler(a,b,c)
     delta = b^2 – 4*a*c
     se (delta ≥ 0) então
         r1 = – b – (delta)^(–1/2)
         r2 = – b + (delta)^(–1/2)
         escrever(r1,r2)
      senão
          escrever(“Não há raiz real”)
      fim do se
      fim do algoritmo




22
4. Codificar

     #include <stdio.h>
     #include <stdlib.h>
     #include <math.h>
     int main(void)
     {
          float a, b, c, delta, r1, r2;
          scanf("%f %f %f", &a, &b, &c);
          delta = b*b – 4*a*c;
          if (delta >= 0)
          {
               r1 = – b – sqrt(delta);
               r2 = – b + sqrt(delta);
               printf("r1 = %f n r2 = %f", r1, r2);
          }
          else
               printf("Nao ha raiz realn");
     }
23
Gerando um programa executável


     • Passos básicos para gerar um programa
       executável:
      A. Codificação
      B. Geração de Código Objeto
      C. Depuração (debug)




24
Gerando um programa executável


     Codificação
                          Código                                     Depuração
                           fonte

                                   Geração de código objeto




                          Código
                          objeto




                                                              Programa
                                                              Executável



25
Gerando um programa executável
                   A. Codificação


     • É a escrita de um programa de acordo com
       uma linguagem de programação.
     • Utiliza Editores de Texto.
     • Resultado: código-fonte.




26
Gerando um programa executável
                    B. Tradução




     • Tradução do código-fonte para o código de
       máquina do processador.
     • Realizado pelos Compiladores.
     • Resultado: código executável pelo
       processador.



27
Gerando um programa executável
                C. Depuração (debug)



     • Auxilia o programador a eliminar erros dos
       programas (“bugs”).
     • Permite:
        execução passo-a-passo.
        visualização do estado do programa através
         das variáveis.



28
Conceitos e Técnicas de Programação



     Representações de Algoritmos




29
Pseudo-código (Portugol)


     • Características:
       – Sintaxe mais simples que a de uma
         Linguagem de Programação.
       – Ênfase nas idéias e não nos detalhes.
       – Facilita construir um programa em Linguagem
         de Programação.




30
Pseudo-código (Portugol)


     •   Ingredientes: farinha, açúcar, leite
     •   Separar os ingredientes
     •   Misturar os ingredientes
     •   Colocar massa no forno
     •   Esperar assar por 30 minutos
     •   Retirar bolo do forno



31
Elementos básicos de um algoritmo


     algoritmo <nome_do_algoritmo>
        <declarações de variáveis>




        <comandos>



     Fim




32
Elementos básicos de um algoritmo
                           :: Exemplo

     Algoritmo perimetro_circunferência
             // declaração de constantes e variáveis
             // comandos
       fim




33
Elementos básicos de um algoritmo
                            :: Exemplo
     Algoritmo perimetro_circunferência
             // declaração de constantes e variáveis
             const pi                = 3,1415
             raio: real
             perim: real
           // comandos
             leia (raio)
             perim = 2 * pi * raio
             escrever (perim)
     fim


34
Elementos básicos de um algoritmo


     •   Dados (variáveis e constantes)
     •   Tipos de dados
     •   Operadores
     •   Comandos
     •   Funções
     •   Comentários



35
Elementos básicos de um algoritmo ::
                                Exemplo
     Algoritmo perimetro_circunferência
             // declaração de variáveis
                                              dado constante
             const PI      = 3,1415
                   raio: real                 dado variável

                  perim: real
                                                tipo de dado

           // comandos                      comentário

             leia (raio)                  operador

             perim = 2 * PI * raio
             escrever (perim)
                                               função
     fim
36
Elementos básicos de um algoritmo
                         :: Dados

     • Dados Constantes
       – O valor de uma constante não se altera após sua
         definição.
       – Exemplos:
         • N_NEPERIANO = 2,7182
         • UNIVERSIDADE = ‘FPB'


     • Dados Variáveis
       – Elemento que têm a função de associar um nome a
         uma porção da memória onde um dado pode ser
         armazenado.


37
Elementos básicos de um algoritmo
                    :: Tipos de dados
     • Definem a natureza do dado, as operações que
       podem ser realizadas com o dado e o espaço a
       ser ocupado na memória.
     • Exemplos:
       –   Inteiro:                10         -5             -128
       –   Real (ponto flutuante): 1,34       13,4           -5,0
       –   String de caracteres: 'quarta-feira’ 'Abril‘
       –   Lógico:                 Verdadeiro(1)      Falso(0)




38
ALGORITMO NOME
     VARIAVEIS
      NOME: CARACTERE
     FIM VARIAVEIS

     INICIO
      ESCREVA(“Informe seu nome:”)
     LEIA (nome)

39
Elementos básicos de um algoritmo
                   :: Operadores


     •   Atribuição
     •   Aritméticos
     •   Relacionais
     •   Lógicos




40
Elementos básicos de um algoritmo
             :: Operador Atribuição

     • Utilizado para atribuir um valor a uma
       variável
         nome da variável               Valor




     • Notação:
       x1 ← 23; ( <-)
       temp ← x2;



41
Elementos básicos de um algoritmo
             :: Operadores Aritméticos

     • Dados de entrada: tipo numérico (int ou
       real(float))
     • Resultado: tipo numérico (int ou reail(float))
     • Exemplos:
        –   x_2     ← 2 + 3;
        –   alfa    ← 1 / 5;
        –   ang     ← 1 / 5.0;
        –   resto   ← 10 % 3;
        –   resto   ← 1 % 4;
        –   delta   ← 5 * 5 – 4 * 1 * 4;


42
Elementos básicos de um algoritmo
                                      :: Operadores Relacionais

       Utilizados para realizar comparações entre dois valores de 
       mesmo tipo primitivo.
       São comuns para a construção de equações.

     OPERADOR   OPERAÇÃO              EXEMPLO           RESULTADO
         =      Igual a                 1=2                 Falso
         >      Maior que               5>2               Verdadeiro
         <      Menor que               11 < 4              Falso
        >=      Maior ou Igual a        3 >= 3            Verdadeiro
        <=      Menor ou igual a        5<= 3               Falso
        <>      Diferente de          2 + 3 <> 5            Falso



43
Elementos básicos de um algoritmo
            :: Operadores Relacionais
     • Dados de entrada: tipo numérico (int ou float)
     • Resultado: tipo lógico
     • Exemplos:
       – cond1 ←      2 = 3;
       – cond2 ←      1.6 <> 5.0;
       – cond3 ←      1 > 5;
       – cond4 ←      (1 + 2) < 5;
       – cond5 ←      10 >= 3;
       – cond6 ←      1 <= (– 4 / 3);


44
Elementos básicos de um algoritmo
                    :: Operadores Lógicos

      Servem para combinar resultados de expressões,
      retornando se o resultado final é verdadeiro ou falso.

 OPERAÇÃO      SÍMBOLO DESCRICAO
CONJUNÇÃO      AND – E    Uma expressão AND (E) é verdadeira se todas as
                          condições forem verdadeiras
 DISJUNÇÃO      OR – ou   Uma expressão OR (OU) é verdadeira se pelo menos
                          uma condição for verdadeira
     NEGAÇÃO   NOT – não Uma expressão NOT (NÃO) inverte o valor da
                          expressão ou condição, se verdadeira inverte para
                          falsa e vice-versa.



45
Elementos básicos de um algoritmo
                 :: Operadores Lógicos

     TABELAS-VERDADE
        Conjunto de todas as possibilidades combinatórias entre os valores de
        diversas variáveis lógicas  apenas duas situações (V ou F).

        OPERAÇÃO DE NEGAÇÃO


           A                       não A

           F                         V

           V                         F




46
Elementos básicos de um algoritmo
                     :: Operadores Lógicos

     OPERAÇÃO DE CONJUNÇÃO       OPERAÇÃO DE DISJUNÇÃO




            A      B     AeB             A       B       A ou B

            F      F         F           F       F         F

            F      V         F           F       V         V

            V      F         F           V       F         V

            V      V         V           V       V         V




47
Elementos básicos de um algoritmo
                   :: Operadores Lógicos


     • Dados de entrada: tipo lógico
     • Resultado: tipo lógico
     • Exemplos:
       –   cond1   ←   V E F;
       –   cond2   ←   F OU F;
       –   cond3   ←   NÃO cond1;
       –   cond4   ←   (V E F) OU (5 > 3);




48
Elementos básicos de um algoritmo
                              :: Funções


     • Pré-definidas
     • Definidas pelo programador
     • Exemplos:
       –   seno(angulo)
       –   pow(x,y)
       –   sqrt(resto)
       –   exp(tempo)
       –   ler(var1,var2,...)
       –   escrever(resul1,result2,...)


49
Elementos básicos de um algoritmo
                      :: Comentários

     • Utilizados para descrever o algoritmo,
       esclarecendo trechos do código

     • Notação:
       – //
       – /* <comentário> */




50
Conceitos e Técnicas de Programação




      Algoritmos com qualidade




51
Algoritmos com qualidade


     • Devem ser feitos para serem lidos por
       seres humanos!

     • Escreva os comentários no momento em
       que estiver escrevendo o algoritmo.




52
Algoritmos com qualidade


     • Os comentários devem acrescentar alguma
       coisa, e não frasear o comando:

        // Multiplicação de b por h:
        area ← b * h;




        // Cálculo da área do retângulo:
        area ← b * h;




53
Algoritmos com qualidade


     • Use comentários no prólogo:

        /*****************************************
        UNPBFPB
        SEU NOME AQUI
        DATA: 28/02/2012
        ÚLTIMA MODIFICAÇÃO: 28/02/2012

        ALGORITMO DE DEMONSTRAÇÃO
        *****************************************/




54
Algoritmos com qualidade


     • Use espaços em branco para melhorar a
       legibilidade:


        hip←sqrt(cat1*cat1+cat2*cat2);




        hip ← sqrt(cat1 * cat1 + cat2 * cat2);




55
Algoritmos com qualidade


     • Escolha nomes representativos para as
       variáveis:


          p ← c + l;




          preco ← custo + lucro;



56
Algoritmos com qualidade


     • Utilize um comando por linha.

     • Utilize parênteses para melhorar a
       compreensão e evitar erros.

     • Utilize identação (recuo de texto).




57
Exercício

     1. Escreva um algoritmo para ler um número
        inteiro e imprimir seu sucessor e seu
        antecessor.

     Possível solução:
     1. Ler um número inteiro
     2. Imprimir seu sucessor
     3. Imprimir seu antecessor

                                                  58

58

Conceitos e técnicas de programação aula 2

  • 1.
    Gestão de Tecnologiada Informação Conceitos e Técnicas de Programação Profº Ms. Tarcísio Júnior 1
  • 2.
    Conceitos e Técnicasde Programação Representação de Algoritmos 2
  • 3.
    Representação de Algoritmos Linguagem Natural A representação de algoritmos através de linguagem natural é a forma mais espontânea de representação de algoritmos, pois descrevemos os passos do algoritmo utilizando o nosso linguajar quotidiano, escrevendo o algoritmo como um texto simples. Por exemplo, queremos resolver o seguinte problema: Calcular a média de todos os alunos que cursaram uma disciplina X, a partir da leitura das notas da 1ª e 2ª prova, passando por um cálculo de média aritmética. Após a média calculada, devemos anunciar se aluno foi aprovado ou reprovado por nota. Somente estão aprovados alunos com média maior ou igual a 5,0. 3
  • 4.
    Representação de Algoritmos Representação do algoritmo em linguagem natural Para todos os alunos da disciplina X, faça: ler as notas da 1ª e 2ª prova, somar as notas e dividir por dois, chegando assim, ao resultado da média do aluno. Se a média do aluno for maior ou igual a 5,0, então o aluno está aprovado, senão o aluno está reprovado. Fazer para o próximo aluno. O problema da representação de algoritmos com linguagem natural é que quanto maior a complexidade do problema, maior a dificuldade de entendermos o texto que procura descrever os passos do algoritmo, pois não se emprega nenhum recurso diagramático, e não há uma rigidez na estruturação das ações. 4
  • 5.
    Representação de Algoritmos Pseudocódigo O pseudocódigo vem sendo amplamente utilizado por projetistas de software e programadores, pois obriga o uso de estruturas que facilitam o entendimento do algoritmo, e também facilitam a transformação do mesmo em códigos reais. O pseudocódigo também recebe outros nomes, como: português estruturado, PDL (Program Design Language), etc.. Utilizaremos neste curso o pseudocódigo como a forma de representação padrão para algoritmos. 5
  • 6.
    Representação de Algoritmos  O PSEUDOCÓDIGO será utilizado na disciplina. Por que?  Facilita o desenvolvimento dos algoritmos;  Facilita o seu entendimento pelo ser humano;  Antecipa à depuração (localização de erros) em sua lógica;  Facilita a sua manutenção e modificação;  Facilita e agiliza a sua codificação (escrita do programa);  Permite o desenvolvimento simultâneo de vários profissionais (trabalho em equipe). 6
  • 7.
    Pseudocódigo do exemploanterior Início variáveis nota1, nota2, media: real fim-variáveis Início Leia (nota1) Leia (nota2) media = (nota1 + nota2) / 2 Se media >= 5,0 entao Início Escreva (“Aluno aprovado”) Fim Senão Início Escreva (“Aluno reprovado”) Fim Fim 7
  • 8.
    Representação de Algoritmos Outro exemplo: algoritmo Soma variáveis N1,N2,Soma: inteiro fim-variáveis início escreva("Entre com o primeiro número") leia(N1) escreva("Entre com o segundo número") leia (N2) Soma  (N1+N2) escreva("A soma dos números é: ", Soma) fimAlgoritmo 8
  • 9.
    Exemplo de Algoritmo Imagine o seguinte problema: Calcular a média final dos alunos da 3ª Série. Os alunos realizarão quatro provas: P1, P2, P3 e P4. Onde: Média Final = Para montar o algoritmo proposto, faremos três perguntas: a) Quais são os dados de entrada? R: Os dados de entrada são P1, P2, P3 e P4 b) Qual será o processamento a ser utilizado? R: O procedimento será somar todos os dados de entrada e dividi- los por 4 (quatro) 9
  • 10.
    Exemplo de Algoritmo c) Quais serão os dados de saída? R: O dado de saída será a média final Algoritmo Receba a nota da prova1 Receba a nota de prova2 Receba a nota de prova3 Receba a nota da prova4 Some todas as notas e divida o resultado por 4 Mostre o resultado da divisão 10
  • 11.
    Teste de mesa Após desenvolver um algoritmo ele deverá sempre ser testado. Este teste é chamado de TESTE DE MESA, que significa, seguir as instruções do algoritmo de maneira precisa para verificar se o procedimento utilizado está correto ou não. Veja o exemplo: Nota da Prova 1 Nota da Prova 2 Nota da Prova 3 Nota da Prova 4 11
  • 12.
    Teste de mesa Utilize a tabela abaixo: 12
  • 13.
    Conceitos e Técnicasde Programação Linguagens de Programação 13
  • 14.
    Linguagem de programação • Estabelece regras de sintaxe para que o algoritmo possa ser entendido por uma máquina. 14
  • 15.
    Algoritmo × Linguagemde Programação Raciocínio int a, b, c; if (a > 2) Algoritmo a = b + c; else a = b – c; return; Programa 15
  • 16.
    Programa • Programa é a codificação de um algoritmo em uma linguagem de programação. • Um computador é uma máquina que, a partir de uma entrada, realiza um número de cálculos matemáticos e lógicos, gerando uma saída. • Programa é o elemento que diz ao computador quais cálculos devem ser realizados. 16
  • 17.
    Características • Sua principal característica é a utilização de blocos para solução de um problema. 17
  • 18.
    Relembrando... Passos para elaboração de um programa: 1. Compreender o problema. 2. Esboçar um procedimento para resolver o problema. 3. Formular o algoritmo. 4. Traduzir o algoritmo para uma linguagem de programação (codificação). 18
  • 19.
    Passos para elaboraçãode um programa Exemplo • Calcular as raízes reais de: 2 ax + bx + c 19
  • 20.
    1. Compreender oproblema • Exemplo: Equação de 2o. grau • Possibilidades de raízes:  02 raízes complexas;  02 raízes reais idênticas;  02 raízes reais distintas; • Condição para haver raízes reais: ∆ ≥ 0 20
  • 21.
    2. Esboçar umprocedimento para resolver o problema • Calcular ∆. • Se ∆ ≥ 0, calcular raízes reais. • Caso contrário, informar que não há raízes reais. 21
  • 22.
    3. Formular oalgoritmo ler(a,b,c) delta = b^2 – 4*a*c se (delta ≥ 0) então r1 = – b – (delta)^(–1/2) r2 = – b + (delta)^(–1/2) escrever(r1,r2) senão escrever(“Não há raiz real”) fim do se fim do algoritmo 22
  • 23.
    4. Codificar #include <stdio.h> #include <stdlib.h> #include <math.h> int main(void) { float a, b, c, delta, r1, r2; scanf("%f %f %f", &a, &b, &c); delta = b*b – 4*a*c; if (delta >= 0) { r1 = – b – sqrt(delta); r2 = – b + sqrt(delta); printf("r1 = %f n r2 = %f", r1, r2); } else printf("Nao ha raiz realn"); } 23
  • 24.
    Gerando um programaexecutável • Passos básicos para gerar um programa executável: A. Codificação B. Geração de Código Objeto C. Depuração (debug) 24
  • 25.
    Gerando um programaexecutável Codificação Código Depuração fonte Geração de código objeto Código objeto Programa Executável 25
  • 26.
    Gerando um programaexecutável A. Codificação • É a escrita de um programa de acordo com uma linguagem de programação. • Utiliza Editores de Texto. • Resultado: código-fonte. 26
  • 27.
    Gerando um programaexecutável B. Tradução • Tradução do código-fonte para o código de máquina do processador. • Realizado pelos Compiladores. • Resultado: código executável pelo processador. 27
  • 28.
    Gerando um programaexecutável C. Depuração (debug) • Auxilia o programador a eliminar erros dos programas (“bugs”). • Permite:  execução passo-a-passo.  visualização do estado do programa através das variáveis. 28
  • 29.
    Conceitos e Técnicasde Programação Representações de Algoritmos 29
  • 30.
    Pseudo-código (Portugol) • Características: – Sintaxe mais simples que a de uma Linguagem de Programação. – Ênfase nas idéias e não nos detalhes. – Facilita construir um programa em Linguagem de Programação. 30
  • 31.
    Pseudo-código (Portugol) • Ingredientes: farinha, açúcar, leite • Separar os ingredientes • Misturar os ingredientes • Colocar massa no forno • Esperar assar por 30 minutos • Retirar bolo do forno 31
  • 32.
    Elementos básicos deum algoritmo algoritmo <nome_do_algoritmo> <declarações de variáveis> <comandos> Fim 32
  • 33.
    Elementos básicos deum algoritmo :: Exemplo Algoritmo perimetro_circunferência // declaração de constantes e variáveis // comandos fim 33
  • 34.
    Elementos básicos deum algoritmo :: Exemplo Algoritmo perimetro_circunferência // declaração de constantes e variáveis const pi = 3,1415 raio: real perim: real // comandos leia (raio) perim = 2 * pi * raio escrever (perim) fim 34
  • 35.
    Elementos básicos deum algoritmo • Dados (variáveis e constantes) • Tipos de dados • Operadores • Comandos • Funções • Comentários 35
  • 36.
    Elementos básicos deum algoritmo :: Exemplo Algoritmo perimetro_circunferência // declaração de variáveis dado constante const PI = 3,1415 raio: real dado variável perim: real tipo de dado // comandos comentário leia (raio) operador perim = 2 * PI * raio escrever (perim) função fim 36
  • 37.
    Elementos básicos deum algoritmo :: Dados • Dados Constantes – O valor de uma constante não se altera após sua definição. – Exemplos: • N_NEPERIANO = 2,7182 • UNIVERSIDADE = ‘FPB' • Dados Variáveis – Elemento que têm a função de associar um nome a uma porção da memória onde um dado pode ser armazenado. 37
  • 38.
    Elementos básicos deum algoritmo :: Tipos de dados • Definem a natureza do dado, as operações que podem ser realizadas com o dado e o espaço a ser ocupado na memória. • Exemplos: – Inteiro: 10 -5 -128 – Real (ponto flutuante): 1,34 13,4 -5,0 – String de caracteres: 'quarta-feira’ 'Abril‘ – Lógico: Verdadeiro(1) Falso(0) 38
  • 39.
    ALGORITMO NOME VARIAVEIS NOME: CARACTERE FIM VARIAVEIS INICIO ESCREVA(“Informe seu nome:”) LEIA (nome) 39
  • 40.
    Elementos básicos deum algoritmo :: Operadores • Atribuição • Aritméticos • Relacionais • Lógicos 40
  • 41.
    Elementos básicos deum algoritmo :: Operador Atribuição • Utilizado para atribuir um valor a uma variável nome da variável Valor • Notação: x1 ← 23; ( <-) temp ← x2; 41
  • 42.
    Elementos básicos deum algoritmo :: Operadores Aritméticos • Dados de entrada: tipo numérico (int ou real(float)) • Resultado: tipo numérico (int ou reail(float)) • Exemplos: – x_2 ← 2 + 3; – alfa ← 1 / 5; – ang ← 1 / 5.0; – resto ← 10 % 3; – resto ← 1 % 4; – delta ← 5 * 5 – 4 * 1 * 4; 42
  • 43.
    Elementos básicos deum algoritmo :: Operadores Relacionais Utilizados para realizar comparações entre dois valores de  mesmo tipo primitivo. São comuns para a construção de equações. OPERADOR OPERAÇÃO EXEMPLO RESULTADO = Igual a 1=2 Falso > Maior que 5>2 Verdadeiro < Menor que 11 < 4 Falso >= Maior ou Igual a 3 >= 3 Verdadeiro <= Menor ou igual a 5<= 3 Falso <> Diferente de 2 + 3 <> 5 Falso 43
  • 44.
    Elementos básicos deum algoritmo :: Operadores Relacionais • Dados de entrada: tipo numérico (int ou float) • Resultado: tipo lógico • Exemplos: – cond1 ← 2 = 3; – cond2 ← 1.6 <> 5.0; – cond3 ← 1 > 5; – cond4 ← (1 + 2) < 5; – cond5 ← 10 >= 3; – cond6 ← 1 <= (– 4 / 3); 44
  • 45.
    Elementos básicos deum algoritmo :: Operadores Lógicos Servem para combinar resultados de expressões, retornando se o resultado final é verdadeiro ou falso. OPERAÇÃO SÍMBOLO DESCRICAO CONJUNÇÃO AND – E Uma expressão AND (E) é verdadeira se todas as condições forem verdadeiras DISJUNÇÃO OR – ou Uma expressão OR (OU) é verdadeira se pelo menos uma condição for verdadeira NEGAÇÃO NOT – não Uma expressão NOT (NÃO) inverte o valor da expressão ou condição, se verdadeira inverte para falsa e vice-versa. 45
  • 46.
    Elementos básicos deum algoritmo :: Operadores Lógicos TABELAS-VERDADE Conjunto de todas as possibilidades combinatórias entre os valores de diversas variáveis lógicas  apenas duas situações (V ou F). OPERAÇÃO DE NEGAÇÃO A não A F V V F 46
  • 47.
    Elementos básicos deum algoritmo :: Operadores Lógicos OPERAÇÃO DE CONJUNÇÃO OPERAÇÃO DE DISJUNÇÃO A B AeB A B A ou B F F F F F F F V F F V V V F F V F V V V V V V V 47
  • 48.
    Elementos básicos deum algoritmo :: Operadores Lógicos • Dados de entrada: tipo lógico • Resultado: tipo lógico • Exemplos: – cond1 ← V E F; – cond2 ← F OU F; – cond3 ← NÃO cond1; – cond4 ← (V E F) OU (5 > 3); 48
  • 49.
    Elementos básicos deum algoritmo :: Funções • Pré-definidas • Definidas pelo programador • Exemplos: – seno(angulo) – pow(x,y) – sqrt(resto) – exp(tempo) – ler(var1,var2,...) – escrever(resul1,result2,...) 49
  • 50.
    Elementos básicos deum algoritmo :: Comentários • Utilizados para descrever o algoritmo, esclarecendo trechos do código • Notação: – // – /* <comentário> */ 50
  • 51.
    Conceitos e Técnicasde Programação Algoritmos com qualidade 51
  • 52.
    Algoritmos com qualidade • Devem ser feitos para serem lidos por seres humanos! • Escreva os comentários no momento em que estiver escrevendo o algoritmo. 52
  • 53.
    Algoritmos com qualidade • Os comentários devem acrescentar alguma coisa, e não frasear o comando: // Multiplicação de b por h: area ← b * h; // Cálculo da área do retângulo: area ← b * h; 53
  • 54.
    Algoritmos com qualidade • Use comentários no prólogo: /***************************************** UNPBFPB SEU NOME AQUI DATA: 28/02/2012 ÚLTIMA MODIFICAÇÃO: 28/02/2012 ALGORITMO DE DEMONSTRAÇÃO *****************************************/ 54
  • 55.
    Algoritmos com qualidade • Use espaços em branco para melhorar a legibilidade: hip←sqrt(cat1*cat1+cat2*cat2); hip ← sqrt(cat1 * cat1 + cat2 * cat2); 55
  • 56.
    Algoritmos com qualidade • Escolha nomes representativos para as variáveis: p ← c + l; preco ← custo + lucro; 56
  • 57.
    Algoritmos com qualidade • Utilize um comando por linha. • Utilize parênteses para melhorar a compreensão e evitar erros. • Utilize identação (recuo de texto). 57
  • 58.
    Exercício 1. Escreva um algoritmo para ler um número inteiro e imprimir seu sucessor e seu antecessor. Possível solução: 1. Ler um número inteiro 2. Imprimir seu sucessor 3. Imprimir seu antecessor 58 58