
LINGUAGEM EM C - FUNÇÕES
Presentation
•
Computers
•
10th Grade
•
Practice Problem
•
Hard
Bruno Pires
Used 2+ times
FREE Resource
45 Slides • 0 Questions
1
FUNÇÕES
EM
C:
1
1
• Introdução
• Estrutura de uma função
2
I
NT
R
ODUÇ
Ã
O
•
E
XEMPLOS
DE
FUNÇÕES
QUE
JÁ
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
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
I
NT
R
ODUÇ
Ã
O
4
4
5
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
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
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
I
NT
R
ODUÇ
Ã
O
8
8
9
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
F
UNÇÕES
EM
C
•
B
ENEFÍCIOS
DA
UTILIZAÇÃO
DE
FUNÇÕES
:
•
P
ERMITE
O
REAPROVEITAMENTO
DE
CÓDIGO
JÁ
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
F
UNÇÕES
EM
C
11
11
12
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
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
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
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
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
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
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
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
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
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
22
22
23
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
FUNÇÕES
EM
C:
1
1
• Introdução
• Estrutura de uma função
Show answer
Auto Play
Slide 1 / 45
SLIDE
Similar Resources on Wayground
41 questions
AP4_3QW3_PPT
Lesson
•
KG
39 questions
Inquiry Activity: Periodic Table Trends
Lesson
•
10th Grade
38 questions
ORTESIS Y PROTESIS
Lesson
•
KG
37 questions
FILIPINO 7 Q3 C3
Lesson
•
10th Grade
36 questions
Kedatangan Bangsa Eropa Ke Indonesia
Lesson
•
10th Grade
38 questions
SEMANA 5 CULTURA XINKA
Lesson
•
10th Grade
41 questions
End of the Year Spanish 1 Review
Lesson
•
9th - 11th Grade
41 questions
AP10 Q1 M1
Lesson
•
10th Grade
Popular Resources on Wayground
15 questions
Fractions on a Number Line
Quiz
•
3rd Grade
10 questions
Probability Practice
Quiz
•
4th Grade
15 questions
Probability on Number LIne
Quiz
•
4th Grade
20 questions
Equivalent Fractions
Quiz
•
3rd Grade
25 questions
Multiplication Facts
Quiz
•
5th Grade
22 questions
fractions
Quiz
•
3rd Grade
6 questions
Appropriate Chromebook Usage
Lesson
•
7th Grade
10 questions
Greek Bases tele and phon
Quiz
•
6th - 8th Grade
Discover more resources for Computers
10 questions
Exploring Digital Citizenship Essentials
Interactive video
•
6th - 10th Grade
14 questions
[AP CSP] JavaScript Programming Quiz
Quiz
•
9th - 12th Grade
10 questions
Understanding Computers and Computer Engineering
Interactive video
•
7th - 12th Grade
37 questions
Python - Tuples, Lists, and List Methods
Quiz
•
9th - 12th Grade