Você está na página 1de 9

Aula 2 Algoritmos Estrutura Condicional ou de Seleo

Avalia se uma condio associada a clusula SE, verdadeira ou falsa, para determinar quais comandos devero ser executados.

Condio: a comparao de dois valores que podem ser constantes, contedos de variveis de
memria, resultado de expresses aritmticas ou retorno de funes, por meio do uso de operadores relacionais.

Operadores Relacionais:
= <> < <= > >= igual diferente menor menor ou igual maior maior ou igual

Uma estrutura condicional pode ser simples ou composta: Estrutura Simples: uma condio avaliada e, se a condio for verdadeira, um conjunto ou bloco de um ou mais comandos so executados. Se a condio for falsa, nenhum bloco de comandos indicado e a execuo continua fora da estrutura Declarao da estrutura: SE condio Bloco com um ou mais comandos ou estruturas FIM SE Obs: A clusula FIM SE indica o fim da estrutura condicional. Ex: SE A = B ESCREVER Os valores das duas variveis so iguais FIM SE Obs: se o contedo das variveis de memria A e B so iguais, o comando escrever executado. Caso contrrio, o programa segue normalmente fora da estrutura.

Estrutura Composta: uma condio avaliada e, se a condio for verdadeira, um conjunto ou bloco de um ou mais comandos so executados. Se a condio for falsa, um conjunto ou bloco de comandos de um ou mais comandos so executados. Aps o trmino da execuo de um dos blocos, a execuo continua fora da estrutura
Declarao da estrutura: SE condio Bloco com um ou mais comandos ou estruturas SENO Bloco com um ou mais comandos ou estruturas FIM SE

A clusula SENO indica a negao da condio da clusula SE. A clusula FIM SE indica o fim da estrutura condicional. Ex: SE A = B ESCREVER Os valores das duas variveis so iguais SENO ESCREVER Os valores das duas variveis so diferentes FIM SE Obs: se o contedo das variveis de memria A e B so iguais, o comando escrever do primeiro bloco executado. Seno, o comando escrever do segundo bloco executado. Nunca os dois blocos sero executados seqencialmente. Aps a execuo de um deles, o programa segue normalmente fora da estrutura. Utilizando um fluxograma, os dois tipos de estruturas condicionais podem ser expressos da seguinte forma:

Dentro de qualquer um dos blocos de comandos podem existir outras estruturas condicionais. Sempre que numa clusula SENO for necessria uma condio a ser avaliada, deve existir um SE associada condio. Exemplo: SE condio SE condio Bloco com um ou mais comandos ou estruturas SENO Bloco com um ou mais comandos ou estruturas FIM SE SENO Bloco com um ou mais comandos ou estruturas FIM SE Exemplo: SE condio Bloco com um ou mais comandos ou estruturas SENO SE condio Bloco com um ou mais comandos ou estruturas SENO Bloco com um ou mais comandos ou estruturas FIM SE

FIM SE Esta ltima forma tambm pode ser expressa na forma SENO SE, onde apenas um nico FIM SE necessrio ao final.

Exemplo: SE condio Bloco com um ou mais comandos ou estruturas SENO SE condio Bloco com um ou mais comandos ou estruturas SENO SE condio Bloco com um ou mais comandos ou estruturas -----SENO Bloco com um ou mais comandos ou estruturas FIM SE

Outros exemplos com utilizao de fluxogramas: Exemplo 1:

Exemplo 2:

Exemplo de algoritmo: Receber por digitao dois nmeros inteiros e um operador aritmtico (+ ou -). Realizar a operao desejada e visualizar o resultado. 1 verso: Algoritmo VAR: N1, N2,Result, Oper Escrever Digite um nmero Ler N1 Escrever Digite um outro nmero Ler N2 Escrever Digite um operador aritmtico (+ -) Ler Oper SE Oper = '+' Result = N1 + N2 Escrever Resultado da soma: Result SENO SE Oper = '-' Result = N1 N2 Escrever Resultado da subtrao: Result SENO Escrever Operador aritmtico invlido FIM SE Fim

2 verso: Algoritmo VAR: N1, N2, Oper Escrever Digite um nmero Ler N1 Escrever Digite um outro nmero Ler N2 Escrever Digite um operador aritmtico (+ -) Ler Oper SE Oper = '+' Escrever Resultado da soma: N1 + N2 SENO SE Oper = '-' Escrever Resultado da subtrao: N1 N2 SENO Escrever Operador aritmtico invlido FIM SE Fim Obs: na primeira verso, foi utilizada a varivel Result para receber o resultado da operao aritmtica escolhida por digitao, sendo em seguida visualizado o seu contedo. Na segunda verso, no foi utilizada essa varivel, sendo o clculo da operao realizado no comando de escrita.

Exerccios
1 Implementar no exemplo anterior as operaes de multiplicao ( * ) e da diviso ( / ). No caso da diviso, no executar a mesma se o segundo valor (divisor) for zero, fornecendo uma mensagem. 2 Receber por digitao um nmero, determinar e informar se o mesmo : Mltiplo de 2 Mltiplo de 3 Mltiplo de 4 Mltiplo de 5

