1 lógica de programação eags sin – módulo ii prof. filipe estrela filipe80@gmail.com

Post on 07-Apr-2016

234 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Lógica de ProgramaçãoEAGS SIN – Módulo II

Prof. Filipe Estrelafilipe80@gmail.com

2

Estruturas de ControleTomada de Decisão

• Desvio Condicional Simples (se... então... fim_se.)

• Sendo a condição verdadeira serão executadas as instruções entre a instrução então e a instrução fim_se.

• Sendo a condição falsa serão executadas as instruções após a instrução fim_se.

se <condicao> entãoinstrucoes para condicao verdadeira

fim_seinstrucoes para condicao falsa ou

após ser verdadeira

3

Estruturas de ControleTomada de Decisão

• Desvio Condicional Simples

condição

Instruções executadas quando condição

verdadeira

Instruções executadas quando condição

falsa ou após ser verdadeira

SN

4

Desvio condicional SimplesExemplo

• Leia dois valores numéricos, somá-los e apresentar o resultado caso este seja maior que 10.

programa SOMANUMEROSvar

X: inteiroA: inteiroB: inteiro

inícioleia Aleia BX ← A + Bse (X > 10) então

escreva Xfim_se

fim

5

Operadores Relacionais = Igual a

<> Diferente de> Maior que< Menor que

>= Maior ou igual a<= Menor ou igual a

6

Estruturas de ControleTomada de Decisão

• Desvio Condicional Composto (se... então... senão... fim_se.)

• Sendo a condição verdadeira serão executadas as instruções entre a instrução então e a instrução senão.

• Sendo a condição falsa serão executadas as instruções entre a instrução senão e a instrução fim_se.

se <condicao> entãoinstrucoes para condicao verdadeira

senãoinstrucoes para condicao falsa

fim_se

7

Estruturas de ControleTomada de Decisão

• Desvio Condicional Composto

condição

Instruções executadas quando condição

verdadeira

SN

Instruções executadas quando condição

falsa

8

Desvio condicional CompostoExemplo

• Leia dois valores numéricos e efetuar a adição. Caso o valor somado seja maior ou igual a 10, deverá ser apresentado somando a ele mais 5; caso o valor somado não seja maior ou igual a 10, ele deverá ser apresentado subtraindo 7.

programa SOMANUMEROSvar

X: inteiroA: inteiroB: inteiro

R: inteiroinício

leia A,BX ← A + Bse (X >= 10) então

R ← X + 5senão

R ← X – 7fim_seescreva R

fim

9

Estruturas de ControleTomada de Decisão

• Desvio Condicional Encadeado ou Aninhado– Equivale a uma estrutura condicional dependente de outra, ou

ainda, dentro da outra.se <condicao1> então

instrucoes para condicao1 verdadeirasenão

se <condicao2> entãoinstrucoes para condicao2

verdadeira, porém condicao1 falsa

senãoinstrucoes para condicao1 e condicao2

falsafim_se

fim_se

10

Estruturas de ControleTomada de Decisão

• Desvio Condicional Encadeado ou Aninhado

condição1

Instruções executadas quando condição1

verdadeira

Instruções executadas quando condição1 e

condição2 Falsa

SN

Instruções executadas quando condição1 é

falsa, mas a condição2é verdadeira

condição2

11

Desvio condicional Encadeado Exemplo

• Elaborar um programa que efetue o cálculo do reajuste de salário de um funcionário. Considere que o funcionário deverá receber um reajuste de 15% caso seu salário seja menor que 500. Se o salário for menor ou igual a 500, mas menor ou igual a 1000, seu reajuste será de 10%; caso seja ainda maior que 1000 o reajuste deverá ser de 5%.

programa REAJUSTE_SALÁRIOvar

NOVOSALARIO: realSALARIO: real

inícioleia SALARIOse (SALARIO < 500) então

NOVOSALARIO ← SALARIO * 1.15senão

se (SALARIO <= 1000) entãoNOVOSALARIO ← SALARIO * 1.10

senãoNOVOSALARIO ← SALARIO * 1.05

fim_sefim_seescreva NOVOSALARIO

fim

12

Operadores Lógicos

• Viabiliza a utilização de mais de uma condição na mesma instrução se;

• .e. , .ou. e .não.• Pode evitar o uso de instruções se

encadeadas

13

Operador Lógico .e.

• Utilizado quando dois ou mais relacionamentos lógicos de uma determinada condição necessitam ser verdadeiros.

Condição1 Condição2 ResultadoFalsa Falsa Falso

Verdadeira Falsa FalsoFalsa Verdadeira Falso

