SlideShare uma empresa Scribd logo
1 de 42
Programação Estruturada II
Aula 02 – Modularização e Funções
Prof. Thomás da Costa
thomasdacosta@gmail.com
Anhanguera – 2015.1
Modularização e Funções
MODULARIZAÇÃO E FUNÇÕES
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
O que é Modularização:
É o processo de decompor um programa em partes menores, facilitando a
manutenção e o entendimento pelos desenvolvedores. Com isso podemos ter
rotinas reutilizáveis para outros programas e aplicações. Além disso, conseguimos
efetuar atividades paralelas na construção do código-fonte, na qual mais de um
desenvolvedor pode atuar no trabalho.
Modularização e Funções
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Veja o exemplo abaixo:
Um carro é composto por vários componentes (portas, rodas, motor e etc). Esses
componentes tornam o carro modular.
Modularização e Funções
Cada parte tem uma finalidade, todas
juntas formam o carro. Caso uma peça tenha problema,
fazemos o ajuste neste local sem
afetar o restante do carro.
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Benefícios da Modularização em um programa:
- Componentes menores formam um programa
- Programa fica mais legível para compreensão
- Facilidade na manutenção da aplicação
- Funcionalidade pode ser reutilizada em outros programas
- Previne duplicação de código e retrabalho
Modularização e Funções
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Modularização em C/C++:
Em C++ a modularização é feita a partir de blocos de funcionalidades, denominado
funções.
Modularização e Funções
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
O que é:
São rotinas que tem como objetivo, executar trechos de códigos de forma
modular, melhorando a organização do programa e evitando repetição de código.
As funções são reutilizáveis dentro de um programa.
Funções
Prof. Thomás da Costa Programação Estruturada II
CALCULADORA
Modularização e Funções
Funções
Para pensar:
Em uma calculadora quais são as suas 4 principais operações?
SOMA
MULTIPLICAÇÃO DIVISÃO
SUBTRAÇÃO
Conseguimos definir as 4 principais
operações da calculadora.
No desenvolvimento do código da
calculadora vamos precisar criar as 4
funções de acordo com as operações
definidas.
Modularização e Funções
Funções
Como criar funções:
- Análise quais tarefas o programa vai executar
- Identifique ações
- Ações são verbos como inserir, alterar, excluir e etc.
- A partir das ações temos as funções
Mais um exemplo:
Quais as funções da lista de contatos de um celular?
- Inserir um Contato
- Alterar um Contato
- Excluir um Contato
- Discar para um Contato
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Funções
Estrutura de uma função:
Retorno da função
Nome da função
Parâmetros da função
Corpo da função
Escopo de início e fim da função
double somar(double x, double y)
{
double resultado = x + y;
return resultado;
}
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Funções
Estrutura de uma função:
- Tipos de retorno da função
- double, float, int, char, void, vetores e outros tipos
- Parâmetros da função
- Cada parâmetro é composto pelo tipo, nome e separados por virgulas
- Retorno da função
- Quando uma função deve retornar um valor, devemos usar a palavra
reservada return seguido de um valor, variável ou operação do mesmo tipo
de retorno
- Corpo da função
- Código fonte com a funcionalidade que a função deve executar
- Protótipo
- As funções possuem protótipos para definir sua estrutura
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Funções
Como Utilizar em C++:
As quatro funções da calculadora
Protótipo das funções
#include <iostream>
using namespace std;
double somar(double x, double y);
double subtrair(double x, double y);
double multiplicar(double x, double y);
double dividir(double x, double y);
int main()
{
double x, y;
cout << "Digite os valores para somar:n";
cin >> x >> y;
cout << somar(x, y);
cout << "Digite os valores para subtrair:n";
cin >> x >> y;
cout << subtrair(x, y);
cout << "Digite os valores para multiplicar:n";
cin >> x >> y;
cout << multiplicar(x, y);
cout << "Digite os valores para dividir:n";
cin >> x >> y;
cout << dividir(x, y);
}
Chamando uma função
double somar(double x, double y)
{
double resultado = x + y;
return resultado;
}
double subtrair(double x, double y)
{
double resultado = x - y;
return resultado;
}
double multiplicar(double x, double y)
{
double resultado = x * y;
return resultado;
}
double dividir(double x, double y)
{
double resultado = x / y;
return resultado;
}
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Funções
Chamando uma função:
Chamando a função “somar”
passando os parâmetros 10 e 15
Retornando o valor para a
variável “valor”
Protótipo da função
#include <iostream>
using namespace std;
double somar(double x, double y);
int main()
{
double valor;
valor = somar(10,15);
}
...
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Funções
Chamando uma função:
- Para executar uma função, devemos colocar o nome da função seguido dos
parâmetros
- Nos parâmetros podemos passar um valor especifico ou uma variável
- Devemos respeitar o tipo passado nos parâmetros das funções. Ex: se o
parâmetro for int, devemos passar um tipo int. Se for passado o tipo incorreto
no parâmetro, o programa não compila.
- Caso a função retorne algum valor, podemos atribuir diretamente a uma
variável
- Quando uma função não tem parâmetros, abrimos e fechamos parênteses
- void faz a função retornar nenhum valor
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Funções
Retorno da função:
Quando o tipo de retorno da função é diferente do tipo void, a função devolve
algum valor para alguma variável. Para efetuar este tipo de operação utilizamos a
palavra reservada return seguido de um valor ou uma variável.
Retorno da função
Retorno da função na
variável “resultado”
#include <iostream>
using namespace std;
int par_ou_impar(int numero);
int main()
{
int numero, resultado;
cout << "Digite um número:n";
cin >> numero;
resultado = par_ou_impar(numero);
if (resultado == 0)
cout << "Par";
else
cout << "Impar";
}
int par_ou_impar(int numero)
{
int valor = numero % 2;
return valor;
}
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Funções
Tipo void:
A palavra reservada void não efetua nenhum retorno para a função.
Retorno da função do
tipo void
Função não retorna um valor
#include <iostream>
using namespace std;
void imprime_idade(int idade);
int main()
{
int idade;
cout << "Digite a sua idade:n";
cin >> idade;
imprime_idade(idade);
}
void imprime_idade(int idade)
{
cout << "Sua idade é: " << idade;
}
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Funções
Usando return em uma função void:
O return em uma função void, interrompe a execução do código.
#include <iostream>
using namespace std;
void dividir(int x, int y);
int main()
{
int x, y;
cout << "Digite os valores para dividir:n";
cin >> x >> y;
dividir(x, y);
}
void dividir(int x, int y)
{
if (y == 0)
{
cout << "Não dividirás por zero";
return;
}
cout << "Valor da Divisão:" << x / y;
}
Não existe divisão por zero
Terminando a execução
da função com return
Este código não vai
ser executado
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Resumo:
- Possuem um nome
- Podem possuir um retorno ou não
- Tem parâmetros com tipo e nome, separados por virgulas
- A função tem um corpo, aonde é definido e escrito oque a função vai executar
- Tem um protótipo para definir a função
- São reutilizáveis
- Ajuda a deixar o código mais simples
- Funções quando usadas corretamente deixa muito mais fácil o entendimento
do programa
- Organização do código
- Retornam valores com a palavra reservada return
- void é tipo que não retorna valor na função
Funções
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Exemplo – Imprime na tela:
Funções
#include <iostream>
using namespace std;
void imprimir();
int main()
{
imprimir();
}
void imprimir()
{
char valor[10];
cout << "Digite algo:n";
gets(valor);
cout << valor;
}
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Exemplo – Quadrado:
Funções
#include <iostream>
using namespace std;
int quadrado(int x);
int main()
{
int x;
cout << "Digite um numero:n";
cin >> x;
cout << "Quadrado de " << x << " é " << quadrado(x);
}
int quadrado(int x)
{
return x * x;
}
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Exemplo – Conversor de Moedas:
Funções
#include <iostream>
using namespace std;
const double VALOR_DOLAR = 2.7;
void converte_real_dolar(double real);
int main()
{
double valor_real;
cout << "Valor em reais:";
cin >> valor_real;
converte_real_dolar(valor_real);
}
void converte_real_dolar(double real)
{
if (real < 0)
{
cout << "O valor não pode ser menor que zero";
return;
}
cout << "Valor convertido: " << real * VALOR_DOLAR;
}
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Exemplo – Calculadora:
Funções
#include <iostream>
using namespace std;
double somar(double x, double y);
double subtrair(double x, double y);
double multiplicar(double x, double y);
double dividir(double x, double y);
int main()
{
double x, y;
cout << "Digite os valores para somar:n";
cin >> x >> y;
cout << somar(x, y);
cout << "Digite os valores para subtrair:n";
cin >> x >> y;
cout << subtrair(x, y);
cout << "Digite os valores para multiplicar:n";
cin >> x >> y;
cout << multiplicar(x, y);
cout << "Digite os valores para dividir:n";
cin >> x >> y;
cout << dividir(x, y);
}
double somar(double x, double y)
{
double resultado = x + y;
return resultado;
}
double subtrair(double x, double y)
{
double resultado = x - y;
return resultado;
}
double multiplicar(double x, double y)
{
double resultado = x * y;
return resultado;
}
double dividir(double x, double y)
{
double resultado = x / y;
return resultado;
}
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
O que é:
No caso da linguagem C++, escopo de variáveis é o ciclo de vida de um tipo de
dado e como ele pode ser acessado pelo programa principal e suas funções.
Escopo de Variáveis
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Exemplo:
Escopo de Variáveis
Prof. Thomás da Costa Programação Estruturada II
#include <iostream>
using namespace std;
int global = 0;
void escopo(int x);
int main()
{
int a = 1;
{
int b = 1;
cout << "Escopo mais interno: " << b << endl;
}
escopo(100);
cout << "Escopo local: " << a << endl;
}
void escopo(int x)
{
cout << "Escopo local: " << x << endl;
cout << "Escopo global: " << global << endl;
}
Variável global, ou seja, pode
ser acessada em qualquer
lugar do programa
Variável b pode ser acessada
somente neste trecho
Chaves definem
um escopo
Modularização e Funções
O que é:
É quando uma variável é passada como parâmetro de uma função, e seu valor
original não é alterado. Somente o valor da sua cópia pode ser alterado dentro
da função.
Parâmetros Por Valor
Prof. Thomás da Costa Programação Estruturada II
#include <iostream>
using namespace std;
void troca(int a, int b);
int main()
{
int a = 10;
int b = 20;
troca(a, b);
cout << "Valor de A e B não foi alterado:" << a <<
b << endl;
}
void troca(int a, int b)
{
a = b;
b = a + 100;
cout << "Valor de A e B: " << a << b << endl;
}
Modularização e Funções
Exemplo:
Parâmetros Por Valor
Prof. Thomás da Costa Programação Estruturada II
Variáveis a e b tem valor 10 e 20
Variáveis a e b continuam
com o mesmo valor 10 e 20
Trocamos o valor de a
com b dentro da função
Modularização e Funções
Parâmetros Por Referência
Prof. Thomás da Costa Programação Estruturada II
O que é:
É quando uma variável é passada como parâmetro de uma função, e seu valor
original pode ser alterado.
#include <iostream>
using namespace std;
void troca(int &a, int &b);
int main()
{
int a = 10;
int b = 20;
cout << "Valor de A e B original:" << a << "-" << b << endl;
troca(a, b);
cout << "Valor de A e B FOI alterado:" << a << "-" << b << endl;
}
void troca(int &a, int &b)
{
int temp;
temp = b;
b = a;
a = temp;
}
Modularização e Funções
Exemplo:
Parâmetros Por Referência
Prof. Thomás da Costa Programação Estruturada II
Variáveis a e b tem valor 10 e 20
Variáveis a e b mudam de
valor
Trocamos o valor de a
com b dentro da função
Referencia endereço de
memória
Modularização e Funções
Exemplo:
Parâmetros do Tipo String
Prof. Thomás da Costa Programação Estruturada II
#include <iostream>
#include <string.h>
using namespace std;
int validar_senha(char *senha);
int main()
{
char senha[10];
cout << "Digite a senha:" << endl;
gets(senha);
validar_senha(senha);
}
int validar_senha(char *senha)
{
if (strcmp(senha, "entrar123") == 0)
{
cout << "Senha OK";
return 0;
} else {
cout << "Senha inválida";
return 1;
}
}
Passando uma string como
parâmetro devemos colocar o
sinal ( * )
Modularização e Funções
Exemplo:
Parâmetros do Tipo Vetor
Prof. Thomás da Costa Programação Estruturada II
#include <iostream>
#include <string.h>
using namespace std;
void imprime_vetor(int *valores);
int main()
{
int valores[10] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29};
imprime_vetor(valores);
}
void imprime_vetor(int *valores)
{
for (int i=0;i<=9;i++)
{
cout << "valores[" << i << "] :" << valores[i] << endl;
}
}
Passando um vetor como
parâmetro devemos colocar o
sinal ( * )
CUIDADO: alterar o vetor
dentro da função, modifica o
valor que foi passado como
parâmetro
Modularização e Funções
Para pensar:
Podemos ter funções com o mesmo nome ?
Sim podemos !!!
Desde que as funções possuam parâmetros diferentes uma da outra. Essa técnica
é chamada de sobrecarga.
Sobrecarga de funções
Prof. Thomás da Costa Programação Estruturada II
Para acontecer a sobrecarga:
- Tipos de parâmetros diferentes
- Quantidades de parâmetros
Modularização e Funções
Exemplo:
Sobrecarga de funções
Prof. Thomás da Costa Programação Estruturada II
#include <iostream>
#include <string.h>
using namespace std;
void imprime_vetor(char *valores);
void imprime_vetor(int *valores);
void imprime_vetor(int *valores, int tamanho);
int main()
{
int valores[10] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29};
char nome[10] = {'a','n','h','a','n','g','u','e','r','a'};
imprime_vetor(nome);
imprime_vetor(valores);
imprime_vetor(valores, 10);
}
Continua ->
Funções com o mesmo nome e
parâmetros diferentes
Modularização e Funções
Exemplo - Continuação:
Sobrecarga de funções
Prof. Thomás da Costa Programação Estruturada II
void imprime_vetor(char *valores)
{
cout << "void imprime_vetor(char *valores)" << endl;
for (int i=0;i<=9;i++)
{
cout << "valores[" << i << "] :" << valores[i] << endl;
}
}
void imprime_vetor(int *valores)
{
cout << "void imprime_vetor(int *valores)" << endl;
for (int i=0;i<=9;i++)
{
cout << "valores[" << i << "] :" << valores[i] << endl;
}
}
void imprime_vetor(int *valores, int tamanho)
{
cout << "void imprime_vetor(int *valores, int tamanho)" << endl;
for (int i=0;i<tamanho;i++)
{
cout << "valores[" << i << "] :" << valores[i] << endl;
}
}
Modularização e Funções
Exemplo:
Valores Default
Prof. Thomás da Costa Programação Estruturada II
#include <iostream>
using namespace std;
double media(double b1 = 0, double b2 = 0);
int main()
{
cout << "Media Default:" << media() << endl;
cout << "Media Aluno:" << media(6.5, 6.5) << endl;
}
double media(double b1, double b2)
{
return (b1 + b2) / 2;
}
Valores pré-definidos na
função é chamado de valores
default
Modularização e Funções
Desenvolvendo uma Biblioteca !!!:
Vamos criar uma biblioteca para ser utilizada em todos os nossos programas. A
nossa biblioteca será chamada pela diretiva #include, como todas as outras do
C++.
Para criar um biblioteca:
- Criar um projeto no Dev-C++
- Criar um arquivo .h com os protótipos das funções
- Criar um arquivo .cpp com as definições das funções
Bibliotecas
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Vamos criar uma biblioteca matemática:
Criando um projeto do Dev-C++:
- File -> New Project
- Console Application
- Colocar em Name (nome do projeto) matematica
Bibliotecas
Prof. Thomás da Costa Programação Estruturada II
Modularização e Funções
Vamos criar uma biblioteca matemática:
- Criar arquivo .h
- Criar arquivo .cpp
Bibliotecas
Prof. Thomás da Costa Programação Estruturada II
Arquivos da biblioteca .h e .cpp
namespace matematica
{
double somar(double x, double y);
double subtrair(double x, double y);
double multiplicar(double x, double y);
double dividir(double x, double y);
}
Modularização e Funções
Arquivo .h:
Bibliotecas
Prof. Thomás da Costa Programação Estruturada II
Namespace da biblioteca
Os namespace´s servem para identificar uma
biblioteca, tornando única dentro da aplicação
e não entrar em conflito com outras
bibliotecas
#include <iostream>
#include "matematica.h"
using namespace std;
namespace matematica
{
double somar(double x, double y)
{
return x + y;
}
double subtrair(double x, double y)
{
return x - y;
}
double multiplicar(double x, double y)
{
return x * y;
}
double dividir(double x, double y)
{
return x / y;
}
}
Modularização e Funções
Arquivo .cpp:
Bibliotecas
Prof. Thomás da Costa Programação Estruturada II
Implementações das funções
Namespace da biblioteca
#include <iostream>
#include "matematica.h"
using namespace matematica;
using namespace std;
int main() {
cout << "Somar:" << somar(2,2) << endl;
cout << "Subtrair:" << subtrair(2,2) << endl;
cout << "Multiplicar:" << multiplicar(2,2) << endl;
cout << "Dividir:" << dividir(2,2) << endl;
}
Modularização e Funções
Usando a biblioteca:
Bibliotecas
Prof. Thomás da Costa Programação Estruturada II
Chamando as funções
Namespace da biblioteca
Incluindo a biblioteca no programa
Modularização e Funções
Obrigado !!!
Prof. Thomás da Costa Programação Estruturada II

