SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
Programação estruturada


LNCC                   UFRJ
Fluxo continuado,
escolhas e repetições
Siga em frente,
   SEMPRE
Escolhas
  são
possíveis
                       Ou por
                        aqui
            Siga por
              aqui
Xilogravura,
       M.C. Escher




Escolhas...
 Podem ser
 tantas que
    nos
 confundem
Analisando
em detalhe

2ª visão local
Analisando em
   detalhe



3ª. Visão local
Analisando em
   detalhe


4ª. Visão local
Analisando em
   detalhe


5ª. Visão local
Xilogravura,
        M.C. Escher




               E torna a
                  cair


Repetindo,
                       A água
 repetindo,
                         cai
repetindo ...
                                Num ciclo
                                 eterno
Xilogravura,
         M.C. Escher

 Escher e
o tribar de
 Penrose
Xilogravura,
          G. Escher

  Escadas
impossíveis




  e a repetição
     eterna
Programação estruturada
 diagramas de atividade
Estruturas de controle



                          Permitem escolher sessões
                        específicas de código a executar
controle de decisão


controle de repetição   Permitem executar repetidas vezes
                          trechos específicos do código.
Diagramas de ação

Estado inícial
                                                  Simbologia gráfica
                 Estado final


                                Estado de ação


                                           Conexão /decisão


                                                    Fluxo
Início

                Ação
Diagrama de
 sequência    Fluxo




              Fim
Diagrama
de seleção                Instrução if
 (simples)

        Decisão                     Ação
                      V

                  F

        Conexão
Diagrama                   Instrução if ... else
de seleção
  (dupla)    Decisão


                       F      V                    Ação
     Ação




                                        Conexão
Instrução switch
Diagrama de                                                   com breaks
                                  1ª. ação
  seleção
 (múltipla)                   V
                                                   break
               1º. caso   F
                              V
                                                   break
               2º. caso   F
                                        2ª. ação
                                                                    Conexão
               Nº. caso       V                    break
                          F
                                             Nª. ação
      Ação
     default
Diagrama de               Ciclos
 repetição




      Instrução       V
                  F
        while
Diagrama de
 repetição



                          V
        Instrução
       do ... while   F
Diagrama de
 repetição
                 Inicialização



     Instrução
        for
                         V
                                 Incremento
                    F
Regras de estruturação

Comece com o diagrama de atividade mais simples



  Qualquer estado de ação pode ser substituído
   por dois estados de ação, em sequência


 Qualquer estado de ação pode ser substituído
por instrução de controle (seleção ou repetição)


 As regras 2 e 3 podem ser aplicadas qualquer
   número de vezes e em qualquer ordem
Aplicação das regras        Duas
                          aplicações
                         sucessivas da
                           regra do
                        empilhamento




O diagrama
mais simples
Aplicação das regras


               Uma aplicação
                da regra do
    V          aninhamento
F
Aplicação das regras



                      V        V
                  F        F
                                       V

                                   F




Duas aplicações
  da regra do
 aninhamento
Não há como errar
                     Mama
                      mia!
                    Spagheti




                               A aplicação das
                               regras 1, 2, 3, 4
                                não permite a
                                  criação de
                               programas não-
                                estruturados,
                                 como este!
Programação estruturada -
   blocos de comandos

                         Bloco de
                        comandos
                comando
                comando
       Veja o      comando
       dente!      comando
                     ...
                   comando
                comando
                comando
Exercício 1


  Faça um programa que leia um número
inteiro e imprima o fatorial desse número.
Exercício 2


Faça um programa que receba um número
       inteiro X, execute a fórmula
              N=1+2+3+4+...+X
   e imprima o resultado de N na tela.
Exercício 3


Faça um programa que receba um número
      inteiro e imprima a tabuada da
     multiplicação por esse número.
Exercício 4


 Faça um programa que receba um número
   e imprima a soma de todos os números
inteiros que aparecem entre este número e
          o seu segundo múltiplo.
  Imprima também o primeiro e o segundo
          múltiplo deste número.
Exercício 5


 Faça um programa que leia uma String e a
imprima na tela. Faça com que o programa
  imprima também a String ao contrário.
 Dica: Faça uma pesquisa na API da classe
  String para descobrir qual método usar.
