Search Header Logo
LINGUAGEM EM C - FUNÇÕES

LINGUAGEM EM C - FUNÇÕES

Assessment

Presentation

Computers

10th Grade

Practice Problem

Hard

Created by

Bruno Pires

Used 2+ times

FREE Resource

45 Slides • 0 Questions

1

media

FUNÇÕES

EM

C:

1

1

Introdução
Estrutura de uma função

2

media

I

NT

R

ODUÇ

Ã

O

E

XEMPLOS

DE

FUNÇÕES

QUE

UTILIZAMOS

AO

LONGO

DOS

NOSSO

PROGRAMAS

:

PRINTF

SCANF

GETCHAR

PUTCHAR

ETC

.

ESTAS

SÃO

FUNÇÕES

QUE

FAZEM

PARTE

DA

BIBLIOTECA

STANDARD

DO

C,

QUE

NOS

SÃO

FORNECIDAS

AQUANDO

DA

UTILIZAÇÃO

DO

COMPILADOR

EM

C.

2

2

3

media

I

NT

R

ODUÇ

Ã

O

3

Problema 1: Escreva um programa em C que coloque no ecrã o seguinte

output, escrevendo a linha de 20 asteriscos através de um ciclo for.

3

4

media

I

NT

R

ODUÇ

Ã

O

4

4

5

media

I

NT

R

ODUÇ

Ã

O

5

Como podem observar, o código utilizado para escrever um linha de

asteriscos no ecrã parece repetido 3 vezes.

O ideal seria escrever esta porção de código só uma única vez e invoca-la

sempre que necessário.

A solução é dividir o programa em pequenos fragmentos de código, cada

um dos quais é responsável por uma determinada tarefa.

5

6

media

I

NTRODUÇÃO

PROBLEMA

2

:

ESCREVA

UM

PROGRAMA

QUE

COLOQUE

UMA

LINHA

COM

VINTE

ASTERISCOS

NO

ECRÃ

.

6

O

programa

anterior

foi

implementado

como

sendo

uma

função main(). Como a sua função

é escrever uma linha, em vez de

chamar

main

vamos

chamar-lhe

linha.

6

7

media

I

NT

R

ODUÇ

Ã

O

7

Se tentarmos criar um executável com este código, vamos obter um erro de

linkagem, uma vez que a função main não se encontra presente no

programa.

NOTA: Um programa em C tem que possuir SEMPRE a função main() escrita no seu

código, independentemente do nº e variedade de funções que o programa contenha.

7

8

media

I

NT

R

ODUÇ

Ã

O

8

8

9

media

F

UNÇÕES

EM

C

9

9

Uma função pode ser vista como um conjunto de comandos que realiza

uma tarefa específica. Em outras palavras, pode-se dizer que é um pequeno

"programa" utilizado por outros programas.

A função é referenciada (chamada) pelo programa principal através de um

nome atribuído a ela.

A utilização de funções, muito comum na programação estruturada, visa

subdividir um programa em partes (módulos) menores que realizam uma

tarefa bem definida.

10

media

F

UNÇÕES

EM

C

B

ENEFÍCIOS

DA

UTILIZAÇÃO

DE

FUNÇÕES

:

P

ERMITE

O

REAPROVEITAMENTO

DE

CÓDIGO

CONSTRUÍDO

.

E

VITA

QUE

UM

MESMO

TRECHO

DE

CÓDIGO

SEJA

REPETIDO

VÁRIAS

VEZES

DENTRO

DE

UM

MESMO

PROGRAMA

E

,

COM

ISSO

,

QUALQUER

ALTERAÇÃO

É

FEITA

APENAS

NESSE

TRECHO

E

DE

FORMA

SIMPLES

.

P

ARA

QUE

OS

BLOCOS

DO

PROGRAMA

NÃO

FIQUEM

GRANDES

DEMAIS

E

,

POR

CONSEQUÊNCIA

,

MAIS

DIFÍCEIS

DE

ENTENDER

;

F

ACILITA

A

LEITURA

DO

PROGRAMA

DE

MANEIRA

QUE

OS

BLOCOS

DE

CÓDIGO

POSSAM

SER

LOGICAMENTE

COMPREENDIDOS

DE

FORMA

ISOLADA

.

10

10

11

media

F

UNÇÕES

EM

C

11

11

12

media

C

ARACTERÍSTICAS

DE

UMA

FUNÇÃO

12

12

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.

13

media

N

OME

DE

UMA

FUNÇÃO

A

ESCOLHA

DE

UM

NOME

DE

UMA

FUNÇÃO

OBEDECE

ÀS

REGRAS

APRESENTADAS

