SlideShare a Scribd company logo
1 of 23
Download to read offline
Algoritmos e
Estruturas de Dados
Aula 7 e Aula 8
18 e 25/09/2012
Profª Ms. Engª Elaine Cecília Gatto
Unidade 6: Procedimentos e Funções
Curso de Bacharelado em Engenharia de Computação
Universidade do Sagrado Coração – USC
Bauru/SP
SubAlgoritmos
• DIVIDIR PARA CONQUISTAR:
• Método para resolução de problemas que consiste em dividir
  um problema, em problemas menores e mais fáceis de
  solucionar.
• PROJETO DESCENDENTE (TOP-DOWN DESIGN):
• Método de projetar a solução de um problema principal
  obtendo soluções de seus subproblemas.

• As partes em que se divide um programa devem ser
  desenvolvidas independentemente umas das outras
SubAlgoritmos
                   ALGORITMO
                    PRINCIPAL




SUBALGORITMO 1   SUBALGORITMO 2   SUBALGORITMO 3




                   PROGRAMA
                    PRINCIPAL




SUBPROGRAMA1     SUBPROGRAMA 2    SUBPROGRAMA 3
SubAlgoritmos
• Um subprograma/subalgoritmo pode ralizar as mesmas ações
  que um programa:

1. Aceitar dados
2. Realizar alguns cálculos
3. Devolver resultados

• Entretanto, um subprograma é utilizado por um programa
  para um propósito específico.
• O programa principal chama ou invoca um subprograma.
• O subprograma, quando invocado, obtém o controle, executa
  sua tarefa e devolve o controle ao programa principal.
• Existem dois tipos de subprogramas: FUNÇÕES e
  PROCEDIMENTOS.
SubAlgoritmos


  PROGRAMA                Chamada 1
   PRINCIPAL

---------------------
                        Retorno 1        SUBPROGRAMA
  ALGORITMO                Chamada 2   --------------------------

                                         SUBALGORITMO
                         Retorno 2
SubAlgoritmos

             Chamada 1
                         SUBPROGRAMA 1
             Retorno 1



             Chamada 2
PROGRAMA                 SUBPROGRAMA 2   SUBPROGRAMA 2.1
 PRINCIPAL   Retorno 2




                         SUBPROGRAMA 3
SubAlgoritmos: FUNÇÕES
•
SubAlgoritmos: FUNÇÕES
•
Declarando Funções
<tipo_de_resultado> função <nome_função> (lista_de_paramêtros)

(declarações locais)

início
       <ações> //corpo da função
       devolver (<expressão>)
fim_função
Declarando Funções
<tipo_de_resultado> função <nome_função> (lista_de_paramêtros)

(declarações locais)
                                         Tipo de resultado que a
                                         função retorna:
início
                                         inteiro, real, string, caracter,
       <ações> //corpo da função
                                         booleano, etc.
       devolver (<expressão>)
fim_função
Declarando Funções
<tipo_de_resultado> função <nome_função> (lista_de_paramêtros)

(declarações locais)
                                         Nome da função:

início                                   Dê um nome simples,
                                         objetivo e que te lembre o
       <ações> //corpo da função
                                         que está fazendo!
       devolver (<expressão>)
fim_função
Declarando Funções
<tipo_de_resultado> função <nome_função> (lista_de_parametros)

(declarações locais)
                                   Lista de Parâmetros:

início                             Parâmetros formais ou argumentos,
                                   com um ou mais argumentos
       <ações> //corpo da função
       devolver (<expressão>)      ({E|S|E/S} tipo_de_dadoA: parametro
fim_função                         1; {E|S|E/S} tipo_de_dadoB: parametro
                                   2; {E|S|E/S} tipo_de_dadoX: parametro
                                   x)

                                   Exemplo:
                                   inteiro funcao fatorial (E inteiro: n)
Declarando Funções
<tipo_de_resultado> função <nome_função> (lista_de_parametros)

(declarações locais)
                                          Declaração de Variáveis e
                                          Estruturas de Dados caso
início                                    necessário
       <ações> //corpo da função
       devolver (<expressão>)
fim_função
Declarando Funções
<tipo_de_resultado> função <nome_função> (lista_de_parametros)

(declarações locais)
                                          Instruções que constituem a
                                          definição da função e que
início                                    devem conter uma única
       <ações> //corpo da função          instrução;
       devolver (<expressão>)
