algoritmo subprogramas
TRANSCRIPT
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.