Você está na página 1de 5

Lgica de Programao

Estruturas de Controle
Neste captulo

Captulo 3

Estrutura Seqencial
Estrutura de Seleo
Estrutura de Repetio

Estruturas de Controle

Lgica de Programao
Forbellone / Eberspacher

Estrutura Seqencial
O Fluxo de Controle segue a mesma seqncia
linear da nossa escrita, ou seja:
De cima para baixo;
Da esquerda para direita

Cada ao seguida de um ;
Objetiva separar uma ao da outra
Indica que a prxima ao da seqncia deve ser
executada

Lgica de Programao Forbellone / Eberspacher Captulo 3

Estruturas de Seleo
So aquelas que permitem alterar o Fluxo de
Execuo, de forma a selecionar qual parte deve
ser executada
Essa deciso de execuo tomada a partir de
uma condio, que pode resultar apenas em
Verdade ou Falsidade
Uma condio representada por expresses
relacionais ou lgicas
As estruturas de seleo podem ser classificadas
em simples, compostas ou encadeadas
Lgica de Programao Forbellone / Eberspacher Captulo 3

Lgica de Programao Forbellone / Eberspacher Captulo 3

Estrutura Seqencial
Algoritmo 3.2 - Mdia Aritmtica

incio
// declarao de variveis
real: N1, N2, N3, N4, // notas bimestrais
MA; // mdia anual
// entrada de dados
leia (N1, N2, N3, N4);
// processamento
MA (N1 + N2 + N3 + N4) / 4;
// sada de dados
escreva (MA);
fim.

Lgica de Programao Forbellone / Eberspacher Captulo 3

Seleo Simples
se <condio> ento
incio // incio do bloco verdade
comando 1;
comando 2;
...
comando n;
fim; // fim do bloco verdade
fimse;

Quando a <condio> for verdadeira o bloco verdade


executado
Quando a <condio> for falsa o bloco verdade no
executado

Lgica de Programao Forbellone / Eberspacher Captulo 3

Seleo Simples
Algoritmo 3.4 - Mdia Aritmtica com Aprovao
incio
// declarao de variveis
real: N1, N2, N3, N4, // notas bimestrais
MA; // mdia anual
// entrada de dados
leia (N1, N2, N3, N4);
// processamento
MA (N1 + N2 + N3 + N4) / 4;
// sada de dados
escreva (MA);
se (MA >= 7) ento
escreva (Aluno Aprovado !);
fimse;
fim.

Lgica de Programao Forbellone / Eberspacher Captulo 3

Seleo Composta

Seleo Composta
se <condio> ento
incio // incio do bloco verdade
comando 1;
comando n;
fim; // fim do bloco verdade
seno
incio // incio do bloco falsidade
comando 1;
comando n;
fim; // fim do bloco falsidade
fimse;

Quando a <condio> for verdadeira o bloco verdade


executado
Quando a <condio> for falsa o bloco falsidade
executado
Lgica de Programao Forbellone / Eberspacher Captulo 3

Seleo Encadeada

Algoritmo 3.5 - Mdia Aritmtica com aprovao e reprovao


incio
// declarao de variveis
real: N1, N2, N3, N4, // notas bimestrais
MA; // mdia anual
leia (N1, N2, N3, N4);
MA (N1 + N2 + N3 + N4) / 4;
escreva (MA);
se (MA >= 7) ento
incio
escreva (Aluno Aprovado !);
escreva (Parabns !);
fim;
seno
incio
escreva (Aluno Reprovado !);
escreva (Estude mais !);
fim;
fimse;
fim.

Lgica de Programao Forbellone / Eberspacher Captulo 3

Seleo Encadeada Heterognea


Algoritmo 3.6 Tipos de Tringulo
incio
inteiro: A, B, C; // tamanho dos lados
leia (A, B, C);
se (A<B+C) e (B<A+C) e (C<A+B) ento
se (A=B) e (B=C) ento
escreva (Triangulo Equiltero);
seno
se (A=B) ou (B=C) ou (A=C) ento
escreva (Tringulo Issceles);
seno
escreva (Triangulo Escaleno);
fimse;
fimse;
seno
escreva (Estes valores no formam um tringulo);
fimse;
fim.
Lgica de Programao Forbellone / Eberspacher Captulo 3