fim_função
Declarando Funções
<tipo_de_resultado> função <nome_função> (lista_de_parametros)

(declarações locais)
                                          Esta expressão existe se a
início                                    função foi declarada com
       <ações> //corpo da função          valor de retorno e expressão
                                          no valor devolvido pela
       devolver (<expressão>)             função.
fim_função
                                          Exemplo: uma função do
                                          tipo inteiro deve retornar
                                          um resultado do tipo inteiro
Declarando Funções
Exemplo:

real função F(E real:x)
início
       devolver ( x/(1+x*x) )
fim_função

real função tan(E real:X)
início
       devolver (sem(x)/cos(x))
fim_função
Declarando Funções
• Parâmetros formas, fictícios ou mudos: são nomes de
  variáveis, de outras funções ou procedimentos e que
  somente são utilizados dentro do corpo da função.

• Parâmetros atuais: são os argumentos utilizados
  quando chamamos a função e que podem ser
  constantes, variáveis, expressões, valores de funções,
  nomes de funções ou procedimentos.
Ativando Funções
nome_função (lista_de_parametros_atuais)

nome_função: função que chama
lista_de_parametros_atuais: constantes, variáveis, expressões, valores
de funções, nomes de funções ou procedimentos;

Quando chamamos uma função, automaticamente se estabelece uma
correspondência entre os parâmetros formais e os atuais, e por este
motivo, a quantidade destes parâmetros devem ser idênticas na
chamada e na declaração da função.
Ativando Funções
Exemplo 1:

real : função potência ( E real : x; E inteiro: n)
var
         inteiro: i, y;
início
         y  1;
         desde i  1 até abs(n) fazer //estrutura for
                    y  y*x;
         fim_desde
         se n<0 então
                    y  1/y;
         fim_se
devolver(y);
fim_função
Ativando Funções
Exemplo 2:

algoritmo Elevar_a_Potencia;
var
        real : a, n;
inicio
        escreva(‘Digite um número positivo’);
        leia(n);
        escreva(‘Digite um expoente’);
        leia(a);
        escreva(‘N elevado a = ’, potencia(n, a) ); //chama a função
fim
real funcao potencia(E real: n, a)
inicio
        devolver(EXP(a * LN(n)));
fim_funcao
Ativando Funções
Exemplo 3:

inteiro funcao FATORIAL (E inteiro:n)
var
         inteiro: i, f; //advertência, segundo o resultado, f pode ser real
inicio
         f  1;
         desde i  1 até n fazer //for
                    f  f*1;
         fim_desde
         devolver(f);
fim_funcao
Ativando Funções
algoritmo funcao_fatorial;
var
        inteiro: x, y, numero;
inicio
        escreva(‘Digite um número inteiro e positivo’);
        leia(numero);
        x  fatorial(numero); //chama a função
        y  fatorial(5); //chama a função
        escreva(x,y);
Fim
Exercícios FUNÇÕES
1.   Projetar uma função para o cálculo do cubo de um número
2.   Projetar uma função para calcular o máximo divisor comum
3.   Projetar uma função para calcular o mínimo divisor comum
4.   Projetar uma função para calcular o seno
5.   Projetar uma função para calcular o cosseno
6.   Projetar uma função para calcular a tangente

More Related Content

What's hot

2 funcoes e estrutura de blocos
2   funcoes e estrutura de blocos2   funcoes e estrutura de blocos
2 funcoes e estrutura de blocosRicardo Bolanho
 
6 alocacao sequencial - pilhas
6   alocacao sequencial - pilhas6   alocacao sequencial - pilhas
6 alocacao sequencial - pilhasRicardo Bolanho
 
Paradigmas de Linguagens de Programacao - Aula #3
Paradigmas de Linguagens de Programacao - Aula #3Paradigmas de Linguagens de Programacao - Aula #3
Paradigmas de Linguagens de Programacao - Aula #3Ismar Silveira
 
Programando em python funcoes
Programando em python   funcoesProgramando em python   funcoes
Programando em python funcoessamuelthiago
 
Subalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca LopesSubalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca Lopesmarcosnem
 
Eeep aderson borges phpmysql 20112020 operadores em php
Eeep aderson borges phpmysql 20112020 operadores em phpEeep aderson borges phpmysql 20112020 operadores em php
Eeep aderson borges phpmysql 20112020 operadores em phpEliane Oliveira
 
