Ana səhifə

Universidade Regional Integrada do Alto Uruguai e das Missões Campus Frederico Westphalen Departamento de Engenharias e Ciência da Computação Algoritmos e Estrutura de Dados I informática I


Yüklə 0.52 Mb.
səhifə13/23
tarix25.06.2016
ölçüsü0.52 Mb.
1   ...   9   10   11   12   13   14   15   16   ...   23

9.7Mecanismos de Passagem de Parâmetros


Como foi visto anteriormente, os parâmetros reais substituem os formais no ato da invocação de um subalgoritmo. Esta substituição é denominada passagem de parâmetros e pode se dar segundo dois mecanismos distintos: passagem por valor (ou por cópia) ou passagem por referência.

9.7.1Passagem de Parâmetros por Valor


Na passagem de parâmetros por valor (ou por cópia) o parâmetro real é calculado e uma cópia de seu valor é fornecida ao parâmetro formal, no ato da invocação do subalgoritmo. A execução do subalgoritmo prossegue normalmente e todas as modificações feitas no parâmetro formal não afetam o parâmetro real, pois trabalha-se apenas com uma cópia do mesmo.

Algoritmo Exemplo_parametro_por_valor

Var X : inteiro
Procedimento PROC(Y : inteiro)

Início

Y := Y + 1

Escreva "Durante Y = ”, Y

Fim
Início

X := 1


Escreva "Antes X = ”, X

PROC(X)


Escreva "Depois X = ", X

Fim.

O algoritmo anterior 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 formais, para que neles seja armazenada uma cópia dos parâmetros reais.

9.7.2Passagem de Parâmetros por Referência


Neste mecanismo de passagem de parâmetros não é feita uma reserva de espaço em memória para os parâmetros formais. Quando um subalgoritmo com parâmetros passados por referência é chamado, o espaço de memória ocupado pelos parâmetros reais é compartilhado pelos parâmetros formais correspondentes. Assim, as eventuais modificações feitas nos parâmetros formais também afetam os parâmetros reais correspondentes.

Um mesmo subalgoritmo pode utilizar diferentes mecanismos de passagem de parâmetros, para parâmetros distintos. Para diferenciar uns dos outros, convencionou-se colocar o prefixo VAR antes da definição dos parâmetros formais passados por referência. Se por exemplo um procedimento tem o seguinte cabeçalho:



Procedimento PROC( X, Y : inteiro; Var Z : real; J: real)

Então:


  • X e Y são parâmetros formais do tipo inteiro e são passados por valor;

  • Z é um parâmetro formal do tipo real passado por referência;

  • J é um parâmetro formal do tipo real passado por valor.

O exemplo do item anterior, alterado para que o parâmetro Y do procedimento seja passado por referência, torna-se:

Algoritmo Exemplo_parametro_por_referencia

Var X : inteiro
Procedimento PROC(Y : inteiro)

Início

Y := Y + 1

Escreva "Durante Y = ”, Y

Fim
Início

X := 1


Escreva "Antes X = ”, X

PROC(X)


Escreva "Depois X = ", X

Fim.

O resultado do algoritmo modificado é:

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.


9.8Refinamentos Sucessivos


De acordo com o modelo cascata, o ciclo de vida de um software consta das seguintes fases: Análise de requisitos, Arquitetura geral, Projeto detalhado, Programação, Integração e testes, e manutenção.

O Método de Refinamentos Sucessivos para a elaboração de algoritmos dita que um dado problema deve ser subdividido em problemas menores repetidamente, até que seja possível encontrar um algoritmo (subalgoritmo ou comando composto) para resolver cada um destes subproblemas. Assim, o algoritmo para resolver o problema original será composto pela composição destes algoritmos.

O método apresentado pode ser subdividido na fase de Análise Top-Down, que procura resolver o problema a nível de subalgoritmos e comandos compostos, e na fase de Programação Estruturada, que detalha os subalgoritmos e comandos compostos até o nível das instruções primitivas e construções de controle de fluxo.

Por fim, o uso do método é vantajoso devido ao seu estímulo à modularização de sistemas, que proporciona a criação de programas claros, fáceis de entender e, portanto, de manutenção mais barata.

PARTE iii - lINGUAGEM DE PROGRAMAÇÃO

10.Introdução


O Pascal é uma linguagem de programação de alto nível e de fins genéricos, derivada do Algol-60. As suas instruções são formadas por expressões do tipo algébrico e por algumas palavras inglesas, tais como BEGIN, END, READ, WRITE, IF THEN, REPEAT, WHILE, DO, etc. Neste aspecto o Pascal assemelha-se a muitas outras linguagens de alto nível. Contudo, o Pascal contém ainda alguns aspectos únicos, que foram especificamente concebidos para estimular o uso de uma programação estruturada - um método ordenado e disciplinado, do qual resultam programas claros, eficientes e sem erros.

A designação de Pascal foi atribuída em homenagem ao brilhante cientista e matemático francês, Blaise Pascal (1623-1662), que dentre outros feitos se destaca a invenção da primeira calculadora mecânica.

A linguagem Pascal foi originalmente desenvolvida no início dos anos 70 por Nicklaus Wirth, na Universidade Técnica de Zurique, Suíça. O objetivo original foi o de desenvolver uma linguagem disciplinada de alto nível para ensinar programação estruturada. Esta linguagem desenvolvida por Wirth é conhecida como Pascal Padrão. Nos Estados Unidos, foi definido conjuntamente um padrão oficial para a linguagem, pelo American National Standarts Institute (ANSI) e pelo Institute of Electrical and Electronics Engineers (IEEE). Este padrão oficial é conhecido como ANSI Pascal. Em 1983 a Borland International começou a comercializar um compilador Pascal relativamente barato, designado por Turbo Pascal, para ser usado em computadores pessoais.

1   ...   9   10   11   12   13   14   15   16   ...   23


Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©atelim.com 2016
rəhbərliyinə müraciət