1
Funções e procedimentos
MCTA028 – Programação Estruturada
Luiz Rozante 3Q-20108
Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti
Operadores unários ++ e
Diferentes linguagens tem operadores que permitem o
incremento ou decremento de valores de forma abreviada.
3
Incremento: ++
Decremento:
Exemplos
i = i+1 i++→ i = i+1 ++i→ i = i1 i→ i = i1 i→
Operadores unários ++ e
int i = 10;
p = i++;
int i = 10;
p = ++i;
Operadores unários ++ e
5
int i = 10;
p = i++;
int i = 10;
p = ++i;
Quando o operador está antes da variável, esta é operada antes de ser utilizada.
Operadores unários ++ e
p=10 i=11
p=11 i=11
Abribuição composta com operadores
Exemplos
i = i+3 → i += 3 i = i3 → i = 3 i = i*(3+q) i *= 3+q→ i = i/67 i /= 67→ i = i%10 i %= 10→
7
Funções
Funções
9
Funções
Funções
Como identificar um bom candidato a função?
Tarefa relativamente simples.
Trecho de código pequeno.
Utilizado várias vezes.
11
Funções
Definição Chamada
Declaração
Funções
Forma geral da definição:
tipo_retorno identificador ( lista parêmetros ) { // declaração de variáveis
//corpo da função
// instruções C válidas }
13
Funções
Funções (modularidade)
Consiste em dividir uma atividade em componentes, rotulados e endereçáveis
Uma função devolve um valor.
A função invocadora (main) é suspensa quando executar a
As variáveis locais não são conhecidas fora
da função
15
Funções (exemplo)
Funções
A definição de uma função C fornece 4 importantes informações ao compilador:
Então funções devem ser declaradas no início do código, logo após as diretivas #include; ou definidas antes da
função que a invoca.
17
Funções (exemplo)
Funções: escopo de variáveis
19
Funções: escopo de variáveis
Funções (exemplo)
21
Exercício 1
Crie uma função que permita calcular uma
aproximação de PI usando a serie de Gregory:
A função deve aceitar um parâmetro que represente o número de termos a ser
considerado na somatório.
4.000000 3.041840 3.131593 3.141493
Exercício 1
Crie uma função que permita calcular uma
aproximação de PI usando a serie de Gregory:
A função deve aceitar um parâmetro que represente o número de termos a ser
considerado na somatório.
4.000000 3.041840 3.131593 3.141493
23
Exercício 2
Modifique a função anterior de tal forma que faça a
somatória dos termos maiores ou iguais a x.
A função deve aceitar um parâmetro que represente o valor x (precisao).
3.1215946526 3.1415924536
Exercício 2
Modifique a função anterior de tal forma que faça a
somatória dos termos maiores ou iguais a x.
A função deve aceitar um parâmetro que represente o valor x (precisao).
3.1215946526
3.1415924536 Desafio: Quantos termos são necessários?
25
Procedimentos?
Procedimentos
Na linguagem C existem apenas funções, mas saiba que existem outras linguagens que aceitam funções e
procedimentos (em pascal: Function e Procedure):
Uma função devolve sempre um valor.
Um procedimento não devolve qualquer valor.
A forma de invocar funções e procedimentos é diferente:
Funções: x = pi(0.001) Procedimentos: printf(“%f”, x)
27
Procedimentos
Uma função que devolve “void” é chamada de procedimento.
Procedimento: exemplo
Algoritmos:
Deterministicos Vs Não-deterministicos
Um programa determinístico sempre gera a mesma saída para o mesmo conjunto de entrada.
Um programa é não-determinístico quando apresenta resultados
diferentes com os mesmos conjuntos de entrada.
Procedimento: exemplo
*********
*********
int rand(void)
Devolve um número inteiro entre 0 e RAND_MAX
Números aletórios
Pseudo-random True-random
https://boallen.com/random-numbers.html
Números aletórios
Me da um número aleatório
Pronto
stdlib.h
Números aletórios
Me da um número aleatório
Pronto
stdlib.h
Temperatura
Hora atual do sistema
Número de rotações do HD ...
Procedimento: exemplo
*********
*********
Números aletórios
Exercícios
Faça programas em C (usando obrigatoriamente funções) que:
1) calcule e escreva o valor de S:
2) calcule e escreva a seguinte soma:
3) calcule e escreva o valor de S:
37
Exercícios
Faça programas em C (usando obrigatoriamente funções) que:
4) calcule e escreva o valor de S:
5) calcule e escreva a soma dos 100 primeiros termos da série:
6) calcule e escreva o valor de pi, com precisão de 0.0001, usando a série: