SlideShare une entreprise Scribd logo
1  sur  83
SUBprogramaS2011
Tópicos que pretendemos abordar ! Introdução Características gerais Definições básicas Entradas de subprogramas  Procedimentos e funções Passagem de Parâmetros Subprogramas SobreCarregagos Subprogramas Genéricos
INTRODUÇÃO ,[object Object]
 Para facilitar a solução é possível dividir um grande problema em problemas menores.,[object Object]
Um subprograma, é um nome dado a um trecho de um programa mais complexo e que, em geral,    encerra em si próprio um pedaço da solução de um problema maior (o programa a que ele está subordinado).,[object Object]
Reutilização.
Defeitos podem ser evitados, pois a replicação de código pode levar a modificações incompletas.
Aumento da legibilidade de um programa.
Abstração
Facilita o design de algoritmos, pois um problema é dividido em subproblemas,[object Object]
Características  gerais ,[object Object]
 Toda unidade de programa chamadora é suspensa durante a execução do subprograma chamado.
Existe um único subprograma em execução em qualquer momento dado (unidade de programa chamadora)
O controle sempre retorna ao chamador quando a execução do subprograma encerra-se.,[object Object]
Existe Excessão? SIM NÃO
DEFINIÇÕES BÁSICAS Definição de subprograma ,[object Object],Chamada a subprograma:  ,[object Object],Subprograma ativo:  ,[object Object],[object Object]
 Oferece um nome para o subprograma.
Especifica a lista de parâmetros.<palavra especial><nome>(parâmetros):(retorno)
DEFINIÇÕES  BÁSICAS Perfil dos parâmetros   	É a lista de parâmetros formais, incluindo o número, ordem e seus tipos.                     Muito interessante em subprogramas sobrecarregados. „Protocolo  	É o  seu perfil de parâmetros, e no caso de função, conjuntamente com o tipo de retorno.  „ Declaração  	Protótipo fornece o protocolo mas não o corpo do subprograma.
ENTRADAS DE SUBPROGRAMAS ,[object Object]
Computação ocorre em diferentes dados atribuindo novos valores às variáveis não-locais.
Reduz confiabilidade
Passagem de parâmetros
Dados são acessados por nomes locais.
Mais flexível – computação parametrizada
Preocupação com o método de acesso,[object Object]
 Freqüentemente se veicula ao armazenamento somente quando o subprograma é chamado.
Vinculo gerado pela variável do programa.,[object Object]
Representa o valor (ou endereço) das variáveis ou constantes, utilizadas no ponto de invocação do subprograma.,[object Object]
  1º parâmetro atual é vinculado ao 1º parâmetro formal e assim por diante.
Vantagem
Ordem dos parâmetros é irrelevante;
Desvantagem
Programador tem de conhecer os nomes dos identificadores dos parâmetros formais.Ex: Visual Basic: ShowMesg(Mesg:="Hello World", MyArg1:=7)
VALORES  POR  OMISSÃO ,[object Object]
Valores por omissão existem em:
Exemplo em C++: // calculo do valor máximo de 1, 2 ou 3 nº positivos Protótipo:  intmaximo(int x,int y=0,int z=0); Invocação:  cout << maximo(5) << maximo(5, 7); cout << maximo(4, 8, 9); ,[object Object],[object Object]
Definem novas instruções, como, por exemplo, Pascal não possui uma instrução de classificação
Podem produzir resultados no chamador por meio de
Variáveis não-locais.
Parâmetros formais que 	permitem a transferência 	de dados ao chamador,[object Object]
Procedimentos e funções existem no java? V V
QUER DIZER QUE VOID NÃO RETORNA NADA? V F Publicvoid  teste() { 	System.out.Println(“Só testando”); return; }
Ambientes de Referência local ,[object Object]
Acesso fica restrito apenas ao subprograma que a declarou.
 Variáveis Locais
Elas podem ser estáticas ou dinâmicas.,[object Object]
Acesso direto
Não exige alocação e desalocação.
Mais eficiente.
Desvantagens
Não permite recursividade.
 Uma vez criada, o espaço de memória que ela ocupa não pode mais ser  alterado