Verdadeira Verdadeira Verdadeiro

14

Operador Lógico .e.se <condicao1> .e. <condicao2> entãoinstrucoes executadas se condicao1 e condicao2 verdadeiras

fim_se

15

Operador Lógico .e.Exemplo

programa TESTA_LOGICA_EvarNUMERO: inteiro

inícioleia NUMEROse (NUMERO >= 20) .e. (NUMERO <= 90) então

escreva "O número está na faixa de 20 a 90"senão

escreva "O número está fora da faixa de 20 a 90"fim_se

fim

16

Operador Lógico .ou.

• Utilizado quando pelo menos um dos relacionamentos lógicos de uma determinada condição necessita ser verdadeiro.

Condição1 Condição2 ResultadoFalsa Falsa Falso

Verdadeira Falsa VerdadeiroFalsa Verdadeira Verdadeiro

Verdadeira Verdadeira Verdadeiro

17

Operador Lógico .ou.se <condicao1> .ou. <condicao2> entãoinstrucoes executadas se condicao1 verdadeira ou condicao2 verdadeira

fim_se

18

Operador Lógico .ou.Exemplo

programa TESTA_LOGICA_OUvarSEXO: caractere

inícioleia SEXOse (SEXO = “masculino”) .ou. (SEXO = “feminino”) então

escreva "O seu sexo é valido"senão

escreva "O seu sexo é inválido"fim_se

fim

19

Operador Lógico .não.

• Utilizado quando houver necessidade de se inverter o resultado lógico de uma condição.

• Se a condição for verdadeira será considerada falsa e se for falsa será considerada verdadeira.

Condição ResultadoVerdadeira Falso

Falsa Verdadeiro

20

Operador Lógico .ou.se .não.<condicao1> entãoinstrucoes executadas se condicao for falsa

fim_se

21

Operador Lógico .ou.Exemplo

programa TESTA_LOGICA_NAOvarA, B, C, D: inteiro

inícioleia A, B, Xse .não.(X > 5) então

C (A + B) * Xsenão

C (A - B) * Xfim_seescreva C

fim

22

Exercícios1. Determine o resultado lógico das expressões abaixo. Considere

os seguintes valores: X=1, A=3, B=5, C=8 e D=7.

a) .não.(X > 3) Verdadeiro( ) Falso( )

b) (X < 1) .e. .não. (B > D)Verdadeiro( ) Falso( )

c) .não.(D < 0) .e. (C > 5)Verdadeiro( ) Falso( )

d) .não. (X > 3) .ou. (C < 7)Verdadeiro( ) Falso( )

e) (A > B) .ou. (C > B)Verdadeiro( ) Falso( )

23

Exercíciosf) (X >= 2)Verdadeiro( ) Falso( )

g) (X < 1) .e. (B >= D)Verdadeiro( ) Falso( )

h) (D < 0) .ou. (C > 5)Verdadeiro( ) Falso( )

i) .não.(D > 3) .ou. .não.(B < 7)Verdadeiro( ) Falso( )

j) (A > B) .ou. .não. (C > B)Verdadeiro( ) Falso( )

24

Exercícios2. Indique o valor da variável X nos trechos de programas abaixo. Considere A=2, B=3, C=5 e D=9.

a) se .não. (D > 5) então X ← (A + B) * Dsenão X ← (A - B) / Cfim_seescreva X

b) se (A > 2) .e. (B < 7) então X ← (A + 2) * (B - 2)senão X ← (A + B) / D * (C + D)fim_seescreva X

c) se (A = 2) .ou. (B < 7) então X ← (A + 2) * (B - 2)senão X ← (A + B) / D * (C + D)fim_seescreva X

25

Exercícios

d) se (A > 2) .ou. .não.(B < 7) então X ← A + B - 2senão X ← A - B fim_seescreva X

e) se .não.(A > 2) .ou. .não.(B < 7) então X ← A + Bsenão X ← A / B fim_seescreva X

f) se .não.(A > 3) .e. .não.(B < 5) então X ← A + Dsenão X ← D / B fim_seescreva X

26

Exercíciosg) se (C >= 2) .e. (B <= 7) então

X ← (A + D) / 2 senão X ← D * C fim_se escreva X

h) se (A >= 2) .ou. (C <= 1) então X ← (A + D) / 2 senão X ← D * C fim_se escreva X

27

Exercícios3. Informe se é verdadeiro (V) ou falso (F) o que se afirma sobre o

diagrama de blocos abaixo. A seguir, indique a opção com a sequência correta.

C1

I1 I2

C2

I3 I4

Considere:C1 e C2 são condições.I1, I2, I3 e I4 são instruções.

