Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouGeovane Diniz Alterado mais de 10 anos atrás
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.