Expresses condicionais
Uma estrutura condicional pode conter na sua parte condio uma expresso condicional composta por mais de uma condio. Nesse caso, utilizam-se os operadores lgicos entre elas, os quais definem como as relaes entre as condies so conectadas. Os operadores lgicos so: NO, E , OU. Durante a execuo do programa, o processador avalia cada condio da expresso condicional determinando se so verdadeiras ou falsas e, em seguida, utiliza os operadores lgicos aplicando a Tabela Verdade a seguir, para determinar o resultado final da expresso (V ou F).

Tabela Verdade
Dada duas condies quaisquer e seus respectivos resultados avaliativos (V ou F), o relacionamento entre eles, utilizando-se os operadores lgicos E e OU, ser: 1 condio V V F F 2 condio V F V F E OU condio V F NO F V

V F F F

V V V F

Quando se utiliza o operador lgico E, somente ser verdadeira a avaliao se as duas condies forem verdadeiras. Quando se utiliza o operador lgico OU, somente ser falsa a avaliao se as duas condies forem falsas. O operador relacional NO utilizado para inverter ou negar a avaliao de uma condio. Exemplo: Dados trs valores inteiros diferentes recebidos por digitao, informar qual o maior valor . Algoritmo VAR: A, B, C Escrever Digite um nmero Ler A Escrever Digite um outro nmero Ler B Escrever Digite um outro nmero Ler C SE A > B E A > C verifica se o contedo de A o maior Escrever O maior valor A SENO SE B > A E B > C verifica se o contedo de B o maior Escrever O maior valor B SENO Escrever O maior valor C FIM SE Fim Exerccios (continuao) 3 - Dada as seguinte variveis e seus contedos no momento em que cada uma das expresses condicionais a seguir sero testadas, determinar o resultado final de cada uma, aplicando a Tabela Verdade. Variveis A= 5

B=8

C = 10

D = 15

a) SE

A = B F

E E

C > 4 V F

b) SE

C < D V

OU OU E E F

A >= B F V OU OU OU OU F ) C < = 9) ) F A+3 = B V V V

c) SE

B < C V

A < D-10 F

d) SE

NO ( A = D / 3 V NO( OU V

NO(

4- Idem para: Variveis A= 3 a) SE b) SE c) SE A = B -3

B=6 E

X = 11 Y + 2 < X E OU

Y = 13 OU B < Y OU OU Y 9 > B X * 2 > B + 5

Y + 1 >= A + X X + Y <= 20

B MOD 3 < A A B > X

5 Receber por digitao o valor do salrio atual de um funcionrio. Calcular e visualizar o salrio novo deste funcionrio sabendo-se que o valor do acrscimo baseado na tabela a seguir:

Salrio Atual < 1500,00 entre 1500,00 e 4000,00 4000,00

% acrscimo 10 8 5

6 Receber por digitao as medidas dos trs lados de um tringulo. Determinar e informar: O permetro do tringulo O tipo do tringulo: - eqiltero: trs lados iguais - issceles: dois lados iguais - escaleno: trs lados diferentes Obs: antes de determinar os clculos, verificar se os valores dos lados formam um tringulo: a soma de dois lados deve ser maior que o valor do outro lado.

7- Receber por digitao o cdigo da funo e o salrio atual de um funcionrio. Calcular e informar o novo salrio, sabendo-se que: Cdigo da funo 50 ou 51 55 > 3000 < 1000 demais cdigos entre 1000 e 5000 > 5000 7% 12% 11% 8% Salrio atual -------<= 3000 acrescimo 10% 8%

Exemplo de Teste de Mesa


Considerando-se o algoritmo a seguir, realizar testes de mesa determinando os valores parciais das variveis para os valores de entrada das seguintes execues:
Algoritmo var: V1, V2, V3, T, RES, X, VAL escrever Digite um numero: ler V1 escrever Digite outro numero: ler V2 escrever Digite outro numero: ler V3 T = V1 + V2 + V3 X = 1 se T < 15 RES = T V1 X = 3 seno se T >= 15 E T <= 25 RES = T V2 + 1 X = 5 seno RES = T V3 fim se VAL = T RES + X T = T + VAL escrever Valor : VAL escrever Total : T Fim
a) V1 = 5 V2 = 3 V1 5 V3 = 5 V2 3 V3 5 T 13 21 RES 8 X 1 3 VAL 8

b)

V1 = 10

V2 = 9 V1 10

V3 = 7 V2 9 V3 7 T 26 34 RES 19 X 1 VAL 8

c)

V1 = 8

V2 = 4 V1 8

V3 = 6 V2 4 V3 6 T 18 26 RES 15 X 1 5 VAL 8

Exerccio
Considerando-se o algoritmo a seguir, realizar testes de mesa determinando os valores parciais das variveis para os valores de entrada das seguintes execues:
Algoritmo
var: n1, n2, x, y escrever Digite um numero: ler n1 escrever Digite outro numero: ler n2 x = 4 y = 10 se n1 > n2 x = x + n1 seno y = y + n2 fim se x = x + 1 y = y + 2 se x >= y x = x + 5 seno x = x + y fim se escrever Valor de X: x escrever Valor de Y: y Fim

a)

n1 = 7

n2 = 2 n2 = 8

b) n1 = 3

Você também pode gostar