85
Bacharelado em Ciência e Tecnologia Processamento da Informação Módulos Parte 2 Módulos ou Subrotinas: PARTE II Criando seus próprios módulos

Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Embed Size (px)

Citation preview

Page 1: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Módulos ou Subrotinas:

PARTE II

Criando seus próprios módulos

Page 2: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Objetivos da Aula

Compreender a necessidade e a importância de

modularizar

Aprender a criar e utilizar (chamar) seus

próprios módulos

Page 3: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Refletindo ...

Até o momento temos escrito nossos programas no

PortugolStudio de maneira “sequencial” dentro da

função início

Page 4: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Refletindo ...

À medida que os problemas vão se tornando mais

complexos, os programas (solução) tendem a ficar

mais extensos.

Modularizar permite “quebrar” o problema em

subproblemas.

Para cada subproblema podemos, por exemplo,

escrever um módulo específico (função)

Page 5: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

PROBLEMA EXEMPLO

Page 6: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Escreva um programa ler dois vetores (A e B) de

10 elementos cada. Após a entrada de dados, o

programa deve:

Obter e exibir a soma dos elementos do vetor A

Obter e exibir a soma dos elementos do vetor B

Calcular e exibir a média dos elementos dos dois

vetores (uma única média)

Imprimir o vetor A e depois o vetor B

Mostrar os elementos de A e B que são acima da média

de ambos

Problema

Page 7: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Escreva um programa ler dois vetores (A e B) de 10

elementos cada. Após a entrada de dados, o programa

deve:

Obter e exibir a soma dos elementos do vetor A

Obter e exibir a soma dos elementos do vetor B

Calcular e exibir a média dos elementos dos dois vetores (uma

única média)

Imprimir o vetor A e depois o vetor B

Mostrar os elementos de A e B que são acima da média de ambos

SAÍDA DE DADOS?

Page 8: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

SAÍDA: soma do vetor A (somaA), soma do vetor B (soma B),

media dos dois vetores (mediaAB), exibir vetor A, exibir vetor

B, exibir elementos de A e B acima de mediaAB.

Escreva um programa ler dois vetores (A e B) de 10

elementos cada. Após a entrada de dados, o programa

deve:

Obter e exibir a soma dos elementos do vetor A

Obter e exibir a soma dos elementos do vetor B

Calcular e exibir a média dos elementos dos dois vetores (uma

única média)

Imprimir o vetor A e depois o vetor B

Mostrar os elementos de A e B que são acima da média de ambos

Page 9: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

ENTRADA DE DADOS: os vetores A e B

Escreva um programa ler dois vetores (A e B) de 10

elementos cada. Após a entrada de dados, o programa

deve:

Obter e exibir a soma dos elementos do vetor A

Obter e exibir a soma dos elementos do vetor B

Calcular e exibir a média dos elementos dos dois vetores (uma

única média)

Imprimir o vetor A e depois o vetor B

Mostrar os elementos de A e B que são acima da média de ambos

Page 10: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

SOLUÇÃO 1

Page 11: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

DECLARAÇÃO DE VARIÁVEIS E ENTRADA DE DADOS

Page 12: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

PROCESSAMENTO [1]:

Note que poderíamos usar um ÚNICO laço de repetição para somar os

DOIS vetores. Propositalmente, optou-se por tratar cada problema (de

somar cada vetor) como um problema específico.

- Obter e exibir a soma dos elementos do vetor A

- Obter e exibir a soma dos elementos do vetor B

Page 13: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

PROCESSAMENTO [2] - Calcular e exibir a média dos elementos

dos dois vetores (uma única média)

- Imprimir o vetor A e depois o vetor B

Page 14: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

PROCESSAMENTO [3] Mostrar os elementos de A e B que

são acima da média de ambos

Page 15: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

SOLUÇÃO COMPLETA (53 LINHAS DE PROGRAMA)

Page 16: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

