Você está na página 1de 17
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza
AALLGGOORRIITTMMOOSS Prof.: Alessandro J.de Souza

AALLGGOORRIITTMMOOSS

Prof.: Alessandro J.de Souza

Quarta Aula – Teórica

Controle de Fluxo de Execução

Comandos Compostos

Estrutura seqüencial

Estruturas de Decisão

Estruturas de Repetição

Aninhamentos

Controle de Fluxo de Execução

Comandos Compostos

Um comando composto é um conjunto de zero ou mais comandos (ou instruções) simples, como atribuições e instruções primitivas de entrada ou saída de dados, ou alguma das construções apresentadas neste capítulo.

Controle de Fluxo de Execução

Estrutura seqüencial

Na estrutura seqüencial os comandos de um algoritmo são executados numa seqüência pré-estabelecida. Cada comando é executado somente após o término do comando anterior.

Em termos de fluxogramas, a estrutura seqüencial é caracterizada por um único fluxo de execução (um único caminho orientado) no diagrama.

<comando 1> <comando 2> <comando 3>
<comando 1>
<comando 2>
<comando 3>

Controle de Fluxo de Execução

Estruturas de Decisão (Tipo Se)

Se <condição> Então

<comando_composto_1>

Senão

<comando_composto_2>

Fim_se

.V. .F. <condição> <comando_ <comando_ composto_1> composto_2>
.V.
.F.
<condição>
<comando_
<comando_
composto_1>
composto_2>

Controle de Fluxo de Execução

Caso particular do SE

Pseudocódigo Se <condição> Então

<comando_composto_1>

Fim_se

.V. <condição> <comando_ composto_1> .F.
.V.
<condição>
<comando_
composto_1>
.F.

Controle de Fluxo de Execução

Estruturas de Decisão do Tipo Escolha

Na estrutura de decisão do tipo Escolha pode haver uma ou mais condições a serem testadas e um comando composto diferente associado a cada uma destas.

.V. <condição_1> <comando_composto_1> .F. .V. <condição_2> <comando_composto_2>
.V.
<condição_1>
<comando_composto_1>
.F.
.V.
<condição_2>
<comando_composto_2>
.F.
.V.
<condição_n>
<comando_composto_n>
.F.
<comando_composto_s>

Controle de Fluxo de Execução

Estruturas de Decisão do Tipo Escolha

Pseudocódigo Escolha Caso <condição_1>

<comando_composto_1>

Caso <condição_2>

<comando_composto_2>

Caso <condição_n> <comando_composto_n>

Senão

<comando_composto_s>

Fim_escolha

Controle de Fluxo de Execução

Algoritmo Exemplo_Escolha VarSALARIO, SAL_REAJ : real PROF : literal[20] Início Leia SALARIO, PROF Escolha Caso PROF = “Técnico”

SAL_REAJ

Caso PROF = “Gerente”

SAL_REAJ Senão SAL_REAJ

1.5 * SALARIO

1.3 * SALARIO

1.1 * SALARIO

Fim_escolha Escreva “Salário Reajustado = “, SAL_REAJ Fim.

Início SALARIO, PROF
Início
SALARIO, PROF
PROF = .V. SAL_REAJ aaa 1.5 * SALARIO "Técnico" .F. PROF = .V. SAL_REAJ aaa
PROF =
.V.
SAL_REAJ aaa 1.5 * SALARIO
"Técnico"
.F.
PROF =
.V.
SAL_REAJ aaa 1.3 * SALARIO
"Gerente"
.F.
SAL_REAJ aaa 1.1 * SALARIO
"Salário Reajustado = ",
SAL_REAJ
Fim

Controle de Fluxo de Execução

Estruturas de Repetição

As estruturas de repetição são muitas vezes chamadas de Laços ou, também, de Loops. A classificação das estruturas de repetição é feita de acordo com o conhecimento prévio do número de vezes que o conjunto de comandos será executado. Assim, os laços dividem-se em:

laços contados

laços condicionais

Controle de Fluxo de Execução

Laços Contados: quando se conhece previamente quantas vezes o comando composto no interior da construção será executado

Pseudocódigo

Para <var> de <início> até <final> incr de <inc> faça <comando_composto> Fim_para

<var> = <ínicio> <fim> <inc> <comando_ composto>
<var> = <ínicio>
<fim> <inc>
<comando_
composto>

Controle de Fluxo de Execução

Exemplo – Para

Escreva um algoritmo para calcular a soma de dez números quaisquer fornecidos pelo usuário.

Algoritmo Soma_10

Var

SOMA, NUM: real CONT : inteiro

Início

