SlideShare uma empresa Scribd logo
1 de 28
ANHANGUERA – 2016.1
ALGORITMOS E ESTRUTURA DE DADOS
AULA 03 – MODULARIZAÇÃO E FUNÇÕES
Prof. Thomás da Costa
thomascosta@aedu.com
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çõ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
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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;
}
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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;
}
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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);
}
...
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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;
}
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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;
}
MODULARIZAÇÃO E FUNÇÕES
ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa
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
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ência
O 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

Mais conteúdo relacionado

Mais procurados

Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
Alvaro Oliveira
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
Mauro Pereira
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
Mauro Pereira
 

Mais procurados (20)

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
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
 
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
Interface Homem Computador - Aula01- Introdução a IHC
Interface Homem Computador - Aula01- Introdução a IHCInterface Homem Computador - Aula01- Introdução a IHC
Interface Homem Computador - Aula01- Introdução a IHC
 
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
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de Algoritmos
 
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
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de Computadores
 
Lógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetiçãoLógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetição
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
 
Aula 4 - Estruturas condicionais
Aula 4 - Estruturas condicionaisAula 4 - Estruturas condicionais
Aula 4 - Estruturas condicionais
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Algoritmos - Procedimentos
Algoritmos - ProcedimentosAlgoritmos - Procedimentos
Algoritmos - Procedimentos
 
Algoritmo 04 - Estruturas de decisão
 Algoritmo 04 - Estruturas de decisão Algoritmo 04 - Estruturas de decisão
Algoritmo 04 - Estruturas de decisão
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 
Informática Básica
Informática BásicaInformática Básica
Informática Básica
 

Destaque

Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 Recursividade
Regis Magalhães
 

Destaque (17)

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 02
Algoritmos e Estrutura de Dados - Aula 02Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02
 
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
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05
 
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 Estruturada 2 - Aula 06 - Código Fonte
Programação Estruturada 2 - Aula 06 - Código FonteProgramação Estruturada 2 - Aula 06 - Código Fonte
Programação Estruturada 2 - Aula 06 - Código Fonte
 
Aula 02 Primeiro Cod Java
Aula 02   Primeiro Cod JavaAula 02   Primeiro Cod Java
Aula 02 Primeiro Cod Java
 
Estrutura de Dados - Aula 08
Estrutura de Dados - Aula 08Estrutura de Dados - Aula 08
Estrutura de Dados - Aula 08
 
Algoritmos e Técnicas de Programação - Aula 05
Algoritmos e Técnicas de Programação - Aula 05Algoritmos e Técnicas de Programação - Aula 05
Algoritmos e Técnicas de Programação - Aula 05
 
Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07
 
Lista funcões e recursividade
Lista funcões e recursividadeLista funcões e recursividade
Lista funcões e recursividade
 
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 Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06
 
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
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 Recursividade
 

Semelhante a Algoritmos e Estrutura de Dados - Aula 03

Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
apolllorj
 
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 Algoritmos e Estrutura de Dados - Aula 03 (20)

Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02
 
Funções inline e Recursivas
Funções inline e RecursivasFunções inline e Recursivas
Funções inline e Recursivas
 
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
 
JavaScript - A Linguagem
JavaScript - A LinguagemJavaScript - A Linguagem
JavaScript - A Linguagem
 
RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptx
 
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
 
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
 
PHP 5.3 - Funções
PHP 5.3 - FunçõesPHP 5.3 - Funções
PHP 5.3 - Funções
 
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
 
Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
095 A 134 Material Auxiliar Para Curso AvançAdo I Msp430
095 A 134   Material Auxiliar Para Curso AvançAdo I Msp430095 A 134   Material Auxiliar Para Curso AvançAdo I Msp430
095 A 134 Material Auxiliar Para Curso AvançAdo I Msp430
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
Javascript
Javascript Javascript
Javascript
 
Apostila de-arduino
Apostila de-arduinoApostila de-arduino
Apostila de-arduino
 
Funções em C
Funções em CFunções em C
Funções em C
 
2 funcoes e estrutura de blocos
2   funcoes e estrutura de blocos2   funcoes e estrutura de blocos
2 funcoes e estrutura de blocos
 
Aula05-JavaScript
Aula05-JavaScriptAula05-JavaScript
Aula05-JavaScript
 
Linguagem C - Funções
Linguagem C - FunçõesLinguagem C - Funções
Linguagem C - Funções
 

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
 
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
 
Programação Concorrente - Aula 05
Programação Concorrente - Aula 05Programação Concorrente - Aula 05
Programação Concorrente - Aula 05
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Java
 
Programação Concorrente - Aula 04
Programação Concorrente - Aula 04Programação Concorrente - Aula 04
Programação Concorrente - Aula 04
 
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
 
Programação Concorrente - Aula 03
Programação Concorrente - Aula 03Programação Concorrente - Aula 03
Programação Concorrente - Aula 03
 
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
 
Programação Concorrente - LAB 01
Programação Concorrente - LAB 01Programação Concorrente - LAB 01
Programação Concorrente - LAB 01
 

Algoritmos e Estrutura de Dados - Aula 03

  • 1. ANHANGUERA – 2016.1 ALGORITMOS E ESTRUTURA DE DADOS AULA 03 – MODULARIZAÇÃO E FUNÇÕES Prof. Thomás da Costa thomascosta@aedu.com
  • 2. ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa MODULARIZAÇÃO E FUNÇÕES MODULARIZAÇÃO E FUNÇÕES
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa CALCULADORA 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
  • 9. ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa 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 MODULARIZAÇÃO E FUNÇÕES
  • 10. ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa 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; } MODULARIZAÇÃO E FUNÇÕES
  • 11. ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa 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 MODULARIZAÇÃO E FUNÇÕES
  • 12. ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa 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; } MODULARIZAÇÃO E FUNÇÕES
  • 13. ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa 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); } ... MODULARIZAÇÃO E FUNÇÕES
  • 14. ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa 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 MODULARIZAÇÃO E FUNÇÕES
  • 15. ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa 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; } MODULARIZAÇÃO E FUNÇÕES
  • 16. ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa 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; } MODULARIZAÇÃO E FUNÇÕES
  • 17. ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa 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 MODULARIZAÇÃO E FUNÇÕES
  • 18. 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
  • 19. ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa MODULARIZAÇÃO E FUNÇÕES
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa Parâmetros Por Referência O 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
  • 27. 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