• Nenhum resultado encontrado

modularizacao

N/A
N/A
Protected

Academic year: 2021

Share "modularizacao"

Copied!
28
0
0

Texto

(1)

ALGORITMO E ESTRUTURAS

DE DADOS

(2)

Subalgoritmos:

Conceito

Trechos de algoritmos que realizam

cálculos ou tarefas.

Vantagens:

 Reduzem o tamanho do algoritmo

 Facilitam a compreensão e visualização do algoritmo  São declarados no início do algoritmo e podem ser

chamados em qualquer ponto após sua declaração

Eles podem ser Funções que retorna algum valor ou

(3)

Subalgoritmos:

Funcionamento

 Um algoritmo completo é dividido em:  UM Algoritmo principal

Diversos Subalgoritmos

 A execução sempre começa pelo algoritmo principal;

 A execução de um subalgoritmo é solicitada sempre que

necessário, através de uma chamada ou invocação.

 Quando um subalgoritmo é chamado, a execução do

algoritmo principal é interrompida para que o

subalgoritmo seja executado. Após isso, o algoritmo principal continua de onde parou

(4)

Subalgoritmo:

Funcionamento

Subalgoritmo 1 Instrução 1 Subalgoritmo 2 instrução2 Subalgoritmo 1 Instrução 1 Subalgoritmo 2 instrução2 Subalgoritmo 2 Instrução 1 Instrução 2 Subalgoritmo 2 Instrução 1 Instrução 2 Algoritmo principal Instrução 1 Instrução 2 Subalgoritmo 1 Instrução 3 Algoritmo principal Instrução 1 Instrução 2 Subalgoritmo 1 Instrução 3

1) A execução inicial aqui e segue a sequência das instruções.

2) A execução do Algoritmo Principal é interrompida até que o Subalgoritmo 1 seja executado, continuando em seguida a partir da instrução 3.

3) Executado no momento em que é invocado pelo Algoritmo Principal.

4) A execução do Subalgoritmo 1 é interrompida até que o Subalgoritmo 2 seja executado, continuando em seguida a partir da instrução 2.

5) Executado no momento em que é invocado pelo Subalgoritmo 1.

6) Terminada a execução, volta para continuar o

Subalgoritmo 1. Quando terminar o Subalgoritmo 1, volta para continuar com a execução do Algoritmo Principal.

2

4 6

(5)

Subalgoritmo:

Variáveis Locais e

Variáveis Globais

Variáveis Globais: são declaradas no início

do algoritmo e pode ser usadas no algoritmo

principal e por todos os subalgoritmos.

Variáveis Locais: são definidas dentro de

um subalgoritmo e só podem ser utilizadas

dentro dele.

(6)

Subalgoritmos:

Tipos

Existem dois tipos de Subalgoritmos:

Funções;

(7)

Subalgoritmo:

Função

FUNÇÃO é um subalgoritmo que calcula um

valor a partir de outros fornecidos a ela,

retornando o valor calculado

 A chamada a uma função sempre ocorre dentro

de uma expressão do mesmo tipo que tem o valor retornado por ela.

 Sua chamada é feita pelo seu nome, seguido de

seus respectivos parâmetros entre parênteses.

 A função é executada e, ao seu término, o trecho

do comando que a invocou é substituído pelo valor retornado

Exemplos: primo(<número>),

(8)

Subalgoritmos:

Função

 Forma geral de uma função (sintaxe):

funcao <identificador> ([var]<parâmetros>): <tipo de retorno> var

<declaração de variáveis locais> inicio

<lista de comandos>

retorne <variável de retorno> fimfuncao

Identificador: Nome da função. [var]:

• Passagem de parâmetros por referência: utiliza-se a construção VAR antes dos identificadores para indicar a passagem por referência.

• Passagem de parâmetro por valor: não é necessário utilizar a construção VAR antes dos identificadores.

Parâmetros: Entre um mesmo tipo de dados são separados por vírgula. Entre tipos de

dados a separação é feita com ponto-e-vírgulas ';'.

