SlideShare a Scribd company logo
1 of 44
Download to read offline
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.

More Related Content

What's hot

Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01thomasdacosta
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoMauro Pereira
 
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completothomasdacosta
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Mariana Camargo
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Gercélia Ramos
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1engenhariadecomputacao
 
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores AritméticosAula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores AritméticosMessias Batista
 
Python Introdução e Orientação a Objetos.pdf
Python Introdução e Orientação a Objetos.pdfPython Introdução e Orientação a Objetos.pdf
Python Introdução e Orientação a Objetos.pdfMarioAthayde
 
Banco de Dados - Tipos de Dados
Banco de Dados - Tipos de DadosBanco de Dados - Tipos de Dados
Banco de Dados - Tipos de DadosNatanael Simões
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em PythonLuciano Ramalho
 
Exercicios de estruturas condicionais - Lógica de Programação
Exercicios de estruturas condicionais - Lógica de ProgramaçãoExercicios de estruturas condicionais - Lógica de Programação
Exercicios de estruturas condicionais - Lógica de ProgramaçãoBruno Quaresma
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAislan Rafael
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
MC – Aula 04 – Unidade central de processamento e Memória
MC – Aula 04 – Unidade central de processamento e MemóriaMC – Aula 04 – Unidade central de processamento e Memória
MC – Aula 04 – Unidade central de processamento e MemóriaFelipe J. R. Vieira
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos JavaMarcio Marinho
 
Prova algoritmos
Prova algoritmosProva algoritmos
Prova algoritmospronatecvja
 

What's hot (20)

Tipos de dados em MySQL
Tipos de dados em MySQLTipos de dados em MySQL
Tipos de dados em MySQL
 
Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completo
 
POO - 16 - Polimorfismo
POO - 16 - PolimorfismoPOO - 16 - Polimorfismo
POO - 16 - Polimorfismo
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1
 
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores AritméticosAula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
 
Python Introdução e Orientação a Objetos.pdf
Python Introdução e Orientação a Objetos.pdfPython Introdução e Orientação a Objetos.pdf
Python Introdução e Orientação a Objetos.pdf
 
Banco de Dados - Tipos de Dados
Banco de Dados - Tipos de DadosBanco de Dados - Tipos de Dados
Banco de Dados - Tipos de Dados
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Exercicios de estruturas condicionais - Lógica de Programação
Exercicios de estruturas condicionais - Lógica de ProgramaçãoExercicios de estruturas condicionais - Lógica de Programação
Exercicios de estruturas condicionais - Lógica de Programação
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 
Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
MC – Aula 04 – Unidade central de processamento e Memória
MC – Aula 04 – Unidade central de processamento e MemóriaMC – Aula 04 – Unidade central de processamento e Memória
MC – Aula 04 – Unidade central de processamento e Memória
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Prova algoritmos
Prova algoritmosProva algoritmos
Prova algoritmos
 

Viewers also liked

Funções em C - Prof. Yandre
Funções em C - Prof. YandreFunções em C - Prof. Yandre
Funções em C - Prof. Yandremarcosnem
 
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlgoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlex Camargo
 
Algoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosAlgoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosMauro Pereira
 
Aula 15 - Modularização -parte1
Aula 15 - Modularização -parte1Aula 15 - Modularização -parte1
Aula 15 - Modularização -parte1Pacc UAB
 
Lógica e Algoritmos (pseudocódigo e C++) A lógica
Lógica e Algoritmos (pseudocódigo e C++) A lógicaLógica e Algoritmos (pseudocódigo e C++) A lógica
Lógica e Algoritmos (pseudocódigo e C++) A lógicaWellington Oliveira
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesElaine Cecília Gatto
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Karoline Tavares
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhanyKaren Costa
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 

Viewers also liked (18)

TDC2014 SP - C/C++ - Modularização de Código C
TDC2014 SP - C/C++ - Modularização de Código CTDC2014 SP - C/C++ - Modularização de Código C
TDC2014 SP - C/C++ - Modularização de Código C
 