SOLUÇÃO COMPLETA (53 LINHAS DE PROGRAMA)

Page 17: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

SOLUÇÃO COMPLETA

Page 18: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

O programa completo possui cerca de 53 linhas

Há diversos trechos no programa que são

“repetitivos”, ou seja, fazem a “mesma” coisa,

mudando-se apenas a “variável”

Análise da Solução

Page 19: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Trecho repetitivo: ENTRADA DE DADOS

O “mesmo trecho” para ENTRADA DE DADOS dos vetores! Muda

apenas o nome da variável.

Page 20: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Trecho repetitivo: SOMA ELEMENTOS VETOR

O “mesmo trecho” para SOMA DOS ELEMENTOS dos vetores! Muda

apenas o nome da variável.

Page 21: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Trecho repetitivo: IMPRIME VETOR

O “mesmo trecho” para IMPRIMIR VETOR! Muda apenas o nome da

variável.

Page 22: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Trecho repetitivo: ELEMENTOS ACIMA MEDIA

O “mesmo trecho” para MOSTRAR ELEMENTOS ACIMA DA MÉDIA!

Muda apenas o nome da variável.

Page 23: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Trechos repetitivos é um convite ao REUSO!

Cada “parte” do programa tem uma FINALIDADE

ESPECÍFICA:

Ler o vetor (subproblema 1)

Somar os elementos do vetor (subproblema 2)

Imprimir os elementos do vetor (subproblema 3)

Exibir os elementos acima da media (subproblema 4)

Reuso e Problemas com finalidade específica é um

convite a MODULARIZAÇÃO!!!

ANÁLISE DA SOLUÇÃO

Page 24: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

SOLUÇÃO MODULARIZADA

Primeiro vamos ver a solução modularizada, para entendermos suas

vantagens! Em seguida vamos aprender a escrever os módulos (funções)

Page 25: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Page 26: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Primeiro, vamos pegar cada trecho específico, um

a um, e transformá-lo numa função

Modularizando

Comecemos pela ENTRADA DE DADOS

Page 27: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

MODULARIZANDO A ROTINA

“LEITURA VETOR”

Page 28: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

O que difere entre os dois trechos é apenas a

variável do “leia”

Modularizando – ENTRADA DE DADOS

Page 29: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Note que os trechos são IDÊNTICOS!

Apenas “criamos” uma nova função, demos um nome a ela

(Leitura_Vetor) e agora podemos CHAMÁ-LA

Daqui a pouco entenderemos melhor os detalhes da criação da

função: nome, parâmetros, etc.

Modularizando – ENTRADA DE DADOS

Page 30: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Existindo a função podemos CHAMÁ-LA como fazemos

com funções existentes (potencia, raiz, etc)

Note que “Leitura_Vetor” é chamada duas vezes: uma para

A e outra para B

Modularizando - ENTRADA DE DADOS

Page 31: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

MODULARIZANDO A ROTINA

“SOMA VETOR”

Page 32: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

O que difere os dois trechos?

Modularizando – SOMA VETOR

Page 33: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Note que os trechos são IDÊNTICOS!

Apenas “criamos” uma nova função, demos um nome a ela

(Soma_Vetor) e agora podemos CHAMÁ-LA

Daqui a pouco entenderemos melhor os detalhes da criação da

função : nome, parâmetros, etc.

Modularizando – SOMA VETOR

Page 34: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Existindo a função podemos CHAMÁ-LA como fazemos

com funções existentes (potencia, raiz, etc)

Note que “Soma_Vetor” é chamada duas vezes: uma para A

e outra para B

Modularizando - SOMA VETOR

Page 35: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

MODULARIZANDO A ROTINA

“IMPRIME VETOR”

Page 36: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

O que difere os dois trechos?

Modularizando – IMPRIME VETOR

Page 37: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Note que os trechos são IDÊNTICOS!