Tipo de retorno da função: Real, Inteiro, Lógico ou Caractere.

Declaração de variáveis locais: idêntica a declaração de variáveis globais. As variáveis

declaradas localmente tem validade dentro do escopo da função.

(9)

Subalgoritmos:

Exemplo de

Função

Algoritmo "Quadrado" Var

x,y:real

Funcao quadrado(var w:real): real

var quad:real Inicio quad  w^2 Retorne (quad) Fimfuncao Início

Escreva ("Digite um número: ") Leia ( x )

y  quadrado(x)

Escreva (" Quadrado = " , y ) Fimalgoritmo

Aqui se inicia o algoritmo principal, que

solicita um número ao usuário e, em seguida, chama a função que realiza o quadrado do número. Guarda o quadrado retornada pela função na variável y e mostra o valor na tela. Quando a função é chamada, a execução do algoritmo principal fica parada até que a função seja finalizada e retorne o resultado.

(10)

Subalgoritmos:

Instrução

Retorne

A instrução Retorne é um comando simples usado apenas

nas funções e tem o efeito de parar a execução da função e enviar um valor para o algoritmo principal ou para outro subalgoritmo que o tenha chamado.

 Toda função deve ter em seu corpo de instruções, pelo

menos, uma instrução Retorne.

 Sintaxe:

Retorne ( <expressão> )

 Exemplos:

 Retorne ( area )  Retorne ( pi*r*r )

(11)

Subalgoritmos:

Chamada de

Função

 A chamada de uma função, por parte do algoritmo

principal ou por outro subalgoritmo, é feita pelo simples aparecimento de seu nome, com os respectivos parâmetros entre parênteses, dentro de uma expressão.

 Os parâmetros utilizados no algoritmo principal, no ato da

chamada da função (chamados parâmetros reais) devem manter uma correspondência (número, ordem e tipo) com os parâmetros definidos na função (chamados parâmetros formais).

 A função é executada, e ao seu término, o trecho do

comando que a chamou é substituído pelo valor retornado pela mesma dentro da expressão em que se encontra, e a avaliação desta prossegue normalmente.

(12)

Subalgoritmos:

Exemplos de

Função

Algoritmo “classifica_Idade” Var

idade: inteiro;

Funcao verifica_Idade (var id:inteiro):logico

Inicio se (id > 18) entao Retorne (verdadeiro) senao Retorne (Falso) Fimse Fimfuncao Inicio

Escreva("Entre com a idade:") Leia (idade)

Se (verifica_idade (idade)) entao Escreva ("é maior de idade")

Senao

Escreva ("é menor de idade") Fimse

(13)

PROCEDIMENTO é um subalgoritmo que não

retorna valor ao algoritmo chamador ou que

retorna dois ou mais valores

 A chamada de procedimentos só pode ser feita

com uma linha de comando isolada dentro do algoritmo

 Se retornar valores, o retorno é feito por meio de

parâmetros ou variáveis globais

Exemplos: solicita_valores, lista_resultados

(14)

Subalgoritmos:

Procedimentos

 Forma geral de um procedimento (sintaxe):

procedimento <nome> ([var]<parâmetros>)

var

<declaração de variáveis locais>

inicio

<lista de comandos>

Fimprocedimento

nome: Nome do procedimento. [var]:

• Passagem de parâmetros por referência: utiliza-se a construção VAR antes dos identificadores para indicar a passagem por referência.

• Passagem de parâmetro por valor: não é necessário utilizar a construção VAR antes dos identificadores.

Parâmetros: Entre um mesmo tipo de dados são separados por

vírgula. Entre tipos de dados a separação é feita com ponto-e-vírgulas ';'.

(15)

Subalgoritmos:

Exemplo de

Procedimento

Algoritmo “Calcular Quadrado” Var x:real Procedimento quadrado() Var z:real Inicio zx^2

escreva(“O quadrado do numero é =“,z) Fimprocedimento Inicio escreva(“Digite um numero:”) leia(x) quadrado() fimalgoritmo

