0% acharam este documento útil (0 voto)
20 visualizações6 páginas

Funções em C: Conceitos e Exemplos

O documento apresenta os conceitos básicos de funções em C, incluindo definição, chamada, escopo de variáveis, parâmetros e retorno. São apresentados exemplos de código para ilustrar cada tópico e vídeos para explicação.

Enviado por

Vanessa Sousa
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
20 visualizações6 páginas

Funções em C: Conceitos e Exemplos

O documento apresenta os conceitos básicos de funções em C, incluindo definição, chamada, escopo de variáveis, parâmetros e retorno. São apresentados exemplos de código para ilustrar cada tópico e vídeos para explicação.

Enviado por

Vanessa Sousa
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Funções

Conclusão esperada desta atividade em 17/05

Funções definidas pelo usuário


Um dos princípios das linguagens estruturadas é dividir o código em sub-rotinas (que em C, são
chamadas de funções).

Função é um conjunto de instruções projetadas para cumprir uma tarefa particular e agrupadas
numa unidade com um nome para referenciá-la.

Funções permitem dividir grandes tarefas de programação em partes menores, trazendo


vantagens como:

Legibilidade: o código pode ser melhor modularizado, facilitando sua compreensão.

Encapsulamento: funções apropriadas podem esconder detalhes de operação quando


necessário, facilitando alterações.

Reuso: evita que o programador tenha que escrever o mesmo código repetidas vezes,
inclusive em novos programas.

Redução do código: qualquer sequência de instruções que apareça mais de uma vez no
programa é candidata a ser substituída por uma função.

1. Conceitos básicos

Veja o vídeo a seguir.


https://youtu.be/umTyQAY-qHU

2. Funções sem parâmetros


Veja o vídeo a seguir.
https://youtu.be/TeG1q2vBmuc

Implemente o código apresentado no vídeo (abaixo) para ver o funcionamento na prática.

#include <stdio.h>

void linha() // definição da função (código efetivo da função)


{
int i;

for (i=0; i<=25; i++)


printf("*");
printf("\n");
}

int main()
{
int i;

linha(); // chamada da função

printf("Números de 1 a 10: \n");


for (i=1; i<=10; i++)
printf("%d ", i);
printf("\n");

linha(); // chamada da função

return 0;
}

Alternativamente, é até mais comum definir as funções após o main()


Porém, neste caso, é preciso fazer a declaração (ou protótipo) da função antes do main(), como
no exemplo abaixo.

#include <stdio.h>

void linha(); // declaração (protótipo) da função -- a definição da função vem agora


abaixo da função principal main()

int main()
{
int i;

linha(); // chamada da função

printf("Números de 1 a 10: \n");


for (i=1; i<=10; i++)
printf("%d ", i);
printf("\n");

linha(); // chamada da função

return 0;
}
void linha() // definição da função (código efetivo da função)
{
int i;

for (i=0; i<=25; i++)


printf("*");
printf("\n");
}

3. Escopo de variáveis
O escopo de uma variável determina como e onde uma variável poderá ser utilizada dentro de um
programa.

Variável local
São declaradas dentro de uma função.

Não podem se acessadas fora da função onde foi declarada.

Não podem ser utilizadas diretamente por outras funções.

Variáveis locais de mesmo nome declaradas em funções diferentes são variáveis distintas
(mesmo que tenham o mesmo nome).

Quando a função onde a variável local foi declarada termina sua execução, a variável é
destruída (desalocada da memória).
Variável global
São declaradas fora das funções (incluindo a função principal main()).

São acessíveis a partir de qualquer parte do programa (incluindo dentro de qualquer


função).

Permanecem disponíveis durante toda a execução do programa.

Devem ser evitadas ao máximo a fim de permitir uma maior clareza, modularização e
manutenibilidade do programa como um todo.

Exemplo do vídeo:

#include <stdio.h>

int x; // variável global

void f()
{
int y; // variável local à função f()
x = 2;
y = 2;
printf("x no f(): %d\n", x);
printf("y no f(): %d\n", y);
}

int main()
{
int y; // variável local à função main()
x = 5;
y = 5;
printf("x no main antes de f(): %d\n", x);
printf("y no main antes de f(): %d\n", y);
f();
printf("x no main depois de f(): %d\n", x);
printf("y no main depois de f(): %d\n", y);

return 0;
}
4. Funções com parâmetros

Veja o vídeo a seguir.


https://youtu.be/Eo4tMZ00VaA

Implemente o código apresentado no vídeo (abaixo) para ver o funcionamento na prática.

#include <stdio.h>
#include <ctype.h> // biblioteca que contém a função toupper() que converte caracteres
alfabéticos para maiúsculas

void peso_ideal(char sexo, float altura)


{
float peso_ideal;
switch(toupper(sexo))
{
case 'F':
peso_ideal = altura * 62.1 - 44.7;
break;
case 'M':
peso_ideal = altura * 72.7 - 58.0;
break;
default:
printf("Sexo inválido! Digite F ou M\n");
peso_ideal = 0;
}
printf("Peso ideal: %.2f\n", peso_ideal);
}

int main()
{
char sexo;
float altura;
printf("Digite o sexo (F ou M): ");
scanf("%c", &sexo);
printf("Digite a altura (metros): ");
scanf("%f", &altura);
peso_ideal(sexo, altura);

return 0;
}

5. Funções com retorno

Veja o vídeo a seguir.


https://youtu.be/niTmi2OiCto
Implemente o código apresentado no vídeo (abaixo) para ver o funcionamento na prática.

#include <stdio.h>
#include <ctype.h>

float peso_ideal(char sexo, float altura)


{
float peso_ideal;

switch(toupper(sexo))
{
case 'F':
peso_ideal = altura * 62.1 - 44.7;
break;
case 'M':
peso_ideal = altura * 72.7 - 58.0;
break;
default:
printf("Sexo inválido! Digite F ou M\n");
peso_ideal = 0;
}

return (peso_ideal);
}

int main()
{
char sexo;
float altura;
float peso;

printf("Digite o sexo (F ou M): ");


scanf("%c", &sexo);
printf("Digite a altura (metros): ");
scanf("%f", &altura);

peso = peso_ideal(sexo, altura);


printf("Peso ideal: %.2f\n", peso);
// ou pode-se imprimir diretamente o resultado função
printf("Peso ideal: %.2f\n", peso_ideal(sexo, altura));

return 0;
}

6. Mais exemplos
Assista aos vídeos abaixo e implemente os exemplos mostrados na plataforma OnlineGDB.

https://youtu.be/tzBq7_Cn_D4
https://youtu.be/GGkaN_LwR0w
Funções definidas pelo usuário HYPERLINK
"https://turing.inf.ufg.br/mod/book/view.php?id=12821"Livro

Lista de exercícios (funções) HYPERLINK


"https://turing.inf.ufg.br/mod/resource/view.php?id=13093"Arquivo

Atividade avaliativa 4 HYPERLINK


"https://turing.inf.ufg.br/mod/url/view.php?id=13184"URL

Esta atividade avaliativa deve ser feita e submetida na plataforma OnlineGDB.


O prazo final para a submissão é o dia 08/06 (quarta-feira) às 23:55h

Observações
Não deixem para fazer no último dia!!
À medida que um programa já esteja pronto, ele pode ser submetido na plataforma,
ou seja, não é necessário submeter todos os programas de uma só vez!

Você também pode gostar