Mais conteúdo relacionado

Mais procurados

Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
Robson Ferreira
 
Conceitos e técnicas de programação aula 1
Conceitos e técnicas de programação aula 1Conceitos e técnicas de programação aula 1
Conceitos e técnicas de programação aula 1
Robson Ferreira
 

Mais procurados (20)

Algoritmos e Técnicas de Programação - Aula 04
Algoritmos e Técnicas de Programação - Aula 04Algoritmos e Técnicas de Programação - Aula 04
Algoritmos e Técnicas de Programação - Aula 04
 
Linguagem C (UFRPE)
Linguagem C (UFRPE)Linguagem C (UFRPE)
Linguagem C (UFRPE)
 
Conceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoConceitos Fundamentais de Programacao
Conceitos Fundamentais de Programacao
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
 
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
 
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
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completo
 
Programação Concorrente - Aula 02
Programação Concorrente - Aula 02Programação Concorrente - Aula 02
Programação Concorrente - Aula 02
 
Revista programar 20
Revista programar 20Revista programar 20
Revista programar 20
 
Programação Concorrente - Aula 04
Programação Concorrente - Aula 04Programação Concorrente - Aula 04
Programação Concorrente - Aula 04
 
C curso - notas de aula
C   curso - notas de aulaC   curso - notas de aula
C curso - notas de aula
 
Mini Curso de C
Mini Curso de CMini Curso de C
Mini Curso de C
 
Fundamentos de Programação
Fundamentos de ProgramaçãoFundamentos de Programação
Fundamentos de Programação
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Conceitos e técnicas de programação aula 1
Conceitos e técnicas de programação aula 1Conceitos e técnicas de programação aula 1
Conceitos e técnicas de programação aula 1
 
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
 
Programação Concorrente - Aula 05
Programação Concorrente - Aula 05Programação Concorrente - Aula 05
Programação Concorrente - Aula 05
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-c
 
Programação Concorrente - Aula 03
Programação Concorrente - Aula 03Programação Concorrente - Aula 03
Programação Concorrente - Aula 03
 

Destaque (10)

Programação Estruturada 2 - Aula 02 - Código Fonte
Programação Estruturada 2 - Aula 02 - Código FonteProgramação Estruturada 2 - Aula 02 - Código Fonte
Programação Estruturada 2 - Aula 02 - Código Fonte
 
Exercícios da Aula de LAB 02
Exercícios da Aula de LAB 02Exercícios da Aula de LAB 02
Exercícios da Aula de LAB 02
 
Programação Estruturada 2 - Aula 04
Programação Estruturada 2 - Aula 04Programação Estruturada 2 - Aula 04
Programação Estruturada 2 - Aula 04
 
LAB 03 - Programação Estruturada 2
LAB 03 - Programação Estruturada 2LAB 03 - Programação Estruturada 2
LAB 03 - Programação Estruturada 2
 
Exercícios da Aula de LAB 03
Exercícios da Aula de LAB 03Exercícios da Aula de LAB 03
Exercícios da Aula de LAB 03
 
Revisão - Funções
Revisão - FunçõesRevisão - Funções
Revisão - Funções
 
Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01
 
LAB 02 - Programação Estruturada 2
LAB 02 - Programação Estruturada 2LAB 02 - Programação Estruturada 2
LAB 02 - Programação Estruturada 2
 
Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05
 
Especialização e generalização em java
Especialização e generalização em javaEspecialização e generalização em java
Especialização e generalização em java
 

Semelhante a Programação Estruturada 2 - Aula 02

2 funcoes e estrutura de blocos
2   funcoes e estrutura de blocos2   funcoes e estrutura de blocos
2 funcoes e estrutura de blocos
Ricardo Bolanho
 

Semelhante a Programação Estruturada 2 - Aula 02 (20)

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
 
Funções inline e Recursivas
Funções inline e RecursivasFunções inline e Recursivas
Funções inline e Recursivas
 
Modularização
ModularizaçãoModularização
Modularização
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturada
 
RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptx
 
Linguagem c parte 2
Linguagem c parte 2Linguagem c parte 2
Linguagem c parte 2
 
Qualidade de Software: Escrevendo Código Limpo
Qualidade de Software: Escrevendo Código LimpoQualidade de Software: Escrevendo Código Limpo
Qualidade de Software: Escrevendo Código Limpo
 
Sobrecarga operadores
Sobrecarga operadoresSobrecarga operadores
Sobrecarga operadores
 
Clean code
Clean codeClean code
Clean code
 
Aula01
Aula01Aula01
Aula01
 
2 funcoes e estrutura de blocos
2   funcoes e estrutura de blocos2   funcoes e estrutura de blocos
2 funcoes e estrutura de blocos
 
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)
 
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
 
apostila C++
apostila C++apostila C++
apostila C++
 
JavaScript - A Linguagem
JavaScript - A LinguagemJavaScript - A Linguagem
JavaScript - A Linguagem
 
Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1
 
Semana 2: Funções e listas, variáveis
Semana  2: Funções e listas, variáveisSemana  2: Funções e listas, variáveis
Semana 2: Funções e listas, variáveis
 
Estruturas em C++ (struct)
Estruturas em C++ (struct)Estruturas em C++ (struct)
Estruturas em C++ (struct)
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1
 

Mais de thomasdacosta

Mais de thomasdacosta (20)

Azure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a ProduçãoAzure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a Produção
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02
 
Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01
 
Organização de Computadores - Aula 02
Organização de Computadores - Aula 02Organização de Computadores - Aula 02
Organização de Computadores - Aula 02
 
Organização de Computadores - Aula 03
Organização de Computadores - Aula 03Organização de Computadores - Aula 03
Organização de Computadores - Aula 03
 
Organização de Computadores - Aula 01
Organização de Computadores - Aula 01Organização de Computadores - Aula 01
Organização de Computadores - Aula 01
 
Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06
 
Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05
 
Programação Concorrente - Curso Completo
Programação Concorrente - Curso CompletoProgramação Concorrente - Curso Completo
Programação Concorrente - Curso Completo
 
Programação Concorrente - Aula 07
Programação Concorrente - Aula 07Programação Concorrente - Aula 07
Programação Concorrente - Aula 07
 
Programação Concorrente - Aula 06
Programação Concorrente - Aula 06Programação Concorrente - Aula 06
Programação Concorrente - Aula 06
 
Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04
 
Redes de Computadores - Aula 05
Redes de Computadores - Aula 05Redes de Computadores - Aula 05
Redes de Computadores - Aula 05
 
Redes de Computadores - Exercícios 03
Redes de Computadores - Exercícios 03Redes de Computadores - Exercícios 03
Redes de Computadores - Exercícios 03
 
Redes de Computadores - Aula 04
Redes de Computadores - Aula 04Redes de Computadores - Aula 04
Redes de Computadores - Aula 04
 
Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05
 
Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04
 
Redes de Computadores - Aula 03
Redes de Computadores - Aula 03Redes de Computadores - Aula 03
Redes de Computadores - Aula 03
 
