SlideShare uma empresa Scribd logo
Algoritmos e Linguagem
de Programação
Professor: Mauro Jansen

Parte 5 – Sub-algoritmos

09/11/2010
Introdução
Conforme a complexidade dos problemas, os
algoritmos tornam-se mais extensos e difíceis de
acompanhar
Solução: Dividir para conquistar

Nesses casos (e mesmo em problemas mais
simples) é importante dividirmos a tarefa de
resolução do problema em tarefas menores
chamados MÓDULOS ou SUB-ALGORITMOS
Cada parte (módulo) do algoritmo fica
responsável por uma determinada parte do
processo e o conjunto de módulos resolve o
problema principal
Prof. Mauro

Algoritmos e Ling.de Programação
Sub-algoritmos

2
Conceito
Sub-algoritmos, sub-rotinas, subprogramas ou módulos são blocos de
instruções que realizam tarefas específicas
Cada sub-algoritmo é um trecho do algoritmo
completo e resolve uma parte do problema
Os algoritmos podem também ser
REUTILIZADO na solução de outros problemas

Prof. Mauro

Algoritmos e Ling.de Programação
Sub-algoritmos

3
Funcionamento
Um algoritmo completo é dividido em:
UM Algoritmo principal
Diversos Sub-algoritmos

A execução sempre começa pelo algoritmo
principal
A execução de um subalgoritmo é solicitada
sempre que necessário, através de uma
chamada ou invocação.
Quando um subalgoritmo é chamado, a execução
do algoritmo principal é interrompida para que o
subalgoritmo seja executado. Após isso, o
algoritmo principal continua de onde parou
Prof. Mauro

Algoritmos e Ling.de Programação
Sub-algoritmos

4
Funcionamento (ilustração)
Algoritmo Principal
instrução 1
instrução 2
Subalgoritmo 1
instrução 3

Subalgoritmo 1
instrução 1
Subalgoritmo 2
instrução 2

Subalgoritmo 2
instrução 1
instrução 2

Prof. Mauro

A execução inicial aqui e segue a sequência das
instruções.
A execução do Algoritmo Principal é interrompida até
que o Subalgoritmo 1 seja executado, continuando em
seguida a partir da instrução 3.
Executado no momento em que é invocado pelo
Algoritmo Principal.
A execução do Subalgoritmo 1 é interrompida até que o
Subalgoritmo 2 seja executado, continuando em
seguida a partir da instrução 2.
Executado no momento em que é invocado pelo
Subalgoritmo 1.
Terminada a execução, volta para continuar o
Subalgoritmo 1. Quando terminar o Subalgoritmo 1,
volta para continuar com a execução do Algoritmo
Principal.
Algoritmos e Ling.de Programação
Sub-algoritmos

5
Funcionamento (ilustração)
A execução pode ser visualizada como segue:
Algoritmo Principal
instrução 1
instrução 2

Subalgoritmo 1
instrução 1

Subalgoritmo 2
instrução 1
instrução 2
instrução 2
instrução 3

Prof. Mauro

Algoritmos e Ling.de Programação
Sub-algoritmos

6
Variáveis Locais e Variáveis Globais
Variáveis Globais são declaradas no início do algoritmo
e pode ser usadas no algoritmo principal e por todos os
subalgoritmos.
Variáveis Locais são definidas dentro de um
subalgoritmo e só podem ser utilizadas dentro dele.
As variáveis A e B são globais
e podem ser usadas por
qualquer subalgoritmo

A, B: Real
instrução 1
instrução 2

Subalgoritmo 1

Subalgoritmo 2

X, Y: Inteiro
instrução 1
instrução 2

num: Inteiro
instrução 1
instrução 2

As variáveis X e Y só podem
ser utilizadas no subalgoritmo
1 e a variável num só pode ser
utilizada no subalgoritmo 2.

instrução 3
Prof. Mauro

Algoritmos e Ling.de Programação
Sub-algoritmos