(16)

Subalgoritmos:

Exemplo de

Procedimento

Algoritmo “Calcular Quadrado” Var x:real Procedimento quadrado() Var z:real Inicio zx^2

escreva(“O quadrado do numero é =“,z) Fimprocedimento Inicio escreva(“Digite um numero:”) leia(x) quadrado() fimalgoritmo

(17)

Subalgoritmos:

Chamada de

Procedimento

 A definição deste tipo de subalgoritmo é semelhante ao

anterior com a diferença de que os valores calculados figuram na lista dos Parâmetros juntamente com os valores recebidos.

 A chamada de um procedimento só é feita em comandos

isolados dentro do algoritmo principal ou outro subalgoritmo, como os comandos simples, tipo as instruções Leia, Escreva, Retorne, etc., e nunca no meio de expressões ou em atribuições como no caso de funções.

(18)

Subalgoritmos:

Exemplo de

Procedimento

Algoritmo “Notas” Var n1,n2,n3,md:real codigo:inteiro

Procedimento Media(var a,b,c,m:real)

Inicio

m <- (a + b + c) / 3

Fimprocedimento

Inicio

escreva("Informe código e 3 valores para notas:") leia(codigo,n1,n2,n3)

enquanto (codigo > 0) faca

Media(n1,n2,n3,md) escreva("Media:",md)

escreva("Informe código e 3 valores para notas:") leia(codigo,n1,n2,n3)

Fimenquanto Fimalgoritmo

(19)

Subalgoritmo:

Parâmetros

Parâmetros são canais pelos quais se

estabelece uma comunicação bidirecional entre

um subalgoritmo e o algoritmo chamador.

Os tipos de parâmetros que utilizamos nesse

processo são dois, veja-os a seguir:

Parâmetros formais – são aquelas variáveis

locais que declaramos entre parêntesis, nos

cabeçalhos dos subalgoritmos. São utilizados para realizar os cálculos dentro do subalgoritmo.

Parâmetros reais – são os valores que substituem

os parâmetros formais no momento da chamada de um subalgoritmo.

(20)

Subalgoritmo:

Parâmetros

 A passagem de parâmetros ocorre quando é feita uma

substituição dos parâmetros formais pelos reais no momento da execução do subalgoritmo. Esses parâmetros são passados por variáveis de duas formas:

Por valor: neste caso é passada uma cópia do conteúdo

de uma variável. Essa cópia só existirá no procedimento ou na função.

 Qualquer alteração que for feita no valor, não irá

alterar o conteúdo da variável original.

Por referência: não existe cópia do conteúdo enviado, o

que ocorre é o envio do endereço de memória onde a variável se encontra.

 Neste caso, qualquer alteração no valor alterará o valor

(21)

Subalgoritmo:

Parâmetros

Por exemplo, veja o cabeçalho da função fsoma, a seguir. Funcao fsoma (a1, b1 : inteiro) : inteiro

As variáveis a1 e b1 são os parâmetros formais da função.  Veja, agora, o seguinte trecho do algoritmo que chama essa

função:

leia (a) leia (b)

soma <- fsoma (a,b)

Os valores armazenados nas variáveis globais a e b são os

parâmetros reais. Note que poderíamos, simplesmente, chamar a função, passando os valores diretamente: soma <- fsoma (3,5). Nesse caso, os números 3 e 5 seriam os parâmetros reais.

(22)

Subalgoritmo:

Parâmetros

 No processo de passagem de parâmetros, são passados dados de entrada do algoritmo para o subalgoritmo e dados de saída no sentido oposto. Veja esse processo ilustrado na Figura.

(23)

Subalgoritmo:

Parâmetros

 Podemos ver uma função, no módulo da esquerda, que calcula uma soma entre dois números. No módulo da direita, temos o corpo do algoritmo que chama essa função. O algoritmo passa os dados de entrada (números armazenados nas variáveis a e b, que são os parâmetros reais) para a função, que os armazena em suas variáveis locais a1 e b1 (parâmetros formais). O cálculo é efetuado e o valor encontrado é armazenado na variável local resultado. Através do comando retorne, esse valor é passado como dado de saída para o algoritmo (no momento da chamada da função), que o armazena na variável global soma para, então, ser exibido.

