SlideShare uma empresa Scribd logo
1 de 48
ALGORITMOS
Rodrigo Kiyoshi Saito / rodrigok@anchieta.br
Modularização
• Modularização ou subprograma é um aspécto
fundamental da programação estruturada
(Staa, 2000).
• Um dos objetivos da programação estruturada
é diminuir a complexidade dos programas,
usando a estratégia de dividir os problemas
em menores pedaços;
Modularização
• Cada modulo deve ter um único objetivo, a
qual tem um ponto de entrada, executa e
termina em um ponto de saída;
• Cada modulo é implementado por um
sobprograma específico, passível de ser
construído e testado de forma independente;
• Os diferentes subprogramas são
posteriormente integrados em um só
programa;
Modularização
• Subprogramas tem o objetivo de facilitar a
compreensão, o desenvolvimento, o teste e a
manutenção dos sistemas;
• Programas que utilizam subprogramação
resultam mais confiáveis e flexíveis;
Modularização
Algoritimo NomePrograma
var
x, y, z : inteiro;
inicio
x = 1
leia y
se (x = y) então
execute SubPrograma1
senão
execute SubPrograma2
fim_se
leia z
se ( y = z) então
execute SubPrograma1
fim_se
fim
Procedimento SubPrograma1
var
a, b: inteiro;
inicio
a = 10
b = 20
imprima a, b
fim
Procedimento SubPrograma2
var
a, b: inteiro;
inicio
a = 5
b = 10
imprima b, a
fim
Modularização
• Um subprogramas (as vezes chamado de sub-
rotina) consiste de um trecho de Código com
estrutura semelhante a um programa, que é
executado somente quando acionado por
outro trecho de Código;
• Esse acionamento costuma-se denominar
chamada ao subprograma (ou subrotina);
Modularização
• Um subprograma deve executar uma única
tarefa, claramente definida;
• A execução correta de um subprograma deve
ser assegurada sempre que esse seja
adequadamente chamado;
Modularização
• A utilização de um subprograma é uma técnica
de programação que visa:
– A definição de trechos de códigos menores, mais
fáceis de serem construídos e testados;
– A diminuição do tamanho dos programas, pela
elininação de redundancias, ao evitar que códigos
semelhantes sejam repetidos dentro de um
programa;
– a reutilização de código em um programa ou em
programas diferentes ;
Modularização
– a construção mais segura de programas
complexos, pela utilização de unidades menores
(ou subprogramas) já construídas e testada;
Modularização
• Todo subprograma é identificado através de
um nome;
• Esse nome deve representar claramente a
tarefa a ser executada pelo subprograma;
• Com a chamada à um subprograma é feita
pelo seu nome, por um comando específico
ou utilizando diretamente seu resultado;
Modularização
• Quando um subprograma é chamado, o fluxo
de execução do programa ou subprograma
que o chamou é interrompido e o
subprograma passa a ser executado;
• Terminada a execução subsubprograma, o
fluxo de execução interrompido é retornado, e
o processamento segue a partir do ponto
imediatamente após a chamada concluída;
Modularização
• Um subprograma pode chamar outro
subprograma;
• A forma de execução é sempre a mesma: o
que chamou fica suspenso, esperando o
término dá execução do subprograma
chamado, continuando depois sua execução a
partir da instrução seguinte a instrução de
chamada o subprograma;
Modularização
Vários níveis de chamadas
a subprogramas
Exemplo de subprograma
em Português Estruturado
programa ExercicioA
inicio
execute VerificarDivisao()
fim
subPrograma VerificarDivisao()
var
numero : inteiro
contador : inteiro
resto2 : inteiro
resto3 : inteiro
inicio
para contador de 1 até 4 passo 1 faça
escreva “Digite numero:”
leia numero
resto2  numero mod 2
resto3  numero mod 3
se (resto2 = 0) .e. (resto3 = 0) então
escreva “Numero”, numero, “são divisiveis por 2 e por 3”
fim_se
fim_para
fim
Exemplo de subprograma
em linguagem C
#include <stdio.h>
//Declaracao dos procedimentos
void verificarDivisao();
void main()
{
//chamando a 1a vez a funcao
verificarDivisao();
//chando outra vez a mesma função
verificarDivisao();
}
Exemplo de subprograma
em linguagem C
void verificarDivisao()
{
int numero, contador, resto2, resto3;
for (contador=1; contador<=4; contador++)
{
printf("nDigite numero: ");
scanf("%d", &numero);
resto2 = numero % 2;
resto3 = numero % 3;
if ( (resto2 == 0) && (resto3 == 0) )
{
printf("nNumero: %d e divisivel por 2 e por 3!", numero);
}
else
{
printf("nNumero: %d NAO e divisivel por 2 e por 3 ao mesmo tempo!", numero);
}
}
}
Parâmetros
• Você é os valores que com subprograma
necessita receber para poder realizar sua
tarefa, ou os valores reproduz que devem ser
visíveis externamente após concluída sua
execução, devem ser sempre armazenados em
parâmetros.
• Parâmetros são espaços de armazenamento
que permitem a comunicação do
subprograma com o mundo externo;
Parâmetros
• Um subprograma que não utiliza parâmetros e
não utiliza informação do mundo exterior para
seu acionamento, produzir a sempre o mesmo
resultado, não importa onde seja chamado.
Parâmetro Formais e Reais
• Todos os elementos utilizados em um
subprograma devem ser nele declarados. As
declarações de parâmetros, além de nomeá-los
para uso interno no subprograma, define seu
tipo.
• Os parâmetros que aparecem na declaração dos
subprogramas são chamados de parâmetros
formais, porque durante a execução, na chamada
dos subprogramas, são substituídos por variáveis
ou valores do mesmo tipo, muitas vezes com
nomes totalmente diferentes;
Parâmetro Fomais e Reais
• O parâmetro formal não provoca a reserva de
espaço em memória. Ele simplesmente indica
que, ao ser chamado o subprograma, deve ser
fornecido um valor com seu tipo para a sua
execução;
• Os parâmetros utilizados na chamada de um
subprograma, chamados de parâmetros reais,
substituem os formais durante a execução;
Exemplo de parâmetro Fomais
e Reais em Pseudocódigo
programa ExercicioA
var
numero : inteiro
contador : inteiro
inicio
para contador de 1 até 4 passo 1 faça
escreva “Digite numero:”
leia numero
execute VerificarDivisao(numero)
fim_para
fim
subPrograma VerificarDivisao(pNum : inteiro)
var
resto2 : inteiro
resto3 : inteiro
inicio
resto2  pNum mod 2
resto3  pNum mod 3
se (resto2 = 0) .e. (resto3 = 0) então
escreva “Numero”, pNum, “são divisiveis por 2 e por 3”
senão
escreva “Numero”, pNum, “NÃO são divisiveis por 2 e por 3!”
fim_se
fim
PARÂMETRO FORMAL
PARÂMETRO REAL
Exemplo de parâmetro Fomais
e Reais em Linguagem C
PARÂMETRO REAL
#include <stdio.h>
//Declaracao dos procedimentos
void verificarDivisao(int pNum);
void main()
{
int numero, contador;
for (contador=1; contador<=4; contador++)
{
printf("nDigite numero: ");
scanf("%d", &numero);
verificarDivisao(numero);
}
}
Exemplo de parâmetro Fomais
e Reais em Linguagem C
PARÂMETRO FORMAL
void verificarDivisao(int pNum)
{
int resto2, resto3;
resto2 = pNum % 2;
resto3 = pNum % 3;
if ( (resto2 == 0) && (resto3 == 0) )
{
printf("nNumero: %d e divisivel por 2 e por 3!", pNum);
}
else
{
printf("nNumero: %d NAO e divisivel por 2 e por 3 ao mesmo tempo!", pNum);
}
}
Parâmetro Fomais e Reais
• Os parâmetros reais devem sempre concordar
em quantidade e tipo com os respectivos
parâmetros formais, na ordem em que eles foram
definidos;
• Podem ser fornecidos como parâmetros reais
nomes de variáveis, valores literais ou resultados
de expressões;
• As variáveis utilizadas como parâmetros reais
devem ter sido declaradas no programa que
chama o subprograma;
Parâmetros de Entrada e Saída
• A utilização dê um subprograma só é efetiva se
for claramente definida a tarefa que será
executada e qual sua interação que o acionou.
para que isso seja possível, é importante que
toda interação seja feita somente através de
parâmetros, identificando quais são os
parâmetros de entrada (que recebem variáveis o
valores para executar a tarefa) e quais são os
parâmetros de saída (que devolvem os valores
calculados ao programa que acionou o
subprograma).
Parâmetros por valor ou por
referência
• Com a passagem de valores a subprogramas
pode acontecer por valor ou por referência;
• A passagem por valor indica que somente o
valor que interessa ao subprograma.
• Se esse valor for passado por meio do nome
de uma variável, somente o valor da variável é
transferido para o parâmetro;
Parâmetros por valor ou por
referência
• Uma cópia do conteúdo da variável é carregada
em uma variável auxiliar, que será utilizada
durante a execução do subprograma;
• Dessa forma, qualquer modificação com novo
valor da variável auxiliar não se refletirá na
variável utilizada como parâmetro real;
• A passagem de valores para parâmetros definidos
por valor pode ser feita ainda por meio de um
valor literal e do resultado de uma expressão;
Parâmetros por valor ou por
referência
• Na execução da chamada há um subprograma, os
parâmetros passados por valor também são
incluídos na pilha de execução, preservando seus
valores para a continuação posterior da
execução;
• Na passagem de um parâmetro por referência, o
endereço físico dá variável utilizada como
parâmetro real é passada ao subprograma, sendo
esta variável utilizada durante a execução;
Parâmetros por valor ou por
referência
• Na passagem de um parâmetro por
referência, o endereço físico dá variável
utilizada como parâmetro real é passada ao
subprograma, sendo esta variável utilizada
durante a execução;
Parâmetros por valor
End.
Memória
Variavel Valor
ABC001 numero 5
ABC002 pNum 5
ABC003
...
var
numero : inteiro
inicio
numero  5
MostrarValor(numero)
fim
subprograma MostrarValor(pNum: inteiro)
inicio
escreva(pNum)
fim
Parâmetros por referência
End.
Memória
Variavel Valor
ABC001 numero 5
ABC002
ABC003
...
var
numero : inteiro
inicio
numero  5
MostrarValor(numero)
fim
subprograma MostrarValor(ref pNum: inteiro)
inicio
escreva(pNum)
fim
Parâmetros por valor ou por
referência
• Alterações no valor do parâmetro são feitas
diretamente nessa variável. Na chamada de
um subprograma, os parâmetros definidos por
referência recebem nomes de variáveis
existentes no programa o principal;
• É importante observar que, na execução de
uma chamada ao subprograma, os parâmetros
por referência não sofrem empilhamento, já
que não são locais aos subprogramas;
Declarações locais e globais
• Dentro de um subprograma, podem ser feitas
declarações de constantes, tipos e variáveis. as
declarações feitas internamente aos
subprogramas são declarações locais ao
subprograma, e só são visíveis dentro do
subprograma;
• As áreas de memória associadas as variáveis
locais são alocadas no momento em que o
subprograma é acionado eles são liberadas ao
final de sua execução, quando deixam de existir;
Declarações locais e globais
• Todo esse processo de criação e destruição de
variáveis locais ocorre novamente a cada nova
chamada ao subprograma;
• No fim da execução do subprograma, a
variável auxiliar (local) é liberada e não está
mais disponível;
Declarações locais e globais
• Tipos, constantes e variáveis declarados em
um programa, visíveis aos subprogramas que
estiverem nele declarados, são consideradas
declarações globais ao programa;
• Embora elementos globais posssam ser
utilizados dentro de subprogramas, essa
prática não é recomendável, pois dificulta o
entendimento e a depuração dos códigos;
Declarações locais e globais
LOCAIS GLOBAIS
Declarações internamente aos
subprogramas que as acessam
Declaradas externamente ao
subprogramas que as acessam
Só são reconhecidas e só podem ser
referenciadas nos subprogramas em que
são declaradas
São reconhecidas e podem ser
referenciadas até mesmo em
subprogramas em que não foram
declaradas
Existem apenas enquanto os
subprogramas em que foram declaradas
estiverem em execução
Sua existência independe dos
subprogramas que as acessam. Existem
antes, durante e após a ativação deles
Internamente a um subprograma, quando
têm o mesmo nome que uma global,
bloqueiam o acesso à global.
Escopo de identificadores
• A possibilidade de fazer declarações em
diferentes pontos de um programa (no
programa principal e em subprogramas)
requer que seja claramente identificado o
escopo de cada identificador. Por escopo,
entende-se a área de validade de um
determinado identificador;
Escopo de identificadores
• O escopo de um identificador é definido pela
localização de sua declaração. Declarações
feitas no programa principal valem em todo o
programa, inclusive, por vezes, nos
subprogramas que o compôem.
• Declarações feitas dentro de um subprograma
valem somente dentro desse subprograma.
Escopo de identificadores
Escopo de identificadores
#include <stdio.h>
//Declaracao dos procedimentos
void SubPrograma01();
int numeroGlobal;
void main()
{
int i, numero;
for (i=0; i<5; i++)
{
printf("nnDigite numero: ");
scanf("%d", &numero);
printf("nNumero digitado foi %d: ", numero);
}
numeroGlobal = 100;
printf("nNumero Global: %d", numeroGlobal);
SubPrograma01();
}
Variáveis Globais
Variáveis Locais
Escopo de identificadores
void SubPrograma01()
{
int i, numero;
for (i=5; i<10; i++)
{
printf("nnDigite numero: ");
scanf("%d", &numero);
printf("nNumero digitado foi %d: ", numero);
}
numeroGlobal = 200;
printf("nNumero Global: %d", numeroGlobal);
}
Variáveis Locais
Tipos de subprogramas
• Dois tipos de subprogramas podem ser
utilizados, diferenciados pela forma como são
acionados e o modo como devolvem seus
resultados: procedimentos e funções
Procedimentos
• Um procedimento é um subprograma que
executa uma determinada tarefa com ou sem
a utilização de parâmetros;
• Na lista de parâmetros formais, os parâmetros
por referencia devem ser identificados pela
sigla ref antes do seu nome;
Procedimentos
#include <stdio.h>
//Declaracao das procedures
void SomaNumeros(int valor1, int valor2);
void main()
{
int val1, val2, resultado;
val1 = 10;
val2 = 5;
SomaNumeros(val1, val2);
}
void SomaNumeros(int pValor1, int pValor2)
{
int total;
total = pValor1 + pValor2;
printf("nValor da Soma: %d", total);
}
Declaração sem
tipo de retorno
Não há return
chamada da procedure
não necessita de
variável para
armazenar valor
Funções
• Uma função é um subprograma que devolve
um valor, resultante de um cálculo ou da
execução de uma determinada tarefa, ao
programa que o chamou por meio de seu
nome;
• Uma função tem sempre associado a ela um
tipo, que é o tipo do valor que ela devolve
(valor de retorno);
Funções
• Em algum lugar do corpo da função, o valor
calculado pela função deve ser atribuído ao
seu nome, para ser devolvido ao programa
que a chamou;
• A chamada é feita escrevendo o seu nome,
com os parâmetros reais, no ponto do código
onde se deseja utilizar, e essa chamada é
atribuída geralmente a uma variável do
mesmo tipo que a função retorna;
Funções
#include <stdio.h>
//Declaracao das funcoes
int SomaNumeros(int valor1, int valor2);
void main()
{
int val1, val2, resultado;
val1 = 10;
val2 = 5;
resultado = SomaNumeros(val1, val2);
printf("nValor da Soma: %d", resultado);
}
int SomaNumeros(int pValor1, int pValor2)
{
int total;
total = pValor1 + pValor2;
return total;
}
Tipo de retorno
Retorno compatível com o
tipo da função
Chamada da função
variável que recebe
o retorno da função