( ) I1 executa se C1 for falsa.( ) I2 somente executa se C2 for verdadeira( ) Se C1 e C2 forem falsas a I3 executa( ) I4 sempre executa, independente de C1 e C2

a) V – F – V – V b) F – F – F – V c) V – F – V – Fd) F – V – V – F

S

S

N

N

28

Exercícios4. Verifique o resultado lógico das expressões de programação mencionadas

abaixo, marque se é verdadeiro (V) ou falso (F). A seguir, assinale a opção com a sequência correta. Considere para as respostas os seguintes valores: X=1; Y=5.

( ) (X < 1) .e. (X > Y) ( ) (Y > 5) .ou. (X = 1) ( ) .não.(X >= Y)

a) F – V – V b) V – F – F c) F – V – Fd) V – F – V

5. Marque a alternativa que identifica o tipo de operador lógico utilizado na tabelaAbaixo.

Condição1 Condição2 ResultadoFalsa Falsa Falso

Verdadeira Falsa Falso

Falsa Verdadeira Falso

Verdadeira Verdadeira Verdadeiro

a) .ou. b) .if. c) .e.d) .não.

29

Exercícios6. Indique a opção que contém o valor final da variável X, após a execução do

trecho de programa em português estruturado mostrado abaixo. Considere os seguintes valores para as variáveis: A=3; B=2; C=8; D=7.

se .não.(A > 3) .e. .não.(B < 5) entãoX ← 10

senãose (A >= 2) .ou. (C <= 1) então

X ← (A + D) / 2senão

se (A = 2) .ou. (B < 7) entãoX ← (A + 2) * (B - 2)

senãoX ← ((A + C) / B) * (C + D)

fim_sefim_se

fim_se

a) 10 b) 0 c) 15d) 5

30

Gabarito

1. a) Verdadeirob) Falsoc) Verdadeirod) Verdadeiroe) Verdadeirof) Falsog) Falsoh) Verdadeiroi) Falsoj) Falso

2. a) -0.2b) 7.77c) 4d) -1e) 0.66f) 3g) 45h) 4.5

3. C4. A5. C6. D

31

Estruturas de ControleLaços ou Malhas de Repetição

• Utilizado quando é necessário efetuar a repetição de um trecho de programa um determinado numero de vezes.

• Também chamado de looping ou iteração

32

Repetição com teste lógico no início do looping

• Um teste lógico é efetuado no início de um looping, verificando se é permitido executar um trecho de instruções subordinado a esse looping.

• enquanto... faça... fim_enquanto

N

S

33

Repetição com teste lógico no início do looping

programa LOOPING_EXEMPLO1var

X, R : inteiroCONT : inteiro

inícioCONT ← 1enquanto (CONT <= 5) faça

leia XR ← X * 3escreva RCONT ← CONT + 1

fim_enquantofim

34

Repetição com teste lógico no início do looping

programa LOOPING_EXEMPLO2var

X, R : inteiroRESP : caractere

inícioRESP ← “SIM”enquanto (RESP = “SIM”) faça

leia XR ← X * 3escreva Rescreva “Deseja continuar?”leia RESP

fim_enquantofim

35

Repetição com teste lógico no fim do looping

• Efetua um teste lógico no fim de um looping.• As instruções subordinadas a condição estabelecida serão executadas pelo

menos uma vez antes ser feito o primeiro teste lógico.• repita... até_que... • A instrução repita tem seu funcionamento em sentido contrário a

enquanto, pois sempre irá processar um conjunto de instruções até que uma condição se torne verdadeira, isto é, instruções são executadas enquanto uma condição é falsa e até que se torne verdadeira.

N

S

36

Repetição com teste lógico no fim do looping

programa LOOPING_EXEMPLO3var

X, R : inteiroCONT : inteiro

início CONT ← 1repita

leia XR ← X * 3escreva RCONT ← CONT + 1

até_que (CONT > 5)fim

37

Repetição com teste lógico no fim do looping

programa LOOPING_EXEMPLO4var

X, R : inteiroRESP : caractere

iníciorepita

leia XR ← X * 3escreva Rescreva “Deseja continuar?”leia RESP

até_que (RESP <> “SIM”)fim

38

Repetição com Variável de Controle

• Normalmente usamos o enquanto e o repita quando não sabemos previamente a quantidade de vezes que queremos executar um looping.

• Quando conhecemos a quantidade de vezes que queremos executar o looping, isto é, quando o looping é finito utilizamos a instrução para.

• para... de... até... passo... faça... fim_para

39

Repetição com Variável de Controle

var ←Inicio, fim

incremento

Instruções