(24)

Subalgoritmo:

Parâmetros

 Em um procedimento, essa passagem de parâmetros é feita de uma forma um pouco diferente.

(25)

Subalgoritmo:

Parâmetros

 No procedimento, a comunicação de saída não é feita de forma explícita como na função. Veja que, ao contrário do que é feito na função, a palavra reservada var é utilizada nos parâmetros do procedimento. Veja, também, que, na chamada ao procedimento, todos os dados são passados como parâmetros, ao passo que na função, são passados apenas os dados de entrada (os números armazenados em a e b).

(26)

Subalgoritmo:

Exemplo

passagem por valor

Algoritmo “Exemplo_parametro_por_valor” Var

X : inteiro

Procedimento PROC(Y : inteiro) Inicio Y  Y + 1 Escreva ("Durante Y = ”, Y) Fimprocedimento Inicio escreva(“Informe valor:”) leia(X) Escreva ("Antes X = ”, X) PROC(X) Escreva ("Depois X = ", X) Fimalgoritmo

O algoritmo fornece o seguinte resultado:

Antes X = 1 Durante Y = 2 Depois X = 1

Isto certifica que o procedimento não alterou o valor do parâmetro real X durante sua execução. Este tipo de ação é possível porque, neste mecanismo de passagem de parâmetros, é feita uma reserva de espaço em

memória para os parâmetros, para que neles seja armazenada uma cópia do valor real.

(27)

Subalgoritmo:

Exemplo

passagem por referência

Algoritmo “Exemplo_parametro_por_referencia” Var

X : inteiro

Procedimento PROC(var Y : inteiro) Inicio Y  Y + 1 Escreva ("Durante Y = ”, Y) Fimprocedimento Inicio escreva(“Informe valor:”) leia(X) Escreva ("Antes X = ”, X) PROC(X) Escreva ("Depois X = ", X) Fimalgoritmo

O algoritmo fornece o seguinte resultado:

Antes X = 1 Durante Y = 2 Depois X = 2

Como podemos observar, depois de chamar o procedimento com o parâmetro por referência o valor original da variável foi alterado.

(28)

Exercícios

Crie uma função para calcular o fatorial de um

número.

 1! ou 0! = 1

Crie uma função para determinar se um número

é primo

Escreva um algoritmo que declare um vetor do

tipo real e leia as notas de 5 alunos. Faça um

procedimento para ler as notas dos alunos e

uma função para calcular a media dos alunos.

Referências

Documentos relacionados

O sentido de ambiente saudável de trabalho se apresenta através do sentido de desenvolvimento do trabalhador dado pelas condições de trabalho que constituem a produção da

• Quando o navegador não tem suporte ao Javascript, para que conteúdo não seja exibido na forma textual, o script deve vir entre as tags de comentário do HTML. &lt;script Language

Se a pessoa do marketing corporativo não usar a tarefa Assinatura, todos as pessoas do marketing de campo que possuem acesso a todos os registros na lista de alvos originais

A autora buscou verificar, a partir de relatórios e projetos de estágio produzidos por acadêmicos do curso de Letras de uma universidade da região do Vale do Itajaí (SC), como

Tendo como parâmetros para análise dos dados, a comparação entre monta natural (MN) e inseminação artificial (IA) em relação ao número de concepções e

Após 96 horas, houve um aumento no consumo, com o aumento de 100 para 160 ninfas, que não diferiu significativamente da densidade 220; com 280 ninfas disponíveis houve um

Quando contratados, conforme valores dispostos no Anexo I, converter dados para uso pelos aplicativos, instalar os aplicativos objeto deste contrato, treinar os servidores

Relação entre as variáveis ambientais (altura, cota do rio, temperatura do ar média, temperatura do ar máxima, temperatura do ar mínima, umidade relativa do ar e precipitação e