Redes de Computadores - Aula 02
Redes de Computadores - Aula 02Redes de Computadores - Aula 02
Redes de Computadores - Aula 02
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Último (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
 
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
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
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
 

Programação Estruturada 2 - Aula 02

  • 1. Programação Estruturada II Aula 02 – Modularização e Funções Prof. Thomás da Costa thomasdacosta@gmail.com Anhanguera – 2015.1
  • 2. Modularização e Funções MODULARIZAÇÃO E FUNÇÕES Prof. Thomás da Costa Programação Estruturada II
  • 3. Modularização e Funções O que é Modularização: É o processo de decompor um programa em partes menores, facilitando a manutenção e o entendimento pelos desenvolvedores. Com isso podemos ter rotinas reutilizáveis para outros programas e aplicações. Além disso, conseguimos efetuar atividades paralelas na construção do código-fonte, na qual mais de um desenvolvedor pode atuar no trabalho. Modularização e Funções Prof. Thomás da Costa Programação Estruturada II
  • 4. Modularização e Funções Veja o exemplo abaixo: Um carro é composto por vários componentes (portas, rodas, motor e etc). Esses componentes tornam o carro modular. Modularização e Funções Cada parte tem uma finalidade, todas juntas formam o carro. Caso uma peça tenha problema, fazemos o ajuste neste local sem afetar o restante do carro. Prof. Thomás da Costa Programação Estruturada II
  • 5. Modularização e Funções Benefícios da Modularização em um programa: - Componentes menores formam um programa - Programa fica mais legível para compreensão - Facilidade na manutenção da aplicação - Funcionalidade pode ser reutilizada em outros programas - Previne duplicação de código e retrabalho Modularização e Funções Prof. Thomás da Costa Programação Estruturada II
  • 6. Modularização e Funções Modularização em C/C++: Em C++ a modularização é feita a partir de blocos de funcionalidades, denominado funções. Modularização e Funções Prof. Thomás da Costa Programação Estruturada II
  • 7. Modularização e Funções O que é: São rotinas que tem como objetivo, executar trechos de códigos de forma modular, melhorando a organização do programa e evitando repetição de código. As funções são reutilizáveis dentro de um programa. Funções Prof. Thomás da Costa Programação Estruturada II
  • 8. CALCULADORA Modularização e Funções Funções Para pensar: Em uma calculadora quais são as suas 4 principais operações? SOMA MULTIPLICAÇÃO DIVISÃO SUBTRAÇÃO Conseguimos definir as 4 principais operações da calculadora. No desenvolvimento do código da calculadora vamos precisar criar as 4 funções de acordo com as operações definidas.
  • 9. Modularização e Funções Funções Como criar funções: - Análise quais tarefas o programa vai executar - Identifique ações - Ações são verbos como inserir, alterar, excluir e etc. - A partir das ações temos as funções Mais um exemplo: Quais as funções da lista de contatos de um celular? - Inserir um Contato - Alterar um Contato - Excluir um Contato - Discar para um Contato Prof. Thomás da Costa Programação Estruturada II
  • 10. Modularização e Funções Funções Estrutura de uma função: Retorno da função Nome da função Parâmetros da função Corpo da função Escopo de início e fim da função double somar(double x, double y) { double resultado = x + y; return resultado; } Prof. Thomás da Costa Programação Estruturada II
  • 11. Modularização e Funções Funções Estrutura de uma função: - Tipos de retorno da função - double, float, int, char, void, vetores e outros tipos - Parâmetros da função - Cada parâmetro é composto pelo tipo, nome e separados por virgulas - Retorno da função - Quando uma função deve retornar um valor, devemos usar a palavra reservada return seguido de um valor, variável ou operação do mesmo tipo de retorno - Corpo da função - Código fonte com a funcionalidade que a função deve executar - Protótipo - As funções possuem protótipos para definir sua estrutura Prof. Thomás da Costa Programação Estruturada II
  • 12. Modularização e Funções Funções Como Utilizar em C++: As quatro funções da calculadora Protótipo das funções #include <iostream> using namespace std; double somar(double x, double y); double subtrair(double x, double y); double multiplicar(double x, double y); double dividir(double x, double y); int main() { double x, y; cout << "Digite os valores para somar:n"; cin >> x >> y; cout << somar(x, y); cout << "Digite os valores para subtrair:n"; cin >> x >> y; cout << subtrair(x, y); cout << "Digite os valores para multiplicar:n"; cin >> x >> y; cout << multiplicar(x, y); cout << "Digite os valores para dividir:n"; cin >> x >> y; cout << dividir(x, y); } Chamando uma função double somar(double x, double y) { double resultado = x + y; return resultado; } double subtrair(double x, double y) { double resultado = x - y; return resultado; } double multiplicar(double x, double y) { double resultado = x * y; return resultado; } double dividir(double x, double y) { double resultado = x / y; return resultado; } Prof. Thomás da Costa Programação Estruturada II
  • 13. Modularização e Funções Funções Chamando uma função: Chamando a função “somar” passando os parâmetros 10 e 15 Retornando o valor para a variável “valor” Protótipo da função #include <iostream> using namespace std; double somar(double x, double y); int main() { double valor; valor = somar(10,15); } ... Prof. Thomás da Costa Programação Estruturada II
  • 14. Modularização e Funções Funções Chamando uma função: - Para executar uma função, devemos colocar o nome da função seguido dos parâmetros - Nos parâmetros podemos passar um valor especifico ou uma variável - Devemos respeitar o tipo passado nos parâmetros das funções. Ex: se o parâmetro for int, devemos passar um tipo int. Se for passado o tipo incorreto no parâmetro, o programa não compila. - Caso a função retorne algum valor, podemos atribuir diretamente a uma variável - Quando uma função não tem parâmetros, abrimos e fechamos parênteses - void faz a função retornar nenhum valor Prof. Thomás da Costa Programação Estruturada II
  • 15. Modularização e Funções Funções Retorno da função: Quando o tipo de retorno da função é diferente do tipo void, a função devolve algum valor para alguma variável. Para efetuar este tipo de operação utilizamos a palavra reservada return seguido de um valor ou uma variável. Retorno da função Retorno da função na variável “resultado” #include <iostream> using namespace std; int par_ou_impar(int numero); int main() { int numero, resultado; cout << "Digite um número:n"; cin >> numero; resultado = par_ou_impar(numero); if (resultado == 0) cout << "Par"; else cout << "Impar"; } int par_ou_impar(int numero) { int valor = numero % 2; return valor; } Prof. Thomás da Costa Programação Estruturada II
  • 16. Modularização e Funções Funções Tipo void: A palavra reservada void não efetua nenhum retorno para a função. Retorno da função do tipo void Função não retorna um valor #include <iostream> using namespace std; void imprime_idade(int idade); int main() { int idade; cout << "Digite a sua idade:n"; cin >> idade; imprime_idade(idade); } void imprime_idade(int idade) { cout << "Sua idade é: " << idade; } Prof. Thomás da Costa Programação Estruturada II
  • 17. Modularização e Funções Funções Usando return em uma função void: O return em uma função void, interrompe a execução do código. #include <iostream> using namespace std; void dividir(int x, int y); int main() { int x, y; cout << "Digite os valores para dividir:n"; cin >> x >> y; dividir(x, y); } void dividir(int x, int y) { if (y == 0) { cout << "Não dividirás por zero"; return; } cout << "Valor da Divisão:" << x / y; } Não existe divisão por zero Terminando a execução da função com return Este código não vai ser executado Prof. Thomás da Costa Programação Estruturada II
  • 18. Modularização e Funções Resumo: - Possuem um nome - Podem possuir um retorno ou não - Tem parâmetros com tipo e nome, separados por virgulas - A função tem um corpo, aonde é definido e escrito oque a função vai executar - Tem um protótipo para definir a função - São reutilizáveis - Ajuda a deixar o código mais simples - Funções quando usadas corretamente deixa muito mais fácil o entendimento do programa - Organização do código - Retornam valores com a palavra reservada return - void é tipo que não retorna valor na função Funções Prof. Thomás da Costa Programação Estruturada II
  • 19. Modularização e Funções Prof. Thomás da Costa Programação Estruturada II
  • 20. Modularização e Funções Exemplo – Imprime na tela: Funções #include <iostream> using namespace std; void imprimir(); int main() { imprimir(); } void imprimir() { char valor[10]; cout << "Digite algo:n"; gets(valor); cout << valor; } Prof. Thomás da Costa Programação Estruturada II
  • 21. Modularização e Funções Exemplo – Quadrado: Funções #include <iostream> using namespace std; int quadrado(int x); int main() { int x; cout << "Digite um numero:n"; cin >> x; cout << "Quadrado de " << x << " é " << quadrado(x); } int quadrado(int x) { return x * x; } Prof. Thomás da Costa Programação Estruturada II
  • 22. Modularização e Funções Exemplo – Conversor de Moedas: Funções #include <iostream> using namespace std; const double VALOR_DOLAR = 2.7; void converte_real_dolar(double real); int main() { double valor_real; cout << "Valor em reais:"; cin >> valor_real; converte_real_dolar(valor_real); } void converte_real_dolar(double real) { if (real < 0) { cout << "O valor não pode ser menor que zero"; return; } cout << "Valor convertido: " << real * VALOR_DOLAR; } Prof. Thomás da Costa Programação Estruturada II
  • 23. Modularização e Funções Exemplo – Calculadora: Funções #include <iostream> using namespace std; double somar(double x, double y); double subtrair(double x, double y); double multiplicar(double x, double y); double dividir(double x, double y); int main() { double x, y; cout << "Digite os valores para somar:n"; cin >> x >> y; cout << somar(x, y); cout << "Digite os valores para subtrair:n"; cin >> x >> y; cout << subtrair(x, y); cout << "Digite os valores para multiplicar:n"; cin >> x >> y; cout << multiplicar(x, y); cout << "Digite os valores para dividir:n"; cin >> x >> y; cout << dividir(x, y); } double somar(double x, double y) { double resultado = x + y; return resultado; } double subtrair(double x, double y) { double resultado = x - y; return resultado; } double multiplicar(double x, double y) { double resultado = x * y; return resultado; } double dividir(double x, double y) { double resultado = x / y; return resultado; } Prof. Thomás da Costa Programação Estruturada II
  • 24. Modularização e Funções O que é: No caso da linguagem C++, escopo de variáveis é o ciclo de vida de um tipo de dado e como ele pode ser acessado pelo programa principal e suas funções. Escopo de Variáveis Prof. Thomás da Costa Programação Estruturada II
  • 25. Modularização e Funções Exemplo: Escopo de Variáveis Prof. Thomás da Costa Programação Estruturada II #include <iostream> using namespace std; int global = 0; void escopo(int x); int main() { int a = 1; { int b = 1; cout << "Escopo mais interno: " << b << endl; } escopo(100); cout << "Escopo local: " << a << endl; } void escopo(int x) { cout << "Escopo local: " << x << endl; cout << "Escopo global: " << global << endl; } Variável global, ou seja, pode ser acessada em qualquer lugar do programa Variável b pode ser acessada somente neste trecho Chaves definem um escopo
  • 26. Modularização e Funções O que é: É quando uma variável é passada como parâmetro de uma função, e seu valor original não é alterado. Somente o valor da sua cópia pode ser alterado dentro da função. Parâmetros Por Valor Prof. Thomás da Costa Programação Estruturada II
  • 27. #include <iostream> using namespace std; void troca(int a, int b); int main() { int a = 10; int b = 20; troca(a, b); cout << "Valor de A e B não foi alterado:" << a << b << endl; } void troca(int a, int b) { a = b; b = a + 100; cout << "Valor de A e B: " << a << b << endl; } Modularização e Funções Exemplo: Parâmetros Por Valor Prof. Thomás da Costa Programação Estruturada II Variáveis a e b tem valor 10 e 20 Variáveis a e b continuam com o mesmo valor 10 e 20 Trocamos o valor de a com b dentro da função
  • 28. Modularização e Funções Parâmetros Por Referência Prof. Thomás da Costa Programação Estruturada II O que é: É quando uma variável é passada como parâmetro de uma função, e seu valor original pode ser alterado.
  • 29. #include <iostream> using namespace std; void troca(int &a, int &b); int main() { int a = 10; int b = 20; cout << "Valor de A e B original:" << a << "-" << b << endl; troca(a, b); cout << "Valor de A e B FOI alterado:" << a << "-" << b << endl; } void troca(int &a, int &b) { int temp; temp = b; b = a; a = temp; } Modularização e Funções Exemplo: Parâmetros Por Referência Prof. Thomás da Costa Programação Estruturada II Variáveis a e b tem valor 10 e 20 Variáveis a e b mudam de valor Trocamos o valor de a com b dentro da função Referencia endereço de memória
  • 30. Modularização e Funções Exemplo: Parâmetros do Tipo String Prof. Thomás da Costa Programação Estruturada II #include <iostream> #include <string.h> using namespace std; int validar_senha(char *senha); int main() { char senha[10]; cout << "Digite a senha:" << endl; gets(senha); validar_senha(senha); } int validar_senha(char *senha) { if (strcmp(senha, "entrar123") == 0) { cout << "Senha OK"; return 0; } else { cout << "Senha inválida"; return 1; } } Passando uma string como parâmetro devemos colocar o sinal ( * )
  • 31. Modularização e Funções Exemplo: Parâmetros do Tipo Vetor Prof. Thomás da Costa Programação Estruturada II #include <iostream> #include <string.h> using namespace std; void imprime_vetor(int *valores); int main() { int valores[10] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29}; imprime_vetor(valores); } void imprime_vetor(int *valores) { for (int i=0;i<=9;i++) { cout << "valores[" << i << "] :" << valores[i] << endl; } } Passando um vetor como parâmetro devemos colocar o sinal ( * ) CUIDADO: alterar o vetor dentro da função, modifica o valor que foi passado como parâmetro
  • 32. Modularização e Funções Para pensar: Podemos ter funções com o mesmo nome ? Sim podemos !!! Desde que as funções possuam parâmetros diferentes uma da outra. Essa técnica é chamada de sobrecarga. Sobrecarga de funções Prof. Thomás da Costa Programação Estruturada II Para acontecer a sobrecarga: - Tipos de parâmetros diferentes - Quantidades de parâmetros
  • 33. Modularização e Funções Exemplo: Sobrecarga de funções Prof. Thomás da Costa Programação Estruturada II #include <iostream> #include <string.h> using namespace std; void imprime_vetor(char *valores); void imprime_vetor(int *valores); void imprime_vetor(int *valores, int tamanho); int main() { int valores[10] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29}; char nome[10] = {'a','n','h','a','n','g','u','e','r','a'}; imprime_vetor(nome); imprime_vetor(valores); imprime_vetor(valores, 10); } Continua -> Funções com o mesmo nome e parâmetros diferentes
  • 34. Modularização e Funções Exemplo - Continuação: Sobrecarga de funções Prof. Thomás da Costa Programação Estruturada II void imprime_vetor(char *valores) { cout << "void imprime_vetor(char *valores)" << endl; for (int i=0;i<=9;i++) { cout << "valores[" << i << "] :" << valores[i] << endl; } } void imprime_vetor(int *valores) { cout << "void imprime_vetor(int *valores)" << endl; for (int i=0;i<=9;i++) { cout << "valores[" << i << "] :" << valores[i] << endl; } } void imprime_vetor(int *valores, int tamanho) { cout << "void imprime_vetor(int *valores, int tamanho)" << endl; for (int i=0;i<tamanho;i++) { cout << "valores[" << i << "] :" << valores[i] << endl; } }
  • 35. Modularização e Funções Exemplo: Valores Default Prof. Thomás da Costa Programação Estruturada II #include <iostream> using namespace std; double media(double b1 = 0, double b2 = 0); int main() { cout << "Media Default:" << media() << endl; cout << "Media Aluno:" << media(6.5, 6.5) << endl; } double media(double b1, double b2) { return (b1 + b2) / 2; } Valores pré-definidos na função é chamado de valores default
  • 36. Modularização e Funções Desenvolvendo uma Biblioteca !!!: Vamos criar uma biblioteca para ser utilizada em todos os nossos programas. A nossa biblioteca será chamada pela diretiva #include, como todas as outras do C++. Para criar um biblioteca: - Criar um projeto no Dev-C++ - Criar um arquivo .h com os protótipos das funções - Criar um arquivo .cpp com as definições das funções Bibliotecas Prof. Thomás da Costa Programação Estruturada II
  • 37. Modularização e Funções Vamos criar uma biblioteca matemática: Criando um projeto do Dev-C++: - File -> New Project - Console Application - Colocar em Name (nome do projeto) matematica Bibliotecas Prof. Thomás da Costa Programação Estruturada II
  • 38. Modularização e Funções Vamos criar uma biblioteca matemática: - Criar arquivo .h - Criar arquivo .cpp Bibliotecas Prof. Thomás da Costa Programação Estruturada II Arquivos da biblioteca .h e .cpp
  • 39. namespace matematica { double somar(double x, double y); double subtrair(double x, double y); double multiplicar(double x, double y); double dividir(double x, double y); } Modularização e Funções Arquivo .h: Bibliotecas Prof. Thomás da Costa Programação Estruturada II Namespace da biblioteca Os namespace´s servem para identificar uma biblioteca, tornando única dentro da aplicação e não entrar em conflito com outras bibliotecas
  • 40. #include <iostream> #include "matematica.h" using namespace std; namespace matematica { double somar(double x, double y) { return x + y; } double subtrair(double x, double y) { return x - y; } double multiplicar(double x, double y) { return x * y; } double dividir(double x, double y) { return x / y; } } Modularização e Funções Arquivo .cpp: Bibliotecas Prof. Thomás da Costa Programação Estruturada II Implementações das funções Namespace da biblioteca
  • 41. #include <iostream> #include "matematica.h" using namespace matematica; using namespace std; int main() { cout << "Somar:" << somar(2,2) << endl; cout << "Subtrair:" << subtrair(2,2) << endl; cout << "Multiplicar:" << multiplicar(2,2) << endl; cout << "Dividir:" << dividir(2,2) << endl; } Modularização e Funções Usando a biblioteca: Bibliotecas Prof. Thomás da Costa Programação Estruturada II Chamando as funções Namespace da biblioteca Incluindo a biblioteca no programa
  • 42. Modularização e Funções Obrigado !!! Prof. Thomás da Costa Programação Estruturada II