Mais conteúdo relacionado

Mais procurados

Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlgWillians Miyabara
 
Variaveis locais e globais
Variaveis locais e globaisVariaveis locais e globais
Variaveis locais e globais111111119
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosMario Jorge Pereira
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em PythonLuciano Ramalho
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosElaine Cecília Gatto
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaExercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaLoiane Groner
 
Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++PeslPinguim
 
Alguns algoritmos resolvidos
Alguns algoritmos resolvidosAlguns algoritmos resolvidos
Alguns algoritmos resolvidosjaoozinhoqi123
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
 
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çãoAndré Agostinho
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha casoEder Samaniego
 
Python bge
Python bgePython bge
Python bgeTiago
 
Conceitos básicos de Matrizes em C++
Conceitos básicos de Matrizes em C++Conceitos básicos de Matrizes em C++
Conceitos básicos de Matrizes em C++profjr
 
2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com PythonJardel Weyrich
 

Mais procurados (20)

Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlg
 
Variaveis locais e globais
Variaveis locais e globaisVariaveis locais e globais
Variaveis locais e globais
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Algoritmos - Matrizes
Algoritmos - MatrizesAlgoritmos - Matrizes
Algoritmos - Matrizes
 
Algoritmo 06 - Array e Matrizes
Algoritmo 06 - Array e MatrizesAlgoritmo 06 - Array e Matrizes
Algoritmo 06 - Array e Matrizes
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos Básicos
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaExercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
 
Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Alguns algoritmos resolvidos
Alguns algoritmos resolvidosAlguns algoritmos resolvidos
Alguns algoritmos resolvidos
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
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
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha caso
 