Unidade i
Unidade iUnidade i
Unidade i
 
Funções em C - Prof. Yandre
Funções em C - Prof. YandreFunções em C - Prof. Yandre
Funções em C - Prof. Yandre
 
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlgoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
 
Apostila algoritmos
Apostila algoritmosApostila algoritmos
Apostila algoritmos
 
Algoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosAlgoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmos
 
Linguagem C 06 Funcoes
Linguagem C 06 FuncoesLinguagem C 06 Funcoes
Linguagem C 06 Funcoes
 
Aula 15 - Modularização -parte1
Aula 15 - Modularização -parte1Aula 15 - Modularização -parte1
Aula 15 - Modularização -parte1
 
Lógica e Algoritmos (pseudocódigo e C++) A lógica
Lógica e Algoritmos (pseudocódigo e C++) A lógicaLógica e Algoritmos (pseudocódigo e C++) A lógica
Lógica e Algoritmos (pseudocódigo e C++) A lógica
 
Apostila C ANSI
Apostila C ANSIApostila C ANSI
Apostila C ANSI
 
Linguagem c parte 2
Linguagem c parte 2Linguagem c parte 2
Linguagem c parte 2
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e Funções
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros
 
Linguagem C - Funções
Linguagem C - FunçõesLinguagem C - Funções
Linguagem C - Funções
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhany
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 

Similar to Modularização

RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxClaudia Ferlin
 
Aula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptxAula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptxItamarGoncalves2
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03thomasdacosta
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em CElaine Cecília Gatto
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CJoberthSilva
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturadadiogoa21
 
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)Filipe Chagas Ferraz
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfEizoKato
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfEizoKato
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação CSchoolByte
 
Algoritmo e lógica de programação - aula 5
Algoritmo e lógica de programação - aula 5Algoritmo e lógica de programação - aula 5
Algoritmo e lógica de programação - aula 5engenhariadecomputacao
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcionalPéricles Miranda
 
Funções inline e Recursivas
Funções inline e RecursivasFunções inline e Recursivas
Funções inline e RecursivasKadzuwa Kuyeri
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02thomasdacosta
 
Conceito de funçao e modularizaçao
Conceito de funçao e modularizaçaoConceito de funçao e modularizaçao
Conceito de funçao e modularizaçaossuserc6132d
 

Similar to Modularização (20)

RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptx
 
Aula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptxAula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptx
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em C
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação C
 
Ud2
Ud2Ud2
Ud2
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturada
 
Funções em C
Funções em CFunções em C
Funções em C
 
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
Aula09 traducaosin110
Aula09 traducaosin110Aula09 traducaosin110
Aula09 traducaosin110
 
Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação C
 
Algoritmo e lógica de programação - aula 5
Algoritmo e lógica de programação - aula 5Algoritmo e lógica de programação - aula 5
Algoritmo e lógica de programação - aula 5
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcional
 
Funções inline e Recursivas
Funções inline e RecursivasFunções inline e Recursivas
Funções inline e Recursivas
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02
 
Conceito de funçao e modularizaçao
Conceito de funçao e modularizaçaoConceito de funçao e modularizaçao
Conceito de funçao e modularizaçao
 
Linguagem C - Controle de Programa
Linguagem C - Controle de ProgramaLinguagem C - Controle de Programa
Linguagem C - Controle de Programa
 

More from Sérgio Souza Costa

Expressões aritméticas, relacionais e lógicas
Expressões aritméticas, relacionais e lógicasExpressões aritméticas, relacionais e lógicas
Expressões aritméticas, relacionais e lógicasSérgio Souza Costa
 
De algoritmos à programas de computador
De algoritmos à programas de computadorDe algoritmos à programas de computador
De algoritmos à programas de computadorSérgio Souza Costa
 