PARA

A

DESIGNAÇÃO

DAS

VARIÁVEIS

.

O

NOME

DE

UMA

FUNÇÃO

DEVE

SER

ÚNICO

(

NÃO

PODE

SER

IGUAL

AO

NOME

DE

OUTRA

FUNÇÃO

OU

DE

UMA

VARIÁVEL

).

O

NOME

DE

UMA

FUNÇÃO

DEVE

ESPECIFICAR

AQUILO

QUE

A

FUNÇÃO

NA

REALIDADE

FAZ

E

DEVE

SER

DE

FÁCIL

LEITURA

E

INTERPRETAÇÃO

.

13

13

14

media

C

OMO

FUNCIONA

UMA

FUNÇÃO

14

14

O código de uma função só é executado quando esta é invocada algures no

programa a que está de algum modo 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.

15

media

C

OMO

FUNCIONA

UMA

FUNÇÃO

15

15

O programa que invoca uma função que pode enviar Argumentos, que são

recebido pela função. Estes são recebidos e armazenados em variáveis

locais que são automaticamente inicializadas com os valores enviados. A

estas variáveis dá-se o nome de Parâmetros.

Depois de terminar o seu funcionamento, uma função deve devolver um

valor para o programa que invocou.

16

media

COMO FUNCIONA UMA FUNÇÃO

Problema 3: Escreva um programa que, recorrendo a três funções distintas,

escreve no ecrã o seguinte output.

16

16

17

media

C

OMO

FUNCIONA

UMA

FUNÇÃO

17

Para

arealização

do

programa

anterior utilizamos 4 funções:

linha3x() – função responsável por escrever

3 caracteres ‘A’ no ecrã

linha5x() – função responsável por escrever

5 caracteres ‘A’ no ecrã

linha7x() – função responsável por escrever

7 caracteres ‘A’ no ecrã

main() – função que invoca as funções

17

18

media

C

OMO

FUNCIONA

UMA

FUNÇÃO

18

Se olharmos para o código das três funções, verificamos que é tudo igual,

exceto nas seguintes linhas:

que corresponde ao número de A a apresentar no ecrã

O ideal seria escrever uma única função linha, responsável pela escrita de
uma linha no ecrã, com um nº de ‘A’ a especificar em cada chamada.
Neste caso interessa-nos indicar à função qual o número de caracteres a
colocar no ecrã.

18

19

media

C

OMO

FUNCIONA

UMA

FUNÇÃO

19

Se quisermos escrever 3 ‘A’ invocamos a função linha(3)
Se quisermos escrever 5 ‘A’ invocamos a função linha(5)
Se quisermos escrever 7 ‘A’ invocamos a função linha(7)

A função é sempre a mesma (função linha), o que muda é o número de
caracteres a colocar no ecrã.
No programa anterior o nosso main passaria a ser:

19

20

media

C

OMO

FUNCIONA

UMA

FUNÇÃO

20

20

COM SERIA ESCRITA A FUNÇÃO linha?

A função linha recebe dentro de 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 executar o

número de vezes que está armazenado nessa variável.

21

media

QUAL O NOME DA FUNÇÃO A ESCREVER?

linha()

QUANTOS PARÂMETROS VAI RECEBER?

1

QUAL O TIPO DE PARÂMETRO?

int

ESCOLHA O NOME PARA A VARIÁVEL QUE VAI ARMAZENAR O PARÂMETRO.

num

O CABEÇALHO DA FUNÇÃO SERÁ ASSIM

linha(int num) /*A função recebe um inteiro e armazena em num*/

E O CORPO DA FUNÇÃO?

Bastará alterar a condição de controlo do ciclo para for(i=1; i<=num; i++)

21

21

22

media

22

22

23

media

F

UNÇÕES

EM

C

23

23

Esqueleto de uma função

tipo_de_retorno nome_da_função (lista de parâmetros)
{

instruções; retorno_da_função;

}

24

media

P

ARÂMETROS

24

A comunicação com uma função faz-se através dos argumentos que lhe

são enviados e dos parâmetros presentes que os recebem.

Os parâmetros de uma função são definidos como se estivesse declarando

uma variável, entre os parênteses do cabeçalho da função. Caso precise

declarar mais de um parâmetro, basta separá-los por vírgulas.

24

25

media

P

ARÂMETROS

25

Existem duas formas de passar valor através dos parâmetros: por valor ou

por

referência.Neste

momento,

será

apresentado

a

passagem

de parâmetro por valor.

No exemplo a seguir temos a função SOMA que possui dois parâmetros,

sendo o primeiro um float (a) e o segundo um int (b).

25

26

media

P