Python bge
Python bgePython bge
Python bge
 
Conceitos básicos de Matrizes em C++
Conceitos básicos de Matrizes em C++Conceitos básicos de Matrizes em C++
Conceitos básicos de Matrizes em C++
 
2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python
 

Semelhante a Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis

Subalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca LopesSubalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca Lopesmarcosnem
 
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...Os Fantasmas !
 
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çãoJose Augusto Cintra
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - SubalgoritmosCarlos Santos
 
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
 
Algoritmos e Visualg parte 1
Algoritmos e Visualg   parte 1Algoritmos e Visualg   parte 1
Algoritmos e Visualg parte 1Marcio Pinto
 
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.pptxItamarGoncalves2
 
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
 
LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08Carlos Santos
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação12anogolega
 
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.pdfEizoKato
 
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.pdfEizoKato
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em CElaine Cecília Gatto
 
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).pdfMauricio Wieler
 
Algoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosAlgoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosMauro Pereira
 

Semelhante a Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis (20)

Subalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca LopesSubalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca Lopes
 
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 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
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
 
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
 
Algoritmos e Visualg parte 1
Algoritmos e Visualg   parte 1Algoritmos e Visualg   parte 1
Algoritmos e Visualg parte 1
 
Algoritmos - Procedimentos
Algoritmos - ProcedimentosAlgoritmos - Procedimentos
Algoritmos - Procedimentos
 
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
 
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
 
LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08
 
Manual robotec
Manual robotecManual robotec
Manual robotec
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
Linguagem C - Controle de Programa
Linguagem C - Controle de ProgramaLinguagem C - Controle de Programa
Linguagem C - Controle de Programa
 
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
 
Excel VBA: Aula 2
Excel VBA: Aula 2Excel VBA: Aula 2
Excel VBA: Aula 2
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em C
 
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
 
Algoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosAlgoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmos
 

Mais de Rodrigo Kiyoshi Saito

Algoritmos - Aula 16 B - Arquivos - Exercicios
Algoritmos - Aula 16 B - Arquivos - ExerciciosAlgoritmos - Aula 16 B - Arquivos - Exercicios
Algoritmos - Aula 16 B - Arquivos - ExerciciosRodrigo Kiyoshi Saito
 
Algoritmos - Aula 16 - Registros - Exercicio Enunciado
Algoritmos - Aula 16 - Registros - Exercicio EnunciadoAlgoritmos - Aula 16 - Registros - Exercicio Enunciado
Algoritmos - Aula 16 - Registros - Exercicio EnunciadoRodrigo Kiyoshi Saito
 
BD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasBD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasRodrigo Kiyoshi Saito
 
BD I - Aula 15 B - Criacao de tabelas
BD I - Aula 15 B - Criacao de tabelasBD I - Aula 15 B - Criacao de tabelas
BD I - Aula 15 B - Criacao de tabelasRodrigo Kiyoshi Saito
 
BD I - Aula 14 B - Exercicios - Enunciado
BD I - Aula 14 B - Exercicios - EnunciadoBD I - Aula 14 B - Exercicios - Enunciado
BD I - Aula 14 B - Exercicios - EnunciadoRodrigo Kiyoshi Saito
 
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub SelectsBD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub SelectsRodrigo Kiyoshi Saito
 
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis - Exercicios Enunc...
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis - Exercicios Enunc...Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis - Exercicios Enunc...
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis - Exercicios Enunc...Rodrigo Kiyoshi Saito
 
BD I - Aula 13 B - Agrupando Dados - Parte 04 - Exercicios Enunciado
BD I - Aula 13 B - Agrupando Dados  - Parte 04 - Exercicios EnunciadoBD I - Aula 13 B - Agrupando Dados  - Parte 04 - Exercicios Enunciado
BD I - Aula 13 B - Agrupando Dados - Parte 04 - Exercicios EnunciadoRodrigo Kiyoshi Saito
 
BD I - Aula 13 B - Agrupando Dados - Parte 04
BD I - Aula 13 B - Agrupando Dados  - Parte 04BD I - Aula 13 B - Agrupando Dados  - Parte 04
BD I - Aula 13 B - Agrupando Dados - Parte 04Rodrigo Kiyoshi Saito
 
BD I - Aula 13 B - Agrupando dados - Parte 04 - Exercicios Enunciado
BD I - Aula 13 B - Agrupando dados  - Parte 04 - Exercicios EnunciadoBD I - Aula 13 B - Agrupando dados  - Parte 04 - Exercicios Enunciado
BD I - Aula 13 B - Agrupando dados - Parte 04 - Exercicios EnunciadoRodrigo Kiyoshi Saito
 
