Page 1

Curso Profissional de Informática de Gestão

Módulo 4: Subprogramas

LINGUAGENS DE PROGRAMAÇÃO

Conteúdos 1. Conceitos básicos 2. Variáveis Globais e locais 2. Passagem por parâmetros 1.

3. Subprogramas 1.

Estrutura do subprograma 1. Procedimentos 2. Funções

2. Recursividade

4. Construção de bibliotecas Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

2


Introdução aos Subprogramas  A resolução de problemas complexos é facilitada quando estes são divididos em problemas menores (subproblemas), cuja solução é realizada com subalgoritmos.  Os subalgoritmos (subprogramas) podem ser de procedimentos. dois tipos: funções e procedimentos  Os subprogramas são unidades de programa ou módulos projectados para executar uma tarefa específica.  Essas funções e esses procedimentos são escritos somente uma vez, mas podem ser referenciados em diferentes pontos do programa, o que permite evitar a duplicação desnecessária do código. Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

3

Introdução aos Subprogramas  As unidades de programas no estilo de

programação modular são independentes: o programador pode escrever cada módulo e verificá-lo sem se preocupar com os detalhes de outro módulo.  Vantagens:  Detecção de erros  Facilidade de compreensão  Recursividade

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

4


Introdução aos Subprogramas  Um subprograma pode realizar as mesmas

acções que um programa:  Aceitar dados;  Realizar alguns cálculos;  Devolver resultados.

 O programa principal chama ou invoca o

subprograma.  O subprograma executa uma tarefa e a seguir devolve o controle ao programa. [Pode acontecer em diferentes lugares do programa] Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

5

Variáveis globais e locais  Uma variável local é aquela que está

declarada e definida dentro de um subprograma.  Está dentro desse subprograma e é distinta das

variáveis com o mesmo nome, declaradas em qualquer parte do programa principal.  Estas variáveis apenas são visíveis dentro do subprograma.  O significado de uma variável confina-se ao subprograma em que está declarada.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

6


Variáveis globais e locais  Uma variável global é aquela que está

declarada para o programa principal, da qual dependem todos os subprogramas.  A parte do programa / algoritmo em que uma

variável é definida é conhecida como scope (escopo).

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

7

Funções  Embora ainda sem saber como escrever uma

função, já as temos utilizado: getchar(); printf(); scanf()…  Um programa em C tem que possuir sempre a função main() escrita no seu código, independentemente do número e variedade de funções que o programa contenha.  O facto de uma função existir não quer dizer que

ela venha a ser executada.  É a função main() (ou qualquer outra por si invocada) que terá que solicitar os serviços desta função. Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

8


Características de uma função  Cada função tem que ter um nome único, o

qual serve para a sua invocação, algures no programa a que pertence.  Uma função pode ser invocada a partir de outras funções.  Uma função (como o nome indica) deve realizar UMA ÚNICA TAREFA, bem definida.  Uma função deve comportar-se como uma caixa negra. Não interessa como funciona, o que interessa é que o resultado final seja o esperado, sem efeitos colaterais. Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

9

Características de uma função  O código de uma função deve ser o mais

independente possível do resto do programa, e deve ser tão genérico quanto possível, para poder ser reutilizado noutros projectos.  Uma função pode receber parâmetros que alterem o seu comportamento de forma a adaptar-se facilmente a situações distintas.  Uma função pode retornar, para a entidade que a invocou, um valor como resultado do seu trabalho. Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

10


Nome de uma função  O nome de uma função obedece às regras

apresentadas para a designação de variáveis.  O nome de uma função deve ser único.  O nome de uma função deve especificar aquilo a

que a função na realidade faz e deve ser de fácil leitura e interpretação.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

11

Funcionamento de uma função  O código de uma função só é executado quando esta é

invocada algures no programa a que está ligada.  Sempre que uma função é invocada, o programa que a invoca é “suspenso” temporariamente. Em seguida são executadas as instruções presentes no corpo da função, Uma vez terminada a função, o controlo de execução do programa volta ao local em que esta foi invocada.  O programa que invoca uma função pode enviar Argumentos, que são recebidos pela função. Estes são Argumentos recebidos e armazenados em variáveis locais que são automaticamente inicializadas com os valores enviados. Parâmetros. A estas variáveis dá-se o nome de Parâmetros  Depois de terminar o seu funcionamento uma função pode devolver um valor para o programa que a invocou. Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

12


Problema - Exemplo  Escreva um programa que tenha o seguinte

output: *** ***** ******* ***** ***

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

13

Problema - Exemplo FUNÇÃO MAIN main() { linha(3); linha(5); linha(7); linha(5); linha(3); } Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

14


Problema - Exemplo  A função é sempre a mesma, o que muda é o

número de caracteres a colocar no ecrã.  Como seria então a escrita da função linha?  Recebe entre parêntesis um valor do tipo inteiro, o

