Buscar

Subrotinas e funções

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
PROGRAMAÇÃO DE 
COMPUTADORES
Prof. Jean Carvalho
Email: jeancarvalho@ufsj.edu.br
Site: sites.google.com/site/jeancarvalhoufsj 
Sala: 4.29EL
Aula 09
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Índice
Modularização
Sub-rotinas
Funções
2
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Modularização
Programação Estruturada: 
Divisão de um problema em partes;
Facilita a resolução de tarefas;
Diminui o tamanho dos programas;
Facilita a alteração.
Divisão  Refinamentos sucessivos 
Redução de um problema a um conjunto de 
tarefas destinadas a solucioná-lo de maneira 
eficiente;
Módulo  nome de cada parte;
Sub-rotinas ou Funções;
Algoritmo independente;
Pode ser usado em outros problemas.
3
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
4
▸O algoritmo principal (ou módulo principal) gerencia as 
tarefas;
▸Módulo um grupo de comandos, constituindo um trecho de 
algoritmo, com uma função bem definida e o mais 
independente possível em relação ao resto do algoritmo.
Modularização
Início
Preparar 
massa
Bolo 
assado?
Tirar Bolo 
do Forno
Aguardar 5 
minutos
Fim
Sim
Não
Levar ao 
Forno
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Modularização
Vantagens
Manutenção mais simples sem efeitos colaterais no 
resto do código;
Independência na elaboração dos módulos;
Testes e correções dos módulos podem ser feitos 
separadamente;
Uniformidade no processo de desenvolvimento de 
software;
Um módulo independente pode ser utilizado em 
outros algoritmos que requeiram o mesmo 
processamento por ele executado;
Legibilidade do código;
Em síntese:
Maior qualidade
Maior eficiência
5
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
▸Problema: Elaborar um algoritmo para calcular o salário líquido de um 
empregado.
6
Modularização
algoritmo 
//Ler os dados do funcionário
//Determinar o salário líquido
Ative o módulo ”determina vantagens“
Ative o módulo ”determina deduções“
SALARIOLIQUIDO  VANTAGENS -
DEDUCOES
//Escrever o salário
fim_algoritmo
Módulo determina_vantagens
//Comandos para determinar 
vantagens
Fim módulo
Módulo determina_deducoes
//Comandos para determinar 
deduções
Fim módulo
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Modularização
Problema: Elaborar um algoritmo para 
calcular o salário líquido de um 
empregado.
7
MÓDULO 
VANTAGENS
MÓDULO 
DEDUÇÕES
MÓDULO 
PRINCIPAL
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Modularização
Todo módulo é constituído por uma sequência 
de comandos que operam sobre um conjunto 
de variáveis (objetos), que podem ser:
Variáveis Globais Declaradas em um módulo 
externo. Podem ser usadas em módulos internos;
Variáveis Locais Declaradas em um módulo 
interno. Só podem ser usadas no módulo do 
algoritmo onde foram declaradas. Não possuem 
qualquer significado fora deste módulo.
Um módulo pode usar variáveis globais ou 
locais em relação a ele. Mas não pode usar 
variáveis declaradas em módulos que não o 
abrangem. 
8
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Problema: Elaborar um algoritmo para 
calcular o salário líquido de um 
empregado.
MÓDULO 
VANTAGENS
MÓDULO 
DEDUÇÕES
A
B C
Modularização
9
MÓDULO 
PRINCIPAL
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Modularização
Tipos de módulos:
Sub-rotina: código modularizado;
Função: código modularizado que retorna um 
valor.
10
S1 S2
MP
F1 F2
S3 F3 S4 F4
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
▸Sintaxe
11
Sub-rotina
sub-rotina <Nome da sub-rotina>(<lista de parâmetros> <tipos>)
//declaração de variáveis locais à sub-rotina
//comandos da sub-rotina
fim_sub_rotina
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Sub-rotina
A chamada de uma sub-rotina é feita pelo 
nome e pela indicação dos parâmetros atuais 
no local do algoritmo onde a sub-rotina dever 
ser ativada (onde sua execução dever ser 
iniciada);
Forma geral para o comando de ativação de 
uma sub-rotina:
Ao terminar a execução dos comandos de uma 
sub-rotina, o fluxo de controle retorna ao 
comando seguinte àquele que provocou a 
chamada.
12
<Nome da sub-rotina>(<lista de parâmetros atuais>)
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
13
▸Problema: Escreva um programa que receba um valor de temperatura em 
graus Fahrenheit e imprima na tela o valor da temperatura em graus Celsius. 
Conversão: C = 5*((F-32)/9).
Sub-rotina
algoritmo 
//declaração de variáveis
//Leitura do valor de temperatura digitado
//Cálculo e impressão da temperatura em °C
fim_algoritmo
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
14
▸Problema: Escreva um programa que receba um valor de temperatura em 
graus Fahrenheit e imprima na tela o valor da temperatura em graus Celsius. 
Conversão: C = 5*((F-32)/9).
Sub-rotina
algoritmo 
//declaração de variáveis
declare T_F, T_C numerico
//Leitura do valor de temperatura digitado
escreva "Entre com a temperatura em graus Fahrenheit : " 
leia T_F
//Cálculo e impressão da temperatura em °C
T_C <- 5*(T_F - 32)/9
escreva "Temperatura em graus Celsius : ", T_C, "°C"
fim_algoritmo
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
15
▸Problema: Escreva um programa que receba um valor de temperatura em 
graus Fahrenheit e imprima na tela o valor da temperatura em graus Celsius. 
Conversão: C = 5*((F-32)/9).
Sub-rotina
algoritmo 
//Declaração de variáveis
//Leitura do valor de temperatura digitado
//Ativação da sub-rotina de conversão e impressão
//Declaração da sub-rotina de conversão e impressão
fim_algoritmo
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Sub-rotina
16
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
▸As funções, embora bastante semelhante às sub-rotinas, 
têm a característica especial de retornar ao algoritmo que 
as chamou um valor associado ao nome da função;
▸Sintaxe:
Função
17
sub-rotina <Nome da função>(<lista de parâmetros> <tipos>)
//declaração de variáveis locais à função
//comandos da função
retorne <parâmetros>
fim_sub_rotina
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
18
▸A chamada da função é feita com uma referência a seu 
nome e a indicação dos parâmetros atuais no local do 
algoritmo onde a função dever ser ativada (onde sua 
execução dever ser iniciada);
▸Forma geral para o comando de ativação da função:
▸A variável que recebe o valor entregue pela função deve 
ser declarado e deve ser do mesmo tipo especificado na 
declaração da função.
Função
<variável>  <Nome da função>(<lista de parâmetros atuais>)
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
19
▸Problema: Escreva um programa que receba um valor de temperatura em 
graus Fahrenheit e imprima na tela o valor da temperatura em graus Celsius. 
Conversão: C = 5*((F-32)/9).
Função
algoritmo 
//Declaração de variáveis
//Leitura do valor de temperatura digitado
//Ativação da função de conversão
//Impressão dos dados
//Declaração da função de conversão
fim_algoritmo
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Função
20
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Função
21
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
▸22 Escrever um algoritmo que leia as medidas dos 
três lados a, b e c de um paralelepípedo, e que calcule e 
escreva o valor de sua diagonal D, conforme figura a 
seguir.
a
b
d
c f
𝑑 = 𝑎2 + 𝑏2
𝑓 = 𝑐2 + 𝑑2
22
Exercício Lista 02

Continue navegando