Modularização
Prof. Sérgio Souza Costa
Site:https://sites.google.com/site/profsergiocosta/
Email: prof.sergio.costa@gmail.com
Programação estruturada
A crise do software no ínicio da década de
1970 levou a programação estruturada.
Além do conceito de que todo programa pode
ser escrito usando sequencia, seleção e
repetição.
Surgiu o conceito de refinamento sucessivo (ou
top-down) - modularização.
Refinamento sucessivo
● Técnica utilizada para tentar minimizar a
complexidade da resolução de um problema
● “Dividir para Conquistar”
○ Divida o problema e subproblemas menores.
■ Se a resolução de um subproblema ainda for
complexa
● Divida o subproblema em subproblemas menores
ainda, e assim, sucessivamente ...
Refinamento sucessivo
Ex. Algoritmo que lê três valores inteiros, determina e
imprime o menor deles.
int main(void){
// declarar as variáveis
// Ler os números
// Determinar o menor deles
// Escrever o menor número
return 0;
}
Refinamento sucessivo
Ex. Algoritmo que lê três valores inteiros, determina e
imprime o menor deles.
int main(void){
// declarar as variáveis
// Ler os números
// Determinar o menor deles
// Escrever o menor número
return 0;
}
scanf(“%d %d %d”, &a, &b, &c);
Ref. ler_numeros
Refinamento sucessivo
Ex. Algoritmo que lê três valores inteiros, determina e
imprime o menor deles.
int main(void){
// declarar as variáveis
// Ler os números
// Determinar o menor deles
// Escrever o menor número
return 0;
}
scanf(“%d %d %d”, &a, &b, &c);
Ref. ler_numeros
if ((a < b) && (a < c)) {
menor = a;
} else {
...
}
Ref. menor_deles
Refinamento sucessivo
Ex. Algoritmo que lê três valores inteiros, determina e
imprime o menor deles.
int main(void){
// declarar as variáveis
// Ler os números
// Determinar o menor deles
// Escrever o menor número
return 0;
}
scanf(“%d %d %d”, &a, &b, &c);
Ref. ler_numeros
if ((a < b) && (a < c)) {
menor = a;
} else {
...
}
Ref. menor_deles
printf(“%dn”, menor);
Ref. escrever_menor
Refinamento sucessivo
Ex. Algoritmo que lê três valores inteiros, determina e
imprime o menor deles.
#include <stdio.h>
int main(void){
int a, b, c, menor;
scanf(“%d %d %d”, &a, &b, &c);
if ((a < b) && (a < c)) {
menor = a;
} else {
if (b < c)
menor = b;
else
menor = c;
}
printf(“%dn”, menor);
return 0;
}
Declarar as variáveis
Ler os números
Determinar o menor deles
Escrever o menor número
Refinamento sucessivo
Ex. Algoritmo que lê três valores inteiros, determina e
imprime o menor deles.
#include <stdio.h>
int main(void){
int a, b, c, menor;
scanf(“%d %d %d”, &a, &b, &c);
if ((a < b) && (a < c)) {
menor = a;
} else {
if (b < c)
menor = b;
else
menor = c;
}
printf(“%dn”, menor);
return 0;
}
Pode ser
modularizado
através de uma
função. Podendo
ser utilizado em
outras partes do
programa.
Refinamento sucessivo
Ex. Algoritmo que lê três valores inteiros, determina e
imprime o menor deles.
#include <stdio.h>
int menor(int x, int y, int z){
int m;
if ((x < y) && (x < z)) {
m = x;
} else {
if (y < z) menor = y;
else m = z;
}
return m;
}
int main(void){
int a, b, c, menor;
scanf("%d %d %d", &a, &b, &c);
printf("%dn", menor(a, b, c));
return 0;
Uma função para
determinar o menor
valor entre 3
inteiros
Refinamento -> Modularização
Refinamento -> Modularização
+Manutenibilidade
Refinamento -> Modularização
+Manutenibilidade
+Legibilidade
Refinamento -> Modularização
+Manutenibilidade
+Legibilidade
+Reusabilidade
Refinamento -> Modularização
+Manutenibilidade
+Legibilidade
+Reusabilidade
Confiabilidade
Modularização
Transformar refinamento sucessivo em
módulos
● Módulos
○ formas agrupadas de conjuntos de
instruções (encapsulada em funções e ou
tipos de dados) responsáveis por executar
uma ação bem definida, podendo ou não
repetir-se em diferentes pontos de um
programa.
● Um conjunto de instruções (utilizadas para cumprir uma
tarefa particular) agrupadas num módulo com um nome para
referenciá-lo, esse módulo pode ou não retornar um valor
(numérico, caractere, estruturado, lógico, etc) como
resultado.
○ Quando não retorna valor é usualmente referido como
procedimento.
● Vantagens
○ dividir a tarefa original em pequenas tarefas que simplificam e
organizam o programa como um todo.
○ reduzir o tamanho do programa. Qualquer sequência de
instruções que apareça no programa mais de uma vez é
candidata a ser uma função.
Funções
Funções
Um programa C é dividido em pequenas funções:
– Bons programas são compostos por diversas
pequenas
funções.
– Como o próprio nome diz, uma função representa
uma
funcionalidade.
– A vantagem de se ter o código modularizado em
funções é que o código fica mais fácil de entender, de
manter, de atualizar e de
reusar.
Funções
“Funções são os blocos de construção de C e
o local onde toda a atividade do programa
ocorre.” Herberth Schildt (C Completo e Total)
“Uma função é uma unidade de código de
programa autônoma desenvolvida para cumprir
uma determinada tarefa em particular”
(MIZRAHI, 1990).
Funções - Sintaxe
Toda função em C é definida assim:
tipo_retorno identificador (lista de parâmetros){
corpo da função (sequencia de comandos);
}
escopo
Funções - Sintaxe
Toda função em C é definida assim:
tipo_retorno identificador (lista de parâmetros){
corpo da função (sequencia de comandos);
}
escopo
Tipos de retorno
● O tipo de uma função é definido pelo tipo de valor que
ela retorna por meio do comando return.
● Os tipos de funções em C são os mesmos tipos de
variáveis, exceto quando a função não retorna nada
(void).
○ int, char, float, double e void
○ tipos criados pelo usuario
Funções - Sintaxe
Toda função em C é definida assim:
tipo_retorno identificador (lista de parâmetros){
corpo da função (sequencia de comandos);
}
escopo
Identificador de uma função
A estrutura de uma função em C é semelhante à de uma
função main().
A diferença é que main() possui um nome especial
reservado.
O programador pode dar o nome que desejar para a
função que irá definir, desde que o nome:
Seja diferente de palavras reservadas (int, char, float,
break, switch, while ...) da Linguagem.
Não contenha caracteres especiais (#$%@*&-+”: =;,.)
Não seja igual aos nomes de outras funções previamente
declaradas ou de outras bibliotecas (main, printf, scanf, getchar,
strcmp, system, etc);
Funções - Sintaxe
Toda função em C é definida assim:
tipo_retorno identificador (lista de parâmetros){
corpo da função (sequencia de comandos);
}
escopo
Parâmetros
● As informações transmitidas para uma função são
chamadas parâmetros.
● Os parâmetros podem ser utilizados livremente no
corpo da função.
○ Agem como variáveis locais da função
p = cubo(3);
q = media(2,6);
Funções - Sintaxe
Toda função em C é definida assim:
tipo_retorno identificador (lista de parâmetros){
corpo da função (sequencia de comandos);
}
escopo
Sequência de comandos
Como já vimos na função main, podemos ter
declarações de variáveis, comandos de
atribuição, entrada, saída, seleção, iteração e
chamadas a outras funções.
Exemplo
#include <stdio.h>
int celsius (int fahr) // definição da função
{
int r;
r = (fahr - 32) * 5.0/9; // Corpo da função
return r;
}
int main(void){
int c, f;
printf("Digite a temperatura Fahrenheit: ");
scanf(“%d”, &f);
c = celsius(f); // chamada à função
printf(“%d F é igual a %d Cn”, f, c);
return 0;
}
escopo
Parâmetro(s)tipo
retorno
Comando return
● O comando return termina a execução da função e
retorna o controle para a instrução seguinte do código
de chamada.
● Se após a palavra return houver uma expressão, o
valor da expressão é retornado à função que
chama. Por exemplo, no programa anterior as
funções celsius() e min() retornam valores para
main().
● Sintaxe:
return;
return <expressão>;
return (<expressão>);
Comando return
● Um return desacompanhado de
expressão somente termina a função
void funcao_nada(void) {
printf(“Nada”);
return;
}
● Quando não há retorno a função termina
quando encontra a chave }
Neste caso, o uso do
comando return não é
obrigatório.
Execução de funções
● Um programa pode conter uma ou mais
funções, das quais uma delas deve ser
main().
○ A execução do programa sempre começa em main()
e, quando o controle do programa encontra uma
instrução que inclui o nome de uma função, a
função é chamada.#include <stdio.h>
int main(void){
printf(“Pressione uma tecla”);
system(“cls”);
return 0;
}
Execução de funções
#include <stdio.h>
int celsius (int fahr) // definição da função
{
int r;
r = (fahr - 32) * 5.0/9; // Corpo da função
return r;
}
int main(void){
int c, f;
printf("Digite a temperatura Fahrenheit: ");
scanf(“%d”, &f);
c = celsius(f); // chamada à função
printf(“%d F é igual a %d Cn”, f, c);
return 0;
}
Execução de funções
#include <stdio.h>
int celsius (int fahr) // definição da função
{
int r;
r = (fahr - 32) * 5.0/9; // Corpo da função
return r;
}
int main(void){
int c, f;
printf("Digite a temperatura Fahrenheit: ");
scanf(“%d”, &f);
c = celsius(f); // chamada à função
printf(“%d F é igual a %d Cn”, f, c);
return 0;
}
Execução de funções
#include <stdio.h>
int celsius (int fahr) // definição da função
{
int r;
r = (fahr - 32) * 5.0/9; // Corpo da função
return r;
}
int main(void){
int c, f;
printf("Digite a temperatura Fahrenheit: ");
scanf(“%d”, &f);
c = celsius(f); // chamada à função
printf(“%d F é igual a %d Cn”, f, c);
return 0;
}
Execução de funções
#include <stdio.h>
int celsius (int fahr) // definição da função
{
int r;
r = (fahr - 32) * 5.0/9; // Corpo da função
return r;
}
int main(void){
int c, f;
printf("Digite a temperatura Fahrenheit: ");
scanf(“%d”, &f);
c = celsius(f); // chamada à função
printf(“%d F é igual a %d Cn”, f, c);
return 0;
}
Execução de funções
#include <stdio.h>
int celsius (int fahr) // definição da função
{
int r;
r = (fahr - 32) * 5.0/9; // Corpo da função
return r;
}
int main(void){
int c, f;
printf("Digite a temperatura Fahrenheit: ");
scanf(“%d”, &f);
c = celsius(f); // chamada à função
printf(“%d F é igual a %d Cn”, f, c);
return 0;
}
o valor da variavel f da função main
será copiado para o parametro fahr
da função celsius
Execução de funções
#include <stdio.h>
int celsius (int fahr) // definição da função
{
int r;
r = (fahr - 32) * 5.0/9; // Corpo da função
return r;
}
int main(void){
int c, f;
printf("Digite a temperatura Fahrenheit: ");
scanf(“%d”, &f);
c = celsius(f); // chamada à função
printf(“%d F é igual a %d Cn”, f, c);
return 0;
}
Execução de funções
#include <stdio.h>
int celsius (int fahr) // definição da função
{
int r;
r = (fahr - 32) * 5.0/9; // Corpo da função
return r;
}
int main(void){
int c, f;
printf("Digite a temperatura Fahrenheit: ");
scanf(“%d”, &f);
c = celsius(f); // chamada à função
printf(“%d F é igual a %d Cn”, f, c);
return 0;
}
Execução de funções
#include <stdio.h>
int celsius (int fahr) // definição da função
{
int r;
r = (fahr - 32) * 5.0/9; // Corpo da função
return r;
}
int main(void){
int c, f;
printf("Digite a temperatura Fahrenheit: ");
scanf(“%d”, &f);
c = celsius(f); // chamada à função
printf(“%d F é igual a %d Cn”, f, c);
return 0;
}
Execução de funções
#include <stdio.h>
int celsius (int fahr) // definição da função
{
int r;
r = (fahr - 32) * 5.0/9; // Corpo da função
return r;
}
int main(void){
int c, f;
printf("Digite a temperatura Fahrenheit: ");
scanf(“%d”, &f);
c = celsius(f); // chamada à função
printf(“%d F é igual a %d Cn”, f, c);
return 0;
}
Execução de funções
#include <stdio.h>
int celsius (int fahr) // definição da função
{
int r;
r = (fahr - 32) * 5.0/9; // Corpo da função
return r;
}
int main(void){
int c, f;
printf("Digite a temperatura Fahrenheit: ");
scanf(“%d”, &f);
c = celsius(f); // chamada à função
printf(“%d F é igual a %d Cn”, f, c);
return 0;
}
Passagem de parâmetros (valor)
int dobro (int x ) {
return 2 * x;
}
int main () {
int a, b;
a = 10;
b = dobro (a);
}
O valor da variável "a" é
copiado (por valor) para o
parâmatro "x" da função
dobro
Exercícios
Exercícios na página do curso.

Modularização

  • 1.
    Modularização Prof. Sérgio SouzaCosta Site:https://sites.google.com/site/profsergiocosta/ Email: prof.sergio.costa@gmail.com
  • 2.
    Programação estruturada A crisedo software no ínicio da década de 1970 levou a programação estruturada. Além do conceito de que todo programa pode ser escrito usando sequencia, seleção e repetição. Surgiu o conceito de refinamento sucessivo (ou top-down) - modularização.
  • 3.
    Refinamento sucessivo ● Técnicautilizada para tentar minimizar a complexidade da resolução de um problema ● “Dividir para Conquistar” ○ Divida o problema e subproblemas menores. ■ Se a resolução de um subproblema ainda for complexa ● Divida o subproblema em subproblemas menores ainda, e assim, sucessivamente ...
  • 4.
    Refinamento sucessivo Ex. Algoritmoque lê três valores inteiros, determina e imprime o menor deles. int main(void){ // declarar as variáveis // Ler os números // Determinar o menor deles // Escrever o menor número return 0; }
  • 5.
    Refinamento sucessivo Ex. Algoritmoque lê três valores inteiros, determina e imprime o menor deles. int main(void){ // declarar as variáveis // Ler os números // Determinar o menor deles // Escrever o menor número return 0; } scanf(“%d %d %d”, &a, &b, &c); Ref. ler_numeros
  • 6.
    Refinamento sucessivo Ex. Algoritmoque lê três valores inteiros, determina e imprime o menor deles. int main(void){ // declarar as variáveis // Ler os números // Determinar o menor deles // Escrever o menor número return 0; } scanf(“%d %d %d”, &a, &b, &c); Ref. ler_numeros if ((a < b) && (a < c)) { menor = a; } else { ... } Ref. menor_deles
  • 7.
    Refinamento sucessivo Ex. Algoritmoque lê três valores inteiros, determina e imprime o menor deles. int main(void){ // declarar as variáveis // Ler os números // Determinar o menor deles // Escrever o menor número return 0; } scanf(“%d %d %d”, &a, &b, &c); Ref. ler_numeros if ((a < b) && (a < c)) { menor = a; } else { ... } Ref. menor_deles printf(“%dn”, menor); Ref. escrever_menor
  • 8.
    Refinamento sucessivo Ex. Algoritmoque lê três valores inteiros, determina e imprime o menor deles. #include <stdio.h> int main(void){ int a, b, c, menor; scanf(“%d %d %d”, &a, &b, &c); if ((a < b) && (a < c)) { menor = a; } else { if (b < c) menor = b; else menor = c; } printf(“%dn”, menor); return 0; } Declarar as variáveis Ler os números Determinar o menor deles Escrever o menor número
  • 9.
    Refinamento sucessivo Ex. Algoritmoque lê três valores inteiros, determina e imprime o menor deles. #include <stdio.h> int main(void){ int a, b, c, menor; scanf(“%d %d %d”, &a, &b, &c); if ((a < b) && (a < c)) { menor = a; } else { if (b < c) menor = b; else menor = c; } printf(“%dn”, menor); return 0; } Pode ser modularizado através de uma função. Podendo ser utilizado em outras partes do programa.
  • 10.
    Refinamento sucessivo Ex. Algoritmoque lê três valores inteiros, determina e imprime o menor deles. #include <stdio.h> int menor(int x, int y, int z){ int m; if ((x < y) && (x < z)) { m = x; } else { if (y < z) menor = y; else m = z; } return m; } int main(void){ int a, b, c, menor; scanf("%d %d %d", &a, &b, &c); printf("%dn", menor(a, b, c)); return 0; Uma função para determinar o menor valor entre 3 inteiros
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
    Modularização Transformar refinamento sucessivoem módulos ● Módulos ○ formas agrupadas de conjuntos de instruções (encapsulada em funções e ou tipos de dados) responsáveis por executar uma ação bem definida, podendo ou não repetir-se em diferentes pontos de um programa.
  • 17.
    ● Um conjuntode instruções (utilizadas para cumprir uma tarefa particular) agrupadas num módulo com um nome para referenciá-lo, esse módulo pode ou não retornar um valor (numérico, caractere, estruturado, lógico, etc) como resultado. ○ Quando não retorna valor é usualmente referido como procedimento. ● Vantagens ○ dividir a tarefa original em pequenas tarefas que simplificam e organizam o programa como um todo. ○ reduzir o tamanho do programa. Qualquer sequência de instruções que apareça no programa mais de uma vez é candidata a ser uma função. Funções
  • 18.
    Funções Um programa Cé dividido em pequenas funções: – Bons programas são compostos por diversas pequenas funções. – Como o próprio nome diz, uma função representa uma funcionalidade. – A vantagem de se ter o código modularizado em funções é que o código fica mais fácil de entender, de manter, de atualizar e de reusar.
  • 19.
    Funções “Funções são osblocos de construção de C e o local onde toda a atividade do programa ocorre.” Herberth Schildt (C Completo e Total) “Uma função é uma unidade de código de programa autônoma desenvolvida para cumprir uma determinada tarefa em particular” (MIZRAHI, 1990).
  • 20.
    Funções - Sintaxe Todafunção em C é definida assim: tipo_retorno identificador (lista de parâmetros){ corpo da função (sequencia de comandos); } escopo
  • 21.
    Funções - Sintaxe Todafunção em C é definida assim: tipo_retorno identificador (lista de parâmetros){ corpo da função (sequencia de comandos); } escopo
  • 22.
    Tipos de retorno ●O tipo de uma função é definido pelo tipo de valor que ela retorna por meio do comando return. ● Os tipos de funções em C são os mesmos tipos de variáveis, exceto quando a função não retorna nada (void). ○ int, char, float, double e void ○ tipos criados pelo usuario
  • 23.
    Funções - Sintaxe Todafunção em C é definida assim: tipo_retorno identificador (lista de parâmetros){ corpo da função (sequencia de comandos); } escopo
  • 24.
    Identificador de umafunção A estrutura de uma função em C é semelhante à de uma função main(). A diferença é que main() possui um nome especial reservado. O programador pode dar o nome que desejar para a função que irá definir, desde que o nome: Seja diferente de palavras reservadas (int, char, float, break, switch, while ...) da Linguagem. Não contenha caracteres especiais (#$%@*&-+”: =;,.) Não seja igual aos nomes de outras funções previamente declaradas ou de outras bibliotecas (main, printf, scanf, getchar, strcmp, system, etc);
  • 25.
    Funções - Sintaxe Todafunção em C é definida assim: tipo_retorno identificador (lista de parâmetros){ corpo da função (sequencia de comandos); } escopo
  • 26.
    Parâmetros ● As informaçõestransmitidas para uma função são chamadas parâmetros. ● Os parâmetros podem ser utilizados livremente no corpo da função. ○ Agem como variáveis locais da função p = cubo(3); q = media(2,6);
  • 27.
    Funções - Sintaxe Todafunção em C é definida assim: tipo_retorno identificador (lista de parâmetros){ corpo da função (sequencia de comandos); } escopo
  • 28.
    Sequência de comandos Comojá vimos na função main, podemos ter declarações de variáveis, comandos de atribuição, entrada, saída, seleção, iteração e chamadas a outras funções.
  • 29.
    Exemplo #include <stdio.h> int celsius(int fahr) // definição da função { int r; r = (fahr - 32) * 5.0/9; // Corpo da função return r; } int main(void){ int c, f; printf("Digite a temperatura Fahrenheit: "); scanf(“%d”, &f); c = celsius(f); // chamada à função printf(“%d F é igual a %d Cn”, f, c); return 0; } escopo Parâmetro(s)tipo retorno
  • 30.
    Comando return ● Ocomando return termina a execução da função e retorna o controle para a instrução seguinte do código de chamada. ● Se após a palavra return houver uma expressão, o valor da expressão é retornado à função que chama. Por exemplo, no programa anterior as funções celsius() e min() retornam valores para main(). ● Sintaxe: return; return <expressão>; return (<expressão>);
  • 31.
    Comando return ● Umreturn desacompanhado de expressão somente termina a função void funcao_nada(void) { printf(“Nada”); return; } ● Quando não há retorno a função termina quando encontra a chave } Neste caso, o uso do comando return não é obrigatório.
  • 32.
    Execução de funções ●Um programa pode conter uma ou mais funções, das quais uma delas deve ser main(). ○ A execução do programa sempre começa em main() e, quando o controle do programa encontra uma instrução que inclui o nome de uma função, a função é chamada.#include <stdio.h> int main(void){ printf(“Pressione uma tecla”); system(“cls”); return 0; }
  • 33.
    Execução de funções #include<stdio.h> int celsius (int fahr) // definição da função { int r; r = (fahr - 32) * 5.0/9; // Corpo da função return r; } int main(void){ int c, f; printf("Digite a temperatura Fahrenheit: "); scanf(“%d”, &f); c = celsius(f); // chamada à função printf(“%d F é igual a %d Cn”, f, c); return 0; }
  • 34.
    Execução de funções #include<stdio.h> int celsius (int fahr) // definição da função { int r; r = (fahr - 32) * 5.0/9; // Corpo da função return r; } int main(void){ int c, f; printf("Digite a temperatura Fahrenheit: "); scanf(“%d”, &f); c = celsius(f); // chamada à função printf(“%d F é igual a %d Cn”, f, c); return 0; }
  • 35.
    Execução de funções #include<stdio.h> int celsius (int fahr) // definição da função { int r; r = (fahr - 32) * 5.0/9; // Corpo da função return r; } int main(void){ int c, f; printf("Digite a temperatura Fahrenheit: "); scanf(“%d”, &f); c = celsius(f); // chamada à função printf(“%d F é igual a %d Cn”, f, c); return 0; }
  • 36.
    Execução de funções #include<stdio.h> int celsius (int fahr) // definição da função { int r; r = (fahr - 32) * 5.0/9; // Corpo da função return r; } int main(void){ int c, f; printf("Digite a temperatura Fahrenheit: "); scanf(“%d”, &f); c = celsius(f); // chamada à função printf(“%d F é igual a %d Cn”, f, c); return 0; }
  • 37.
    Execução de funções #include<stdio.h> int celsius (int fahr) // definição da função { int r; r = (fahr - 32) * 5.0/9; // Corpo da função return r; } int main(void){ int c, f; printf("Digite a temperatura Fahrenheit: "); scanf(“%d”, &f); c = celsius(f); // chamada à função printf(“%d F é igual a %d Cn”, f, c); return 0; } o valor da variavel f da função main será copiado para o parametro fahr da função celsius
  • 38.
    Execução de funções #include<stdio.h> int celsius (int fahr) // definição da função { int r; r = (fahr - 32) * 5.0/9; // Corpo da função return r; } int main(void){ int c, f; printf("Digite a temperatura Fahrenheit: "); scanf(“%d”, &f); c = celsius(f); // chamada à função printf(“%d F é igual a %d Cn”, f, c); return 0; }
  • 39.
    Execução de funções #include<stdio.h> int celsius (int fahr) // definição da função { int r; r = (fahr - 32) * 5.0/9; // Corpo da função return r; } int main(void){ int c, f; printf("Digite a temperatura Fahrenheit: "); scanf(“%d”, &f); c = celsius(f); // chamada à função printf(“%d F é igual a %d Cn”, f, c); return 0; }
  • 40.
    Execução de funções #include<stdio.h> int celsius (int fahr) // definição da função { int r; r = (fahr - 32) * 5.0/9; // Corpo da função return r; } int main(void){ int c, f; printf("Digite a temperatura Fahrenheit: "); scanf(“%d”, &f); c = celsius(f); // chamada à função printf(“%d F é igual a %d Cn”, f, c); return 0; }
  • 41.
    Execução de funções #include<stdio.h> int celsius (int fahr) // definição da função { int r; r = (fahr - 32) * 5.0/9; // Corpo da função return r; } int main(void){ int c, f; printf("Digite a temperatura Fahrenheit: "); scanf(“%d”, &f); c = celsius(f); // chamada à função printf(“%d F é igual a %d Cn”, f, c); return 0; }
  • 42.
    Execução de funções #include<stdio.h> int celsius (int fahr) // definição da função { int r; r = (fahr - 32) * 5.0/9; // Corpo da função return r; } int main(void){ int c, f; printf("Digite a temperatura Fahrenheit: "); scanf(“%d”, &f); c = celsius(f); // chamada à função printf(“%d F é igual a %d Cn”, f, c); return 0; }
  • 43.
    Passagem de parâmetros(valor) int dobro (int x ) { return 2 * x; } int main () { int a, b; a = 10; b = dobro (a); } O valor da variável "a" é copiado (por valor) para o parâmatro "x" da função dobro
  • 44.