Você está na página 1de 18

FACULDADE DE IMPERATRIZ – FACIMP

COORDENAÇÃO DE SISTMAS DE INFORMAÇÃO

CURSO DE SISTEMAS DE INFORMAÇÃO

ADRIANO LOPES DA SILVA

RESUMO DO CAPÍTULO 4

IMPERATRIZ

2011
ADRIANO LOPES DA SILVA

RESUMO CAPÍTULO 4

Trabalho apresentado ao 1º Período do Curso de Sistemas


de Informação, da Faculdade de Imperatriz – FACIMP, como
requisito à obtenção parcial da nota na disciplina de
Logaritmos e Programação I, sob orientação do Prof.º Vieira
Júnior.

IMPERATRIZ

2011
PROGRAMAÇÃO COM DECISAO

O princípio de tomada de decisões é utilizado em ocasiões que um valor deve


ser submetido a um desvio no processamento feito pelo computador.

1. SER UM PROGRAMADOR

Segundo o professor Guerreiro da Universidade de Nova Lisboa, um


programador de computador deve antes de tudo apresentar três virtudes: disciplina,
humildade e perseverança.

 Disciplina, pois sem nenhuma metodologia ou disciplina, o programador,


torna-se de pouca utilidade para a equipe de desenvolvimento da qual faz
parte.
 Humildade, pois o excesso de confiança é mau conselheiro na tarefa de
programação. No entanto, não podemos partir do princípio de que
sabemos tudo da linguagem de programação utilizada.
 Perseverança, pois é preciso rever os conceitos e decisões que se
penava já estarem resolvidas por que é necessário fazer um trabalho bem
feito para que outras pessoas ou equipe de possam dar continuidade.

2. DECISÕES, CONDIÇÕES E OPERADORES RELACIONAIS

Precisamos entender a capacidade de computadores realizarem tomadas de


decisões por meio de processamento lógico estabelecendo uma ação de desvio na
operação do fluxo do programa de modo que pode se realizar uma ou outra tarefa
de processamento.

Temos que entender diferenciar condição de decisão. A condição é uma


obrigação que se impõe e se aceita e decisão é o ato de optar, de tomar uma
decisão. No entanto, tomar uma decisão está ligado ao fato de haver uma condição.

A condição pode assumir o valor lógico verdadeiro ou falso e é obtida a partir da


relação entre dois elementos e um operador relacional, uma relação lógica entre
dois elementos é feita a partir do uso de operadores relacionais que são eles:
Operador Descrição
= Igual a
> Maior que
< Menor que
>= Maior igual a
<= Menor igual a
<> Diferente de

No uso de operadores relacionais vale as condições:

 Variável X variável: A=B, A>B, A<B, A>=B, A<=B, A<>B.


 Variável X constante: A=5, A>5, A<5, A>=5, A<=5, A<>5.

3. TOMADA DE DECISÃO SIMPLES

O símbolo decision estabelece o desvio de fluxo de um programa. O processo é


desviado apenas para o lado que indicar o resultado da condição como verdadeira.
Por isso é importante sinalizar as linhas de fluxo que saem do símbolo decision com
“S” e “N” ou “V” e “F” indicando sim e não ou verdadeiro ou falso.

A principal característica de uma tomada de decisão simples é o fato de existir


um bloco de operações somente se a condição for verdadeira.

No português estruturado utiliza-se os comandos se, então e fimse na


construção da instrução se...então/fimse. Veja a seguinte estrutura sintática:

Se (<condição>) então
[instruções executadas após condição ser verdadeira]
Fimse
[instruções executadas após condição se falsa ou após executar instruções da
condição verdadeira]
4. DESVIO CONDICIONAL COMPOSTO

Representada pelo símbolo decision e connector, a decisão composta desvia o


fluxo de programa tanto para o lado verdadeiro quanto para o lado falso tendo
também que ser sinalizada da mesma forma que a tomada da decisão simples.
No português estruturado utilizam-se os comandos se, então, senão e fimse na
construção da instrução se...então/senão/fimse. Veja a seguinte estrutura sintática:
Se (<condição>) então
[instruções executadas após condição ser verdadeira]
Senão
[instruções executadas após condição ser falsa]
Fimse
[instruções executadas após condição se falsa ou após ser verdadeira]

5. OUTRAS FORMAS DE TOMADA DE DECISÃO

São possíveis três tomadas de decisão: sequenciais, encadeadas e por seleção.

5.1 Tomada de Decisão Sequencial

Ocorre quando se utilizam tomadas de decisão simples ou compostas


sucessivamente.

A estrutura sequencial baseada em tomada de decisão simples codificada em