Linguagem de Programação - aula 04
Linguagem de Programação - aula 04Linguagem de Programação - aula 04
Linguagem de Programação - aula 04Willian Carvalho
 
Aula7 sql basico_6por_pag
Aula7 sql basico_6por_pagAula7 sql basico_6por_pag
Aula7 sql basico_6por_paganacri
 
Programação funcional
Programação funcionalProgramação funcional
Programação funcionalNatan Mai
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesElaine Cecília Gatto
 
Revisão sobre ponteiros em C
Revisão sobre ponteiros em CRevisão sobre ponteiros em C
Revisão sobre ponteiros em CPablo Silva
 

What's hot (18)

SubProgramas
SubProgramasSubProgramas
SubProgramas
 
2 funcoes e estrutura de blocos
2   funcoes e estrutura de blocos2   funcoes e estrutura de blocos
2 funcoes e estrutura de blocos
 
Programas auxiliares
Programas auxiliaresProgramas auxiliares
Programas auxiliares
 
6 alocacao sequencial - pilhas
6   alocacao sequencial - pilhas6   alocacao sequencial - pilhas
6 alocacao sequencial - pilhas
 
Aula 4
Aula 4Aula 4
Aula 4
 
Paradigmas de Linguagens de Programacao - Aula #3
Paradigmas de Linguagens de Programacao - Aula #3Paradigmas de Linguagens de Programacao - Aula #3
Paradigmas de Linguagens de Programacao - Aula #3
 
Programando em python funcoes
Programando em python   funcoesProgramando em python   funcoes
Programando em python funcoes
 
Subalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca LopesSubalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca Lopes
 
Eeep aderson borges phpmysql 20112020 operadores em php
Eeep aderson borges phpmysql 20112020 operadores em phpEeep aderson borges phpmysql 20112020 operadores em php
Eeep aderson borges phpmysql 20112020 operadores em php
 
Linguagem C - Funções
Linguagem C - FunçõesLinguagem C - Funções
Linguagem C - Funções
 
Linguagem de Programação - aula 04
Linguagem de Programação - aula 04Linguagem de Programação - aula 04
Linguagem de Programação - aula 04
 
Programacao funcional
Programacao funcionalProgramacao funcional
Programacao funcional
 
Aula7 sql basico_6por_pag
Aula7 sql basico_6por_pagAula7 sql basico_6por_pag
Aula7 sql basico_6por_pag
 
Programação funcional
Programação funcionalProgramação funcional
Programação funcional
 
Intro funcoes(2)
Intro funcoes(2)Intro funcoes(2)
Intro funcoes(2)
 
Modularização
ModularizaçãoModularização
Modularização
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e Funções
 
Revisão sobre ponteiros em C
Revisão sobre ponteiros em CRevisão sobre ponteiros em C
Revisão sobre ponteiros em C
 

Similar to Aula 7 aed - sub algoritmos

aula intro de Python sobre Funcoes.pdf
aula intro de  Python sobre  Funcoes.pdfaula intro de  Python sobre  Funcoes.pdf
aula intro de Python sobre Funcoes.pdfGabrielEduardo16342
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturadadiogoa21
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcionalGabriel Schade Cardoso
 
RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxClaudia Ferlin
 
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)Filipe Chagas Ferraz
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03thomasdacosta
 
4º Aula do Grupo de estudos sobre funções
4º Aula do Grupo de estudos sobre funções4º Aula do Grupo de estudos sobre funções
4º Aula do Grupo de estudos sobre funçõesFellyph Cintra
 
LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09Carlos Santos
 
007 programando em python - funcoes
007   programando em python - funcoes007   programando em python - funcoes
007 programando em python - funcoesLeandro Barbosa
 
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlgoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlex Camargo
 
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlgoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlex Camargo
 
Funções em C - Prof. Yandre
Funções em C - Prof. YandreFunções em C - Prof. Yandre
Funções em C - Prof. Yandremarcosnem
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosMoises Omena
 
Estrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e FunçõesEstrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e FunçõesAdriano Teixeira de Souza
 
Tutorial formulas excell
Tutorial formulas excellTutorial formulas excell
Tutorial formulas excellgusmao2010
 

Similar to Aula 7 aed - sub algoritmos (20)

aula intro de Python sobre Funcoes.pdf
aula intro de  Python sobre  Funcoes.pdfaula intro de  Python sobre  Funcoes.pdf
aula intro de Python sobre Funcoes.pdf
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturada
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcional
 
