uc - logica e algoritmo_josé_valadão_aula11

33
 Desenvolvido por:  João Américo R. Pachec o Unidade Curricular: Lógica e Algoritmo Slide: 1 Lógica e Algoritmo 11ª Aula Programador de Sistemas  Prof.: José Oliveira Valadão

Upload: programapsg

Post on 03-Nov-2015

14 views

Category:

Documents


0 download

DESCRIPTION

Aula de algoritmo com josé valadao!Aula11

TRANSCRIPT

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 1

    Lgica e Algoritmo11 Aula

    Programador de Sistemas

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 2

    LGICA DE PROGRAMAOSUB-ROTINAS

    Programador de Sistemas

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 3

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

    As sub-rotinas que tambm so conhecidas como mdulos, subprogramas, ousubalgoritmos;

    uma fragmentao do programa principal; Resolve parte pequena do problema tratado pelo algoritmo; Quando o programa (sistema) muito grande, complexo, o seu desenvolvimento

    deve ser feito em partes menores que se relacionam; Cada sub-rotina funciona como um programa; A resoluo e entendimento fica mais simples; Deve haver coerncia entre as partes; Mtodo mais adequado para desenvolvimento o de sub-rotinas TOP-DOWN (de

    cima para baixo); Estrutura muito semelhante a um organograma; Existe um programa no topo para controlar todas as tarefas divididas em sub-rotinas; Cada rotina pode ser dividida novamente para melhor entendimento e manipulao; Essa tcnica de diviso de sub-rotinas em unidades mais simples, chamamos de

    REFINAMENTO SUCESSIVO.

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 4

    SUB-ROTINAS(MTODO TOP-DOWN):

    Prof.: Jos Oliveira Valado

    Programa Principal

    Rotina 1 Rotina 2 Rotina 3 Rotina 4

    Rotina 2.1 Rotina 2.2 Rotina 4.1 Rotina 4.2

    Rotina 2.2.1 Rotina 2.2.2 Rotina 2.2.3

    Rotina 2.2.2.1

    Rotina 2.2.2.2

    Mtodo de Cima pra baixo; Tcnica de Refinamento Sucessivo.

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 5

    SUB-ROTINASSUB-ROTINAS E FUNES:

    Prof.: Jos Oliveira Valado

    Vamos analisar duas formas de utilizar as sub-rotinas: Os Procedimentos e as Funes.

    PROCEDIMENTOS:

    um tipo de sub-rotina que possui incio, fim e um nome pelo qual referenciado em qualquer lugar do programa principal;

    Quando um procedimento chamado, so executadas as instrues que esto no seu interior;

    Ao seu trmino o fluxo de execuo retorna automaticamente para a primeira linha de instruo aps a linha que o chamou.

    Os PROCEDIMENTOS possuem a seguinte estrutura de declarao:

    PROCEDIMENTO VARIVEIS

    INCIO

    FIM

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 6

    SUB-ROTINASSUB-ROTINAS E FUNES:

    Prof.: Jos Oliveira Valado

    PROCEDIMENTOS: Ao lado, segue um exemplo de utilizao de

    procedimento em um programa:

    PROGRAMA Exemplo_procedimento

    VARIVEISescolha: CARACTER

    /*procedimentos*/

    PROCEDIMENTO rotina_corretaINCIO

    ESCREVA Resposta corretaFIMPROCEDIMENTO rotina_erradaINCIO

    ESCREVA Resposta erradaFIM

    /*Programa Principal*/INCIO

    ESCREVA Escolha a alternativa correta:ESCREVA Quem inventou a lmpada:

    A) Thomas EdisonB) Isaac NewtonC) Albert EinsteinD) Benjamim Franklim

    LEIA escolhaSELECIONE escolha

    CASO A:rotina_correta

    CASO B:rotina_errada

    CASO C:rotina_errada

    CASO D: rotina_errada

    FIM SELECIONEFIM

    Pseudocdigo

    Neste exemplo, os procedimentos so definidos aps adeclarao das variveis;

    As mesmas sero utilizadas pelo programa principal; Foram utilizados dois procedimentos (rotina_correta e

    rotina_errada); Podemos definir quantos procedimentos forem necessrios; Neste exemplo h apenas uma instruo em cada

    procedimento; Quando iniciado o programa principal, aparece na tela a

    escolha da alternativa correta e a pergunta de quem inventou almpada;

    Caso a resposta do usurio seja letra A, O PROCEDIMENTOrotina_correta chamado, exibindo a mensagem Respostacorreta;

    Caso seja qualquer outra alternativa apresentada, chama OPROCEDIMENTO rotina_errada, exibindo na tela a mensagemResposta errada;

    Ambas mensagens se encontram dentro dosPROCEDIMENTOS;

    A vantagem de se utilizar procedimento, que podemoscham-lo de qualquer lugar do programa, sem precisarreescrever cdigo.

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 7

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

    VARIVEIS GLOBIAS E LOCAIS:

    Quando utilizamos sub-rotinas as variveisutilizadas no programa podem ser de doistipos: Globais e Locais;

    GLOBAIS: As variveis Globais so aquelas declaradas no

    incio do programa, podendo ser utilizada emqualquer sub-rotina que pertena ao programaprincipal;

    As variveis Globais torna-se visvel todas assub-rotinas hierarquicamente inferiores aoprograma principal ou sub-rotinas que tenhamdeclaradas as variveis;

    LOCAIS: As variveis locais so aquelas declaradas

    dentro de uma sub-rotina e vlida somentedentro da rotina qual foi declarada;

    Desta forma, o programa principal e as demaissub-rotinas no visualizam esse tipo de varivel;

    Pseudocdigo

    PROGRAMA exemploVARIVEIS

    num: INTEIROPROCEDIMENTO calculo

    VARIVEISresultado: INTEIRO

    INCIOresultado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 8

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 9

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 10

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 11

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 12

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 13

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 14

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 15

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

    ESCOPO DE VARIVEIS:

    O escopo ou aabrangncia de umavarivel est relacionadocom a sua visibilidade emrelao s sub-rotinas deum programa;

    A visibilidade de umavarivel depende da suahierarquia;

    Ou seja, uma varivel Global todos os mduloshierarquicamenteinferiores;

    E Local quando visvelsomente na rotina em quefoi criada;

    Programa Principal

    Sub-rotina 1.1

    Sub-rotina 1

    Sub-rotina 2

    I, J

    L, M

    Variveis Globais. visvel a todas as sub-rotinas do escopo doprograma principal.

    Variveis da sub-rotina 1,.visvel somente a esta sub-rotina e a sub-rotina 1.1.

    Varivel da sub-rotina 1. 1,visvel somente a esta sub-rotina.

    N

    O

    Varivel da sub-rotina 2,visvel somente a estasub-rotina.

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 16

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

    PARMETROS:

    Os parmetros so utilizados como forma de comunicao entre uma sub-rotina e um programaprincipal ou uma sub-rotina hierarquicamente superior;

    Desta forma, possvel passar valores de um programa principal ou sub-rotina chamadora, paraoutra sub-rotina e vice-versa;

    H dois tipos de parmetros: FORMAIS e os REAIS;

    FORMAIS: So aqueles declarados como variveis junto com a

    identificao do nome da sub-rotina;

    PROCEDIMENTOS multiplicao (x, y : INTEIRO)VARIVEIS

    resultado : INTEIROINCIO

    resultado x * yESCREVA resultado

    FIM

    INCIOLEIA num1LEIA num2multiplicao (num1, num2)

    FIM

    REAIS: So aqueles que substituem os parmetros formais, quando

    a sub-rotina utilizada pelo programa principal ou por umasub-rotina chamadora;

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 17

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 18

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 19

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 20

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 21

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 22

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 23

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 24

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 25

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 26

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 27

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 28

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 29

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 30

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

    FUNES:

    As funes so um bloco de instrues identificadas por um nome pelo qual referenciada pelo programa principal ou por uma sub-rotina.

    Desta forma, as funes so muito parecidas com os procedimentos.

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 31

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

    FUNES:

    Para exemplificar acriao e utilizaodas nossas prpriasfunes eprocedimentos,vamos criar umalgoritmo pararesolver equaesde segundo grau,onde criaremos umfuno chamadacalcula_delta.

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 32

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

    FUNES:

  • Desenvolvido por: Joo Amrico R. PachecoUnidade Curricular: Lgica e Algoritmo Slide: 33

    SUB-ROTINAS

    Prof.: Jos Oliveira Valado

    EXERCCIOS/AVALIAO:

    1 - Crie um procedimento que receba dois valores por referncia e ordene-os em ordemcrescente. Crie um algoritmo principal para chamar o procedimento e exibir os valores apsa ordenao.

    2 - Crie um procedimento para resolver uma equao de segundo grau. O procedimentodeve receber 5 parmetros: os coeficientes a, b e c da equao (por valor), e raiz1 e raiz2(por referncia). Crie um algoritmo principal que leia os coeficientes da equao e chame oprocedimento. Em seguida, mostre o resultado das razes.

    3 - Crie um procedimento que receba uma frase por parmetro e remova todos oscaracteres de espaos da frase. Ex: a frase O livro est em cima da mesa dever ficarcomo: Olivroestemcimadamesa.

    4 - Crie um procedimento para imprimir o contedo de um vetor de 20 posies. Esseprocedimento deve receber um parmetro do tipo caractere que indica se o contedo deveser exibido na ordem correta ou na ordem inversa (C para correta e I para inversa).