A alocação de memória para esse tipo de variável é feita antes da execução  do programa.
Área de memória ocupada por ela se mantém constante durante toda a execução
Variáveis que existem o tempo todo.,[object Object]
Ambientes de Referência local Algumas linguagens que permitem ambiente estático: „ 	 „ „  Algumas Linguagens que permitem ambiente de Pilha dinâmica: „
Exemplo no caso do C ou C++  int somador (intlist [ ], intlistlen) { staticint soma = 0; intcont; 	for (cont = 0; cont < listlen; cont ++) 		soma += list [cont]; return soma; } ,[object Object]
Só para lembra no java isso NÃO pode!!!! ,[object Object]
Modelo Semântico de Passagem de Parâmetros ,[object Object]
Modo de entrada (in mode)
eles podem somente receber dados dos parâmetros reais correspondentes
Modo de saída (out mode)
eles podem somente transmitir dados dos parâmetros reais correspondentes
„Modo entrada/saída (inoutmode)
podem fazer ambos,[object Object]
Modelos Implementação de Passagem de Parâmetros ,[object Object],dos  três modelos  básicos de transmissão de parâmetros. ,[object Object]
 Passagem por resultado
 Passagem por valor-resultado
 Passagem por referência
 Passagem por nome,[object Object]
Cópia física - o parâmetro REAL é avaliado e o seu valor é copiado para o parâmetro formal.
 Operações de armazenamento e de transferência pode ser custosa se o parâmetro for grande (array longo),[object Object]
Nenhum valor é transmitido para o subprograma.
Logicamente é um modelo de implementação do modo saída.
O parâmetro FORMAL age como variável local, mas seu valor é passado para o parâmetro real ( variável) da chamada.
Problema
Tempo e espaço de memória.  (Passagem por Valor)
Colisão de parâmetros atuais. Ex.: sub(p1, p1).			No retorno: x é atribuído à p1, y é atribuído à p1 			A ordem da atribuição determina o valor de p1
Passagem por Valor-Resultado ,[object Object]
Valor do parâmetro real é usado para inicializar o parâmetro formal, que age como variável local.
Parâmetros formais devem ter armazenamento local associado ao subprogama.
No fim o valor do parâmetro formal é transmitido de volta para o parâmetro real.

Contenu connexe

Tendances

Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
Regis Magalhães
 
Logica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A LogicaLogica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A Logica
Regis Magalhães
 
Variaveis locais e globais
Variaveis locais e globaisVariaveis locais e globais
Variaveis locais e globais
111111119
 

Tendances (20)

Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
 
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de VariaveisAlgoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
 
Algoritmo recursivo
Algoritmo recursivoAlgoritmo recursivo
Algoritmo recursivo
 
Linguagem C - Estruturas
Linguagem C - EstruturasLinguagem C - Estruturas
Linguagem C - Estruturas
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)
 
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
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
Pascal
PascalPascal
Pascal
 
Proteção e segurança de sistemas operacionais
Proteção e segurança de sistemas operacionaisProteção e segurança de sistemas operacionais
Proteção e segurança de sistemas operacionais
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
Prática de laboratório utilizando views, stored procedures e triggers
Prática de laboratório   utilizando views, stored procedures e triggersPrática de laboratório   utilizando views, stored procedures e triggers
Prática de laboratório utilizando views, stored procedures e triggers
 
A Linguagem sql
A Linguagem sqlA Linguagem sql
A Linguagem sql
 
Logica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A LogicaLogica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A Logica
 
Introdução à Lógica de Programação
Introdução à Lógica de ProgramaçãoIntrodução à Lógica de Programação
Introdução à Lógica de Programação
 
Banco de Dados - Sistemas de Gerenciamento de Banco de Dados
Banco de Dados - Sistemas de Gerenciamento de Banco de DadosBanco de Dados - Sistemas de Gerenciamento de Banco de Dados
Banco de Dados - Sistemas de Gerenciamento de Banco de Dados
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Variaveis locais e globais
Variaveis locais e globaisVariaveis locais e globais
Variaveis locais e globais
 