SOMA

Escreva “Algoritmo para somar 10 números” Para CONT de 1 até 10 faça Escreva “Número: “ Leia NUM

0

SOMA

SOMA + NUM

Fim_para Escreva “Soma = “, SOMA Fim.

Algoritmo e lógica de Programação

Início

Início

Início
Início
“, SOMA Fim. Algoritmo e lógica de Programação Início SOMA aaa 0 "Algoritmo para somar 10
SOMA aaa 0

SOMA aaa 0

SOMA aaa 0
SOMA aaa 0
"Algoritmo para somar 10 números"
"Algoritmo para somar
10 números"
CONT = 1, 10, 1 "Número: " NUM SOMA aaa SOMA + NUM
CONT = 1, 10, 1
"Número: "
NUM
SOMA aaa
SOMA + NUM
"Soma = ", SOMA
"Soma = ", SOMA

Fim

12

Controle de Fluxo de Execução

Laços Condicionais: são aqueles cujo conjunto de comandos em seu interior é executado até que uma determinada condição seja satisfeita. Ao contrário do que acontece nos laços contados, nos laços condicionais não se sabe de antemão quantas vezes o corpo do laço será executado.

Laço Condicional – Enquanto seud oc ódi g o

P

Enquanto <condição> faça <comando_composto> Fim_enquanto

.F. <condição> .V. <comando_ composto>
.F.
<condição>
.V.
<comando_
composto>

Controle de Fluxo de Execução

Exemplo – Enquanto

Uma empresa decide dar um aumento de 30% aos funcionários cujo salário é inferior a R$ 5.000. Escreva um algoritmo que possa ser utilizado para efetuar o cálculo do salário de um numero indeterminado de funcionários.

Algoritmo Reajuste_3_Enquanto Var SALARIO, SAL_REAJ : real Início Escreva “Algoritmo para cálculo de reajuste” Escreva “Salário = ” Leia SALARIO Enquanto SALARIO > 0 faça Se SALARIO < 5000 Então

SAL_REAJ

1.3 * SALARIO

Escreva “Salário Reajustado = “, SAL_REAJ Fim_se Escreva “Salário = ” Leia SALARIO

Fim_enquanto

Fim.

Controle de Fluxo de Execução

Laço Condicional - Repita

Pseudocódigo

Repita <comando_composto> Até que <condição>

<comando_

<comando_

composto>

composto>
<comando_ composto>
<comando_ composto>
<condição> .V.
<condição>
.V.
<comando_ composto> <condição> .V. . F . Algoritmo e lógica de Programação 15

.F.

Controle de Fluxo de Execução

Exemplo – Repita

Uma empresa decide dar um aumento de 30% aos funcionários cujo salário é inferior a R$ 5.000. Escreva um algoritmo que possa ser utilizado para efetuar o cálculo do salário de um numero indeterminado de funcionários.

Algoritmo Reajuste_3_Repita Var SALARIO, SAL_REAJ : real Início Escreva “Algoritmo para cálculo de reajuste” Repita Escreva “Salário = ” Leia SALARIO Se (SALARIO > 0) .E. (SALARIO < 5000) Então

SAL_REAJ

1.3 * SALARIO

Escreva “Salário Reajustado = “, SAL_REAJ Fim_se Até que SALARIO <= 0 Fim.

Controle de Fluxo de Execução

Síntese

As estruturas de controle do fluxo de execução são essenciais para que se possa alterar a seqüência de execução dos comandos de um programa em função dos dados do mesmo.

Um comando composto é um conjunto de zero ou mais comandos simples, sejam eles instruções primitivas ou construções como as estudadas neste capítulo.

Uma estrutura seqüencial é aquela em que os comandos vão sendo executados numa seqüência pré-estabelecida, um após o outro.

As estruturas de decisão permitem escolher qual o caminho a ser seguido num algoritmo em função de uma ou mais condições. A construção Se utiliza apenas uma condição, ao passo que a construção Escolha utiliza uma ou mais condições.

As estruturas de repetição são usadas quando se deseja repetir um trecho de um algoritmo (comando composto). Quando o número de vezes que o trecho será repetido é conhecido diz-se que o laço é do tipo contado (construção Para). Quando este número não é conhecido, mas é função de uma determinada condição, então têm-se os laços condicionais (construção Enquanto e Repita).

As construções Repita e Enquanto diferem uma da outra pelo fato de a primeira efetuar o teste da condição no final da construção e, portanto, executar o comando composto ao menos uma vez. Por outro lado, a construção Enquanto efetua o teste da condição em seu início e executa o comando composto zero ou mais vezes.