Exercício 6


Faça um programa que leia dois números e
  imprima os múltiplos de 3 no intervalo
          entre estes números.
Exercício 7


 Faça um programa que leia uma String e
imprima na tela quantas vezes as letras ‘A’
       ou ‘a’ aparecem na mesma.
Exercício 8


Faça um programa que receba um número
X e imprima na tela os X primeiros termos
          da série de Fibonacci.

Mais conteúdo relacionado

Mais procurados

Aula 04 Estruturas de repetição 02 - Para Faça
Aula 04  Estruturas de repetição 02 - Para FaçaAula 04  Estruturas de repetição 02 - Para Faça
Aula 04 Estruturas de repetição 02 - Para FaçaEder Samaniego
 
Introducao a Lógica de Programação
Introducao a Lógica de ProgramaçãoIntroducao a Lógica de Programação
Introducao a Lógica de ProgramaçãoMarcelo Rodrigues
 
Logica Algoritmo 04 Decisao
Logica Algoritmo 04 DecisaoLogica Algoritmo 04 Decisao
Logica Algoritmo 04 DecisaoRegis Magalhães
 
Sincronizacao(3) exercicios-new beta
Sincronizacao(3)   exercicios-new betaSincronizacao(3)   exercicios-new beta
Sincronizacao(3) exercicios-new betaGuilherme Viana
 
Estrutura de Dados - Características da linguagem C - 2
Estrutura de Dados - Características da linguagem C - 2Estrutura de Dados - Características da linguagem C - 2
Estrutura de Dados - Características da linguagem C - 2Adriano Teixeira de Souza
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoRegis Magalhães
 
Algoritmos 01 - Semana 06 - Múltipla Escolha
Algoritmos 01 - Semana 06 - Múltipla EscolhaAlgoritmos 01 - Semana 06 - Múltipla Escolha
Algoritmos 01 - Semana 06 - Múltipla EscolhaEder Samaniego
 
Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducaommind
 
Programacao orientada-a-objetos-java
Programacao orientada-a-objetos-javaProgramacao orientada-a-objetos-java
Programacao orientada-a-objetos-javaRenato Sousa
 
Curso Java #01 - Introdução
Curso Java #01 - IntroduçãoCurso Java #01 - Introdução
Curso Java #01 - IntroduçãoRenato Sousa
 
Apostila da linguagem c
Apostila da linguagem cApostila da linguagem c
Apostila da linguagem cana mastrocola
 

Mais procurados (18)

Aula 04 Estruturas de repetição 02 - Para Faça
Aula 04  Estruturas de repetição 02 - Para FaçaAula 04  Estruturas de repetição 02 - Para Faça
Aula 04 Estruturas de repetição 02 - Para Faça
 
Introducao a Lógica de Programação
Introducao a Lógica de ProgramaçãoIntroducao a Lógica de Programação
Introducao a Lógica de Programação
 
Logica Algoritmo 04 Decisao
Logica Algoritmo 04 DecisaoLogica Algoritmo 04 Decisao
Logica Algoritmo 04 Decisao
 
Sincronizacao(3) exercicios-new beta
Sincronizacao(3)   exercicios-new betaSincronizacao(3)   exercicios-new beta
Sincronizacao(3) exercicios-new beta
 
Java
JavaJava
Java
 
Apostila c++
Apostila c++Apostila c++
Apostila c++
 
Apostila c
Apostila cApostila c
Apostila c
 
Estrutura de Dados - Características da linguagem C - 2
Estrutura de Dados - Características da linguagem C - 2Estrutura de Dados - Características da linguagem C - 2
Estrutura de Dados - Características da linguagem C - 2
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
 
Pged 01
Pged 01Pged 01
Pged 01
 
Algoritmos 01 - Semana 06 - Múltipla Escolha
Algoritmos 01 - Semana 06 - Múltipla EscolhaAlgoritmos 01 - Semana 06 - Múltipla Escolha
Algoritmos 01 - Semana 06 - Múltipla Escolha
 
Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducao
 
Programacao orientada-a-objetos-java
Programacao orientada-a-objetos-javaProgramacao orientada-a-objetos-java
Programacao orientada-a-objetos-java
 
