Post on 03-Nov-2015
description
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).