português estruturado ficaria da seguinte forma:

Se (<condição 1>) então


[ação para condição 1 verdadeira]
Fimse
Se (<condição 2>) então
[ação para condição 2 verdadeira]
Fimse
A estrutura sequencial baseada em tomada de decisão simples codificada em
português estruturado ficaria da seguinte forma:

Se (<condição 1>) então


[ação para condição 1 verdadeira]
Senão
[ação para condição 1 ser falsa]
Fimse
Se (<condição 2>) então
[ação para condição 2 verdadeira]
Senão
[ação para condição 2 ser falsa]
Fimse

1.2 Tomada de Decisão Encadeada

Ocorre quando se utilizam tomadas de decisão simples ou compostas uma


dentro da outra.

A estrutura sequencial baseada em tomada de decisão encadeada em tomada


de decisão simples codificada em português estruturado ficaria da seguinte forma:
Se (<condição 1>) então
Se (<condição 2>) então
[ação para condição 1 e condição 2 verdadeiras]
Fimse

A estrutura sequencial baseada em tomada de decisão encadeada em tomada


de decisão composta codificada em português estruturado ficaria da seguinte forma:

Se (<condição 1>) então


Se (<condição 2>) então
[ação para condição 1 e condição 2 verdadeiras]
Senão
[ação para condição 1 verdadeira e condição 2 falsa]
Fimse
Senão
[ação para condição 2 ser falsa]
Fimse

1.3 Tomada de Decisão por Seleção

É utilizada em situações em que se possui um grande número de verificações


lógicas a serem realizadas, tanto na forma sequencial quanto na forma encadeada,
sendo ela um tanto limitada.

No português estruturado utilizam-se os comandos caso, seja, faça, senão e


fimcaso na construção da instrução caso/seja...faça/senão/fimcaso. Veja a
seguinte estrutura sintática:

Caso <variável>
Seja <opção 1> faça
[ação para condição 1 verdadeira]
Seja <opção 2> faça
[ação para condição 2 verdadeira]
Seja <opção 3> faça
[ação para condição 3 verdadeira]
Senão
[ação para nenhuma condição satisfeita]
Fimcaso

2. OPERADORES LÓGICOS

São também referenciados como operadores booleanos que recebem este nome
devido à contribuição do matemático inglês George Boole.
Os mais comuns do ponto de vista da programação são quatro: e (operador
lógico da conjunção), ou (operador lógico da disjunção inclusiva), xou (operador
lógico da disjunção exclusiva), não (operador lógico de negação). Os operadores e,
ou e xou, são usados para que seja tomada uma única decisão e trabalham com
mais de uma condição. O operador lógico não é usado no sentido de inverter o
resultado lógico.

6.1 Operador Lógico de Conjunção

É a ralação lógica entre duas ou mais proposições que geram um resultado


lógico verdadeiro quando todas as proposições forem verdadeiras.
No português estruturado a codificação do operador de conjunção ficaria da
seguinte forma, veja a seguinte estrutura sintática:

Se (<condição 1>) e (<condição 2>) então


[ação para condição 1 e condição 2 verdadeiras]
Fimse

6.2 Operador Lógico de Disjunção Inclusiva

É a relação lógica entre duas ou mais proposições de tal modo que eu resultado
lógico será verdadeiro quando pelo menos uma das proposições for verdadeira.
No português estruturado a codificação do operador de disjunção inclusiva ficaria
da seguinte forma, veja a seguinte estrutura sintática:

Se (<condição 1>) ou (<condição 2>) então


[ação para condição 1 e/ou condição 2 verdadeiras]
Fimse

6.3 Operador Lógico de Negação

É a rejeição ou a contradição do todo ou de parte desse todo.


No português estruturado a codificação do operador de negação ficaria da
seguinte forma, veja a seguinte estrutura sintática:

Se não (<condição>) então


[ação para condição não verdadeira]
Fimse

6.4 Operador Lógico de Disjunção Exclusiva

É a relação que avalia duas ou mais proposições, tal modo que o resultado será
verdadeiro quando uma e apenas uma das proposições for verdadeira.
No português estruturado a codificação do operador de negação ficaria da
seguinte forma, veja a seguinte estrutura sintática:

Se (<condição 1>) xou (<condição 2>) então


[ação para condição 1 verdadeira e condição 2 falsa ou condição 1
falsa e condição 2 verdadeira]
Fimse

6.5 Precedência de Uso dos Operadores Lógicos

Para usar os operadores em expressões lógicas, é necessário levar em