Aula05-JavaScript
Aula05-JavaScriptAula05-JavaScript
Aula05-JavaScript
 
RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptx
 
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
 
Aula 4 | Funções
Aula 4 | Funções Aula 4 | Funções
Aula 4 | Funções
 
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
 
4º Aula do Grupo de estudos sobre funções
4º Aula do Grupo de estudos sobre funções4º Aula do Grupo de estudos sobre funções
4º Aula do Grupo de estudos sobre funções
 
LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09
 
007 programando em python - funcoes
007   programando em python - funcoes007   programando em python - funcoes
007 programando em python - funcoes
 
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlgoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
 
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlgoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
 
Funções em C - Prof. Yandre
Funções em C - Prof. YandreFunções em C - Prof. Yandre
Funções em C - Prof. Yandre
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
 
Programando em Python - Funções
Programando em Python -  FunçõesProgramando em Python -  Funções
Programando em Python - Funções
 
Excel VBA: Aula 8
Excel VBA: Aula 8Excel VBA: Aula 8
Excel VBA: Aula 8
 
Estrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e FunçõesEstrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e Funções
 
Tutorial formulas excell
Tutorial formulas excellTutorial formulas excell
Tutorial formulas excell
 

More from Elaine Cecília Gatto

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaElaine Cecília Gatto
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaElaine Cecília Gatto
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Elaine Cecília Gatto
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCElaine Cecília Gatto
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxElaine Cecília Gatto
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Elaine Cecília Gatto
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarElaine Cecília Gatto
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesElaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationElaine Cecília Gatto
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfElaine Cecília Gatto
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Elaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoElaine Cecília Gatto
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsElaine Cecília Gatto
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoElaine Cecília Gatto
 

More from Elaine Cecília Gatto (20)

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etaria
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPC
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptx
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCar
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label Classification
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamento
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 

