Java에서 CNF 연산자를 수행하려고하는데 동등한 오류가 있습니다.Java에서 cnf 연산자를 어떻게 수행합니까?
첫째, 나는 소프트웨어의 대부분을했지만 완전히하지는 않았다.
내 코드는 여기에 있습니다 :
import acm.program.*;
public class split extends ConsoleProgram{
public void run()
{
String veri = "(p or q or s or t or k) and (p or q)";
String yeni = tekrarsil(parcala(veri));
int []sayilar = new int[yeni.length()];
for (int i = 0; i < yeni.length(); i++) {
sayilar[i] = readInt("give a number for "+yeni.charAt(i)+" :");
}
for (int i = 0; i < sayilar.length; i++) {
println(sayilar[i]);
}
}
public String parcala(String veri)
{
String yenistr = "";
String yeni[] = veri.split("and");
for (int j = 0; j < yeni.length; j++) {
String yveri[] = yeni[j].split("or");
for (int i = 0; i < yveri.length; i++) {
yveri[i] = yveri[i].trim();
if(i==0){
yenistr = yenistr.concat(yveri[i].substring(1));
}else if(i==yveri.length-1){
yenistr = yenistr.concat(yveri[i].substring(0,yveri[i].length()-1));
}else{
yenistr = yenistr.concat(yveri[i]);
}
}
}
return (yenistr);
}
public String tekrarsil(String S)
{
for (int i = 0; i < S.length(); i++)
for (int k = i+1; k <= S.length()-1; k++){
if (S.charAt(i) == S.charAt(k))
{
S = S.substring(0,k)+ S.substring(k+1,S.length());
k--;
}
}
return S;
}
}
문제는 평등이다.
프로그램에서 변수가 true
또는 false
인지 확인해야합니다. 예컨대
: 1 (사용자가 다수의 온 (true
) 또는 영 (false
)을 수득한다)
보내기
는 P에 대한 번호 부여 : 노호처럼
(p or q or s or t or k) and (q or p)
이 프로그램 수행 0에 대한 번호를 부여하십시오.
s에 대한 번호를 지정하십시오. 1
t에 대한 번호를 지정하십시오.
k에 대한 번호를 지정하십시오. 0
(변수가 둘 이상을 사용하는 경우 프로그램에서 한 번만 묻습니다.)
이러한 변수를 보면 (1 또는 0 또는 1 또는 0 또는 0)과 (1 또는 0) 을 볼 수 있습니다. 사실로 돌아가지만 나는 이것을 할 수 없다. 나는 그것을하는 방법을 이해할 수 없다.
최고의 소원.
항상 소스 코드는 100 % 영어로 작성해야합니다. 이것에 대한 이유는 전문적인 표준이되고 또 다른 것은 다른 사람들이 그것을 이해하게하고 더 많은 것이있을 수 있습니다 ... – Powerslave
문제라면 코드를 바꿀 수 있습니다. 나는 그것이 중요하지 않다고 생각한다. – CWOmer
그러나 귀하의 의견을 기쁘게 생각하며 귀하의 도움을 기다리고 있습니다 – CWOmer