En vedette

Aula 12 - Exercícios vetores unidimensionais
Aula 12 - Exercícios vetores unidimensionaisAula 12 - Exercícios vetores unidimensionais
Aula 12 - Exercícios vetores unidimensionais
Pacc UAB
 
Aula 13 - Matrizes
Aula 13 - MatrizesAula 13 - Matrizes
Aula 13 - Matrizes
Pacc UAB
 

En vedette (14)

Aula c++ estruturas de dados
Aula c++   estruturas de dadosAula c++   estruturas de dados
Aula c++ estruturas de dados
 
Apresentação c++ UFC-Quixadá
Apresentação c++ UFC-QuixadáApresentação c++ UFC-Quixadá
Apresentação c++ UFC-Quixadá
 
Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++
 
Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )
 
599026
599026599026
599026
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
 
TRABALHO PARADIGMAS - C++
TRABALHO PARADIGMAS - C++TRABALHO PARADIGMAS - C++
TRABALHO PARADIGMAS - C++
 
Aula 12 - Exercícios vetores unidimensionais
Aula 12 - Exercícios vetores unidimensionaisAula 12 - Exercícios vetores unidimensionais
Aula 12 - Exercícios vetores unidimensionais
 
Presentation on C++ Programming Language
Presentation on C++ Programming LanguagePresentation on C++ Programming Language
Presentation on C++ Programming Language
 
Aula1 c++ builder
Aula1   c++ builderAula1   c++ builder
Aula1 c++ builder
 
Aula 13 - Matrizes
Aula 13 - MatrizesAula 13 - Matrizes
Aula 13 - Matrizes
 
C++ Funções
 C++ Funções C++ Funções
C++ Funções
 
C++ Presentation
C++ PresentationC++ Presentation
C++ Presentation
 
C++ programming
C++ programmingC++ programming
C++ programming
 

Similaire à SubProgramas

Linguagens de programação 12º M12
Linguagens de programação 12º M12Linguagens de programação 12º M12
Linguagens de programação 12º M12
Luis Ferreira
 
Lista exercicios algoritmos
Lista exercicios algoritmosLista exercicios algoritmos
Lista exercicios algoritmos
slashmelhor
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
Carlos Santos
 
Recursividade em linguagem C
Recursividade em linguagem CRecursividade em linguagem C
Recursividade em linguagem C
Leonardo Lima
 

Similaire à SubProgramas (20)

Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Subalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca LopesSubalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca Lopes
 
Funções em C
Funções em CFunções em C
Funções em C
 
Aula 4
Aula 4Aula 4
Aula 4
 
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdfAula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
 
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
 
Linguagens de programação 12º M12
Linguagens de programação 12º M12Linguagens de programação 12º M12
Linguagens de programação 12º M12
 
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 e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
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
 
Desenvolvimento de função se37
Desenvolvimento de função se37Desenvolvimento de função se37
Desenvolvimento de função se37
 
Lista exercicios algoritmos
Lista exercicios algoritmosLista exercicios algoritmos
Lista exercicios algoritmos
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
 
Cap03
Cap03Cap03
Cap03
 
Cap03
Cap03Cap03
Cap03
 
Cap03
Cap03Cap03
Cap03
 
Principios e paradigmas_de_computacao2
Principios e paradigmas_de_computacao2Principios e paradigmas_de_computacao2
Principios e paradigmas_de_computacao2
 
Atualização Java 8 (2014)
Atualização Java 8 (2014)Atualização Java 8 (2014)
Atualização Java 8 (2014)
 
Recursividade em linguagem C
Recursividade em linguagem CRecursividade em linguagem C
Recursividade em linguagem C
 

Dernier

Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
azulassessoria9
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
Autonoma
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 

Dernier (20)

Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União Europeia
 
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdfMESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
aprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubelaprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubel
 
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .ppt
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
Acessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidadeAcessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidade
 
AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa para
 

SubProgramas