Aula 7 aed - sub algoritmos

  • 1. Algoritmos e Estruturas de Dados Aula 7 e Aula 8 18 e 25/09/2012 Profª Ms. Engª Elaine Cecília Gatto Unidade 6: Procedimentos e Funções Curso de Bacharelado em Engenharia de Computação Universidade do Sagrado Coração – USC Bauru/SP
  • 2. SubAlgoritmos • DIVIDIR PARA CONQUISTAR: • Método para resolução de problemas que consiste em dividir um problema, em problemas menores e mais fáceis de solucionar. • PROJETO DESCENDENTE (TOP-DOWN DESIGN): • Método de projetar a solução de um problema principal obtendo soluções de seus subproblemas. • As partes em que se divide um programa devem ser desenvolvidas independentemente umas das outras
  • 3. SubAlgoritmos ALGORITMO PRINCIPAL SUBALGORITMO 1 SUBALGORITMO 2 SUBALGORITMO 3 PROGRAMA PRINCIPAL SUBPROGRAMA1 SUBPROGRAMA 2 SUBPROGRAMA 3
  • 4. SubAlgoritmos • Um subprograma/subalgoritmo pode ralizar as mesmas ações que um programa: 1. Aceitar dados 2. Realizar alguns cálculos 3. Devolver resultados • Entretanto, um subprograma é utilizado por um programa para um propósito específico. • O programa principal chama ou invoca um subprograma. • O subprograma, quando invocado, obtém o controle, executa sua tarefa e devolve o controle ao programa principal. • Existem dois tipos de subprogramas: FUNÇÕES e PROCEDIMENTOS.
  • 5. SubAlgoritmos PROGRAMA Chamada 1 PRINCIPAL --------------------- Retorno 1 SUBPROGRAMA ALGORITMO Chamada 2 -------------------------- SUBALGORITMO Retorno 2
  • 6. SubAlgoritmos Chamada 1 SUBPROGRAMA 1 Retorno 1 Chamada 2 PROGRAMA SUBPROGRAMA 2 SUBPROGRAMA 2.1 PRINCIPAL Retorno 2 SUBPROGRAMA 3
  • 9. Declarando Funções <tipo_de_resultado> função <nome_função> (lista_de_paramêtros) (declarações locais) início <ações> //corpo da função devolver (<expressão>) fim_função
  • 10. Declarando Funções <tipo_de_resultado> função <nome_função> (lista_de_paramêtros) (declarações locais) Tipo de resultado que a função retorna: início inteiro, real, string, caracter, <ações> //corpo da função booleano, etc. devolver (<expressão>) fim_função
  • 11. Declarando Funções <tipo_de_resultado> função <nome_função> (lista_de_paramêtros) (declarações locais) Nome da função: início Dê um nome simples, objetivo e que te lembre o <ações> //corpo da função que está fazendo! devolver (<expressão>) fim_função
  • 12. Declarando Funções <tipo_de_resultado> função <nome_função> (lista_de_parametros) (declarações locais) Lista de Parâmetros: início Parâmetros formais ou argumentos, com um ou mais argumentos <ações> //corpo da função devolver (<expressão>) ({E|S|E/S} tipo_de_dadoA: parametro fim_função 1; {E|S|E/S} tipo_de_dadoB: parametro 2; {E|S|E/S} tipo_de_dadoX: parametro x) Exemplo: inteiro funcao fatorial (E inteiro: n)
  • 13. Declarando Funções <tipo_de_resultado> função <nome_função> (lista_de_parametros) (declarações locais) Declaração de Variáveis e Estruturas de Dados caso início necessário <ações> //corpo da função devolver (<expressão>) fim_função
  • 14. Declarando Funções <tipo_de_resultado> função <nome_função> (lista_de_parametros) (declarações locais) Instruções que constituem a definição da função e que início devem conter uma única <ações> //corpo da função instrução; devolver (<expressão>) fim_função
  • 15. Declarando Funções <tipo_de_resultado> função <nome_função> (lista_de_parametros) (declarações locais) Esta expressão existe se a início função foi declarada com <ações> //corpo da função valor de retorno e expressão no valor devolvido pela devolver (<expressão>) função. fim_função Exemplo: uma função do tipo inteiro deve retornar um resultado do tipo inteiro
  • 16. Declarando Funções Exemplo: real função F(E real:x) início devolver ( x/(1+x*x) ) fim_função real função tan(E real:X) início devolver (sem(x)/cos(x)) fim_função
  • 17. Declarando Funções • Parâmetros formas, fictícios ou mudos: são nomes de variáveis, de outras funções ou procedimentos e que somente são utilizados dentro do corpo da função. • Parâmetros atuais: são os argumentos utilizados quando chamamos a função e que podem ser constantes, variáveis, expressões, valores de funções, nomes de funções ou procedimentos.
  • 18. Ativando Funções nome_função (lista_de_parametros_atuais) nome_função: função que chama lista_de_parametros_atuais: constantes, variáveis, expressões, valores de funções, nomes de funções ou procedimentos; Quando chamamos uma função, automaticamente se estabelece uma correspondência entre os parâmetros formais e os atuais, e por este motivo, a quantidade destes parâmetros devem ser idênticas na chamada e na declaração da função.
  • 19. Ativando Funções Exemplo 1: real : função potência ( E real : x; E inteiro: n) var inteiro: i, y; início y  1; desde i  1 até abs(n) fazer //estrutura for y  y*x; fim_desde se n<0 então y  1/y; fim_se devolver(y); fim_função
  • 20. Ativando Funções Exemplo 2: algoritmo Elevar_a_Potencia; var real : a, n; inicio escreva(‘Digite um número positivo’); leia(n); escreva(‘Digite um expoente’); leia(a); escreva(‘N elevado a = ’, potencia(n, a) ); //chama a função fim real funcao potencia(E real: n, a) inicio devolver(EXP(a * LN(n))); fim_funcao
  • 21. Ativando Funções Exemplo 3: inteiro funcao FATORIAL (E inteiro:n) var inteiro: i, f; //advertência, segundo o resultado, f pode ser real inicio f  1; desde i  1 até n fazer //for f  f*1; fim_desde devolver(f); fim_funcao
  • 22. Ativando Funções algoritmo funcao_fatorial; var inteiro: x, y, numero; inicio escreva(‘Digite um número inteiro e positivo’); leia(numero); x  fatorial(numero); //chama a função y  fatorial(5); //chama a função escreva(x,y); Fim
  • 23. Exercícios FUNÇÕES 1. Projetar uma função para o cálculo do cubo de um número 2. Projetar uma função para calcular o máximo divisor comum 3. Projetar uma função para calcular o mínimo divisor comum 4. Projetar uma função para calcular o seno 5. Projetar uma função para calcular o cosseno 6. Projetar uma função para calcular a tangente