Apenas “criamos” uma nova função, demos um nome a ela

(Imprime_Vetor) e agora podemos CHAMÁ-LA

Daqui a pouco entenderemos melhor os detalhes da criação da

função : nome, parâmetros, etc.

Modularizando – IMPRIME VETOR

Page 38: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Existindo a função podemos CHAMÁ-LA como fazemos

com funções existentes (potencia, raiz, etc)

Note que “Imprime_Vetor” é chamada duas vezes: uma para

A e outra para B

Modularizando - IMPRIME VETOR

Page 39: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

MODULARIZANDO A ROTINA

“IMPRIME ACIMA MEDIA”

Page 40: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

O que difere os dois trechos?

Modularizando – IMPRIME ACIMA DA MÉDIA

Page 41: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Note que os trechos são IDÊNTICOS!

Apenas “criamos” uma nova função, demos um nome a ela

(Imprime_Acima_Media) e agora podemos CHAMÁ-LA

Daqui a pouco entenderemos melhor os detalhes da criação da

função : nome, parâmetros, etc.

Modularizando – IMPRIME ACIMA DA MÉDIA

Page 42: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Existindo a função podemos CHAMÁ-LA como fazemos

com funções existentes (potencia, raiz, etc)

Note que “Imprime_Acima_Media” é chamada duas vezes:

uma para A e outra para B

Modularizando - IMPRIME ACIMA DA MÉDIA

Page 43: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

SOLUÇÃO COMPLETA

Page 44: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

FUNÇÃO INÍCIO

Note como o programa está mais

ENXUTO (código mais limpo)

Page 45: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

FUNÇÕES DE USUÁRIO (CRIADAS)

AS FUNÇÕES CRIADAS E QUE

FORAM CHAMADAS (E REUSADAS)

Page 46: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

VANTAGENS DA MODULARIZAÇÃO

Page 47: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Modularização - Vantagens

Reaproveitamento de código (reuso)

Organização

Legibilidade

Flexibilidade

Page 48: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

COMO ESCREVER E ATIVAR MÓDULOS (FUNÇÕES)

Page 49: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Módulos – Estrutura e Sintaxe

Um programa modularizado tem:

um módulo principal (função início) e

outros módulos que vamos chamar de

funções de usuário

Page 50: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Page 51: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Módulos - Sintaxe

Sintaxe parecida com

O módulo principal

1- Palavra funcao

(obrigatório)

2- Valor de retorno (caso exista)

3- Identificador (obrigatório)

4- Parênteses com parâmetros

(caso exista)

Page 52: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

PARÂMETROS

São os valores ou variáveis enviadas ao

módulo, para que ele possa realizar o seu

processamento

Podemos passar nenhum ou vários parâmetros

para o módulo

Tudo depende da finalidade do módulo (e de

como ele foi construído) (2) PARÂMETROS

Page 53: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

RETORNO

O Retorno de um módulo é o valor (ou valores) que o

módulo retorna para o local em que ele foi chamado

(3) RETORNO

Page 54: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Módulos – Sintaxe - Portugol

palavra

funcao

valor de retorno (caso exista)

Identificador

(nome da função)

Parâmetros da função)

tipo do

retorno da

função

Page 55: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Módulos – Sintaxe - Portugol

palavra funcao

NOTE QUE ESSA FUNÇÃO NÃO TEM RETORNO

Identificador (nome da função)

Parâmetros da função)

Page 56: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Módulos – Sintaxe - Portugol

Sempre dentro das chaves, para

Delimitar o BLOCO do módulo

Page 57: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

EXECUÇÃO E CHAMADA DOS MÓDULOS

Page 58: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Módulos – Execução de um Módulo

A chamada (ou ativação) de um módulo, representa a

execução das ações contidas nele, em seguida a

execução retorna para a instrução seguindo ao ponto

da sua chamada (que poderá ser o módulo principal ou

noutros módulos)

