Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1– Modularidade
Normalmente problemas complexos exigem algoritmos complexos na busca de suas
soluções. Todo grande problema computacional pode vir a ser dividido em problemas
menores. Desta forma, cada parte menor tem um algoritmo mais simples e de mais fácil
compreensão e administração, e esse trecho menor é chamado de sub-rotina (ou mesmo de
módulo, subprograma, subalgoritmo.
Uma sub-rotina é um programa (trecho de um programa maior), e desta forma pode
efetuar diversas operações computacionais (como: entradas, processamentos e saídas) e
deve ser tratada com o mesmo cuidado, como foram tratados os programas projetados até
este momento.
Ao trabalhar com a técnica de sub-rotinas, às vezes se depara com a necessidade de
dividir uma sub-rotina em outras tantas quantas forem necessárias, buscando uma solução
mais simples de uma parte do problema maior. O processo de dividir sub-rotinas em outras
é denominado Método de Refinamento Sucessivo
2 – Método Top-Down
O processo de programar um computador torna-se bastante simples quando aplicado
o método de utilização de sub-rotinas (módulos de programas). Porém, a utilização dessa
sub-rotinas deve ser feita com aplicação do método top-down.
Um método adequado à programação de um computador é a utilização do conceito
de programação estruturada, pois as linguagens de programação de terceira geração
utilizadas atualmente (como:C, C++, Java, ObjectPascal, Pascal) são baseadas nesta
estrutura, o que facilita a aplicação deste processo de trabalho. O método mais utilizado
para a programação estruturada de computadores é o top-down (de cima para baixo) o qual
se caracteriza basicamente por:
• Conhecidas todas as tarefas a serem executadas, tem-se em mente como deve ser o
programa principal, o qual vai controlar todas as outras tarefas distribuídas em suas
sub-rotinas;
3 – Tipos de Sub-Rotina
A técnica de modularização de código de programa baseado no conceito de sub-
rotinas disponibiliza para o trabalho de um programador dois modos de tratamento do
problema. Um modo denomina-se procedimento e o outro denomina-se função.
Uma sub-rotina (seja ela um procedimento ou uma função) é considerada um bloco
de programa que possui obrigatoriamente início e fim. Uma sub-rotina é identificada por
um nome, por meio do qual serão feitas as devidas referências em qualquer parte do
programa principal ou do programa chamador da rotina. Quando uma sub-rotina é chamada
por um programa, ela é executada, e ao seu término o controle de processamento retorna
automaticamente retorna automaticamente para a primeira linha de instrução após a linha
que efetuou a chamada da sub-rotina. A diferença básica existente entre os dois tipos de
sub-rotina são:
• As sub-rotinas do tipo função são mecanismos que sempre retornam algum tipo de
valor ao fim de seu processamento.
As sub-rotinas (tanto do tipo procedimento, quanto do tipo função) para seu trabalho
podem fazer uso de parâmetros (denominados também de argumentos) que serão passados
por intermédio do programa principal ou do programa chamador daquela sub-rotina. Este
conceito em particular será visto mais adiante com detalhes.
Português Estruturado
Programa TESTE
( Sub-Rotina)
( Programa Principal )
programa PRINCIPAL
var
<variáveis>
início
rotina [ ( <parâmetros> ) ]
fim
Elaborar um programa do tipo calculadora simples para operar apenas dois valores
numéricos, que apresente um menu de seleções no programa principal. Esse menu deve dar
ao usuário a possibilidade de escolher uma entre quatro operações aritméticas. Escolhida a
opção desejada, deve ser solicitada a entrada de dois números, e processada a operação,
deve ser exibido o resultado.
Algoritmo
Note que esse programa deve ser um conjunto de cinco rotinas, sendo uma principal
e quatro sub-rotinas. A rotina principal efetuará o controle das quatro sub-rotinas que, por
sua vez, pedirão a leitura de dois valores numéricos, farão a operação e apresentarão o
resultado obtido.
Programa Principal
1. Adição
2, Subtração
3. Multiplicação
4. Divisão
5. Fim de Programa
Rotina 1 – Adição
Rotina 2 – Subtração
Rotina 3 – Multiplicação
Rotina 4 – Divisão
Observe que em cada rotina serão utilizadas as mesmas variáveis, mas elas não
serão executadas ao mesmo tempo para todas as operações. Serão utilizadas em separado e
somente para a rotina escolhida.
Português Estruturado
Programa CALCULADORA
(Sub-rotinas de cálculos)
procedimento ROTSOMA
var
R, A, B : real
Início
Escreva “Rotina de Soma”
Escreva “Entre um valor para A: “
Leia A
Escreva “Entre um valor para B: “
Leia B
B
R←A+B
Escreva “A soma de A com B é = “ , R
Fim
Procedimento ROTSUBTRAÇÃO
Var
R, A, B : real
Início
Escreva “Rotina de Subtração”
Escreva “Entre um valor para A: “
Leia A
Escreva “Entre um valor para B: “
Leia B
R←A–B
Escreva “A subtração de A com B é = “ , R
Fim
Procedimento ROTMULTIPLICAÇÃO
Var
R, A, B : real
Início
Escreva “Rotina de Multiplicação”
Escreva “Entre um valor A: “
Leia A
Escreva “Entre um valor para B: “
Leia B
R←A*B
Escreva “A multiplicação de A com B é = “ , R
Fim
Procedimento ROTDIVISÃO
Var
R, A, B : real
Início
Escreva “Rotina de Divisão”
Escreva “Entre um valor para A: “
Leia A
Escreva “Entre um valor para B: “
Leia B
Se (B = 0 ) então
Escreva “Impossível dividir”
Senão
R←A/B
Escreva “A divisão de A com B é = “, R
Fim_se
Fim
(Programa Principal)
var
OPÇÃO : inteiro
Início
OPÇÃO ← 0
Enquanto (OPÇÃO < > 5 ) faça
Escreva “1 – Adição”
Escreva “2 – Subtração”
Escreva “3 – Multiplicação”
Escreva “4 – Divisão”
Escreva “5 – Finalização”
Escreva “Escolha uma opção: “
Leia OPÇÃO
Se (OPÇÃO = 1) então
Rotsoma
Fim-se
Se (OPÇÃO = 2) então
Rotsubtração
Fim_se
Se (OPÇÃO = 3) então
Rotmultiplicação
Fim_se
Se (OPÇÃO = 4 ) então
Rotdivisão
Fim_se
Fim_enquanto
fim
Português Estruturado
caso <variável>
seja <valor1> faça <operação1>
seja <valor2> faça <operação2>
seja <valorN> faça <operaçãoN>
senão <operação padrão>
fim_caso
Em que <variável> será a variável a ser controlada, valor será o conteúdo de uma variável
sendo verificado e operação pode ser a chamada de uma sub-rotina, a execução de qualquer
operação matemática ou de qualquer outra instrução
Desta forma, a rotina principal do programa calculadora pode ser escrita fazendo
uso da instrução caso...fim_caso no selecionamento de uma opção escolhida pelo
operador.
Português Estruturado
início
OPÇÃO ← 0
enquanto (OPÇÃO < > 5 ) faça
escreva “1 – Adição”
escreva “2 – Subtração”
escreva “3 – Multiplicação”
escreva “4 – Divisão”
escreva “5 – Finalização”
escreva “Escolha uma opção: “
leia OPÇÃO
se (OPÇÃO < > 5 ) então
caso OPÇÃO
seja 1 faça rotsoma
seja 2 faça rotsubtração
seja 3 faça rotmultiplicação
Seja 4 faça rotdivisão
senão escreva “Opção inválida – Tente novamente”
fim_caso
fim_se
fim_enquanto
fim
Antes do uso da instrução caso...fim_caso, está sendo verificado se o valor da opção
informado é realmente diferente de 5. Sendo, será verificado se é 1, 2, 3 ou 4; Não sendo
nenhum dos valores válidos, a instrução senão informa que a tentativa foi inválida. O uso
desta nova instrução agiliza o processamento das instruções, ou seja, é muito mais rápido
utilizar a instrução caso...fim_caso do que aninhar diversas instruções do tipo se.