BD I - Aula 13 A - Funcoes de string datas numeros e conversao - parte 03
BD I - Aula 13 A - Funcoes de string datas numeros e conversao - parte 03BD I - Aula 13 A - Funcoes de string datas numeros e conversao - parte 03
BD I - Aula 13 A - Funcoes de string datas numeros e conversao - parte 03Rodrigo Kiyoshi Saito
 
Algoritmos - Aula 13 C - Matrizes em C
Algoritmos - Aula 13 C - Matrizes em CAlgoritmos - Aula 13 C - Matrizes em C
Algoritmos - Aula 13 C - Matrizes em CRodrigo Kiyoshi Saito
 
Algoritmos - Aula 13 B - Vetores em C
Algoritmos - Aula 13 B - Vetores em CAlgoritmos - Aula 13 B - Vetores em C
Algoritmos - Aula 13 B - Vetores em CRodrigo Kiyoshi Saito
 
Algoritmos - Aula 12 B - Traducao Ling C - Condicoes
Algoritmos - Aula 12 B - Traducao Ling C - CondicoesAlgoritmos - Aula 12 B - Traducao Ling C - Condicoes
Algoritmos - Aula 12 B - Traducao Ling C - CondicoesRodrigo Kiyoshi Saito
 
Algoritmos - Aula 12 A - Traducao ling C - Ent Proc Saida
Algoritmos - Aula 12 A - Traducao ling C - Ent Proc SaidaAlgoritmos - Aula 12 A - Traducao ling C - Ent Proc Saida
Algoritmos - Aula 12 A - Traducao ling C - Ent Proc SaidaRodrigo Kiyoshi Saito
 

Mais de Rodrigo Kiyoshi Saito (20)

Algoritmos - Aula 16 B - Arquivos
Algoritmos - Aula 16 B - ArquivosAlgoritmos - Aula 16 B - Arquivos
Algoritmos - Aula 16 B - Arquivos
 
Algoritmos - Aula 16 B - Arquivos - Exercicios
Algoritmos - Aula 16 B - Arquivos - ExerciciosAlgoritmos - Aula 16 B - Arquivos - Exercicios
Algoritmos - Aula 16 B - Arquivos - Exercicios
 
Algoritmos - Aula 16 - Registros - Exercicio Enunciado
Algoritmos - Aula 16 - Registros - Exercicio EnunciadoAlgoritmos - Aula 16 - Registros - Exercicio Enunciado
Algoritmos - Aula 16 - Registros - Exercicio Enunciado
 
Algoritmos - Aula 16 - Registros
Algoritmos - Aula 16 - RegistrosAlgoritmos - Aula 16 - Registros
Algoritmos - Aula 16 - Registros
 
BD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasBD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelas
 
BD I - Aula 15 B - Criacao de tabelas
BD I - Aula 15 B - Criacao de tabelasBD I - Aula 15 B - Criacao de tabelas
BD I - Aula 15 B - Criacao de tabelas
 
BD I - Aula 15 A - Comandos DML
BD I - Aula 15 A - Comandos DMLBD I - Aula 15 A - Comandos DML
BD I - Aula 15 A - Comandos DML
 
BD I - Aula 14 B - Exercicios - Enunciado
BD I - Aula 14 B - Exercicios - EnunciadoBD I - Aula 14 B - Exercicios - Enunciado
BD I - Aula 14 B - Exercicios - Enunciado
 
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub SelectsBD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
 
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis - Exercicios Enunc...
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis - Exercicios Enunc...Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis - Exercicios Enunc...
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis - Exercicios Enunc...
 
BD I - Aula 13 B - Agrupando Dados - Parte 04 - Exercicios Enunciado
BD I - Aula 13 B - Agrupando Dados  - Parte 04 - Exercicios EnunciadoBD I - Aula 13 B - Agrupando Dados  - Parte 04 - Exercicios Enunciado
BD I - Aula 13 B - Agrupando Dados - Parte 04 - Exercicios Enunciado
 
BD I - Aula 13 B - Agrupando Dados - Parte 04
BD I - Aula 13 B - Agrupando Dados  - Parte 04BD I - Aula 13 B - Agrupando Dados  - Parte 04
BD I - Aula 13 B - Agrupando Dados - Parte 04
 
BD I - Aula 13 B - Agrupando dados - Parte 04 - Exercicios Enunciado
BD I - Aula 13 B - Agrupando dados  - Parte 04 - Exercicios EnunciadoBD I - Aula 13 B - Agrupando dados  - Parte 04 - Exercicios Enunciado
BD I - Aula 13 B - Agrupando dados - Parte 04 - Exercicios Enunciado
 
BD I - Aula 13 A - Funcoes de string datas numeros e conversao - parte 03
BD I - Aula 13 A - Funcoes de string datas numeros e conversao - parte 03BD I - Aula 13 A - Funcoes de string datas numeros e conversao - parte 03
BD I - Aula 13 A - Funcoes de string datas numeros e conversao - parte 03
 
Algoritmos - Aula 13 C - Matrizes em C
Algoritmos - Aula 13 C - Matrizes em CAlgoritmos - Aula 13 C - Matrizes em C
Algoritmos - Aula 13 C - Matrizes em C
 
Algoritmos - Aula 13 B - Vetores em C
Algoritmos - Aula 13 B - Vetores em CAlgoritmos - Aula 13 B - Vetores em C
Algoritmos - Aula 13 B - Vetores em C
 
Algoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em CAlgoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em C
 
Algoritmos - Aula 12 B - Traducao Ling C - Condicoes
Algoritmos - Aula 12 B - Traducao Ling C - CondicoesAlgoritmos - Aula 12 B - Traducao Ling C - Condicoes
Algoritmos - Aula 12 B - Traducao Ling C - Condicoes
 