Não existe ordem para a definição dos módulos

Quem determina a execução de um MÓDULO (ou

função) é a sua chamada.

Page 59: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Módulos – Execução (chamada)

O módulo principal (função início)

É o primeiro a ser chamado quando um

programa é executado

Os outros módulos são ativados (executados)

toda vez que forem chamados (pelo nome)

A chamada de um módulo deve respeitar sua

definição (nome, parâmetros, etc)

Page 60: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Note as chamadas à função SOMA_VETOR: passando dois

parâmetros e atribuindo o valor do retorno para somaA e somaB

Modularização - CHAMADA

Page 61: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Note as chamadas à função IMPRIME_VETOR: passando dois

parâmetros. Não há atribuição pois a função não retorna nada!

Modularização - CHAMADA

Page 62: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Módulos – Execução de um Módulo

Qualquer função pode chamar outra função.

Um módulo pode chamar ele próprio?

Recursividade! Fora do escopo da disciplina

Page 63: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

EXEMPLO

Page 64: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Escreva um programa para exibir o peso ideal de uma pessoa

utilizando a formula a seguir:

Problema

Masculino: 72.7 x altura – 58

Feminino: 62.1 x altura – 44.7

A entrada e saída de dados poderá ser feito no módulo principal

(função início). No entanto, o calculo do peso ideal deve ser feito em

uma função específica.

SAÍDA: ???

Page 65: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Escreva um programa para exibir o peso ideal de uma pessoa

utilizando a formula a seguir:

Problema

SAÍDA: peso ideal

Masculino: 72.7 x altura – 58

Feminino: 62.1 x altura – 44.7

A entrada e saída de dados poderá ser feito no módulo principal

(função início). No entanto, o calculo do peso ideal deve ser feito em

uma função específica.

Page 66: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Escreva um programa para exibir o peso ideal de uma pessoa

utilizando a formula a seguir:

Problema

SAÍDA: peso ideal

Masculino: 72.7 x altura – 58

Feminino: 62.1 x altura – 44.7

A entrada e saída de dados poderá ser feito no módulo principal

(função início). No entanto, o calculo do peso ideal deve ser feito em

uma função específica.

ENTRADA: sexo e altura

Page 67: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Solução

A entrada e saída de dados poderá ser feito no módulo principal

(função início). No entanto, o calculo do peso ideal deve ser feito em

uma função específica.

Page 68: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Construção da Função

A entrada e saída de dados poderá ser feito no módulo principal

(função início). No entanto, o calculo do peso ideal deve ser feito em

uma função específica.

Masculino: 72.7 x altura – 58

Feminino: 62.1 x altura – 44.7

Para construir o módulo (função) precisamos:

1. Definir identificador (nome da função)

2. Definir os parâmetros (tipo e nome), se necessário

3. Definir tipo do retorno, se necessário

Page 69: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Construção da Função Masculino: 72.7 x altura – 58

Feminino: 62.1 x altura – 44.7

1. Definir identificador (nome da função)

Calcula_Peso_Ideal

2. Definir os parâmetros (tipo e nome), se necessário

A função precisa receber o SEXO e ALTURA por parâmetro (já que

eles foram lidos fora da função)

3. Definir tipo do retorno, se necessário

A função deverá RETORNAR o peso ideal calculado

Page 70: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Construção da Função Masculino: 72.7 x altura – 58

Feminino: 62.1 x altura – 44.7

Page 71: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Construção da Função Masculino: 72.7 x altura – 58

Feminino: 62.1 x altura – 44.7

Page 72: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Solução Completa

CHAMADA DA FUNÇÃO

Page 73: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Solução Completa

Page 74: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Blocos

Um BLOCO é delimitado por um par de chaves

{ }

Um BLOCO define o ESCOPO das variáveis.

A variável só existe dentro do “bloco” em que

ela foi declarada.

Page 75: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Módulos – Escopo LOCAL