consideração a ordem de precedência desses operadores.
Observe a seguinte tabela:
Operador Operação Precedência
não Negação 1
e Conjunção 2
ou Disjunção inclusiva 3
xou Disjunção exclusiva 4

7. DIVISIBILIDADE: MÚLTIPLOS E DIVISORES

Múltiplos sã os resultados obtidos a partir da multiplicação de dois números


naturais, enquanto divisores são os números que dividem outros números com o
objetivo de gerar um resultado de divisão exato, ou seja, obter o resto sempre zero.
8. EXEMPLOS
8.1 Exemplo de Tomada de Decisão Simples:

Algoritmo narrativo

1. Leia dois valores numéricos inteiros representados pelas variáveis A e B.


2. Efetuar a adição dos valores A e B e atribuir o resultado na variável X.
3. Apresentar o resultado da soma armazenada na variável X, caso a variável X tenha
seu valor maior que 10.

Diagrama de blocos

Início

A, B

X<-A+B

F V
X>10

Fim

Português estruturado (portugol)

algoritmo "VALOR _DE_X"


var
A, B, X: inteiro
inicio
Escreval ("Entre com o valor de A")
Leia (A)
Escreval ("Entre com o valor de B")
Leia(B)
X<-B+A
Se (X>10)Entao
Fimse
Escreval ("O valor de X é ", X)
Fimalgoritmo
8.2 Exemplo de Desvio Condicional Composto:

Algoritmo narrativo

1. Leia dois valores numéricos representados pelas variáveis A e B.


2. Efetuar a adição dos valores A e B e atribuir o resultado na variável X.
3. Verificar se o valor da variável X é maior ou igual a 10; caso seja maior ou igual a 10,
proceder ao cálculo de X+5, atribuindo seu resultado à R. se o valor da variável X
não for maior ou igual a 10, proceder ao cálculo de X-7, atribuindo seu resultado a
variável R.

Diagrama de blocos

Início

A, B

X<-A+B

F V
X>=10

R<-X-7 R<-X+5

Fim

Português estruturado (portugol)

algoritmo "VALOR _DE_X"


var
A, B, X, R: real
inicio
Escreval ("Entre com o valor de A:")
Leia (A)
Escreval ("Entre com o valor de B:")
Leia(B)
X<-B+A
Se (X>=10)Entao
R<-X+5
Senao
R<-X-7
Fimse
Escreval ("O valor de X é ", X)
Fimalgoritmo
8.3 Exemplo de Outras Formas de Tomada de Decisão:

Algoritmo narrativo

1. Definir a entrada de um valor numérico inteiro (variável N).


2. Verificar se N=1 e se for, apresentar a mensagem “você entrou o valor 1”.
3. Verificar se N=2 e se for, apresentar a mensagem “você entrou o valor 2”.
4. Verificar se N<1 e se for, apresentar a mensagem “você entrou valor muito baixo”.
5. Verificar se N>2 e se for, apresentar a mensagem “você entrou valor muito alto”.

Diagrama de blocos

Início N

F V
N=1

Você entrou o
valor 1

N=2

Você entrou o
valor 2

N<1

Você entrou o
valor muito baixo

N>2

Você entrou o
valor muito alto

Fim
Português estruturado (portugol)

algoritmo "DECISAO_SEQUENCIAL"
var
N: inteiro
inicio
Escreval ("Entre com um valor:")
Leia (N)
Se (N=1) entao
Escreva ("você entrou o valor 1")
Fimse
Se (N=2) entao
Escreva ("você entrou o valor 2")
Fimse
Se (N<1) entao
Escreva ("você entrou valor muito baixo")
Fimse
Se (N>2) entao
Escreva ("você entrou valor muito alto")
Fimse
fimalgoritmo

8.4 Exemplo de Tomada de Decisão Encadeada:

Algoritmo narrativo

1. Ler o valor de salário atual (variável SA).


2. Verificar se o valor da variável SA é menor que 500. Se sim, reajustar o valor com
mais 15%, atribuindo o novo valor à variável NS. Se não, verificar a próxima
condição. Note que essa condição estabelece o reajuste de 15% aos salários entre
os valore de 0 (zero) até 499 (quatrocentos e noventa e nove). O que estiver acima
dessa faixa é verificado posteriormente.
3. Verificar se o valor da variável SA é menor ou igual a 100. Se sim, reajustar o valor
com mais 10%, atribuindo o novo valor à variável NS. Essa condição estabelece o
reajuste de 10% aos salários entre 500 (quinhentos – após a condição falsa do
passo 3) até 1000 (mil). O que estiver fora dessa faixa é automaticamente reajustado
com mais 5% atribuído à variável NS, pois trata-se de valores acima de 100 (mil).
4. Apresentar o valor do novo salário, implicado na variável NS.
Diagrama de blocos

