You are on page 1of 33

Lgica e Algoritmo

11 Aula
Programador de Sistemas

Unidade Curricular: Lgica e Algoritmo

Slide: 1

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

Programador de Sistemas

LGICA DE PROGRAMAO
SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 2

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS
As sub-rotinas que tambm so conhecidas como mdulos, subprogramas, ou
subalgoritmos;
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.

Unidade Curricular: Lgica e Algoritmo

Slide: 3

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS
(MTODO TOP-DOWN):
Programa
Principal

Rotina 2

Rotina 1

Rotina 2.1

Rotina 2.2

Rotina 2.2.1

Mtodo de Cima pra baixo;


Tcnica de Refinamento Sucessivo.
Rotina
2.2.2.1

Unidade Curricular: Lgica e Algoritmo

Slide: 4

Rotina 4

Rotina 3

Rotina 2.2.2

Rotina 4.1

Rotina 4.2

Rotina 2.2.3

Rotina
2.2.2.2

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS
SUB-ROTINAS E FUNES:
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 <nome de procedimento>
VARIVEIS
<variveis>
INCIO
<instrues>
FIM

Unidade Curricular: Lgica e Algoritmo

Slide: 5

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS
SUB-ROTINAS E FUNES:
PROCEDIMENTOS:

Ao lado, segue um exemplo


procedimento em um programa:

de

utilizao

de

Neste exemplo, os procedimentos so definidos aps a


declarao 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 a
lmpada;
Caso a resposta do usurio seja letra A, O PROCEDIMENTO
rotina_correta chamado, exibindo a mensagem Resposta
correta;
Caso seja qualquer outra alternativa apresentada, chama O
PROCEDIMENTO rotina_errada, exibindo na tela a mensagem
Resposta errada;
Ambas
mensagens
se
encontram
dentro
dos
PROCEDIMENTOS;
A vantagem de se utilizar procedimento, que podemos
cham-lo de qualquer lugar do programa, sem precisar
reescrever cdigo.

Unidade Curricular: Lgica e Algoritmo

Slide: 6

Pseudocdigo
PROGRAMA Exemplo_procedimento
VARIVEIS
escolha: CARACTER
/*procedimentos*/
PROCEDIMENTO rotina_correta
INCIO
ESCREVA Resposta correta
FIM
PROCEDIMENTO rotina_errada
INCIO
ESCREVA Resposta errada
FIM
/*Programa Principal*/
INCIO
ESCREVA Escolha a alternativa correta:
ESCREVA Quem inventou a lmpada:
A) Thomas Edison
B) Isaac Newton
C) Albert Einstein
D) Benjamim Franklim
LEIA escolha
SELECIONE escolha
CASO A:
rotina_correta
CASO B:
rotina_errada
CASO C:
rotina_errada
CASO D:
rotina_errada
FIM SELECIONE
FIM

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS
Pseudocdigo

VARIVEIS GLOBIAS E LOCAIS:


Quando utilizamos sub-rotinas as variveis
utilizadas no programa podem ser de dois
tipos: Globais e Locais;
GLOBAIS:
As variveis Globais so aquelas declaradas no
incio do programa, podendo ser utilizada em
qualquer sub-rotina que pertena ao programa
principal;
As variveis Globais torna-se visvel todas as
sub-rotinas hierarquicamente inferiores ao
programa principal ou sub-rotinas que tenham
declaradas as variveis;
LOCAIS:
As variveis locais so aquelas declaradas
dentro de uma sub-rotina e vlida somente
dentro da rotina qual foi declarada;
Desta forma, o programa principal e as demais
sub-rotinas no visualizam esse tipo de varivel;

Unidade Curricular: Lgica e Algoritmo

Slide: 7

PROGRAMA exemplo
VARIVEIS
num: INTEIRO
PROCEDIMENTO calculo
VARIVEIS
resultado: INTEIRO
INCIO
resultado <- num**
num <- resultado
FIM
INCIO
ESCREVA(Digite um num)
LEIA num
calculo
ESCREVA num
FIM

Note que a varivel NUM foi


declarada
antes
do
procedimento. Desta forma,
ela pode ser utilizada pela subrotina CALCULO e pelo
programa principal.

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 8

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 9

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 10

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 11

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 12

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 13

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 14

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS
ESCOPO DE VARIVEIS:
O
escopo
ou
a
abrangncia
de
uma
varivel est relacionado
com a sua visibilidade em
relao s sub-rotinas de
um programa;
A visibilidade de uma
varivel depende da sua
hierarquia;
Ou seja, uma varivel
Global todos os mdulos
hierarquicamente
inferiores;
E Local quando visvel
somente na rotina em que
foi criada;

Unidade Curricular: Lgica e Algoritmo

Variveis Globais.

visvel a todas as subrotinas do escopo do


programa principal.

Programa Principal

I, J
Sub-rotina 1

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

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

Sub-rotina 1.1

Sub-rotina 2

O
Varivel da sub-rotina 2,
visvel somente a esta
sub-rotina.

Slide: 15

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS
PARMETROS:
Os parmetros so utilizados como forma de comunicao entre uma sub-rotina e um programa
principal ou uma sub-rotina hierarquicamente superior;
Desta forma, possvel passar valores de um programa principal ou sub-rotina chamadora, para
outra 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;

REAIS:
So aqueles que substituem os parmetros formais, quando
a sub-rotina utilizada pelo programa principal ou por uma
sub-rotina chamadora;

PROCEDIMENTOS multiplicao (x, y : INTEIRO)


VARIVEIS
resultado : INTEIRO
INCIO
resultado x * y
ESCREVA resultado
FIM

Unidade Curricular: Lgica e Algoritmo

INCIO
LEIA num1
LEIA num2
multiplicao (num1, num2)
FIM

Slide: 16

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 17

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 18

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 19

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 20

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 21

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 22

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 23

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 24

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 25

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 26

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 27

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 28

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS

Unidade Curricular: Lgica e Algoritmo

Slide: 29

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS
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.

Unidade Curricular: Lgica e Algoritmo

Slide: 30

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS
FUNES:

Para exemplificar a
criao e utilizao
das nossas prprias
funes
e
procedimentos,
vamos criar um
algoritmo
para
resolver equaes
de segundo grau,
onde criaremos um
funo
chamada
calcula_delta.

Unidade Curricular: Lgica e Algoritmo

Slide: 31

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS
FUNES:

Unidade Curricular: Lgica e Algoritmo

Slide: 32

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

SUB-ROTINAS
EXERCCIOS/AVALIAO:
1 - Crie um procedimento que receba dois valores por referncia e ordene-os em ordem
crescente. Crie um algoritmo principal para chamar o procedimento e exibir os valores aps
a ordenao.
2 - Crie um procedimento para resolver uma equao de segundo grau. O procedimento
deve 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 o
procedimento. Em seguida, mostre o resultado das razes.
3 - Crie um procedimento que receba uma frase por parmetro e remova todos os
caracteres de espaos da frase. Ex: a frase O livro est em cima da mesa dever ficar
como: Olivroestemcimadamesa.

4 - Crie um procedimento para imprimir o contedo de um vetor de 20 posies. Esse


procedimento deve receber um parmetro do tipo caractere que indica se o contedo deve
ser exibido na ordem correta ou na ordem inversa (C para correta e I para inversa).

Unidade Curricular: Lgica e Algoritmo

Slide: 33

Prof.: Jos por:


Oliveira
Desenvolvido
JooValado
Amrico R. Pacheco

You might also like