Você está na página 1de 5

Lgica de Programao

Estruturas de Controle
Neste captulo
Estrutura Seqencial Estrutura de Seleo Estrutura de Repetio

Captulo 3

Estruturas de Controle

Lgica de Programao Forbellone / Eberspacher

Lgica de Programao Forbellone / Eberspacher Captulo 3

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

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.

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

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

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.

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

Lgica de Programao Forbellone / Eberspacher Captulo 3

Seleo Composta
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.

Seleo Encadeada
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

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

Seleo Encadeada Homognea


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

Cond1 V

Cond2 V

Cond3 V

Cond4 V

Ao W

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;
V F F F F V F F F F V F F F F V

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

se

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 V F F F V F F V F V C1 C2 C3 C4

X=V1 X=V2 X=V3 X=V4 Ao C1 C2 C3 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

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


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;

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

Lgica de Programao Forbellone / Eberspacher Captulo 3

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

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 3 2 1 0

ACM 11 7 5 0

X 4 2 5

Lgica de Programao Forbellone / Eberspacher Captulo 3

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.

Repetio com Teste no Incio

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

Lgica de Programao Forbellone / Eberspacher Captulo 3

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.

Repetio com Teste no Final

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

Lgica de Programao Forbellone / Eberspacher Captulo 3

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.

Repetio com Teste no Final

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 Enquanto Repita Para Condio Incio Final No tem Quantidade de Execues zero ou muitas uma ou muitas ((vf - vi) div passo) + 1 Condio de Existncia Condio verdadeira Condio falsa vi <= vf

Lgica de Programao Forbellone / Eberspacher Captulo 3

Lgica de Programao Forbellone / Eberspacher Captulo 3

Você também pode gostar