ANHANGUERA – 2016.1
ALGORITMOS E ESTRUTURA DE DADOSAULA 03 – MODULARIZAÇÃO E FUNÇÕES
Prof. Thomás da [email protected]
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
MODULARIZAÇÃO E FUNÇÕES
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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.
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
CALCULADORA
FunçõesPara 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
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
FunçõesComo 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
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
FunçõesEstrutura 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;
}
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
FunçõesEstrutura 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
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
FunçõesComo 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;
}
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
FunçõesChamando 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);
}
...
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
FunçõesChamando 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
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
FunçõesRetorno 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";
elsecout << "Impar";
}
int par_ou_impar(int numero){
int valor = numero % 2;return valor;
}
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
FunçõesTipo 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;}
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
FunçõesUsando 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
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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;
}
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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;}
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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;}
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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;
}
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
#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;
}
Exemplo:Parâmetros Por Valor
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
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
Parâmetros Por ReferênciaO que é:
É quando uma variável é passada como parâmetro de uma função, e seu valor original pode ser alterado.
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
#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;
}
Exemplo:Parâmetros Por Referência
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
Obrigado !!!
ANHANGUERA – 2016.1
Top Related