21
1 Laboratório de Programação I Profa. Valéria Maria D´Arezzo Zílio SUBPROGRAMAS (Módulos)

Algoritmo subprogramas

  • Upload
    mcaztei

  • View
    1.542

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algoritmo subprogramas

1

Laboratório de Programação I

Profa. Valéria Maria D´Arezzo Zílio

SUBPROGRAMAS (Módulos)

Page 2: Algoritmo subprogramas

2

CONCEITO

• A complexidade de um programa está diretamente ligada à aplicação a que se destina. Em geral problemas mais complexos exigem programas mais extensos. Neste caso muitas vezes nos deparamos com um amontoado de comandos além disso outras vezes precisamos repetir o mesmo trecho de comandos em vários pontos do programa.

• Uma solução para este problema é dividir este programa mais longo em vários outros pequenos programas conhecidos como: módulos,sub-programas ou sub-rotinas.

Page 3: Algoritmo subprogramas

3

ORGANIZAÇÃO

Transformar um único programa em vários módulos permite:

• Aumentar a funcionalidade das partes do conjunto com programas independentes;

• Facilitar o entendimento do código e

• Permitir a reutilização destas partes.

• Um programa completo é subdividido em um módulo principal e diversos módulos quantos forem necessários.

• O módulo principal é aquele por onde a execução sempre se inicia, podendo invocar (ativar ou chamar) outros módulos que por sua vez poderão invocar outros ou até a si mesmos.

Page 4: Algoritmo subprogramas

4

ORGANIZAÇÃO• Diagrama de um programa utilizando

módulos:Relacionamento Hierárquico

Principal

M1 M2 M3 M4

M5 M6 M7 M8

Page 5: Algoritmo subprogramas

5

Representação

• Um Módulo é um trecho de programa que

possui variáveis e comandos próprios e que,

para ser executado deve ser ativado por um

outro módulo ou pelo módulo principal.

Page 6: Algoritmo subprogramas

6

Representação em Algoritmo

Início

{Variáveis Globais}

Módulo Nome (Parâmetros)

nome: tipo; {variáveis locais}

Início

{Corpo do Algoritmo}

Fim

{Definições de outros módulos}

Fim

Page 7: Algoritmo subprogramas

7

Representação em C#

• A Janela Form1.cs é um módulo vinculado

ao programa principal que não é

apresentado automaticamente quando da

criação de um projeto, mas pode ser

visualizado por meio da janela Solution

Explore Program.cs.

Page 8: Algoritmo subprogramas

8

Programa Principal do Projeto

Instruções

responsáveis

pela execução

do projeto.

Módulo Principal

por onde inicia a

execução do

projeto.

Page 9: Algoritmo subprogramas

9

Exemplo de um Módulo (Método em C#)

Método é um termo de

Prog. Orientada a

Objetos para

representar um módulo.

Page 10: Algoritmo subprogramas

10

Nomenclatura Em C#

• Temos formas diferentes de representar os módulos (ou funções ou métodos):

Método Simples: é usado para dividir um programa em blocos menores e armazenar trechos de programas que podem ser chamados inúmeras vezes durante a execução de um programa:

Métodos que retornam informações: é semelhante ao método simples é utilizado para a mesma finalidade, porém com um diferencial: sempre deve retornar um valor para o método que fez a chamada.

Page 11: Algoritmo subprogramas

11

Passagem de Parâmetros

• Os métodos podem receber e ou retornar

informações. Neste caso os dados locais a um

método podem ser enviados para outro método,

que por sua vez poderá utilizar estes dados e

alterá-los ou não. Este mecanismo é chamado de

passagem de parâmetros e pode ser de dois tipos:

passagem de parâmetros por valor (ou cópia) e

passagem de parâmetros por referência (envia

o endereço da variável).

Page 12: Algoritmo subprogramas

12

Passagem de Parâmetros por Valor

• No instante da chamada do método é feita

uma cópia dos dados como se fossem

variáveis locais. As informações recebidas

podem ser utilizadas pelo outro método,

mas as alterações não irão modificar a

informação original do local da chamada.

Page 13: Algoritmo subprogramas

13

Passagem de parâmetros por

Referência

• Passagem de Parâmetros por Referência: É

utilizada quando precisamos efetuar modificações

nos dados recebidos e enviar os resultados para

serem utilizados posteriormente. Neste caso é

enviado o endereço original da variável. Para

diferenciar da passagem de parâmetros por valor é

feita a inserção da palavra chave ref antes da

variável no cabeçalho do método.

Page 14: Algoritmo subprogramas

14

Variável Locais X Variável Globais

• Se uma variável for definida dentro de um método nenhum outro método poderá acessar esta variável, pois a variável não é conhecida em outras áreas do programa, variável local. No caso em que uma variável deve ser acessada por qualquer parte do programa ela deve ser declarada fora de qualquer método na seção inicial da unidade do programa, variáveis globais.

• O problema das variáveis globais é que qualquer código do programa poderá estar modificando o seu conteúdo exigindo assim um controle rígido do programador especialmente em programas extensos. Além disso, estas variáveis também ocupam a memória durante toda a execução do programa.

Page 15: Algoritmo subprogramas

15

Forma Geral de um Método

private tipo nome_do_método(tipo parâmetro)

tipo nome_da_variável; { variáveis locais}

{

bloco de comandos;

};

Page 16: Algoritmo subprogramas

16

Exemplo - 1

Sendo dados os valores de a e b

desenvolver uma aplicação para calcular

e exibir o valor de w = 3 a – b2/2. Utilizar

variáveis locais e métodos com passagem

de parâmetros.

Page 17: Algoritmo subprogramas

17

Page 18: Algoritmo subprogramas

18

Código em C#private void button1_Click(object sender, EventArgs e){

int a, b;

double w;

a = int.Parse(textBox1.Text);

b = int.Parse(textBox2.Text);

w = calculo(a, b);textBox3.Text = w.ToString();

}

private double calculo(int a, int b){

double resultado;

resultado = 3 * a - Math.Pow(b, 2) / 2;

return (resultado);}

Passagem de parâmetros

Por valor.

Tipo do Resultado

que vai retornar.

Page 19: Algoritmo subprogramas

19

Exemplo - 2

Dado um valor em real converter o

mesmo em dolar sabendo-se que o valor

do dolar é R$1,78. Exibir o valor

convertido usando o conceito de variáveis

locais e módulos.

Page 20: Algoritmo subprogramas

20

Page 21: Algoritmo subprogramas

21

Código em C#

private void button1_Click(object sender, EventArgs e)

{

double re, dl=0;

re = double.Parse(textBox1.Text);

if (radioButton1.Checked == true)

{

Converter(re, ref dl);

textBox2.Text = dl.ToString();

}

}

private void Converter(double re, ref double dl)

{

dl = re/2.20;

}

Passagem de Parâmetros

por valor e por referência.

Cabeçalho da Função com os

Parâmetros sendo recebidos na

mesma ordem que foram enviados.