7
Tipos de sub-algoritmos
Existem dois tipos de sub-algoritmos:
PROCEDIMENTOS
FUNÇÕES

Prof. Mauro

Algoritmos e Ling.de Programação
Sub-algoritmos

8
Procedimentos
PROCEDIMENTO é um sub-algoritmo que
não retorna valor ao algoritmo chamador
ou que retorna dois ou mais valores
A chamada de procedimentos só pode ser feita
com uma linha de comando isolada dentro do
algoritmo
Se retornar valores, o retorno é feito por meio
de parâmetros ou variáveis globais

Exemplos: solicita_valores, lista_resultados
Prof. Mauro

Algoritmos e Ling.de Programação
Sub-algoritmos

9
Funções
FUNÇÃO é um sub-algoritmo que calcula um
valor a partir de outros fornecidos a ela,
retornando o valor calculado
A chamada a uma função sempre ocorre dentro de
uma expressão do mesmo tipo que tem o valor
retornado por ela.
Sua chamada é feita pelo seu nome, seguido de seus
respectivos parâmetros entre parênteses.
A função é executada e, ao seu término, o trecho do
comando que a invocou é substituído pelo valor
retornado

Exemplos: primo(<número>), fatorial(<número>)
Prof. Mauro

Algoritmos e Ling.de Programação
Sub-algoritmos

10
Parâmetros e retorno
Os parâmetros possibilitam a comunicação entre um
subalgoritmo e o algoritmo chamador.
Corresponde aos dados que são passados ao subalgoritmo pelo
algoritmo chamador.
A passagem de dados para procedimentos e funções se dá da
mesma forma.

Retorno de Dados
No caso dos procedimentos os dados são retornados através dos
parâmetros.
No caso das funções, o retorne se dá pelo comando Retorne.
Retorne <expressão>
Ao encontrar este comando, a expressão é retornada ao chamador e
a função é terminada.

Prof. Mauro

Algoritmos e Ling.de Programação
Sub-algoritmos

11
Parâmetros e retorno
A passagem de parâmetros pode se dar de duas formas:
Por valor: neste caso é passada uma cópia do
conteúdo de uma variável. Essa cópia só existirá no
procedimento ou na função.
Qualquer alteração que for feita no valor, não irá alterar
o conteúdo da variável original.

Por referência: não existe cópia do conteúdo
enviado, o que ocorre é o envio do endereço de
memória onde a variável se encontra.
Neste caso, qualquer alteração no valor alterará o valor
da variável original.

Prof. Mauro

Algoritmos e Ling.de Programação
Sub-algoritmos

12
Declarando sub-algoritmos
O NOME dos sub-algoritmo deve seguir as
mesmas regras para definição de nomes
de variáveis
Sempre que um sub-algoritmo recebe
parâmetros, estes devem ser especificados
entre parênteses, com seus respectivos
tipos, logo após o nome do sub-algoritmo

Prof. Mauro

Algoritmos e Ling.de Programação
Sub-algoritmos

13
Declarando procedimentos
Para declarar um procedimento, devemos seguir o
modelo a seguir.
Algoritmo NomeAlgoritmo
Variáveis
<Aqui são declaradas as Variáveis Globais>
Início
<Aqui são colocadas as instruções do Algoritmo Principal>
Fim

Procedimento NomeProcedimento (Lista de Parâmetros)
Variáveis
<Aqui são declaradas as Variáveis do Procedimento>
Início
<Aqui são colocadas as instruções do Procedimento>
Fim

Prof. Mauro

Algoritmos e Ling.de Programação
Sub-algoritmos

14
Declarando funções
Para declarar uma função, devemos seguir o modelo a
seguir.
Algoritmo NomeAlgoritmo
Variáveis
<Aqui são declaradas as Variáveis Globais>
Início
<Aqui são colocadas as instruções do Algoritmo Principal>
Fim

Função NomeFunção (Lista de Parâmetros)
Variáveis
<Aqui são declaradas as Variáveis da Função>
Início
<Aqui são colocadas as instruções da Função>
Fim

