Como fazer comparação no visualg

         
Palavras Reservadas do VisuAlg 3
aleatorio copia fimalgoritmo int numpcarac se
algoritmo cronometro fimenquanto inteiro ou senao/SENÃO
arquivo debug fimescolha interrompa outrocaso timer
asc e fimfuncao leia para var
ate / ATÉ eco FIMFUNÇÃO limpatela passo vetor
carac enquanto fimpara logico pausa verdadeiro
caracpnum entao / ENTÃO fimprocedimento maiusc pos xou
caractere escolha fimrepita minusc real  
Caracter escreval fimse mod procedimento  
caso faca / FAÇA funcao/ FUNÇÃO MUDACOR repita  
compr falso inicio nao / NÃO retorne  
         
Operadores Aritméticos
Símbolo Operação Exemplo
^ Exponenciação 3 ^ 2 = 9
* Multiplicação 3 * 2 = 6
/ Divisão normal 3 / 2 = 1,5
\ Divisão inteira 3 \ 2 = 1
Div Divisão inteira 3 Div 2 = 1
Mod Módulo(resto da divisão) (10 Mod 2) = 0
+ Soma 3 + 2 = 5
Subtração 3 – 2 = 1
Operadores Relacionais
Símbolo Operação Exemplo
> Exponenciação 3 ^ 2 = 9
< Multiplicação 3 * 2 = 6
= Divisão normal 3 / 2 = 1,5
<> Divisão inteira 3 \ 2 = 1
>= Divisão inteira 3 Div 2 = 1
<= Módulo(resto da divisão) (10 Mod 2) = 0
+ Soma 3 + 2 = 5
Subtração 3 – 2 = 1

TABELA VERDADE

Para facilitar o máximo entendimento dos operadores lógicos, estes então devem ser aplicados (ou testados) usando-se as tabelas verdades, que se dividem em 04 (quatro) tipos, sendo uma para cada operador lógico:

Observação: Quando existir comparações com duas entradas possíveis [A, B], haverá quatro resultados possíveis, e quando existir uma entrada apenas [A], haverá apenas dois resultados possíveis.

TABELA-VERDADE “E”

OPERADOR E (AND)
A B A e B
FALSO FALSO FALSO
FALSO VERDADEIRO FALSO
VERDADEIRO FALSO FALSO
VERDADEIRO VERDADEIRO VERDADEIRO

Pode-se observar que o resultado da comparação entre A e B só será verdadeiro quando ambos os valores forem verdadeiros, senão serão falsos.

TABELA-VERDADE “OU”

OPERADOR OU (OR)
A B A ou B
FALSO FALSO FALSO
FALSO VERDADEIRO VERDADEIRO
VERDADEIRO FALSO VERDADEIRO
VERDADEIRO VERDADEIRO VERDADEIRO

Pode-se observar que o resultado da comparação entre A e B será verdadeiro quando qualquer um deles for verdadeiro ou os dois, senão será falso.

TABELA-VERDADE “XOU”

OPERADOR XOU (XOR – OU EXCLUSIVO)
A B A Xou B
FALSO FALSO FALSO
FALSO VERDADEIRO VERDADEIRO
VERDADEIRO FALSO VERDADEIRO
VERDADEIRO VERDADEIRO FALSO

Pode-se observar que o resultado da comparação entre A e B será verdadeiro quando apenas se um deles for verdadeiro, senão será falso.

TABELA-VERDADE “NÃO”

Esta só pode comparar o conteúdo de um único valor por vez então terá uma entrada e uma saída e assim só poderá ter duas comparações, apenas assim como é mostrada abaixo:

OPERADOR NÃO
A Não A
FALSO VERDADEIRO
VERDADEIRO FALSO

Prazer para todos.

Fiz este exercício para calcular as calorias gastas em uma refeição. Entra com prato, bebida e sobremesa. O problema está em comparar as strings. O VisualG não aceita a comparação. Por exemplo, entro com a string carne, o programa diz: esperava encontrar então na linha se (prato = carne) então. Não há explicação possível para esse problema. Não sei onde está o erro, para mim, a lógica está correta. Obrigado.

Algoritmo "semnome" // Disciplina  :  [Linguagem e Lógica de Programação] // Professor   : // Descrição   : Aqui você descreve o que o programa faz! (função) // Autor(a)    : Nome do(a) aluno(a) // Data atual  : 02/10/2017 Var // Seção de Declarações das variáveis cal1,cal2,cal3,p1,p2,p3,caltotal:inteiro

prato,bebida,sobremesa:caractere

Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...

escreval("Entre com o prato") leia (prato) escreval(prato) se (prato = carne) então  cal1 <- 350 senão se (prato = peixe) então          cal1 <- 230       senão se (prato = frango) então                cal1 <- 250             senão                cal <- 180             fimse       fimse fimse escreval("Entre com a bebida") leia (bebida) se (bebida = cha) então  cal2 <- 20 senão se (bebida = suco de laranja) então          cal2 <- 100       senão se (bebida = suco de melao) então                 cal2 <- 100             senão se (bebida = refrigerante diet) então                      cal <- 65                   fimse             fimse       fimse fimse escreval("Entre com a sobremesa") leia (sobremesa) se (sobremesa = abacaxi) então  cal3<- 75 senão se (sobremesa = sorvete diet) então          cal <- 110       senão se (sobremesa = mouse diet) então                cal3 <- 170             senão se (sobremesa = mouse chocolate) então                     cal <- 200                   fimse             fimse       fimse fimse senão escreval ("Opção inválida.") caltotal <- cal1 + cal2 + cal3 escreval("O prato escolhido foi: ",prato) escreval("A bebida escolhida foi: ",bebida) escreval("A sobremesa escolhida foi: ",sobremesa) escreval("O total de calorias é de: ",caltotal)

Fimalgoritmo