Início

SA

V F

SA>500

NS<-SA*1.15
V F
SA>=1000

NS<-SA*1.10 NS<-SA*1.05

Fim

Português estruturado (portugol)

algoritmo "REAJUSTE_SALARIO"
var
SA, NS: real
inicio
Escreval ("Entre com o valor do salário:")
Leia (SA)
Se (SA>500) entao
Se (SA>=1000) entao
NS<-SA*1.10
Senao
NS<-SA*1.05
Fimse
Senao
NS<-SA*1.15
Fimse
Escreval ("O valor do novo salário é ", NS)
fimalgoritmo
8.5 Exemplo de Tomada de Decisão por Seleção:

Algoritmo narrativo

1. Efetuar a leitura de um valor numérico inteiro (variável MÊS).


2. Se a variável MÊS for igual a 1, apresentar a mensagem “Janeiro”.
3. Se a variável MÊS for igual a 2, apresentar a mensagem “Fevereiro”.
4. Se a variável MÊS for igual a 3, apresentar a mensagem “Março”.
5. Se a variável MÊS for igual a 4, apresentar a mensagem “Abril”.
6. Se a variável MÊS for igual a 5, apresentar a mensagem “Maio”.
7. Se a variável MÊS for igual a 6, apresentar a mensagem “Junho”.
8. Se a variável MÊS for igual a 7, apresentar a mensagem “Julho”.
9. Se a variável MÊS for igual a 8, apresentar a mensagem “Agosto”.
10. Se a variável MÊS for igual a 9, apresentar a mensagem “Setembro”.
11. Se a variável MÊS for igual a 10, apresentar a mensagem “Outubro”.
12. Se a variável MÊS for igual a 11, apresentar a mensagem “Novembro”.
13. Se a variável MÊS for igual a 12, apresentar a mensagem “Dezembro”.
14. Se a variável MÊS for menor que 1 ou maior que 12, apresentar a mensagem
“Valor inválido”.
Diagrama de bloco
Início

Mês

Mês=1 Janeiro

Mês=2 Fevereiro

Mês=3 Março

Mês=4 Abril

Mês=5 Maio

Mês=6 Junho

Mês=7 Julho

Mês=8 Agosto

Mês=9 Setembro

Mês=10 Outubro

Mês=11 Novembro

Mês=12 Dezembro

Fim
Português estruturado (portugol)

algoritmo "MES_POR_EXTENSO"
var
MES: inteiro
inicio
Escreval ("Digite o Mês")
Leia (MES)
Caso MES
Seja1 faca
Escreval ("Janeiro")
Seja 2 faca
Escreval ("Fevereiro")
Seja 3 faca
Escreval ("Março")
Seja 4 faca
Escreval ("Abril")
Seja 5 faca
Escreval ("Maio")
Seja 6 faca
Escreval ("Junho")
Seja 7 faca
Escreval ("Julho")
Seja 8 faca
Escreval ("Agosto")
Seja 9 faca
Escreval ("Setembro")
Seja 10 faca
Escreval ("Outubro")
Seja 11 faca
Escreval ("Novembro")
Seja 12 faca
Escreval ("Dezembro")
Senao
Escreval ("Valor inválido")
Fimcaso
fimalgoritmo
8.6 Exemplo de Divisibilidade: Múltiplos e Divisores:

Algoritmo narrativo

1. Ler um valor numérico inteiro qualquer (variável N).


2. Calcular o resto da divisão de N por 4, usar a variável R4.
3. Calcular o resto da divisão de N por 5, usar a variável R5.
4. Verificar se as variáveis R4 e R5 possuem o valor de resto igual a zero; se
sim, apresentar o valor da variável N; se não, apresentar a seguinte
mensagem “Valor não é divisível por 4 e 5”.
Diagrama de blocos

Início

R4<-N-4*(N DIV 4)
R5<-N-5*(N DIV 5)

F V
R4=0 e R5=0

O valor não é divisível por 4 e 5 N

Fim
Português estruturado (portugol)

algoritmo "DIVISIBILIDADE"
var
N, R4, R5: inteiro
inicio
Escreval ("Entre com um valor:")
Leia (N)
R4<-N-4*(N DIV 4)
R5<-N-5*(N DIV 5)
Se (R4=0) e (R5=0) entao
Escreval ("O valor didisível por 4 e por 5 é ", N)
Senao
Escreval ("Valor não é divisível por 4 e por 5")
Fimse
fimalgoritmo

Você também pode gostar