Apostila Lógica de Programação
86 pág.

Apostila Lógica de Programação


DisciplinaDesenvolvimento de Sistemas143 materiais581 seguidores
Pré-visualização14 páginas
EXPRESSÕES ARITMÉTICAS, por 
exemplo B = A * C2. Também foram apresentados os operadores relacionais (maior 
que, menor que, igual e etc.), com eles construímos EXPRESSÕES RELACIONAIS, 
ou seja, estamos relacionando elementos para realizar uma comparação, por 
exemplo B <= 10. 
 Neste tópico você estudará um outro grupo de operadores, chamados lógicos. 
A principal finalidade desses operadores é UNIR duas expressões, sejam relacionais 
ou aritméticas, e com isto estender as capacidades de lógica condicional no 
algoritmo. 
 Os principais operadores lógicos são os que aparecem na tabela 7. 
 
 Tabela 7 \u2013 Operadores Lógicos 
Operação Operador Exemplo de expressão lógica 
Conjunção E SE X > 10 E X <20 ENTÃO 
(só há uma possibilidade) 
Disjunção 
(não-exclusiva) 
OU SE X > 10 OU Y > 20 ENTÃO 
Neste caso, retornará verdadeiro se X 
for maior que 10 OU se Y for maior que 
20. Uma das expressões for verdadeira, 
o retorno do teste será verdadeiro. 
(há três possibilidades) 
Negação NÃO SE NÃO A = Y ENTÃO 
Este operador inverte o resultado, neste 
exemplo, se A for igual a Y retornará 
FALSO. 
(somente há uma possibilidade) 
Disjunção 
(Exclusiva) 
XOU SE X > 10 XOU Y > 20 ENTÃO 
Somente se X > 10 ou Y > 20 retornará 
verdadeiro, um ou outro. 
SOCIESC \u2013 Sociedade Educacional de Santa Catarina 
Algoritmos 
56 
Operação Operador Exemplo de expressão lógica 
(há duas possibilidades) 
 
 Dessa forma, estamos revisitando a tabela verdade, que apresenta os 
resultados possíveis dos operadores lógicos (tabela 8). 
 
 Tabela 8 \u2013 Resumo de possibilidades usando os operadores lógicos 
Retorno de cada expressão E OU NÃO XOU 
Expressão A Expressão B A e B A ou B Não A A xou B 
F F F F V F 
F V F V V V 
V F F V F V 
V V V V F F 
 
3 DESVIOS CONDICIONAIS SIMPLES E 
COMPOSTOS 
 Para que a execução do algoritmo seja desviada para um caminho específico, 
com um conjunto de instruções específicas, é necessário um comando de desvio. O 
comando de desvio é dado pela palavra SE, que inicia um bloco de instruções e 
deve terminar com a palavra FIMSE. 
Dentro deste bloco haverá instruções que serão executadas de acordo com o 
resultado do teste lógico inserido no desvio. 
 Esse desvio precisa conter um teste lógico, para que determine se as 
instruções dentro do bloco SE deverão ser executadas ou não. O teste lógico é 
composto de expressões aritméticas, relacionais e lógicas. 
 A estrutura de um bloco SE-ENTÃO é: 
 
 SE expressão (ões) lógicas ENTÃO 
 Instruções de comando 
 FIMSE 
 
SOCIESC \u2013 Sociedade Educacional de Santa Catarina 
Algoritmos 
57 
 A diferença entre o desvio condicional simples e desvio composto está na 
resposta que deve ser dada, caso não existam instruções para o outro resultado da 
expressão aplicada na palavra SE. Quando se deseja incluir as instruções para o 
outro resultado, deverá ser utilizada a palavra SENÃO, dentro do bloco SE. 
 A estrutura de um bloco SE-ENTÃO-SENÃO é: 
 
 SE expressão (ões) lógicas ENTÃO 
 Instruções de comando 
 SENÃO 
 Instruções de comando 
 FIMSE 
 
Destaquemos também que existem casos em que é necessário se estabelecer 
um conjunto de verificações de condições sucessivas. Essa estrutura é chamada de 
estrutura de desvio condicional encadeado (ou aninhado), significa permitir que, 
a partir de uma condição atendida, poderá estabelecer novas condições e, dessa 
forma, teremos condições dentro de condições. 
 A estrutura de um bloco de desvio condicional encadeado é: 
 SE expressão (ões) lógicas ENTÃO 
 SE expressão (ões) lógicas ENTÃO 
 Instruções de comando 
 FIMSE 
 SENÃO 
 Instruções de comando 
 FIMSE 
 