Prof. Mauro

Algoritmos e Ling.de Programação
Sub-algoritmos

15
Exemplo
Um algoritmo, com uma função que recebe dois números inteiros
como parâmetros e retorna a soma desses números ao algoritmo
principal.
Nome da Função

Parâmetros e seus tipos

Neste caso, os parâmetros são os dois
valores que serão somados.

Função soma (x, y: Inteiro)
Variáveis
adicao: Inteiro
Início
adicao ← x + y
Retorne adicao
Fim

Uma variável local para
armazenar o valor da soma

O comando que retorna o valor
da soma para o algoritmo que
chamou a função
Prof. Mauro

Algoritmos e Ling.de Programação
Sub-algoritmos

16
Exemplo (algoritmo completo)
Algoritmo SomaDeDoisNumeros
Variáveis
num1, num2, s: Inteiro
Função soma (x, y: Inteiro)
Variáveis
adicao: Inteiro
Início
adicao ← x + y
Retorne adicao
Fim
Início
Escreva “Digite o Primeiro Numero”
Leia num1
Escreva “Digite o Segundo Numero”
Leia num2
s ← soma(num1, num2)
Escreva s
Fim
Prof. Mauro

Aqui se inicia o algoritmo principal,
que solicita dois números ao
usuário e, em seguida, chama a
função que realiza a soma dos
números. Guarda a soma retornada
pela função na variável s e mostra
o valor na tela.

Quando a função é chamada, a
execução do algoritmo principal
fica parada até que a função seja
finalizada e retorne o resultado.

Algoritmos e Ling.de Programação
Sub-algoritmos

17
Exercícios
Reescreva um dos exercícios de vetores ou
matrizes criando um procedimento para ler
os dados e outro para processar e mostrar
os resultados
Crie uma função para calcular o fatorial de
um número
Crie uma função para determinar se um
número é primo

Prof. Mauro

Algoritmos e Ling.de Programação
Sub-algoritmos

18

Mais conteúdo relacionado

Mais procurados

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
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
angelicamenegassi
 
Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9
Felipe Santos
 
Aula 1 aed - lógica de programação
Aula 1   aed - lógica de programaçãoAula 1   aed - lógica de programação
Aula 1 aed - lógica de programação
Elaine Cecília Gatto
 
Apresentação 20130805 algoritmos
Apresentação 20130805 algoritmos Apresentação 20130805 algoritmos
Apresentação 20130805 algoritmos
João moreira
 
Logica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 SubalgoritmosLogica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 Subalgoritmos
Regis Magalhães
 
Algoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosAlgoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentos
Mauro Pereira
 
Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3
Robson Ferreira
 

Mais procurados (20)

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
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmos - Pascal
Algoritmos - PascalAlgoritmos - Pascal
Algoritmos - Pascal
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9
 
Visualg
VisualgVisualg
Visualg
 
Prova algoritmos
Prova algoritmosProva algoritmos
Prova algoritmos
 
Aula 1 aed - lógica de programação
Aula 1   aed - lógica de programaçãoAula 1   aed - lógica de programação
Aula 1 aed - lógica de programação
 
Apresentação 20130805 algoritmos
Apresentação 20130805 algoritmos Apresentação 20130805 algoritmos
Apresentação 20130805 algoritmos
 
Programar Em Pascal
Programar Em PascalProgramar Em Pascal
Programar Em Pascal
 
Logica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 SubalgoritmosLogica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 Subalgoritmos
 
Algoritimo - Raul
Algoritimo - RaulAlgoritimo - Raul
Algoritimo - Raul
 
Logica de Programacao
Logica de ProgramacaoLogica de Programacao
Logica de Programacao
 
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saídaICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
 
Algoritmos - Pseudocódigo
Algoritmos - PseudocódigoAlgoritmos - Pseudocódigo
Algoritmos - Pseudocódigo
 
Algoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosAlgoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentos
 
Lógica De Programação
Lógica De ProgramaçãoLógica De Programação
Lógica De Programação
 
Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3
 

