Professional Documents
Culture Documents
Sub Rotinas Computacao
Sub Rotinas Computacao
Sub-rotinas Sub-rotinas
• Sub-rotinas ficam dentro de um programa principal
• Elas são utilizadas para dividir uma tarefa maior em
• As sub-rotinas são blocos de instruções várias sub-tarefas
que possibilitam o desenvolvimento de • O processo é feito com o auxilio de refinamentos
sucessivos. A idéia principal é o de dividir para
programas modularizados. conquistar
• O algoritmo se torna mais eficiente, uma vez que:
– Possibilita o entendimento do código pelo programador e pela
equipe do projeto
– Possibilita a reutilização de código
– Facilita a manutenção
3 4
Sub-rotinas Procedimentos
5 6
Representação para subrotinas- Exemplo Procedimento
refazer a figura
Algoritmo menu Procedimento ModAdic
Declare opcao : inteiro Declare v1, v2, res : real Procedimento ModMult
Calculo() Inicio Inicio Declare v1, v2, res : real
Main() { leia(opcao) leia( v1, v2) Inicio
1a. instrução escolha (opcao) res ← v1 + v2 leia( v1, v2)
{ caso 1 : ModAdic escreva(res) res ← v1 * v2
....... 2a. instrução 1 caso 2 : ModSubtr Fim. escreva(res)
....... caso 3 : ModMult Fim.
última instrução caso 4 : Moddiv
A = Calculo() caso 5 : Fim Procedimento ModSubtr
A= A+1; } Fim_escolha Declare v1, v2, res : real Procedimento ModDiv
última
....... Fim. Inicio Declare v1, v2, res : real
leia( v1, v2) Inicio
res ← v1 - v2 leia( v1, v2)
} escreva(res) res ← v1 / v2
Múltipla Escolha
Fim. escreva(res)
Fim.
7 8
9 10
Parâmetros Parâmetro
• São variáveis e valores que são transferidos do • Passagem por valor
algoritmo principal para um módulo chamado
• Ex.: Calcula Multiplicação de 2 números – O valor é copiado para função ou
procedimento
Procedimento Multiplica (a, b : reais) • Passagem por referência
Declare res : real
Inicio – É passado o endereço da variável
res ← (a * b) – Qualquer alteração na variável do módulo
escreva (res) refletirá na variável do programa principal.
Fim.
11 12
Funções em C Exemplo em C
• Tem estrutura semelhante a função ...
Ch = minusculo(car);
main(); ...
• São chamadas (usadas) da mesma forma
que usamos funções de C (printf(), scaf(), minusculo(ch)
gets(), getche(), etc) char ch;
{
• Retorna valor através do comando if (ch >= `A` && ch <= `Z`)
return(); ch += `a` - `A`;
return(ch);
• Termina função com comando return;
}
13 14
Manhã Tarde
abs(int x) void abs (int x) Minutos entrada Minutos entrada
{ ... }
{ ... } Minutos saída Minutos saída
atraso atraso
15 16
Problema
Módulo Entrada
Impressão
1) Módulo Entrada
1) Cont<-0
Entrada Cálculo 2) leia(dia)
3) Enquanto (dia < 0) e (dia < 32) faça
1) leia(a, b, c,d)
2) cartão[dia].em<-a;
3) cartão[dia].sm<-b;
4) cartão[dia].et<-c;
Manhã Tarde
5) cartão[dia].st<-d;
6) cont<-cont +1;
7) leia(dia)
4) FimEnquanto
2) fimModulo
Minutos entrada Minutos saída Atraso Minutos entrada Minutos saída Atraso
17 18
Algoritmo atrasos
Cartão, totalDias, cont, i toht, totatr
Escopo de Variáveis Entrada
Dia, a, b, c, d
Calculo
• Variáveis Globais Tm, tt, atrm, atrt
21 22