Introdução ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmosIntrodução ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmosSérgio Souza Costa
 
Minicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficosMinicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficosSérgio Souza Costa
 
Banco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de EncerramentoBanco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de EncerramentoSérgio Souza Costa
 
Banco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagemBanco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagemSérgio Souza Costa
 
Banco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de aberturaBanco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de aberturaSérgio Souza Costa
 
Linguagem SQL e Extensões Espacias - Introdução
Linguagem SQL e Extensões Espacias - IntroduçãoLinguagem SQL e Extensões Espacias - Introdução
Linguagem SQL e Extensões Espacias - IntroduçãoSérgio Souza Costa
 
Gödel’s incompleteness theorems
Gödel’s incompleteness theoremsGödel’s incompleteness theorems
Gödel’s incompleteness theoremsSérgio Souza Costa
 
DBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cellsDBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cellsSérgio Souza Costa
 
Conceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetosConceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetosSérgio Souza Costa
 
Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)Sérgio Souza Costa
 
Relações (composição e agregação)
Relações (composição e agregação)Relações (composição e agregação)
Relações (composição e agregação)Sérgio Souza Costa
 

More from Sérgio Souza Costa (20)

Expressões aritméticas, relacionais e lógicas
Expressões aritméticas, relacionais e lógicasExpressões aritméticas, relacionais e lógicas
Expressões aritméticas, relacionais e lógicas
 
De algoritmos à programas de computador
De algoritmos à programas de computadorDe algoritmos à programas de computador
De algoritmos à programas de computador
 
Introdução ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmosIntrodução ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmos
 
Minicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficosMinicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficos
 
Modelagem de dados geográficos
Modelagem de dados geográficosModelagem de dados geográficos
Modelagem de dados geográficos
 
Banco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de EncerramentoBanco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de Encerramento
 
Banco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagemBanco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagem
 
Banco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de aberturaBanco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de abertura
 
Linguagem SQL e Extensões Espacias - Introdução
Linguagem SQL e Extensões Espacias - IntroduçãoLinguagem SQL e Extensões Espacias - Introdução
Linguagem SQL e Extensões Espacias - Introdução
 
Gödel’s incompleteness theorems
Gödel’s incompleteness theoremsGödel’s incompleteness theorems
Gödel’s incompleteness theorems
 
Turing e o problema da decisão
Turing e o problema da decisãoTuring e o problema da decisão
Turing e o problema da decisão
 
DBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cellsDBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cells
 
Conceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetosConceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetos
 
Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)
 
Herança e Encapsulamento
Herança e EncapsulamentoHerança e Encapsulamento
Herança e Encapsulamento
 
Relações (composição e agregação)
Relações (composição e agregação)Relações (composição e agregação)
Relações (composição e agregação)
 
Abstract classes and interfaces
Abstract classes and interfacesAbstract classes and interfaces
Abstract classes and interfaces
 
Introdução ao Prolog
Introdução ao PrologIntrodução ao Prolog
Introdução ao Prolog
 
Heap - Python
Heap - PythonHeap - Python
Heap - Python
 
Paradigma lógico
Paradigma lógicoParadigma lógico
Paradigma lógico
 

Recently uploaded

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 

Recently uploaded (6)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Modularização

  • 1. Modularização Prof. Sérgio Souza Costa Site:https://sites.google.com/site/profsergiocosta/ Email: prof.sergio.costa@gmail.com
  • 2. 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.
  • 3. 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 ...
  • 4. 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; }
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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.
  • 10. 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
  • 16. 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.
  • 17. ● 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
  • 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 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).
  • 20. 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
  • 21. 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
  • 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 Toda função em C é definida assim: tipo_retorno identificador (lista de parâmetros){ corpo da função (sequencia de comandos); } escopo
  • 24. 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);
  • 25. 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
  • 26. 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);
  • 27. 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
  • 28. 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.
  • 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 ● 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>);
  • 31. 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.
  • 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