Destaque

Algoritmica
AlgoritmicaAlgoritmica
Algoritmica
tacubomx
 
2011 clase18
2011 clase182011 clase18
2011 clase18
PatriciaU
 
7. operadores y estructura secuencial
7. operadores y estructura secuencial7. operadores y estructura secuencial
7. operadores y estructura secuencial
rcarrerah
 
10. subalgoritmos parte i
10. subalgoritmos parte i10. subalgoritmos parte i
10. subalgoritmos parte i
rcarrerah
 
Arquitectura de los computadores
Arquitectura de los computadoresArquitectura de los computadores
Arquitectura de los computadores
fabio_14
 
Arquitectura de la computadora
Arquitectura de la computadora Arquitectura de la computadora
Arquitectura de la computadora
USM
 
Cuadro sinoptico lenguaje de programacion
Cuadro sinoptico lenguaje de programacionCuadro sinoptico lenguaje de programacion
Cuadro sinoptico lenguaje de programacion
tacubomx
 
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
 

Destaque (20)

Algoritmos Aula 01
Algoritmos Aula 01Algoritmos Aula 01
Algoritmos Aula 01
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registros
 
Algoritmica
AlgoritmicaAlgoritmica
Algoritmica
 
Algoritmica
AlgoritmicaAlgoritmica
Algoritmica
 
2011 clase18
2011 clase182011 clase18
2011 clase18
 
7. operadores y estructura secuencial
7. operadores y estructura secuencial7. operadores y estructura secuencial
7. operadores y estructura secuencial
 
10. subalgoritmos parte i
10. subalgoritmos parte i10. subalgoritmos parte i
10. subalgoritmos parte i
 
Linguagem c parte 1
Linguagem c parte 1Linguagem c parte 1
Linguagem c parte 1
 
Microprocessadores ii revisão de linguagem de programação (parte2)
Microprocessadores ii revisão de linguagem de programação (parte2)Microprocessadores ii revisão de linguagem de programação (parte2)
Microprocessadores ii revisão de linguagem de programação (parte2)
 
Apostila c
Apostila cApostila c
Apostila c
 
Estructura secuencial
Estructura secuencialEstructura secuencial
Estructura secuencial
 
Arquitectura del computador2
Arquitectura del computador2Arquitectura del computador2
Arquitectura del computador2
 
Microprocessadores ii arquitetura
Microprocessadores ii arquiteturaMicroprocessadores ii arquitetura
Microprocessadores ii arquitetura
 
Redes padroes e cabeamento
Redes padroes e cabeamentoRedes padroes e cabeamento
Redes padroes e cabeamento
 
Arquitectura de los computadores
Arquitectura de los computadoresArquitectura de los computadores
Arquitectura de los computadores
 
Arquitectura de la computadora
Arquitectura de la computadora Arquitectura de la computadora
Arquitectura de la computadora
 
Cuadro sinoptico lenguaje de programacion
Cuadro sinoptico lenguaje de programacionCuadro sinoptico lenguaje de programacion
Cuadro sinoptico lenguaje de programacion
 
6 softwares de manutenção
6 softwares de manutenção6 softwares de manutenção
6 softwares de manutenção
 
Logica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A LogicaLogica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A Logica
 
Tecnologia e turismo - Tecnologias de hardware
Tecnologia e turismo - Tecnologias de hardwareTecnologia e turismo - Tecnologias de hardware
Tecnologia e turismo - Tecnologias de hardware
 

Semelhante a Algoritmos e lp parte 5-subalgoritmos

Apostila de algoritimos
Apostila de algoritimosApostila de algoritimos
Apostila de algoritimos
Cleide Soares
 
Atividade sobre procedimento e parâmetros
Atividade sobre procedimento e parâmetrosAtividade sobre procedimento e parâmetros
Atividade sobre procedimento e parâmetros
Taoista Zen
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
12anogolega
 