Ocorre quando uma seleo tem como ao uma


outra seleo
Uma seleo encadeada pode ser:
Heterognea: Quando no possvel identificar padro
de comportamento
Homognea: Quando possvel identificar padro de
comportamento
se ento se: quando depois de cada ento ocorre outro se
se seno se: quando depois de cada seno ocorre outro se

Lgica de Programao Forbellone / Eberspacher Captulo 3

Seleo Encadeada Homognea


se ento se
se <Cond1> ento
se <Cond2> ento
se <Cond3> ento
se <Cond4> ento W;
fimse;
fimse;
fimse;
fimse;

Cond1

Cond2

Cond3

Cond4

Ao

equivalente a:
se <Cond1> e <Cond2> e <Cond3> e <Cond4> ento W;
fimse;

Lgica de Programao Forbellone / Eberspacher Captulo 3

Seleo Encadeada Homognea


se X=V1 ento
C1;
fimse;
se X=V2 ento
C2;
fimse;
se X=V3 ento
C3;
fimse;
se X=V4 ento
C4;
fimse;

se

X=V1 X=V2 X=V3 X=V4 Ao

se X=V1
ento C1;
seno se X=V2
ento C2;
seno se X=V3
ento C3;
seno se X=V4
seno se
ento C4;
fimse;
fimse;
fimse;
fimse;
X=V1 X=V2 X=V3 X=V4 Ao

C1

C1

C2

C2

C3

C3

C4

C4

Lgica de Programao Forbellone / Eberspacher Captulo 3

Seleo de Mltipla Escolha


Algoritmo 3.7 Mltipla Escolha
incio
real: Preo;
inteiro: Origem;
leia (Preo, Origem);
escolha Origem
caso 1: escreva (Preo, produto do Sul);
caso 2: escreva (Preo, produto do Norte);
caso 3: escreva (Preo, produto do Leste);
caso 4: escreva (Preo, produto do Oeste);
caso 7, 8, 9: escreva (Preo, produto do Sudeste);
caso 10..20: escreva (Preo, produto do Centro-Oeste);
caso 5, 6, 25..50: escreva (Preo, produto do Nordeste);
caso contrrio: escreva (Preo, produto importado);
fimescolha;
fim.
Lgica de Programao Forbellone / Eberspacher Captulo 3

Repetio com Teste no Incio


Lao que verifica antes de cada execuo, se
permitido executar o trecho do algoritmo
Trata-se de um lao que se mantm repetindo
enquanto uma dada condio permanecer
verdadeira
enquanto <condio> faa
comando 1;
comando 2;
...
comando n;
fimenquanto;

Lgica de Programao Forbellone / Eberspacher Captulo 3

Seleo de Mltipla Escolha


Selees encadeadas homogneas se-seno-se
so bastante freqentes para o tratamento de listas
de valor
Para simplificar a escrita, pode-se utilizar o
comando escolha.
Adaptando o algoritmo anterior:
escolha X
caso V1: C1;
caso V2: C2;
caso V3: C3;
caso V4: C4;
fimescolha;
Lgica de Programao Forbellone / Eberspacher Captulo 3

Estruturas de Repetio
So aquelas que permitem executar mais de uma vez
(repetir) um determinado trecho do algoritmo
O trecho do algoritmo em repetio tambm chamado de
lao (ou loop)
As repeties devem ser sempre finitas
Quanto a quantidade de repeties, os laos podem ser
Pr-determinados: Sabe-se antes a quantidade de execues
Indeterminados: No se conhece a quantidade de execues

Quanto ao critrio de parada, os laos podem utilizar


Teste no incio
Teste no final
Varivel de controle
Lgica de Programao Forbellone / Eberspacher Captulo 3

Repetio com Teste no Incio


Contador: Varivel que reproduz o processo de
contagem
incio
inteiro: CON;
CON 0;
enquanto CON < 3 faa
CON CON + 1;
fimenquanto;
fim.

CON
3
2
1
0

Lgica de Programao Forbellone / Eberspacher Captulo 3

Repetio com Teste no Incio

Algoritmo 3.8 - Mdia Aritmtica para 50 alunos