ARÂMETROS

26

26

Os parâmetros são passados para uma função de acordo com a sua posição.

Ou seja, o primeiro parâmetro da chamada (programa) define o valor do

primeiro parâmetro na definição da função, o segundo parâmetro do

programa define o valor do segundo parâmetro da função e assim por diante.

Os nomes dos parâmetros na chamada não tem relação com os nomes dos

parâmetros na definição da função.

No código a seguir, por exemplo, a função SOMA é chamada recebendo como

parâmetros as variáveis "a" e "b", nesta ordem.

27

media

P

ARÂMETROS

27

27

#include <stdio.h>
float SOMA(float a, int b)
{

float result;
result = a + b;
return result;

}

int main()
{

float a;
int b;
float s;
a = 10.3;
b = 12;
s = SOMA(a,b);

// Chamada da função SOMA(12.3,10);

printf("A soma de %f com %d é %f\n", a,b,s);
return 0;

}

28

media

P

ASSAGEM

DE

VALORES

POR

PARÂMETRO

28

28

A passagem de parâmetros que será apresentada aqui é chamada de

passagem por valor.

Os valores contidos nas variáveis do programa, no momento da chamada

da função, são copiados para as variáveis parâmetros da função.

As alterações dos valores dos parâmetros dentro da função não afetarão

os valores das variáveis do programa, usadas na chamada da função.

Quando

uma função não

for

retornar

valor

(procedimento),

utilize void como tipo da função. Quando se usa void não podemos

usar return na função.

29

media

P

ASSAGEM

DE

VALORES

POR

PARÂMETRO

29

29

No exemplo a seguir a variável f, declarada na main(), passada por

parâmetro para a função Cem(), não terá o valor alterado dentro da

função, pois o valor de f(20.7) será copiado para o parâmetro a da função.

#include <stdio.h>

void Cem(float a)
{

a = 100.0;

}

void main()
{

float f;

f = 20.7;
Cem(f);
printf("%f", f);

// o valor impresso será 20.7 pois o parâmetro da função foi passado por valor.

}

30

media

O

CORPO

DA

FUNÇÃO

30

O corpo de uma função tem que estar imediatamente a seguir ao cabeçalho

da função e é escrito entre chavetas {}

Sempre que uma função é invocada pelo programa, o corpo da função é

executado, instrução a instrução, até terminar o corpo da função ou até

encontrar a instrução return, voltando imediatamente ao programa em que

foi invocada.

NOTA: O cabeçalho de uma função NUNCA deve ser seguido de ponto e vírgula (;).

NOTA: Dentro de um corpo de um função pode ser escrita qualquer instrução ou conjunto

de instruções da linguagem C. Em C não se pode definir funções dentro de funções.

30

31

media

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

FUNÇÃO

MAIN

,

FAZ

COM

QUE

O

PROGRAMA

TERMINE

.

E

XEMPLO

:

31

31

32

media

F

UNÇÕES

QUE

RETORNAM

VALOR

32

É 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.

Esse resultado poderá ser armazenado numa variável ou aproveitado por

qualquer instrução.

A devolução de um resultado é feita através da instrução return seguida do

valor a devolver.

NOTA: A seguir à instrução return pode ser colocada qualquer expressão válida em C.

32

33

media

F

UNÇÕES

QUE

RETORNAM

VALOR

33

Problema 4: Escreva um programa que solicite dois números ao utilizador e
apresente no ecrã o resultado da sua soma e o dobro de cada um deles.

Tipo de retorno

Parâmetros

Valor a retonar

33

34

media

F

UNÇÕES

QUE

RETORNAM

VALOR

34

Problema: Qual o output da seguintes linha?

printf("%d", dobro(soma(dobro(2),3)));

dobro(2) à 4
soma(dobro(2),3) à soma(4,3) à 7
dobro(soma(dobro(2),3)) à dobro(soma(4,3)) à dobro(7) à14

assim, o valor colocado no ecrã seria 14.

NOTA: Uma função pode ser invocada dentro de outra função. O resultado é o mesmo que se obteria se,

em vez da chamada à função, aí estivesse o resultado devolvido por esta.

35

media

F

UNÇÕES

QUE

RETORNAM

VALOR

35

Problema 5: Escreva uma função que calcule o maior de dois números.

Note-se que, se a função recebe
dois inteiros, então o maior deles
é de certeza também um inteiro,
logo a função tem que retornar
um valor do tipo int.

NOTA: Uma função pode conter várias instruções

return. No entanto, apenas uma instrução

return é executada na função.

35

36

media

F

UNÇÕES

E

PROCEDIMENTOS

36

Qual a diferença entre uma função e um procedimento?