Semelhante a Algoritmos e lp parte 5-subalgoritmos (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...
 
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
 
Apostila de algoritimos
Apostila de algoritimosApostila de algoritimos
Apostila de algoritimos
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 
Aula02
Aula02Aula02
Aula02
 
Módulo 1 de PSI
Módulo 1 de PSIMódulo 1 de PSI
Módulo 1 de PSI
 
Atividade sobre procedimento e parâmetros
Atividade sobre procedimento e parâmetrosAtividade sobre procedimento e parâmetros
Atividade sobre procedimento e parâmetros
 
Aula 4
Aula 4Aula 4
Aula 4
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
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
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de Programação
 
Manual robotec
Manual robotecManual robotec
Manual robotec
 
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
 
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
 
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
 
Algoritmos computacionais
Algoritmos computacionaisAlgoritmos computacionais
Algoritmos computacionais
 

Mais de Mauro Pereira

Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Mauro Pereira
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
Mauro Pereira
 

Mais de Mauro Pereira (20)

Programação Web - CSS
Programação Web - CSSProgramação Web - CSS
Programação Web - CSS
 
Redes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redesRedes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redes
 
Exercicio introducao a arquitetura de computadores
Exercicio    introducao a arquitetura de computadoresExercicio    introducao a arquitetura de computadores
Exercicio introducao a arquitetura de computadores
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de Computadores
 
Sistemas de Numeracao
Sistemas de NumeracaoSistemas de Numeracao
Sistemas de Numeracao
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicos
 
Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1
 
Redes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeRedes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da rede
 
Redes 4 endereçamento
Redes 4 endereçamentoRedes 4 endereçamento
Redes 4 endereçamento
 
Redes 5 cabeamento
Redes 5 cabeamentoRedes 5 cabeamento
Redes 5 cabeamento
 
Redes 3 protocolos
Redes 3 protocolosRedes 3 protocolos
Redes 3 protocolos
 
Redes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesRedes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redes
 
Redes 1 introducao historico conceitos
Redes 1 introducao historico conceitosRedes 1 introducao historico conceitos
Redes 1 introducao historico conceitos
 
4.1 softwares e configurações importantes
4.1 softwares e configurações importantes4.1 softwares e configurações importantes
4.1 softwares e configurações importantes
 
Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2
 
Exercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolosExercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolos
 
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...
 
Linguagem c parte 2
Linguagem c parte 2Linguagem c parte 2
Linguagem c parte 2
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
 

Algoritmos e lp parte 5-subalgoritmos

  • 1. Algoritmos e Linguagem de Programação Professor: Mauro Jansen Parte 5 – Sub-algoritmos 09/11/2010
  • 2. Introdução Conforme a complexidade dos problemas, os algoritmos tornam-se mais extensos e difíceis de acompanhar Solução: Dividir para conquistar Nesses casos (e mesmo em problemas mais simples) é importante dividirmos a tarefa de resolução do problema em tarefas menores chamados MÓDULOS ou SUB-ALGORITMOS Cada parte (módulo) do algoritmo fica responsável por uma determinada parte do processo e o conjunto de módulos resolve o problema principal Prof. Mauro Algoritmos e Ling.de Programação Sub-algoritmos 2
  • 3. Conceito Sub-algoritmos, sub-rotinas, subprogramas ou módulos são blocos de instruções que realizam tarefas específicas Cada sub-algoritmo é um trecho do algoritmo completo e resolve uma parte do problema Os algoritmos podem também ser REUTILIZADO na solução de outros problemas Prof. Mauro Algoritmos e Ling.de Programação Sub-algoritmos 3
  • 4. Funcionamento Um algoritmo completo é dividido em: UM Algoritmo principal Diversos Sub-algoritmos A execução sempre começa pelo algoritmo principal A execução de um subalgoritmo é solicitada sempre que necessário, através de uma chamada ou invocação. Quando um subalgoritmo é chamado, a execução do algoritmo principal é interrompida para que o subalgoritmo seja executado. Após isso, o algoritmo principal continua de onde parou Prof. Mauro Algoritmos e Ling.de Programação Sub-algoritmos 4
  • 5. Funcionamento (ilustração) Algoritmo Principal instrução 1 instrução 2 Subalgoritmo 1 instrução 3 Subalgoritmo 1 instrução 1 Subalgoritmo 2 instrução 2 Subalgoritmo 2 instrução 1 instrução 2 Prof. Mauro A execução inicial aqui e segue a sequência das instruções. A execução do Algoritmo Principal é interrompida até que o Subalgoritmo 1 seja executado, continuando em seguida a partir da instrução 3. Executado no momento em que é invocado pelo Algoritmo Principal. A execução do Subalgoritmo 1 é interrompida até que o Subalgoritmo 2 seja executado, continuando em seguida a partir da instrução 2. Executado no momento em que é invocado pelo Subalgoritmo 1. Terminada a execução, volta para continuar o Subalgoritmo 1. Quando terminar o Subalgoritmo 1, volta para continuar com a execução do Algoritmo Principal. Algoritmos e Ling.de Programação Sub-algoritmos 5
  • 6. Funcionamento (ilustração) A execução pode ser visualizada como segue: Algoritmo Principal instrução 1 instrução 2 Subalgoritmo 1 instrução 1 Subalgoritmo 2 instrução 1 instrução 2 instrução 2 instrução 3 Prof. Mauro Algoritmos e Ling.de Programação Sub-algoritmos 6
  • 7. Variáveis Locais e Variáveis Globais Variáveis Globais são declaradas no início do algoritmo e pode ser usadas no algoritmo principal e por todos os subalgoritmos. Variáveis Locais são definidas dentro de um subalgoritmo e só podem ser utilizadas dentro dele. As variáveis A e B são globais e podem ser usadas por qualquer subalgoritmo A, B: Real instrução 1 instrução 2 Subalgoritmo 1 Subalgoritmo 2 X, Y: Inteiro instrução 1 instrução 2 num: Inteiro instrução 1 instrução 2 As variáveis X e Y só podem ser utilizadas no subalgoritmo 1 e a variável num só pode ser utilizada no subalgoritmo 2. instrução 3 Prof. Mauro Algoritmos e Ling.de Programação Sub-algoritmos 7
  • 8. Tipos de sub-algoritmos Existem dois tipos de sub-algoritmos: PROCEDIMENTOS FUNÇÕES Prof. Mauro Algoritmos e Ling.de Programação Sub-algoritmos 8
  • 9. Procedimentos PROCEDIMENTO é um sub-algoritmo que não retorna valor ao algoritmo chamador ou que retorna dois ou mais valores A chamada de procedimentos só pode ser feita com uma linha de comando isolada dentro do algoritmo Se retornar valores, o retorno é feito por meio de parâmetros ou variáveis globais Exemplos: solicita_valores, lista_resultados Prof. Mauro Algoritmos e Ling.de Programação Sub-algoritmos 9
  • 10. Funções FUNÇÃO é um sub-algoritmo que calcula um valor a partir de outros fornecidos a ela, retornando o valor calculado A chamada a uma função sempre ocorre dentro de uma expressão do mesmo tipo que tem o valor retornado por ela. Sua chamada é feita pelo seu nome, seguido de seus respectivos parâmetros entre parênteses. A função é executada e, ao seu término, o trecho do comando que a invocou é substituído pelo valor retornado Exemplos: primo(<número>), fatorial(<número>) Prof. Mauro Algoritmos e Ling.de Programação Sub-algoritmos 10
  • 11. Parâmetros e retorno Os parâmetros possibilitam a comunicação entre um subalgoritmo e o algoritmo chamador. Corresponde aos dados que são passados ao subalgoritmo pelo algoritmo chamador. A passagem de dados para procedimentos e funções se dá da mesma forma. Retorno de Dados No caso dos procedimentos os dados são retornados através dos parâmetros. No caso das funções, o retorne se dá pelo comando Retorne. Retorne <expressão> Ao encontrar este comando, a expressão é retornada ao chamador e a função é terminada. Prof. Mauro Algoritmos e Ling.de Programação Sub-algoritmos 11
  • 12. Parâmetros e retorno A passagem de parâmetros pode se dar de duas formas: Por valor: neste caso é passada uma cópia do conteúdo de uma variável. Essa cópia só existirá no procedimento ou na função. Qualquer alteração que for feita no valor, não irá alterar o conteúdo da variável original. Por referência: não existe cópia do conteúdo enviado, o que ocorre é o envio do endereço de memória onde a variável se encontra. Neste caso, qualquer alteração no valor alterará o valor da variável original. Prof. Mauro Algoritmos e Ling.de Programação Sub-algoritmos 12
  • 13. Declarando sub-algoritmos O NOME dos sub-algoritmo deve seguir as mesmas regras para definição de nomes de variáveis Sempre que um sub-algoritmo recebe parâmetros, estes devem ser especificados entre parênteses, com seus respectivos tipos, logo após o nome do sub-algoritmo Prof. Mauro Algoritmos e Ling.de Programação Sub-algoritmos 13
  • 14. Declarando procedimentos Para declarar um procedimento, devemos seguir o modelo a seguir. Algoritmo NomeAlgoritmo Variáveis <Aqui são declaradas as Variáveis Globais> Início <Aqui são colocadas as instruções do Algoritmo Principal> Fim Procedimento NomeProcedimento (Lista de Parâmetros) Variáveis <Aqui são declaradas as Variáveis do Procedimento> Início <Aqui são colocadas as instruções do Procedimento> Fim Prof. Mauro Algoritmos e Ling.de Programação Sub-algoritmos 14
  • 15. Declarando funções Para declarar uma função, devemos seguir o modelo a seguir. Algoritmo NomeAlgoritmo Variáveis <Aqui são declaradas as Variáveis Globais> Início <Aqui são colocadas as instruções do Algoritmo Principal> Fim Função NomeFunção (Lista de Parâmetros) Variáveis <Aqui são declaradas as Variáveis da Função> Início <Aqui são colocadas as instruções da Função> Fim Prof. Mauro Algoritmos e Ling.de Programação Sub-algoritmos 15
  • 16. Exemplo Um algoritmo, com uma função que recebe dois números inteiros como parâmetros e retorna a soma desses números ao algoritmo principal. Nome da Função Parâmetros e seus tipos Neste caso, os parâmetros são os dois valores que serão somados. Função soma (x, y: Inteiro) Variáveis adicao: Inteiro Início adicao ← x + y Retorne adicao Fim Uma variável local para armazenar o valor da soma O comando que retorna o valor da soma para o algoritmo que chamou a função Prof. Mauro Algoritmos e Ling.de Programação Sub-algoritmos 16
  • 17. Exemplo (algoritmo completo) Algoritmo SomaDeDoisNumeros Variáveis num1, num2, s: Inteiro Função soma (x, y: Inteiro) Variáveis adicao: Inteiro Início adicao ← x + y Retorne adicao Fim Início Escreva “Digite o Primeiro Numero” Leia num1 Escreva “Digite o Segundo Numero” Leia num2 s ← soma(num1, num2) Escreva s Fim Prof. Mauro Aqui se inicia o algoritmo principal, que solicita dois números ao usuário e, em seguida, chama a função que realiza a soma dos números. Guarda a soma retornada pela função na variável s e mostra o valor na tela. Quando a função é chamada, a execução do algoritmo principal fica parada até que a função seja finalizada e retorne o resultado. Algoritmos e Ling.de Programação Sub-algoritmos 17
  • 18. Exercícios Reescreva um dos exercícios de vetores ou matrizes criando um procedimento para ler os dados e outro para processar e mostrar os resultados Crie uma função para calcular o fatorial de um número Crie uma função para determinar se um número é primo Prof. Mauro Algoritmos e Ling.de Programação Sub-algoritmos 18