Algoritmos - Aula 12 A - Traducao ling C - Ent Proc Saida
Algoritmos - Aula 12 A - Traducao ling C - Ent Proc SaidaAlgoritmos - Aula 12 A - Traducao ling C - Ent Proc Saida
Algoritmos - Aula 12 A - Traducao ling C - Ent Proc Saida
 
BD I - Aula 10 A - Introducao a SQL
BD I - Aula 10 A - Introducao a SQLBD I - Aula 10 A - Introducao a SQL
BD I - Aula 10 A - Introducao a SQL
 

Último

ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
Simulado 2 Etapa - 2024 Proximo Passo.pdf
Simulado 2 Etapa  - 2024 Proximo Passo.pdfSimulado 2 Etapa  - 2024 Proximo Passo.pdf
Simulado 2 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
Orações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxOrações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxKtiaOliveira68
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...ArianeLima50
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -Aline Santana
 
Recurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasRecurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasCasa Ciências
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasillucasp132400
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 

Último (20)

ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
Simulado 2 Etapa - 2024 Proximo Passo.pdf
Simulado 2 Etapa  - 2024 Proximo Passo.pdfSimulado 2 Etapa  - 2024 Proximo Passo.pdf
Simulado 2 Etapa - 2024 Proximo Passo.pdf
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
Orações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxOrações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptx
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
 
Recurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasRecurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de Partículas
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasil
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 

Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis

  • 1. ALGORITMOS Rodrigo Kiyoshi Saito / rodrigok@anchieta.br
  • 2. Modularização • Modularização ou subprograma é um aspécto fundamental da programação estruturada (Staa, 2000). • Um dos objetivos da programação estruturada é diminuir a complexidade dos programas, usando a estratégia de dividir os problemas em menores pedaços;
  • 3. Modularização • Cada modulo deve ter um único objetivo, a qual tem um ponto de entrada, executa e termina em um ponto de saída; • Cada modulo é implementado por um sobprograma específico, passível de ser construído e testado de forma independente; • Os diferentes subprogramas são posteriormente integrados em um só programa;
  • 4. Modularização • Subprogramas tem o objetivo de facilitar a compreensão, o desenvolvimento, o teste e a manutenção dos sistemas; • Programas que utilizam subprogramação resultam mais confiáveis e flexíveis;
  • 5. Modularização Algoritimo NomePrograma var x, y, z : inteiro; inicio x = 1 leia y se (x = y) então execute SubPrograma1 senão execute SubPrograma2 fim_se leia z se ( y = z) então execute SubPrograma1 fim_se fim Procedimento SubPrograma1 var a, b: inteiro; inicio a = 10 b = 20 imprima a, b fim Procedimento SubPrograma2 var a, b: inteiro; inicio a = 5 b = 10 imprima b, a fim
  • 6. Modularização • Um subprogramas (as vezes chamado de sub- rotina) consiste de um trecho de Código com estrutura semelhante a um programa, que é executado somente quando acionado por outro trecho de Código; • Esse acionamento costuma-se denominar chamada ao subprograma (ou subrotina);
  • 7. Modularização • Um subprograma deve executar uma única tarefa, claramente definida; • A execução correta de um subprograma deve ser assegurada sempre que esse seja adequadamente chamado;
  • 8. Modularização • A utilização de um subprograma é uma técnica de programação que visa: – A definição de trechos de códigos menores, mais fáceis de serem construídos e testados; – A diminuição do tamanho dos programas, pela elininação de redundancias, ao evitar que códigos semelhantes sejam repetidos dentro de um programa; – a reutilização de código em um programa ou em programas diferentes ;
  • 9. Modularização – a construção mais segura de programas complexos, pela utilização de unidades menores (ou subprogramas) já construídas e testada;
  • 10. Modularização • Todo subprograma é identificado através de um nome; • Esse nome deve representar claramente a tarefa a ser executada pelo subprograma; • Com a chamada à um subprograma é feita pelo seu nome, por um comando específico ou utilizando diretamente seu resultado;
  • 11. Modularização • Quando um subprograma é chamado, o fluxo de execução do programa ou subprograma que o chamou é interrompido e o subprograma passa a ser executado; • Terminada a execução subsubprograma, o fluxo de execução interrompido é retornado, e o processamento segue a partir do ponto imediatamente após a chamada concluída;
  • 12. Modularização • Um subprograma pode chamar outro subprograma; • A forma de execução é sempre a mesma: o que chamou fica suspenso, esperando o término dá execução do subprograma chamado, continuando depois sua execução a partir da instrução seguinte a instrução de chamada o subprograma;
  • 14. Vários níveis de chamadas a subprogramas
  • 15. Exemplo de subprograma em Português Estruturado programa ExercicioA inicio execute VerificarDivisao() fim subPrograma VerificarDivisao() var numero : inteiro contador : inteiro resto2 : inteiro resto3 : inteiro inicio para contador de 1 até 4 passo 1 faça escreva “Digite numero:” leia numero resto2  numero mod 2 resto3  numero mod 3 se (resto2 = 0) .e. (resto3 = 0) então escreva “Numero”, numero, “são divisiveis por 2 e por 3” fim_se fim_para fim
  • 16. Exemplo de subprograma em linguagem C #include <stdio.h> //Declaracao dos procedimentos void verificarDivisao(); void main() { //chamando a 1a vez a funcao verificarDivisao(); //chando outra vez a mesma função verificarDivisao(); }
  • 17. Exemplo de subprograma em linguagem C void verificarDivisao() { int numero, contador, resto2, resto3; for (contador=1; contador<=4; contador++) { printf("nDigite numero: "); scanf("%d", &numero); resto2 = numero % 2; resto3 = numero % 3; if ( (resto2 == 0) && (resto3 == 0) ) { printf("nNumero: %d e divisivel por 2 e por 3!", numero); } else { printf("nNumero: %d NAO e divisivel por 2 e por 3 ao mesmo tempo!", numero); } } }
  • 18. Parâmetros • Você é os valores que com subprograma necessita receber para poder realizar sua tarefa, ou os valores reproduz que devem ser visíveis externamente após concluída sua execução, devem ser sempre armazenados em parâmetros. • Parâmetros são espaços de armazenamento que permitem a comunicação do subprograma com o mundo externo;
  • 19. Parâmetros • Um subprograma que não utiliza parâmetros e não utiliza informação do mundo exterior para seu acionamento, produzir a sempre o mesmo resultado, não importa onde seja chamado.
  • 20. Parâmetro Formais e Reais • Todos os elementos utilizados em um subprograma devem ser nele declarados. As declarações de parâmetros, além de nomeá-los para uso interno no subprograma, define seu tipo. • Os parâmetros que aparecem na declaração dos subprogramas são chamados de parâmetros formais, porque durante a execução, na chamada dos subprogramas, são substituídos por variáveis ou valores do mesmo tipo, muitas vezes com nomes totalmente diferentes;
  • 21. Parâmetro Fomais e Reais • O parâmetro formal não provoca a reserva de espaço em memória. Ele simplesmente indica que, ao ser chamado o subprograma, deve ser fornecido um valor com seu tipo para a sua execução; • Os parâmetros utilizados na chamada de um subprograma, chamados de parâmetros reais, substituem os formais durante a execução;
  • 22. Exemplo de parâmetro Fomais e Reais em Pseudocódigo programa ExercicioA var numero : inteiro contador : inteiro inicio para contador de 1 até 4 passo 1 faça escreva “Digite numero:” leia numero execute VerificarDivisao(numero) fim_para fim subPrograma VerificarDivisao(pNum : inteiro) var resto2 : inteiro resto3 : inteiro inicio resto2  pNum mod 2 resto3  pNum mod 3 se (resto2 = 0) .e. (resto3 = 0) então escreva “Numero”, pNum, “são divisiveis por 2 e por 3” senão escreva “Numero”, pNum, “NÃO são divisiveis por 2 e por 3!” fim_se fim PARÂMETRO FORMAL PARÂMETRO REAL
  • 23. Exemplo de parâmetro Fomais e Reais em Linguagem C PARÂMETRO REAL #include <stdio.h> //Declaracao dos procedimentos void verificarDivisao(int pNum); void main() { int numero, contador; for (contador=1; contador<=4; contador++) { printf("nDigite numero: "); scanf("%d", &numero); verificarDivisao(numero); } }
  • 24. Exemplo de parâmetro Fomais e Reais em Linguagem C PARÂMETRO FORMAL void verificarDivisao(int pNum) { int resto2, resto3; resto2 = pNum % 2; resto3 = pNum % 3; if ( (resto2 == 0) && (resto3 == 0) ) { printf("nNumero: %d e divisivel por 2 e por 3!", pNum); } else { printf("nNumero: %d NAO e divisivel por 2 e por 3 ao mesmo tempo!", pNum); } }
  • 25. Parâmetro Fomais e Reais • Os parâmetros reais devem sempre concordar em quantidade e tipo com os respectivos parâmetros formais, na ordem em que eles foram definidos; • Podem ser fornecidos como parâmetros reais nomes de variáveis, valores literais ou resultados de expressões; • As variáveis utilizadas como parâmetros reais devem ter sido declaradas no programa que chama o subprograma;
  • 26. Parâmetros de Entrada e Saída • A utilização dê um subprograma só é efetiva se for claramente definida a tarefa que será executada e qual sua interação que o acionou. para que isso seja possível, é importante que toda interação seja feita somente através de parâmetros, identificando quais são os parâmetros de entrada (que recebem variáveis o valores para executar a tarefa) e quais são os parâmetros de saída (que devolvem os valores calculados ao programa que acionou o subprograma).
  • 27. Parâmetros por valor ou por referência • Com a passagem de valores a subprogramas pode acontecer por valor ou por referência; • A passagem por valor indica que somente o valor que interessa ao subprograma. • Se esse valor for passado por meio do nome de uma variável, somente o valor da variável é transferido para o parâmetro;
  • 28. Parâmetros por valor ou por referência • Uma cópia do conteúdo da variável é carregada em uma variável auxiliar, que será utilizada durante a execução do subprograma; • Dessa forma, qualquer modificação com novo valor da variável auxiliar não se refletirá na variável utilizada como parâmetro real; • A passagem de valores para parâmetros definidos por valor pode ser feita ainda por meio de um valor literal e do resultado de uma expressão;
  • 29. Parâmetros por valor ou por referência • Na execução da chamada há um subprograma, os parâmetros passados por valor também são incluídos na pilha de execução, preservando seus valores para a continuação posterior da execução; • Na passagem de um parâmetro por referência, o endereço físico dá variável utilizada como parâmetro real é passada ao subprograma, sendo esta variável utilizada durante a execução;
  • 30. Parâmetros por valor ou por referência • Na passagem de um parâmetro por referência, o endereço físico dá variável utilizada como parâmetro real é passada ao subprograma, sendo esta variável utilizada durante a execução;
  • 31. Parâmetros por valor End. Memória Variavel Valor ABC001 numero 5 ABC002 pNum 5 ABC003 ... var numero : inteiro inicio numero  5 MostrarValor(numero) fim subprograma MostrarValor(pNum: inteiro) inicio escreva(pNum) fim
  • 32. Parâmetros por referência End. Memória Variavel Valor ABC001 numero 5 ABC002 ABC003 ... var numero : inteiro inicio numero  5 MostrarValor(numero) fim subprograma MostrarValor(ref pNum: inteiro) inicio escreva(pNum) fim
  • 33. Parâmetros por valor ou por referência • Alterações no valor do parâmetro são feitas diretamente nessa variável. Na chamada de um subprograma, os parâmetros definidos por referência recebem nomes de variáveis existentes no programa o principal; • É importante observar que, na execução de uma chamada ao subprograma, os parâmetros por referência não sofrem empilhamento, já que não são locais aos subprogramas;
  • 34. Declarações locais e globais • Dentro de um subprograma, podem ser feitas declarações de constantes, tipos e variáveis. as declarações feitas internamente aos subprogramas são declarações locais ao subprograma, e só são visíveis dentro do subprograma; • As áreas de memória associadas as variáveis locais são alocadas no momento em que o subprograma é acionado eles são liberadas ao final de sua execução, quando deixam de existir;
  • 35. Declarações locais e globais • Todo esse processo de criação e destruição de variáveis locais ocorre novamente a cada nova chamada ao subprograma; • No fim da execução do subprograma, a variável auxiliar (local) é liberada e não está mais disponível;
  • 36. Declarações locais e globais • Tipos, constantes e variáveis declarados em um programa, visíveis aos subprogramas que estiverem nele declarados, são consideradas declarações globais ao programa; • Embora elementos globais posssam ser utilizados dentro de subprogramas, essa prática não é recomendável, pois dificulta o entendimento e a depuração dos códigos;
  • 37. Declarações locais e globais LOCAIS GLOBAIS Declarações internamente aos subprogramas que as acessam Declaradas externamente ao subprogramas que as acessam Só são reconhecidas e só podem ser referenciadas nos subprogramas em que são declaradas São reconhecidas e podem ser referenciadas até mesmo em subprogramas em que não foram declaradas Existem apenas enquanto os subprogramas em que foram declaradas estiverem em execução Sua existência independe dos subprogramas que as acessam. Existem antes, durante e após a ativação deles Internamente a um subprograma, quando têm o mesmo nome que uma global, bloqueiam o acesso à global.
  • 38. Escopo de identificadores • A possibilidade de fazer declarações em diferentes pontos de um programa (no programa principal e em subprogramas) requer que seja claramente identificado o escopo de cada identificador. Por escopo, entende-se a área de validade de um determinado identificador;
  • 39. Escopo de identificadores • O escopo de um identificador é definido pela localização de sua declaração. Declarações feitas no programa principal valem em todo o programa, inclusive, por vezes, nos subprogramas que o compôem. • Declarações feitas dentro de um subprograma valem somente dentro desse subprograma.
  • 41. Escopo de identificadores #include <stdio.h> //Declaracao dos procedimentos void SubPrograma01(); int numeroGlobal; void main() { int i, numero; for (i=0; i<5; i++) { printf("nnDigite numero: "); scanf("%d", &numero); printf("nNumero digitado foi %d: ", numero); } numeroGlobal = 100; printf("nNumero Global: %d", numeroGlobal); SubPrograma01(); } Variáveis Globais Variáveis Locais
  • 42. Escopo de identificadores void SubPrograma01() { int i, numero; for (i=5; i<10; i++) { printf("nnDigite numero: "); scanf("%d", &numero); printf("nNumero digitado foi %d: ", numero); } numeroGlobal = 200; printf("nNumero Global: %d", numeroGlobal); } Variáveis Locais
  • 43. Tipos de subprogramas • Dois tipos de subprogramas podem ser utilizados, diferenciados pela forma como são acionados e o modo como devolvem seus resultados: procedimentos e funções
  • 44. Procedimentos • Um procedimento é um subprograma que executa uma determinada tarefa com ou sem a utilização de parâmetros; • Na lista de parâmetros formais, os parâmetros por referencia devem ser identificados pela sigla ref antes do seu nome;
  • 45. Procedimentos #include <stdio.h> //Declaracao das procedures void SomaNumeros(int valor1, int valor2); void main() { int val1, val2, resultado; val1 = 10; val2 = 5; SomaNumeros(val1, val2); } void SomaNumeros(int pValor1, int pValor2) { int total; total = pValor1 + pValor2; printf("nValor da Soma: %d", total); } Declaração sem tipo de retorno Não há return chamada da procedure não necessita de variável para armazenar valor
  • 46. Funções • Uma função é um subprograma que devolve um valor, resultante de um cálculo ou da execução de uma determinada tarefa, ao programa que o chamou por meio de seu nome; • Uma função tem sempre associado a ela um tipo, que é o tipo do valor que ela devolve (valor de retorno);
  • 47. Funções • Em algum lugar do corpo da função, o valor calculado pela função deve ser atribuído ao seu nome, para ser devolvido ao programa que a chamou; • A chamada é feita escrevendo o seu nome, com os parâmetros reais, no ponto do código onde se deseja utilizar, e essa chamada é atribuída geralmente a uma variável do mesmo tipo que a função retorna;
  • 48. Funções #include <stdio.h> //Declaracao das funcoes int SomaNumeros(int valor1, int valor2); void main() { int val1, val2, resultado; val1 = 10; val2 = 5; resultado = SomaNumeros(val1, val2); printf("nValor da Soma: %d", resultado); } int SomaNumeros(int pValor1, int pValor2) { int total; total = pValor1 + pValor2; return total; } Tipo de retorno Retorno compatível com o tipo da função Chamada da função variável que recebe o retorno da função