A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção.

Apresentações semelhantes


Apresentação em tema: "Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção."— Transcrição da apresentação:

1 Sub-programas

2 Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção.

3 Sub-programa e funções matemáticas Mecanismo de composição de programas Como na matemática – Possui entrada (argumentos) e saída (resultado) – Define relação entre entrada e saída – Uma entrada está associada a um único resultado Diferente da matemática – O valor é calculado – Programa possui estado. Funções (em Pascal) podem modificar este estado

4 Exemplo na matemática Para qualquer x e y int., f(x,y) = x * y f é a função de multiplicação. Válida para qualquer par de inteiros.

5 Exemplo na matemática Para qualquer x e y int., f(x,y) = x * y program Main; type...{declarações de tipo} var a,b: int; {declarações de variáveis} function mult(x,y: integer): integer; begin mult := x * y; end; Begin readln(a, b); println(o resultado da multiplicacao eh:, mult(a,b)); end.

6 Por que definir funções em programas?

7 É importante organizar código em módulos!

8 Por que definir funções em programas? Modularizar permite: – Dividir esforço Uma vez que a interface de uma função (entrada, saída, e comportamento) é definida, pode-se distribuir esforço (dividir para conquistar) – Evitar cópia Re-usar mesma implementação de uma funcionalidade em várias partes do programa permite focalizar manutenção do programa.

9 Procedimentos

10 Procedimentos em Pascal program Main; type... var... procedure proc1()... procedure proc2()... procedure procN()... begin... end. definições usos

11 Procedimentos em Pascal procedure nome(argumentos); var {aqui colocamos as variáveis que serão usadas só neste procedimento} begin {aqui vai a parte executável, a lógica do procedimento} end;

12 Visibilidade program Main; type...{declarações de tipo} var a,b: int; {declarações de variáveis} function mult(x,y: integer): integer; begin mult := x * y; end; function add(x,z: integer): integer; var t : integer; begin t := x + z; add := t; end; begin readln(a, b); println(o resultado da multiplicacao eh:, mult(a,b)); end. variáveis locais parâmetros variáveis globais

13 Passagem de parâmetro por cópia e referência program Referencia; var k : integer; procedure AddRef(var i : integer); begin i := i + 1; end; procedure AddRef2(i : integer); begin i := i + 1; end; begin k := 0; AddRef(k); writeln('>',k); AddRef2(k); {no side effect on k} writeln('>',k); readln() end. passagem por cópia passagem por referência

14 Exemplo program Matrizes; uses crt; { biblioteca auxiliar } type matriz = array[1..10,1..10] of integer; var a,b:matriz; n:integer; procedure lermatriz(x:char; var c:matriz); var i,j:integer; begin clrscr; write('Entre com a matriz-> ', x); for i:=1 to n do for j:=1 to n do begin gotoxy(1+(j-1)*4,i+3); read(c[i,j]); end;...

15 program Matrizes; uses crt; { biblioteca auxiliar } type matriz = array[1..10,1..10] of integer; var a,b:matriz; n:integer; procedure lermatriz(x:char; var c:matriz); var i,j:integer; begin clrscr; write('Entre com a matriz-> ', x); for i:=1 to n do for j:=1 to n do begin gotoxy(1+(j-1)*4,i+3); read(c[i,j]); end;... Exemplo variáveis locais x e c são parâmetros de entrada, mas c é passado por referência

16 Exercício Defina um procedimento para calcular e imprimir o valor da exponenciação de um número a por outro b.

17 Funções

18 Definição Em pascal, tipo especial de procedimento que retorna um valor

19 Sintaxe function nome(argumentos): tipo; var {aqui colocamos as variáveis que serão usadas só neste procedimento} begin {aqui vai a parte executável, a lógica do procedimento} end;

20 Sintaxe function nome(argumentos): tipo; var {aqui colocamos as variáveis que serão usadas só neste procedimento} begin {aqui vai a parte executável, a lógica do procedimento} end; Note que uma função possui tipo!

21 Exercício 1 Escreva um programa que receba duas frações (quatro inteiros) ordinárias e mostre o resultado em forma de fração

22 Exercício 2 Modifique o programa anterior para simplificar a fração resultado pelo máximo divisor comum

23 Exercício 3 Implemente uma função que calcule o fatorial de um numero inteiro n (maior que 0) Definição informal de fatorial: factorial(n) = 1 * 2 *... * (n-1) * n

24 Exercício 4 Implemente uma função que calcule o fatorial de um número. Definição: – Fac(n) = 1, n = 1 – Fac(n) = n * f(n-1), n > 1

25 Exercício 5 Implemente uma função Pascal que retorne o número de fibonacci n. Definição: – Fib(n) = 1, se n = 1 ou n = 2 – Fib(n) = fib(n-1) + fib(n-2), se n > 2

26 Exercício 6 A função booleana ehPar indica se um número inteiro (maior que zero) é par. Implemente duas versões desta função. – Usando a função mod – Usando apenas os operadores de subtração e comparação


Carregar ppt "Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção."

Apresentações semelhantes


Anúncios Google