incio
// declarao de variveis
real: N1, N2, N3, N4, // notas bimestrais
MA; // mdia anual
inteiro: CON; // contador
CON 0; // inicializao do contador
enquanto (CON < 50) faa // teste da condio de parada
leia (N1, N2, N3, N4);
MA (N1 + N2 + N3 + N4) / 4;
escreva (MA);
se (MA >= 7) ento
escreva (Aluno Aprovado. Parabns !);
seno
escreva (Aluno Reprovado. Estude mais !);
fimse;
CON CON + 1; // incremento do contador
fimenquanto;
fim.
Lgica de Programao Forbellone / Eberspacher Captulo 3

Repetio com Teste no Incio

Algoritmo 3.9 - Mdia Aritmtica da turma de 50 alunos


incio
// declarao de variveis
real: MA, // mdia anual de dado aluno
ACM, // Acumulador
MAT; // Mdia Anual da Turma
inteiro: CON; // contador
CON 0; // inicializao do contador
ACM 0; // inicializao do acumulador
enquanto (CON < 50) faa // teste da condio de parada
leia (MA);
ACM ACM + MA; // soma em ACM os valores lidos em MA
CON CON + 1; // incremento do contador
fimenquanto;
MAT ACM / 50; // calculo da mdia anual da turma
escreva (mdia anual da turma = , MAT);
fim.

Lgica de Programao Forbellone / Eberspacher Captulo 3

Repetio com Teste no Final

Algoritmo 3.12 - Mdia Aritmtica da turma com Repita


incio
// declarao de variveis
real: MA, // mdia anual de dado aluno
ACM, // Acumulador
MAT; // Mdia Anual da Turma
inteiro: CON; // contador
CON 0; // inicializao do contador
ACM 0; // inicializao do acumulador
repita
leia (MA);
ACM ACM + MA; // soma em ACM os valores lidos em MA
CON CON + 1; // incremento do contador
at (CON >= 50); // teste da condio de parada
MAT ACM / 50; // calculo da mdia anual da turma
escreva (mdia anual da turma = , MAT);
fim.

Lgica de Programao Forbellone / Eberspacher Captulo 3

Repetio com Teste no Incio


Acumulador: Varivel que reproduz o processo de
acumulao
incio
inteiro: CON, X, ACM;
CON 0;
ACM 0;
enquanto CON < 3 faa
CON CON + 1;
leia (X);
ACM ACM + X;
fimenquanto;
fim.

CON

ACM

3
2
1
0

11
7
5
0

4
2
5

Lgica de Programao Forbellone / Eberspacher Captulo 3

Repetio com Teste no Final


Lao que verifica depois de cada execuo, se
permitido continuar executando o trecho do
algoritmo
Trata-se de um lao que se mantm repetindo at
que uma dada condio se torne verdadeira
repita
comando 1;
comando 2;
...
comando n;
at <condio>;

Lgica de Programao Forbellone / Eberspacher Captulo 3

Repetio com Varivel de


Controle
Lao simplificado para utilizao em repeties de
quantidade predeterminada
Incorpora internamente o funcionamento de um
contador de repeties
para V de vi at vf passo p faa
comando 1;
comando 2;
...
comando n;
fimpara;

Lgica de Programao Forbellone / Eberspacher Captulo 3

Repetio com Teste no Final

Algoritmo 3.12 - Mdia Aritmtica da turma com Para


incio
// declarao de variveis
real: MA, // mdia anual de dado aluno
ACM, // Acumulador
MAT; // Mdia Anual da Turma
inteiro: V; // contador
ACM 0; // inicializao do acumulador
para V de 1 at 50 passo 1 faa
leia (MA);
ACM ACM + MA; // soma em ACM os valores lidos em MA
fimpara;
MAT ACM / 50; // calculo da mdia anual da turma
escreva (mdia anual da turma = , MAT);
fim.

Lgica de Programao Forbellone / Eberspacher Captulo 3

Comparao entre Estruturas de


Repetio
Aprendemos 3 maneiras de construir laos de
repetio
importante perceber que existem laos mais
adequados ou convenientes para cada situao
Estrutura

Condio

Quantidade de
Execues

Condio de
Existncia

Enquanto

Incio

zero ou muitas

Condio
verdadeira

Repita

Final

uma ou muitas

Condio falsa

Para

No tem

((vf - vi) div passo) + 1

vi <= vf

Lgica de Programao Forbellone / Eberspacher Captulo 3

Você também pode gostar