qual terá que ser colocado numa variável.  Depois de armazenado o valor, o ciclo da função linha terá que ser executado o número de vezes que está armazenado nessa variável.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

15

Problema - Exemplo  Qual o nome da função a escrever?  linha()

 Quantos parâmetros vai receber?  1

 Qual o tipo do parâmetro?  inteiro

 Nome da variável que vai armazenar esse parâmetro  num

 O cabeçalho da função será:  linha(int num)

 E o corpo da função será:  for (i = 1; i <= num; i++); Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

16


Problema - Exemplo #include<stdio.h> linha (int num) { int i; for(i=1; i<=num; i++) putchar(‘*’); putchar(‘\n’); } main() { linha(3); linha(5); linha(7); linha(5); linha(3); }

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

17

Parâmetros  A comunicação com uma variável faz-se através dos argumentos que lhe são enviados e dos parâmetros presentes na função que os recebem.  Qualquer tipo de dados da linguagem pode ser enviado como parâmetro para uma função, mesmo tipos de dados que venham a ser definidos pelo programador.  Os parâmetros de uma função são separados por vírgula e é absolutamente necessário que, para cada um deles, seja indicado o seu tipo:  função (int x, char y, float k, double xpto) Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

18


Parâmetros  Um parâmetro não é mais do que uma

variável local à função a que pertence. Um parâmetro é automaticamente inicializado com o valor enviado pelo programa invocador.  O número de argumentos enviados para uma função deve ser igual ao número de parâmetros existente no cabeçalho da função. O tipo dos parâmetros deve igualmente corresponder.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

19

Parâmetros main() { … funcao(‘A’, 123, 23.456); … } funcao (char ch, int n, float x) { … } Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

20


return  A instrução return permite terminar a

execução de uma função e voltar ao programa que a invocou.  A execução da instrução return na main, faz com que o programa termine.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

21

Funções que retornam um valor  É possível que uma função seja responsável

por realizar uma determinada tarefa e que, uma vez terminada essa tarefa devolva UM ÚNICO resultado.  A devolução de um resultado é feita através da instrução return seguida do valor a devolver.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

22


Funções que retornam um valor Tipo de Retorno

Parâmetros

int soma (int x, int y) { int res; res = x+y; return res; } Valor a Retornar Uma função pode conter várias instruções return. return. No entanto, apenas uma é executada na função. Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

23

Funções e procedimentos  Em C apenas existem funções, enquanto

noutras linguagens existem dois tipos distintos de rotinas – as funções e os procedimentos.  Uma função tem sempre um tipo e um valor de retorno associados, enquanto um procedimento não devolve qualquer valor.  Sempre que no cabeçalho de uma função não é colocado o tipo de retorno, este é substituído pelo tipo int. Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

24


O “tipo” void  Em C existe uma palavra reservada – void –

que permite indicar que uma função não devolve qualquer tipo.  A uma função que “retorna void” chama-se normalmente Procedimento.  A instrução return termina a execução da função (procedimento) e o controlo do programa é devolvido ao local onde a função (procedimento) foi invocada.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 4

25

Bibliografia  Damas, Luís; LINGUAGEM C; FCA; 2ª edição; Lisboa; 

     

1999 Aguilar, Luis Joyanes; FUNDAMENTOS DE PROGRAMAÇÃO – Algoritmos, estruturas de dados e objetos; Mc Graw Hill; Tradução da 3ª edição; São Paulo; 2008 Azul, Artur Augusto; BASES DE PROGRAMAÇÃO 10; Porto Editora; Porto http://www.eisnt.com/GPSI/programacao/Aula4C.pdf http://www.linhadecodigo.com.br/Artigo.aspx?id=425 http://www.criarweb.com/artigos/825.php http://deei.fct.ualg.pt/PI_flobo/teorica7.html http://www.di.ubi.pt/~fsilva/prog/Prog_Cap4.pdf (em 10/11/2008) Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

26


Bibliografia  Damas, Luís; LINGUAGEM C; FCA; 2ª edição; Lisboa;

1999  Aguilar, Luis Joyanes; FUNDAMENTOS DE PROGRAMAÇÃO – Algoritmos, estruturas de dados e objetos; Mc Graw Hill; Tradução da 3ª edição; São Paulo; 2008  Azul, Artur Augusto; BASES DE PROGRAMAÇÃO 10; Porto Editora; Porto  Em 10/11/2008     

http://www.eisnt.com/GPSI/programacao/Aula4C.pdf http://www.linhadecodigo.com.br/Artigo.aspx?id=425 http://www.criarweb.com/artigos/825.php http://deei.fct.ualg.pt/PI_flobo/teorica7.html http://www.di.ubi.pt/~fsilva/prog/Prog_Cap4.pdf

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

27

5-Modulo4  
Read more
Read more
Similar to
Popular now
Just for you