para <variável> de <início> até <fim> passo <incremento> faça<instruções>

fim_para

40

Repetição com Variável de Controle (Exemplo)

• Pedir a leitura de um valor para a variável X, multiplicar esse valor por 3, implicando à variável de resposta R e apresentar o valor obtido, repetindo esta sequência por cinco vezes.

programa LOOPING_PARAvar

X, R : inteiroCONT : inteiro

iníciopara CONT de 1 até 5 passo 1 faça

leia XR ← X * 3escreva R

fim_parafim

41

Repetição com Variável de Controle (Exemplo)

• Pedir a leitura de um valor para a variável X, multiplicar esse valor por 3, implicando à variável de resposta R e apresentar o valor obtido, repetindo esta sequência por cinco vezes.

programa LOOPING_PARAvar

X, R : inteiroCONT : inteiro

iníciopara CONT de 1 até 5 passo 1 faça

leia XR ← X * 3escreva R

fim_parafim

42

Repetição com Variável de Controle (Exemplo)

início

CONT ← 1,5,1

X

R ← X * 3

R

fim

43

Exercícios1. Qual será o valor de X no momento da escrita.

programa CALCULOvar

X : inteiroCONT : inteiro

inícioX ← 1CONT ← 1enquanto (CONT <= 5) faça

X ← X * CONTCONT ← CONT + 1

fim_enquantoescreva "O valor de X é igual a: ", X

fim

44

Exercícios2. Apresentar o resultado de uma tabuada de 5.

5 x 1 = 55 x 2 = 10...5 x 10 = 50

3. Apresentar o total da soma dos 100 primeiros números inteiros.(1 + 2 + 3 + 4 + ... + 98 + 99 + 100)

4. Elaborar um programa que apresente o somatório dos números pares existentes na faixa de 1 até 500.

45

Exercícios5. Qual sequência numérica será impressa no programa abaixo.

programa PROVAvar

X ,R : inteiroCONT : inteiro

inícioCONT ← 1

X ← 0enquanto (CONT <= 5) faça

R ← X * 3

escreva ← R

CONT ← CONT + 1

X ← X + 1fim_enquanto

fim

46

Gabarito

1. 1205. 0,3,6,9,12

47

Estruturas de Controle Encadeadas

• enquanto com enquantoenquanto <condicao1> faça

enquanto <condicao2> faça<intrucoes>

fim_enquantofim_enquanto

C1

C2

Inst.

N

N

S

S

48

Estruturas de Controle Encadeadas

• enquanto com repitaenquanto <condicao1> faça

repita<intrucoes>

até_que <condicao2>fim_enquanto

C1

C2

Inst.

N

N

S

S

49

Estruturas de Controle Encadeadas • enquanto com paraenquanto <condicao> faça

para <var> de <inicio> até <fim> passo <incr> faça<intrucoes>

fim_parafim_enquanto Cond N

S

var ← inicio, fim,incremento

instruções

50

Estruturas de Controle Encadeadas • repita com repita

repitarepita

<instrucoes>até_que <condicao2>

até_que <condicao1>

Cond1

instruções

Cond2N

S

S

N

51

Estruturas de Controle Encadeadas • repita com enquanto

repitaenquanto <condicao2> faça

<instrucoes>fim_enquanto

até_que <condicao1>

Cond1

instruções

Cond2 N

S

S

N

52

Estruturas de Controle Encadeadas • para com parapara <var1> de <inicio> até <fim> passo <incr> faça

para <var2> de <inicio> até <fim> passo <incr> faça<instrucoes>

fim_parafim_para <condicao>

instruções

var1 ← inicio, fim,incremento

var2 ← inicio, fim,incremento

53

Estruturas de Controle Encadeadas • para com enquantopara <var> de <inicio> até <fim> passo <incr> faça

enquanto <condicao> faça<instrucoes>

fim_enquantofim_para

instruções

var ← inicio, fim,incremento

CondN

S

54

Estruturas de Controle Encadeadas • para com repitapara <var> de <inicio> até <fim> passo <incr> faça

repita<instrucoes>

até_que <condicao>fim_para

instruções

var ← inicio, fim,incremento

CondN

S

55

Exercícios1. Assinale a alternativa que o valor final da variável X, após a

execução do trecho de programa em Português Estruturado mostrado abaixo. Considere os seguintes valores iniciais para as variáveis: X=1;A=5.

enquanto (A < 9) façase (X < 6) então

X ← X * 2fim_seA ← A + 1

fim_enquantoescreva X

56

Exercícios

2. Elaborar um programa que apresente a tubuada de 1 a 10.

57

Gabarito

1. 8

top related