Como exemplo de função temos a função int max(int a, int b) que
verifica qual o maior número de inteiros e devolve um deles.

Como exemplo de procedimento temos a função linha() que coloca no
ecrã uma linha e termina em seguida sem devolver qualquer valor.

Uma FUNÇÃO tem sempre um tipo e um valor de retorno associados, enquanto

um PROCEDIMENTO não devolve qualquer valor.

NOTA: Sempre que no cabeçalho de um função não é colocado o tipo de retorno, este é substituído pelo

tipo int.

36

37

media

O

TIPO

VOID

37

Em C existe uma palavra reservada – void – que permite indicar que uma
função não devolve qualquer tipo.
Desta forma a função linha deveria ter sido escrita da seguinte forma:

NOTA: Uma função que “retorna void” chama-se normalmente um

procedimento.

NOTA:Ainstrução

return

termina

aexecução

da

função

(procedimento) e o controlo do programa é devolvido ao local onde a

função (procedimento) foi invocada.

37

38

media

E

XERCÍCIO

PRÁTICO

38

38

Escreva a função que devolve o maior de N números reais (N ≥ 2) introduzidos

pelo utilizador.

39

media

V

ARIÁVEIS

LOCAIS

39

39

As variáveis declaradas dentro de uma função, só são conhecidas dentro

dessa função. São por isso denominadas variáveis locais.

A declaração das variáveis dentro de um função deve ser realizada antes

de qualquer instrução.

função (…………)
{

declaração de variáveis

instruções

}

Estas variáveis só podem ser utilizadas dentro da própria função.

40

media

V

ARIÁVEIS

LOCAIS

VS

V

ARIÁVEIS

GLOBAIS

40

Variáveis globais são variáveis declaradas fora de uma função, ao contrário

das locais que são declaradas dentro de uma função.

Quando uma variável é declarada dentro de uma função, ela só poderá ser

usada dentro da mesma, no exemplo acima a variável ‘a’ só poderá ser

usada dentro função MAIN, caso o contrário será dada como inexistente.

40

41

media

V

ARIÁVEIS

LOCAIS

VS

V

ARIÁVEIS

GLOBAIS

41

41

Já as globais, como o próprio nome diz, podem ser usadas por toda parte

do programa.

Apesar de certas facilidades que as variáveis globais nos trazem elas

também tem suas desvantagens. Quando declarada como global ela

ocupará memória até que o programa seja finalizado, por isso deve ser

usada apenas quando necessário. As variáveis locais só ocupam memória

enquanto aquela função for executada, ao término dessa função ela é

destruída.

in https://blog.masterdaweb.com/programacao-1/linguagem-c/variaveis-globais-e-locais-linguagem-cc/

42

media

E

XERCÍCIO

1

42

42

Faça um programa que leia duas notas de um aluno numa turma de 10

alunos. Para cada aluno, calcular a média ponderadas das notas, sabendo que

a nota1 tem peso = 4 e a nota2 tem peso = 6. Imprimir a média do aluno e o

conceito final, conforme tabela abaixo:

INTERVALO

CONCEITO

0.0 a 4.9

D

5.0 a 6.9

C

7.0 a 8.9

B

9.0 a 10.0

A

43

media

E

XERCÍCIO

2

43

43

Criar 2 funções:

A primeira função denominada float mediapond() irá receber as duas

notas, calcular e retornar a média ponderada.

A segunda função denominada char conceito() irá receber a média das

notas e retornar o conceito conforme a tabela acima.

RESOLUÇÃO

44

media

E

XERCÍCIO

3

44

44

Faça um programa para calcular o valor das parcelas de um financiamento no

regime de juros compostos com capitalização mensal. O programa deverá ler

o valor do financiamento e o número de parcelas, calcular e exibir o valor da

parcela. O programa termina quando o valor do financiamento for igual a

zero. Abaixo apresentamos a tabela contendo os prazos de financiamentos e

a taxa de juros anual:
PRAZO

TAXA A.A.

6

7%

12

10%

18

12%

24

15%

36

18%

45

media

E

XERCÍCIO

4

45

Fazer uma função denominada float financiamento() que deverá receber o

valor do financiamento e o número de parcelas, calcular e retornar o valor da

prestação. Utilizar a estrutura </>switch ... case para selecionar a taxa de

juros representada em valor decimal. Como a capitalização é mensal, dividir a

taxa por 12. A fórmula de calculo da prestação é:

RESOLUÇÃO

45

media

FUNÇÕES

EM

C:

1

1

Introdução
Estrutura de uma função

Show answer

Auto Play

Slide 1 / 45

SLIDE