Escopo local – VARIÁVEL existe somente no

módulo em que foi declarada.

Quando a execução do módulo (função) é

finalizada a variável é “liberada” (da memória) e

os valores perdidos.

Caso os valores devam “sair” da função (antes

de serem perdidos) eles precisam ser

RETORNADOS: retorne

Page 76: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Escopo Global

Escopo global – são variáveis que podem ser utilizadas

nos módulos em que foram declaradas e também nos

módulos internos aos módulos que foram declarados

Evitem utilizar variáveis globais!

Ocupam mais espaço de memória, pois ocupam a

memória enquanto o programa estiver sendo

executado

Dê preferência pelas variáveis locais!

Page 77: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

PASSAGEM DE PARÂMETRO POR VALOR

Ocorre a passagem do VALOR (conteúdo) para a

variável correspondente na função, por correspondência

de posição: o primeiro valor é passado para a primeira

variável, o segundo valor é passado para a segunda

posição, e assim por diante

Caso haja alterações no parâmetro correspondente

(dentro da função) essas mudanças são perdidas (a não

ser que os valores sejam retornados).

ESSA É A PASSAGEM DE PARÂMETRO PADRÃO!

Page 78: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

PASSAGEM DE PARÂMETRO POR REFERÊNCIA

Ocorre a passagem do ENDEREÇO da variável (e não

apenas o conteúdo). É criado uma CONEXÃO entre as

variáveis correspondentes.

Caso haja alterações no parâmetro correspondente

(dentro da função) essas mudanças alteram a variável

passada por parâmetro (similar a um “retorno”)

NO PORTUGOL STUDIO a passagem de parâmetros

por REFERÊNCIA é feita colocando-se um & antes do

nome da variável

Page 79: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

PASSAGEM DE PARÂMETRO POR REFERÊNCIA

Note que na função Leitura_Vetor o primeiro parâmetro usa o & pois o

VETOR é modificado dentro da função e essa modificação precisa ser refletida

fora da função

Page 80: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

PASSAGEM DE PARÂMETRO POR VALOR

Note que na função Imprime_Vetor a passagem é feita por VALOR (sem o &) pois a função NÃO

modifica o conteúdo do vetor

Page 81: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Coisas para recordar

Obrigatório existir um módulo principal

O módulo principal é criado automaticamente

Para criar seus módulos você precisa pensar:

No objetivo do módulo

Identificador

Número e tipo de parâmetros

Valor de retorno

Page 82: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Coisas para não esquecer

Um bloco é delimitado pelos CHAVES { e }.

Uma variável que é declarada dentro de um módulo é

chamada de variável local e existe apenas dentro do

módulo.

O módulo fica na memória durante a sua execução sendo

destruido quando última instrução é executada (ou após

um retorne).

Uma variável criada fora de qualquer módulo é chamada

de variável global.

A variável global existe dentro de qualquer módulo criado

dentro do programa.

Page 83: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

AGORA É PRATICAR!!!

Page 84: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Exercícios

Page 85: Módulos ou Subrotinas: PARTE II Criando seus próprios módulos · Após a entrada de dados, o programa deve: ... O que difere entre os dois trechos é apenas a ... Processamento

Bacharelado em Ciência e Tecnologia

Processamento da Informação

Módulos – Parte 2

Modularização – Exercício

Escreva a função Valida_Inteiro para solicitar um número

inteiro e validá-lo de forma que o mesmo esteja dentro de

um intervalo. Os limites do intervalo serão passados por

parâmetro. Escreva também a função principal (início) para

fazer a chamada da função com os seguintes valores:

Valida_Inteiro (0, 100) // aceitar valores entre 0 e 100

Valida_Inteiro (-50, 50) // aceitar valores entre -50 e 50

Atenção: A comunicação dos valores entre a função e o meio externo dever ser

feita por passagem de parâmetros (e não por variáveis globais)