Programadores mais experientes preocupam-se com o uso de blocos 
condicionais encadeados. Não há limite de encadeamento de blocos, mas uma 
combinação muito grande poderá gerar grande dificuldade ao programador em 
localizar um problema de lógica. Diante disso, há uma prática comum de limitar até 
sete encadeamentos e, acima disso, utiliza-se da estrutura ESCOLHE-CASO, que 
veremos mais adiante nesta aula. 
 Por exemplo: 
SOCIESC \u2013 Sociedade Educacional de Santa Catarina 
Algoritmos 
58 
\u2022 Considere o problema exposto na figura 17, em que se estabelecem três 
condições para calcular o reajuste do salário de um funcionário: 
o Quando o salário for menor do que 500, o reajuste será de 15%; 
o Quando o salário for maior ou igual que 500 e menor ou igual a 1000, o 
reajuste será de 10%; 
o Quando o salário for maior que 1000, o reajuste será de 5%. 
 
SOCIESC \u2013 Sociedade Educacional de Santa Catarina 
Algoritmos 
59 
 
 
 
Figura 17 \u2013 Fluxograma com desvio condicional composto 
 
 
 
4 BLOCO SE-SENÃO-ENTÃO 
 
 Em pseudocódigo, as instruções de desvios condicionais devem também 
seguir regras específicas. Um exemplo de Desvio Simples: 
inicio 
 inteiro A 
 inteiro B 
 escrever &quot;Digite um valor para A:&quot; 
 ler A 
 escrever &quot;Digite um valor para B:&quot; 
SOCIESC \u2013 Sociedade Educacional de Santa Catarina 
Algoritmos 
60 
 ler B 
 se A < B ENTÃO 
 escrever &quot;A é menor que B!!&quot; 
 fimse 
fim 
 Observe que, no exemplo, caso o usuário digitar o valor de B maior do que A, 
nada irá acontecer no programa. Se desejarmos apresentar alguma instrução para o 
B ser maior que A, precisamos utilizar a palavra SENÃO. Por exemplo: 
inicio 
 inteiro A 
 inteiro B 
 escrever &quot;Digite um valor para A:&quot; 
 ler A 
 escrever &quot;Digite um valor para B:&quot; 
 ler B 
 se A < B ENTÃO 
 escrever &quot;A é menor que B!!&quot; 
 SENÃO 
 escrever &quot;B é menor que A!!&quot; 
 fimse 
fim 
 
5 BLOCO ESCOLHE-CASO 
 
 Quando há um conjunto de testes lógicos a serem realizados em um mesmo 
momento do programa, exigindo que vários blocos SE-ENTÃO sejam construídos, 
poderá haver certo desconforto para o programador construí-lo e para outros 
programadores interpretarem. Nesses casos, se houver erro, o programador terá 
grande dificuldade de localizá-lo, já que há um conjunto muito grande de testes que 
devem ser feitos. 
 Nessa situação, um outro bloco de desvio pode ser utilizado: ESCOLHE-
CASO. Essa abordagem é uma excelente potencialização dos desvios compostos 
SOCIESC \u2013 Sociedade Educacional de Santa Catarina 
Algoritmos 
61 
que algumas linguagens disponibilizam e geram algumas dificuldades para sua 
utilização. 
A estrutura de um bloco ESCOLHE-CASO é: 
 ESCOLHE expressão (ões) 
 CASO expressão (ões) 
 Instruções 
 CASO expressão (ões) 
 Instruções 
 DEFEITO 
 FIMESCOLHE 
 
Por exemplo: 
inicio 
 real a, b, resposta 
 inteiro escolha 
 a <- 20 
 b <- 5 
 resposta <- 0 
 escrever &quot;O que você quer ver: 1 = soma 2 = multiplicação 3 = divisão&quot; 
 ler escolha 
 escolhe escolha 
 caso 1: 
 resposta <- a + b 
 escrever &quot;A resposta é &quot; 
 escrever resposta 
 caso 2: 
 resposta <- a * b 
 escrever &quot;A resposta é &quot; 
 escrever resposta 
 caso 3: 
 resposta <- a / b 
 escrever &quot;A resposta é &quot; 
 escrever resposta 
 defeito: 
SOCIESC \u2013 Sociedade Educacional de Santa Catarina 
Algoritmos 
62 
 escrever &quot;Você não digitou uma opção válida&quot; 
 fimescolhe 
fim 
 
E como ficaria a representação do algoritmo em fluxograma? Veja a figura 18. 
 
 Figura 18 \u2013 Fluxograma baseado no algoritmo 
 
6 IDENTIFICANDO ERROS COMUNS DE LÓGICA 
 
6.1 O que são erros de programação? 
SOCIESC \u2013 Sociedade Educacional de Santa Catarina 
Algoritmos 
63 
Este é um excelente momento para você refletir sobre uma característica 
inerente aos trabalhos