Logo Hardware.com.br
Pão Man
Pão Man General de Pijama Registrado
3.3K Mensagens 178 Curtidas

Inserindo e reconhecendo sinais equações em C

#1 Por Pão Man 04/12/2013 - 09:54
Galera estou com um problema, fiz um programa aqui que constrói uma tabela verdade, só que me baseei para inserir só os valores e deixei uma equação fixa.

Só que eu tenho agora que inserir a equação, e depois valores, o problema é que não sei como reconhecer o sinal. Exemplo:

Insira a equação: w = abc + bc
Digite os valores de a, b, c:

Entenderam? Ou a equação w = abc*ab, daí muda o sinal.

Até mais!
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#2 Por tpcvasco
04/12/2013 - 12:23
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
Pão Man General de Pijama Registrado
3.3K Mensagens 178 Curtidas
#3 Por Pão Man
05/12/2013 - 11:39
tpcvasco disse:
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...
#Linux-User: 535210
[Indicação] Cursos de info Clique aqui: Curso 24H com diploma em casa.
Canal Youtube - https://www.youtube.com/jlucasengenharia
Robô e Kinect - https://www.youtube.com/watch?v=jcoaCoyohiQ
ripongao
ripongao Veterano Registrado
755 Mensagens 94 Curtidas
#4 Por ripongao
05/12/2013 - 12:14
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.
Pão Man
Pão Man General de Pijama Registrado
3.3K Mensagens 178 Curtidas
#6 Por Pão Man
17/12/2013 - 11:31
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.
#Linux-User: 535210
[Indicação] Cursos de info Clique aqui: Curso 24H com diploma em casa.
Canal Youtube - https://www.youtube.com/jlucasengenharia
Robô e Kinect - https://www.youtube.com/watch?v=jcoaCoyohiQ
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#8 Por tpcvasco
17/12/2013 - 11:55
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
ripongao Veterano Registrado
755 Mensagens 94 Curtidas
#9 Por ripongao
17/12/2013 - 13:25
Pão Man disse:
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
intruso Tô em todas Registrado
1.8K Mensagens 41 Curtidas
#10 Por intruso
27/12/2013 - 02:43
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
Pão Man General de Pijama Registrado
3.3K Mensagens 178 Curtidas
#11 Por Pão Man
06/01/2014 - 11:44
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);
}

#Linux-User: 535210
[Indicação] Cursos de info Clique aqui: Curso 24H com diploma em casa.
Canal Youtube - https://www.youtube.com/jlucasengenharia
Robô e Kinect - https://www.youtube.com/watch?v=jcoaCoyohiQ
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#12 Por tpcvasco
06/01/2014 - 11:51
Pão Man disse:
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
Pão Man General de Pijama Registrado
3.3K Mensagens 178 Curtidas
#13 Por Pão Man
06/01/2014 - 11:59
tpcvasco disse:
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.
#Linux-User: 535210
[Indicação] Cursos de info Clique aqui: Curso 24H com diploma em casa.
Canal Youtube - https://www.youtube.com/jlucasengenharia
Robô e Kinect - https://www.youtube.com/watch?v=jcoaCoyohiQ
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal