Buscar

Aula - Programacao Modular

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Programac¸a˜o Modular
ECO002 / ELT102 / ECA102 / ELE103
Profa.Thatyana de Faria Piola Seraphim
(thatyana@unifei.edu.br)
Prof.Enzo Seraphim
(seraphim@unifei.edu.br)
Prof.Rodrigo Maximiano Antunes de Almeida
(rodrigomax@unifei.edu.br)
Prof.Joa˜o Paulo Reus Rodrigues Leite
(joaopaulo@unifei.edu.br)
Prof.Carlos Henrique Vale´rio de Morais
(valerio@unifei.edu.br)
Profa.Cla´udia Eliane da Matta
(claudia.matta@unifei.edu.br)
Universidade Federal de Itajuba´
18 de fevereiro de 2014
ECO002 / ELT102 / ECA102 / ELE103 Profa.Thatyana de Faria Piola Seraphim (thatyana@unifei.edu.br) Prof.Enzo Seraphim (seraphim@unifei.edu.br) Prof.Rodrigo Maximiano Antunes de Almeida (rodrigomax@unifei.edu.br) Prof.Joa˜o Paulo Reus Rodrigues Leite (joaopaulo@unifei.edu.br) Prof.Carlos Henrique Vale´rio de Morais (valerio@unifei.edu.br) Profa.Cla´udia Eliane da Matta (claudia.matta@unifei.edu.br)Programac¸a˜o Modular
Programac¸a˜o Modular
Sub-Rotinas
Sub-Rotinas ou Subprogramas:
sa˜o blocos de instruc¸o˜es que realizam tarefas espec´ıficas ;
o co´digo de uma sub-rotina e´ carregado uma vez e pode ser
executado quantas vezes for necessa´rio.
Os programas tendem a ficar menores e mais organizados, uma
vez que o problema pode ser dividido em pequenas tarefas.
Definic¸a˜o de Sub-rotina
Uma sub-rotina e´ um programa que podera´ efetuar diversas
operac¸o˜es computacionais (entrada, processamento e sa´ıda).
ECO002 / ELT102 / ECA102 / ELE103 Profa.Thatyana de Faria Piola Seraphim (thatyana@unifei.edu.br) Prof.Enzo Seraphim (seraphim@unifei.edu.br) Prof.Rodrigo Maximiano Antunes de Almeida (rodrigomax@unifei.edu.br) Prof.Joa˜o Paulo Reus Rodrigues Leite (joaopaulo@unifei.edu.br) Prof.Carlos Henrique Vale´rio de Morais (valerio@unifei.edu.br) Profa.Cla´udia Eliane da Matta (claudia.matta@unifei.edu.br)Programac¸a˜o Modular
Programac¸a˜o Modular
Sub-Rotinas
Os programas sa˜o executados linearmente, uma linha apo´s a
outra, ate´ o fim.
Quando as sub-rotinas sa˜o utilizadas, e´ poss´ıvel a realizac¸a˜o
de desvios na execuc¸a˜o natural dos programas.
Os desvios sa˜o realizados quando uma func¸a˜o e´ chamada pelo
programa principal.
Um importante recurso apresentado nas linguagens de
programac¸a˜o e´ a modularizac¸a˜o
onde um programa pode ser particionado em sub-rotinas
bastante espec´ıficas.
A modularizac¸a˜o pode ser feita por meio de procedimentos
ou func¸o˜es.
ECO002 / ELT102 / ECA102 / ELE103 Profa.Thatyana de Faria Piola Seraphim (thatyana@unifei.edu.br) Prof.Enzo Seraphim (seraphim@unifei.edu.br) Prof.Rodrigo Maximiano Antunes de Almeida (rodrigomax@unifei.edu.br) Prof.Joa˜o Paulo Reus Rodrigues Leite (joaopaulo@unifei.edu.br) Prof.Carlos Henrique Vale´rio de Morais (valerio@unifei.edu.br) Profa.Cla´udia Eliane da Matta (claudia.matta@unifei.edu.br)Programac¸a˜o Modular
Programac¸a˜o Modular
Procedimentos
Definic¸a˜o de Procedimento
Um procedimento e´ um bloco de programa, contendo in´ıcio e fim e
sera´ identificado por um nome atrave´s do qual sera´ referenciado
em qualquer parte do programa principal ou do programa que
chama a rotina.
Quando uma sub-rotina e´ chamada por um programa
ela e´ executada e ao seu te´rmino, o controle de processamento
retorna automaticamente para a primeira linha de instruc¸a˜o
apo´s a linha que efetuou a chamada da sub-rotina.
ECO002 / ELT102 / ECA102 / ELE103 Profa.Thatyana de Faria Piola Seraphim (thatyana@unifei.edu.br) Prof.Enzo Seraphim (seraphim@unifei.edu.br) Prof.Rodrigo Maximiano Antunes de Almeida (rodrigomax@unifei.edu.br) Prof.Joa˜o Paulo Reus Rodrigues Leite (joaopaulo@unifei.edu.br) Prof.Carlos Henrique Vale´rio de Morais (valerio@unifei.edu.br) Profa.Cla´udia Eliane da Matta (claudia.matta@unifei.edu.br)Programac¸a˜o Modular
Programac¸a˜o Modular
Procedimentos
Sintaxe
procedimento <nome> (<param1:tipo1;. . .;paramn:tipon >)
var
<declarac¸a˜o das vara´veis locais>
inicio
<lista de comandos>
fimprocedimento
O procedimento e´ chamado escrevendo apenas seu nome no
programa principal.
Exemplo: um programa de calculadora que apresenta um
menu de selec¸o˜es no programa principal.
ECO002 / ELT102 / ECA102 / ELE103 Profa.Thatyana de Faria Piola Seraphim (thatyana@unifei.edu.br) Prof.Enzo Seraphim (seraphim@unifei.edu.br) Prof.Rodrigo Maximiano Antunes de Almeida (rodrigomax@unifei.edu.br) Prof.Joa˜o Paulo Reus Rodrigues Leite (joaopaulo@unifei.edu.br) Prof.Carlos Henrique Vale´rio de Morais (valerio@unifei.edu.br) Profa.Cla´udia Eliane da Matta (claudia.matta@unifei.edu.br)Programac¸a˜o Modular
Programac¸a˜o Modular
Procedimentos
algoritmo “calculadora”
var { Varia´vel do Programa Principal }
opcao : inteiro
procedimento rotSoma()
var soma, a, b : real
inicio
escreval(“Rotina de Soma”)
escreval(“Digite o valor de a = ”)
leia(a)
escreval(“Digite o valor de b = ”)
leia(b)
soma <– a + b
escreval(“Soma = ”, soma)
fimprocedimento
procedimento rotSubtracao()
var sub, a, b : real
inicio
escreval(“Rotina de Subtracao”)
escreval(“Digite o valor de a = ”)
leia(a)
escreval(“Digite o valor de b = ”)
leia(b)
sub <– a - b
escreval(“Subtracao = ”, sub)
fimprocedimento
ECO002 / ELT102 / ECA102 / ELE103 Profa.Thatyana de Faria Piola Seraphim (thatyana@unifei.edu.br) Prof.Enzo Seraphim (seraphim@unifei.edu.br) Prof.Rodrigo Maximiano Antunes de Almeida (rodrigomax@unifei.edu.br) Prof.Joa˜o Paulo Reus Rodrigues Leite (joaopaulo@unifei.edu.br) Prof.Carlos Henrique Vale´rio de Morais (valerio@unifei.edu.br) Profa.Cla´udia Eliane da Matta (claudia.matta@unifei.edu.br)Programac¸a˜o Modular
Programac¸a˜o Modular
Procedimentos
procedimento rotMultiplicacao()
var mult, a, b : real
inicio
escreval(“Rotina Multiplicacao”)
escreval(“Digite o valor de a = ”)
leia(a)
escreval(“Digite o valor de b = ”)
leia(b)
mult <– a * b
escreval(“Multiplicacao=”, mult)
fimprocedimento
procedimento rotDivisao()
var divisao, a, b : real
inicio
escreval(“Rotina de Divisao”)
escreval(“Digite o valor de a = ”)
leia(a)
escreval(“Digite o valor de b = ”)
leia(b)
divisao <– a / b
escreval(“Divisao = ”, divisao)
fimprocedimento
ECO002 / ELT102 / ECA102 / ELE103 Profa.Thatyana de Faria Piola Seraphim (thatyana@unifei.edu.br) Prof.Enzo Seraphim (seraphim@unifei.edu.br) Prof.Rodrigo Maximiano Antunes de Almeida (rodrigomax@unifei.edu.br) Prof.Joa˜o Paulo Reus Rodrigues Leite (joaopaulo@unifei.edu.br) Prof.Carlos Henrique Vale´rio de Morais (valerio@unifei.edu.br) Profa.Cla´udia Eliane da Matta (claudia.matta@unifei.edu.br)Programac¸a˜o Modular
Programac¸a˜o Modular
Procedimentos
{Programa Principal}
inicio
opcao <– 0
enquanto(opcao <> 5) faca
escreval(“1 - Adicao”)
escreval(“2 - Subtracao”)
escreval(“3 - Multiplicacao”)
escreval(“4 - Divisao”)
escreval(“5 - Fim do programa”)
escreval(“Escolha uma opcao”)
leia(opcao)
se(opcao = 1) entao
rotSoma
fimse
se(opcao = 2) entao
rotSubtracao
fimse
se(opcao = 3) entao
rotMultiplicacao
fimse
se(opcao = 4) entao
rotDivisao
fimse
fimenquanto
fimalgoritmo
ECO002 / ELT102 / ECA102 / ELE103 Profa.Thatyana de Faria Piola Seraphim (thatyana@unifei.edu.br) Prof.Enzo Seraphim (seraphim@unifei.edu.br) Prof.Rodrigo Maximiano Antunes de Almeida (rodrigomax@unifei.edu.br) Prof.Joa˜o Paulo Reus Rodrigues Leite (joaopaulo@unifei.edu.br) Prof.Carlos Henrique Vale´rio de Morais (valerio@unifei.edu.br) Profa.Cla´udia Eliane da Matta (claudia.matta@unifei.edu.br)Programac¸a˜o Modular
Programac¸a˜o Modular
Func¸o˜es
Func¸a˜o:
e´ um bloco de programa, contendo in´ıcio e fim.
E´ identificada por um nome atrave´s do qual e´ referenciada em
qualquer parte do programa principal.
Diferenc¸a entre func¸a˜o e procedimento:
a func¸a˜o retorna um determinado valor, e esse valor e´
retornado no pro´prionome da func¸a˜o.
Sintaxe da Func¸a˜o
funcao <nome>(<param1:tipo1;. . .;paramn:tipon >) <tipo>
var
<declarac¸a˜o das varia´veis locais>
inicio
<lista dos comandos>
retorne <varia´vel para retorno>
fimfuncao
ECO002 / ELT102 / ECA102 / ELE103 Profa.Thatyana de Faria Piola Seraphim (thatyana@unifei.edu.br) Prof.Enzo Seraphim (seraphim@unifei.edu.br) Prof.Rodrigo Maximiano Antunes de Almeida (rodrigomax@unifei.edu.br) Prof.Joa˜o Paulo Reus Rodrigues Leite (joaopaulo@unifei.edu.br) Prof.Carlos Henrique Vale´rio de Morais (valerio@unifei.edu.br) Profa.Cla´udia Eliane da Matta (claudia.matta@unifei.edu.br)Programac¸a˜o Modular
Programac¸a˜o Modular
Func¸o˜es
Paraˆmetros:
teˆm por objetivo servir como um ponto de comunicac¸a˜o
bidimensional entre uma sub-rotina e o programa principal.
Atrave´s dos paraˆmetros e´ poss´ıvel passar valores de uma
sub-rotina ou rotina chamadora a` outra sub-rotina e
vice-versa.
Exemplo
Func¸a˜o que eleva ao cubo um determinado nu´mero informado pelo
usua´rio.
ECO002 / ELT102 / ECA102 / ELE103 Profa.Thatyana de Faria Piola Seraphim (thatyana@unifei.edu.br) Prof.Enzo Seraphim (seraphim@unifei.edu.br) Prof.Rodrigo Maximiano Antunes de Almeida (rodrigomax@unifei.edu.br) Prof.Joa˜o Paulo Reus Rodrigues Leite (joaopaulo@unifei.edu.br) Prof.Carlos Henrique Vale´rio de Morais (valerio@unifei.edu.br) Profa.Cla´udia Eliane da Matta (claudia.matta@unifei.edu.br)Programac¸a˜o Modular
Programac¸a˜o Modular
Func¸o˜es
Exemplo: Func¸a˜o que eleva ao cubo um determinado nu´mero
informado pelo usua´rio
algoritmo “cubo”
var { variavel do programa principal }
num, x : real
funcao cubo (n:real) : real
var { variavel da funcao cubo }
c : real
inicio
c <– n * n * n
retorne (c)
fimfuncao
inicio { inicio programa principal }
escreva(“Digite um valor para calcular o cubo = “)
leia(num)
x <– cubo(num)
escreva(“O cubo de “, num, “ = “, x)
fimalgoritmo
ECO002 / ELT102 / ECA102 / ELE103 Profa.Thatyana de Faria Piola Seraphim (thatyana@unifei.edu.br) Prof.Enzo Seraphim (seraphim@unifei.edu.br) Prof.Rodrigo Maximiano Antunes de Almeida (rodrigomax@unifei.edu.br) Prof.Joa˜o Paulo Reus Rodrigues Leite (joaopaulo@unifei.edu.br) Prof.Carlos Henrique Vale´rio de Morais (valerio@unifei.edu.br) Profa.Cla´udia Eliane da Matta (claudia.matta@unifei.edu.br)Programac¸a˜o Modular

Outros materiais