Curso Java #01 - Introdução
Curso Java #01 - IntroduçãoCurso Java #01 - Introdução
Curso Java #01 - Introdução
 
Estrutura de um algoritmo
Estrutura de um algoritmoEstrutura de um algoritmo
Estrutura de um algoritmo
 
Apostila da linguagem c
Apostila da linguagem cApostila da linguagem c
Apostila da linguagem c
 
Semântica Formal
Semântica FormalSemântica Formal
Semântica Formal
 
Algoritmos Aula 08
Algoritmos Aula 08Algoritmos Aula 08
Algoritmos Aula 08
 

Destaque

Building restful ap is with harvester js
Building restful ap is with harvester jsBuilding restful ap is with harvester js
Building restful ap is with harvester jsMarcelo Cure
 
Leitura complementar 03 - Computadores eletrônicos
Leitura complementar 03 - Computadores eletrônicosLeitura complementar 03 - Computadores eletrônicos
Leitura complementar 03 - Computadores eletrônicosPROF COMPUTAÇÃO Bordoni
 
Leitura complementar 07 - Linha do tempo, ling.progr
Leitura complementar 07 - Linha do tempo, ling.progrLeitura complementar 07 - Linha do tempo, ling.progr
Leitura complementar 07 - Linha do tempo, ling.progrPROF COMPUTAÇÃO Bordoni
 
Leitura complementar 05 - Homem computador e interfaces
Leitura complementar 05 - Homem computador e interfacesLeitura complementar 05 - Homem computador e interfaces
Leitura complementar 05 - Homem computador e interfacesPROF COMPUTAÇÃO Bordoni
 
Leitura complementar 01 - Computadores mecânicos
Leitura complementar 01 - Computadores mecânicosLeitura complementar 01 - Computadores mecânicos
Leitura complementar 01 - Computadores mecânicosPROF COMPUTAÇÃO Bordoni
 
Leitura complementar 02 - Computadores eletromecânicos
Leitura complementar 02 - Computadores eletromecânicosLeitura complementar 02 - Computadores eletromecânicos
Leitura complementar 02 - Computadores eletromecânicosPROF COMPUTAÇÃO Bordoni
 
Seminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonSeminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonGiancarlo Silva
 

Destaque (12)

Building restful ap is with harvester js
Building restful ap is with harvester jsBuilding restful ap is with harvester js
Building restful ap is with harvester js
 
Python 01 apresentando
Python 01 apresentandoPython 01 apresentando
Python 01 apresentando
 
Leitura complementar 03 - Computadores eletrônicos
Leitura complementar 03 - Computadores eletrônicosLeitura complementar 03 - Computadores eletrônicos
Leitura complementar 03 - Computadores eletrônicos
 
Leitura complementar 07 - Linha do tempo, ling.progr
Leitura complementar 07 - Linha do tempo, ling.progrLeitura complementar 07 - Linha do tempo, ling.progr
Leitura complementar 07 - Linha do tempo, ling.progr
 
Leitura complementar 05 - Homem computador e interfaces
Leitura complementar 05 - Homem computador e interfacesLeitura complementar 05 - Homem computador e interfaces
Leitura complementar 05 - Homem computador e interfaces
 
Leitura complementar 04 - Microrocessadores
Leitura complementar 04 - MicrorocessadoresLeitura complementar 04 - Microrocessadores
Leitura complementar 04 - Microrocessadores
 
Python 02 - Interatividade
Python 02 - InteratividadePython 02 - Interatividade
Python 02 - Interatividade
 
Python 05 - Ponto flutuante
Python 05  - Ponto flutuantePython 05  - Ponto flutuante
Python 05 - Ponto flutuante
 
Python 03 - Sintaxe
Python 03 - SintaxePython 03 - Sintaxe
Python 03 - Sintaxe
 
Leitura complementar 01 - Computadores mecânicos
Leitura complementar 01 - Computadores mecânicosLeitura complementar 01 - Computadores mecânicos
Leitura complementar 01 - Computadores mecânicos
 
Leitura complementar 02 - Computadores eletromecânicos
Leitura complementar 02 - Computadores eletromecânicosLeitura complementar 02 - Computadores eletromecânicos
Leitura complementar 02 - Computadores eletromecânicos
 
Seminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonSeminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem Python
 

Programação estruturada e controle de fluxo