Algoritmo subprogramas

Preview:

Citation preview

1

Laboratório de Programação I

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

SUBPROGRAMAS (Módulos)

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.

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.

4

ORGANIZAÇÃO• Diagrama de um programa utilizando

módulos:Relacionamento Hierárquico

Principal

M1 M2 M3 M4

M5 M6 M7 M8

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.

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

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.

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.

9

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

Método é um termo de

Prog. Orientada a

Objetos para

representar um módulo.

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.

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).

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.

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.

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.

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;

};

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.

17

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.

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.

20

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.