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

15 IntroducaoProgramacao Modularizacao PDF

O documento aborda conceitos fundamentais de programação modularizada, focando em funções e procedimentos em C. Ele explica a importância de funções, suas características, como funcionam, e a diferença entre chamadas por valor e por referência. Além disso, discute variáveis locais e o uso de funções que não retornam valores.

Enviado por

twitchshisui
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)
16 visualizações22 páginas

15 IntroducaoProgramacao Modularizacao PDF

O documento aborda conceitos fundamentais de programação modularizada, focando em funções e procedimentos em C. Ele explica a importância de funções, suas características, como funcionam, e a diferença entre chamadas por valor e por referência. Além disso, discute variáveis locais e o uso de funções que não retornam valores.

Enviado por

twitchshisui
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

15 – PROGRAMAÇÃO

MODULARIZADA
Bruno B. F. Leonor

INTRODUÇÃO A PROGRAMAÇÃO
Funções e Procedimentos
• Toda f() que é criada pro obrigação tem que ter um retorno;
• Utilizadas geralmente quando é preciso calcular algo, retornar um
valor verdadeiro, ou retornar um teste.

• É quase igual a uma f(), mas não precisa necessariamente ter retorno
algum;
• Utilizamos quando precisamos utilizar alguns códigos que vamos ter
que repetir.

• Em C existe apenas fç.


Funções e Procedimentos
float fmedia(float n1, float n2)
{
float m = 0;
m = (n1 + n2)/2;
return m;
}

float pmedia()
{
float n1 = 0, n2 = 0, m = 0;

printf("Digite a nota 1 do aluno: ");


scanf("%f", &n1);
printf("Digite a nota 2 do aluno: ");
scanf("%f", &n2);

m = (n1 + n2)/2;
printf("\n\nA media do aluno foi %6.2f", m);
}
Características de uma f()
• Cada f() tem que ter um nome único;

• Uma f() pode ser invocada através de outra f();

• Uma f() deve realizar uma única tarefa bem definida;

• Uma f() deve comportar-se como uma caixa preta. Não interessa
como funciona, o que interessa é que o resultado final seja o
esperado, sem efeitos colaterais.
Características de uma f()
• O código de uma f() deve ser o mais independente possível do resto
do programa, e deve ser tão genérico quanto possível (reutilizado).

• Uma f() pode receber parâmetros que alterem o seu comportamento


de forma a adaptar-se facilmente a situações distintas;

• Uma f() pode retornar, para a entidade que a invocou um valor como
resultado do seu trabalho.
Como funciona uma f()
float fmedia(float n1, float n2) //Função
{
float m = 0;
m = (n1 + n2)/2;
return m;
}

main()
{
float num1 = 0, num2 = 0;
int op = 0;

printf("Digite a nota 1 do aluno: ");


scanf("%f", &num1);
printf("Digite a nota 2 do aluno: ");
scanf("%f", &num2);
printf("\nA media foi %6.2f", fmedia(num1, num2));
}
Como funciona uma f()
float fmedia(float n1, float n2) //Função
{
float m = 0;
m = (n1 + n2)/2;
return m;
}

main()
{
float num1 = 0, num2 = 0;
int op = 0;

printf("Digite a nota 1 do aluno: ");


scanf("%f", &num1);
printf("Digite a nota 2 do aluno: ");
scanf("%f", &num2);
printf("\nA media foi %6.2f", fmedia(num1, num2));
}
Como funciona uma f()
float fmedia(float n1, float n2) //Função Cabeçalho da f()
{
float m = 0;
m = (n1 + n2)/2;
return m;
}

main()
{
float num1 = 0, num2 = 0;
int op = 0;

printf("Digite a nota 1 do aluno: ");


scanf("%f", &num1);
printf("Digite a nota 2 do aluno: ");
scanf("%f", &num2);
printf("\nA media foi %6.2f", fmedia(num1, num2));
}
Como funciona uma f()
float fmedia(float n1, float n2) //Função
{
float m = 0;
m = (n1 + n2)/2;
return m;
}
Parâmetros e Argumentos
main()
{
float num1 = 0, num2 = 0;
int op = 0;

printf("Digite a nota 1 do aluno: ");


scanf("%f", &num1);
printf("Digite a nota 2 do aluno: ");
scanf("%f", &num2);
printf("\nA media foi %6.2f", fmedia(num1, num2));
}
Corpo da f()
• É constituído por instruções;

• Tem que se seguir imediatamente ao cabeçalho da f();

• Pode-se escrever qualquer instrução (if, for, switch, ...);

• Não existe limite para o número de instruções, devendo ser


relativamente pequeno e responsável por realizar uma única tarefa.
return
• Permite terminar a execução de uma f() e voltar ao programa que o
invocou;

• Na f() main faz com que o programa termine,


f() com retorno de valor
• É possível que uma f() seja responsável por realizar uma determinada
tarefa e que, uma vez terminada essa tarefa, devolva um único
resultado. Esse resultado pode ser armazenado em uma variável ou
aproveitado por qualquer instrução.

int soma( int x, int y )


{
int res;
res = x + y;
return res;
}
f() com retorno de valor
• Uma f() pode ser invocada dentro de outra f().
prinf(“%d”, dobro( soma( dobro(2), 3) ) );
f() com retorno de valor
• Uma f() pode ser invocada dentro de outra f().
prinf(“%d”, dobro( soma( dobro(2), 3) ) );

2*2
f() com retorno de valor
• Uma f() pode ser invocada dentro de outra f().
prinf(“%d”, dobro( soma( dobro(2), 3) ) );

4+3
f() com retorno de valor
• Uma f() pode ser invocada dentro de outra f().
prinf(“%d”, dobro( soma( dobro(2), 3) ) );

7*2
f() com retorno de valor
• Uma f() pode ser invocada dentro de outra f().
prinf(“%d”, dobro( soma( dobro(2), 3) ) );

14
O tipo void
• É uma palavra reservada que permite indicar que uma f() não
devolve qualquer tipo.

void f()

void f( void )

• Uma f() que retorna void é chamada normalmente de procedimento.


Onde colocar a f()?
• Podem ser colocadas em qualquer local do arquivo, antes ou depois
de serem invocadas, antes ou depois da f() main;

main()
{
f();
}

void f(){
instruções;
}
Variáveis Locais
• Variáveis podem ser declaradas dentro do corpo de uma f();

• São visíveis apenas dentro da própria f();

• Só podem ser utilizadas dentro da própria f();

• Terminada a execução de uma f() todas as suas variáveis locais são


destruídas;

• Sempre que possível recorrer as variáveis locais, evitando efeitos


colaterais com o uso de variáveis globais.
Chamada por valor
• A f() chamada não pode alterar diretamente uma variável na f()
chamadora.

void troca( int a, int b )


{
int temp;

temp = a;
a = b;
b = temp;
}
Chamada por referência
• A troca efetiva é obtida através da chamada por referência.

void troca( int *a, int *b )


{
int temp;

temp = *a;
*a = *b;
*b = temp;
}

Você também pode gostar