tpcvasco
General de Pijama
Registrado
2.9K Mensagens
330 Curtidas
Oq tem a tabela verdade a ver com a equação?
A não ser q a equação tenha algumas características fixas, para "lê-la" vc teria q criar um analisador sintatico.
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
Pão Man
General de Pijama
Registrado
3.3K Mensagens
178 Curtidas
Oq tem a tabela verdade a ver com a equação?
A não ser q a equação tenha algumas características fixas, para "lê-la" vc teria q criar um analisador sintatico.
Não a tabela verdade é um estudo dos dados que irei fazer depois, isso é o de menos.
O que queria saber mais é como insiro a equação e depois os valores para estas. De forma que o programa reconheça multiplicação, soma...
ripongao
Veterano
Registrado
755 Mensagens
94 Curtidas
o senhor precisa 'sentir' que letras,números,sinais são apenas símbolos, representações gráficas na tela. Veja a tabela ascii, lá estão todos os símbolos (caracteres) que podem ser representados numa tela.
Percebendo isso, entra o analisador sintático como dito pelo tpcvasco, o senhor vai filtrar símbolos que exigem ação, definindo prioridades (a adição vem antes ou depois da multiplicação? qual necessita prioridade de ser enfatizada antes das outras operações?).
Qual a diferença entre 'a' '1' '~'? Para o pc nenhuma, ele apenas reconhece números.
Sua dúvida já foi a minha e perdurou por bastante tempo. Eu pensava, como saber que o número 0x61 é o que conheço por ser a 'letra a' ou o valor 0x61?
Como saber se o símbolo 'u' é parte de um código ou um dado?
Quem define isso somos nós, programadores.
Desliguei-me do fórum. Conta canelada.
tpcvasco
General de Pijama
Registrado
2.9K Mensagens
330 Curtidas
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
Pão Man
General de Pijama
Registrado
3.3K Mensagens
178 Curtidas
Galera agora estou com uma dúvida bem leiga, é o seguinte eu queria que o programa aceitasse só 0 ou 1, mas a condição não esta sendo satisfeita, lembrando ele não deve aceitar carácter também.
printf("Digite o valor para A:");
scanf("%d", &a);
printf("Digite o valor para B:");
scanf("%d", &b);
do
{
printf("Digite o valor novamente para A:");
scanf("%d", &a);
}while(a!=0 || a!=1);
do
{
printf("Digite o valor novamente para B:");
scanf("%d", &b);
} while(b!=0 || b!=1);
O engraçado é que se coloco == ele atende a condição contrária a que queria normalmente.
Henry-Keys
Geek
Registrado
1.8K Mensagens
235 Curtidas
Se você quer que o loop se mantenha se a for 0 ou 1, a condição seria mesmo while(a==0 || a==1).
Abraços.
tpcvasco
General de Pijama
Registrado
2.9K Mensagens
330 Curtidas
Na verdade, pelo q eu entendi, oq vc quer é (a!=0 && a!=1)
PS: Apesar de, falando coloquialmente, usarmos o OU, existe uma diferença, logicamente falando, entre o OU e o OU-exclusivo (XOR). Acho q é isso q vc está se confundiu, dá uma pesquisada.
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
ripongao
Veterano
Registrado
755 Mensagens
94 Curtidas
o programa aceitasse só 0 ou 1
enquanto a<2 E b<2 faça
ou então;
enquanto (a==0 OU a==1) E (b==0 OU b==1) faça
ou ainda, alargando a expressão, pois temos as variáveis a,b, resultando em 4 possibilidades (2 variáveis elevado a 2as quantidades);
(SE)enquanto (a==0 E b==0) OU (a==0 E b==1) OU (a==1 E b==0) OU (a==1 E b==1) faça
Dê uma olhada na "tabela verdade" da AND,OR,NOT,XOR.
Eu decorei como abaixo:
Se vier qualquer 0 na AND a saída será 0, se vier qualquer 1 na OR a saída será 1 (na tabela verdade).
Matematicamente, a AND pode ser assimilada ao conjunto Interseção, a OR pode ser assimilada ao conjunto União.
Na lógica, a AND pode assimilar-se a uma subtração lógica, enquanto a OR pode ser a adição lógica.
Na eletrônica, a AND é algo em série (uma rua de mão única), e a OR é algo em paralelo (uma rua com bifurcação).
Se tiver as variáveis a,b,c,d,e,f,g,h,...,z, se qualquer uma delas for 0 e a operação for AND então a saída será 0; se qualquer uma delas for 1 e a operação for OR então a saída será 1.
Se olhar na tabela ascii, o símbolo que conhecemos por ser o número 0 é representado pelo decimal 48, e o que conhecemos por ser o número 1 é representado pelo decimal 49. Então, se não desejar usar o %d e sim o %c ficaria:
SE (a>47 E a<50) E (b>47 E b<50) faça
subrair de a, 48 e subtrair de b 48 (para ter o 0 ou 1 sem ser simbólico)
ou então
enquanto (a>=48 E a<=49) E (b>=48 E b<=49) faça
bom, falta conferir esse último exemplo, não conferí, mas acho que entendeu a idéia.
-----
Na linguística tem o "João E Maria", e não ou joão ou maria.
Então deixo uma máxima do William Shakespeare.
ser OU (NÂO ser)? eis a questão.
Desliguei-me do fórum. Conta canelada.
intruso
Tô em todas
Registrado
1.8K Mensagens
41 Curtidas
Escolha uma notação para usar com os sinais, algo que indique a ordem de resolução. Depois ordene o resultado em uma pilha, de dentro para fora. E vai resolvendo.
No livro C a linguagem de programação padrão ansi, tem um exercício similar, para elaborar uma calculadora, usando a notação polonesa reversa, você pode fazer a mesma coisa usado parenteses, só muda a notação.
Também terá de pensar no conceito de "palavra" dentro de uma expressão escolher um separador.
Essa sugestão não é tão simples, mas, é mais sofisticada e tem várias vantagens em relação a manutenção das operações.
Pão Man
General de Pijama
Registrado
3.3K Mensagens
178 Curtidas
Galera por que a comparação de três variaveis assim, não funciona?
if((a==0)&&(b==0)&&(c==0)){
printf("Valor de M: %i\n\n",0);
}
if((a==0)&&(b==1)&&(c==1)){
printf("Valor de M: %i\n\n",1);
}
tpcvasco
General de Pijama
Registrado
2.9K Mensagens
330 Curtidas
Galera por que a comparação de três variaveis assim, não funciona?
oq vc quer? pq não está funcionando? qual é a sua entrada? qual é a saída q vc espera? onde está wally?
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
Pão Man
General de Pijama
Registrado
3.3K Mensagens
178 Curtidas
oq vc quer? pq não está funcionando? qual é a sua entrada? qual é a saída q vc espera? onde está wally?
Eu queria que quando a = 0, b = 1, c = 1, o resultado seja 1.
Mas ele não esta funcionando só dar 0, o resto do programa é o printf e scanf básico para inserir os valores de a, b, c.
Fábio novato
Super Participante
Registrado
242 Mensagens
66 Curtidas
Boa tarde , penso que o erro está aqui...
x =(((~a)&&b&&c)||(a&&(~b)&&c)||(a&&b&&(~c))||(a&&b& &c));
Acho que você deveria usar o 'if 's' para facilitar a atribuição de X .
O importante não é quantas vezes você cai e sim quantas você se levanta - Morihei Ueshiba, fundador do Aikido.
Pão Man
General de Pijama
Registrado
3.3K Mensagens
178 Curtidas
Já conseguir aqui valeu, o erro era referente a declaração das variaveis.