วันเสาร์ที่ 21 กันยายน พ.ศ. 2556

Binary Calculate & Display(Plus)








boolean[] A = { false, false, true, false};  // กำหนดตัวแปรชนิด boolean ประเภท array ชื่อ A
boolean[] B = {true, true, false, false};  // กำหนดตัวแปรชนิด boolean ประเภท array ชื่อ B 
boolean[] j =new boolean[4];  // กำหนดตัวแปรชนิด boolean ประเภท array ชื่อ j ใช้ในการทดเลขจากการคำนวณ
boolean[] cal =new boolean[4];  // กำหนดตัวแปรชนิด boolean ประเภท array ชื่อ cal เก็บค่าที่คำนวณได้
int[] plus = new int[5];  // กำหนดตัวแปรชนิด boolean ประเภท array ชื่อ plus ใช้เก็บค่าที่จะใช้แสดง
int i = 0;  // กำหนดตัวแปรชนิด int ชื่อ i เพื่อเรียกใช้ค่าใน array ตำแหน่ง i นั้นๆ
int x = 45;  // กำหนดตัวแปรชนิด int ชื่อ x เพื่อกำหนดจุดที่วาดวงกลมวงแรก
void setup(){
 size(200,200);  // กำหนดขนาดของ screen
  background(195);  // กำหนดสีของ screen เป็นสีเทา
  i = A.length - 1;  // ให้ ค่า i เท่ากับความยาวของ A -1 
  while (i > 0)  // กำหนดเงื่อนไขการวนลูป ถ้า i > 0
  {
    if (A[i] == true && B[i] == true){  // กำหนดเงื่อนไข ถ้า A ที่ตำแหน่ง i มีค่าเป็น true และ B ตำแหน่ง i มีค่าเป็น true
      j[0] = true;  // ให้ j ที่ตำแหน่ง 0 เป็น true
      cal[i] = false;  // ให้ cal ที่ตำแหน่ง i เป็น false 
      if (j[1] == true) {  // กำหนดเงื่อนไข ถ้า j ที่ตำแหน่ง 1 เป็น true
        cal[i] = true;  // ให้ cal ที่ตำแหน่ง i เป็น true 
      }
      else {  // ถ้า j ที่ตำแหน่ง 1 ไม่เป็น true
         cal[i]=false;  // ให้ cal ที่ตำแหน่ง i เป็น false 
      }
      j[1] = j[0];  // ให้ค่า j ที่ตำแหน่ง 1 เท่ากับค่า j ที่ตำแหน่ง 0
    }
    else if (A[i] == false && B[i] == false){  // กำหนดเงื่อนไข ถ้า A ที่ตำแหน่ง i มีค่าเป็น false และ B ตำแหน่ง i มีค่าเป็น false                                   
      j[0] = false;  // ให้ j ที่ตำแหน่ง 0 เป็น false
      cal[i] = false;  // ให้ cal ที่ตำแหน่ง i เป็น false   
      if (j[1] == true){  // กำหนดเงื่อนไข ถ้า j ที่ตำแหน่ง 1 เป็น true
        cal[i] = true;  // ให้ cal ที่ตำแหน่ง i เป็น true 
      }
      else{  // ถ้า j ที่ตำแหน่ง 1 ไม่เป็น true
        cal[i] = false;  // ให้ cal ที่ตำแหน่ง i เป็น false 
      }
      j[1] = j[0];  // ให้ค่า j ที่ตำแหน่ง 1 เท่ากับค่า j ที่ตำแหน่ง 0
    }
    else{ // ถ้านอกเหนือจากเงื่อนไขข้างต้น
      j[0] = false;  // ให้ j ที่ตำแหน่ง 0 เป็น false
      cal[i] = true;  // ให้ cal ที่ตำแหน่ง i เป็น true 
      if (j[1] == true){ // ถ้า j ที่ตำแหน่ง 1 เป็น true
        cal[i] = false;  // ให้ cal ที่ตำแหน่ง i เป็น false
        j[0] = true;  // ให้ j ที่ตำแหน่ง 0 เป็น true
      }
      else{ // ถ้านอกเหนือจากเงื่อนไขข้างต้น
        cal[i] = true; // ให้ cal ที่ตำแหน่ง i เป็น true
      }
      j[1] = j[0]; // ให้ j ที่ตำแหน่ง 1 เท่ากับค่า j ที่ตำแหน่ง 0 
    }
    i = i - 1;  // ให้ i เพิ่มขึ้นเรื่อยๆทีละ 1 
  }
   i = 0;  // ให้ i เท่ากับ 0
   if(A[0] == true && B[0] == true){  // กำหนดเงื่อนไข ถ้า A ที่ตำแหน่ง 0 เป็น true และ B ที่ตำแหน่ง 0 เป็น true                                  
     fill(104, 34 ,139);  // กำหนดสีเป็นสีม่วง
     ellipse(x,120,30,30);  // วาดวงกลม
   }
   while (i < A.length) {  // กำหนดเงื่อนไขการวนลูป ถ้า i > A.length
     if (cal[i] == true){ // กำหนดเงื่อนไข ถ้า cal ท่ตำแหน่ง i เป็น true
       plus[i] = 1;  // ให้ plus ที่ตำแหน่ง i เป็น 1
       fill(0,128,128); // กำหนดสีเป็นสีฟ้า
       ellipse(x,120,30,30); // วาดวงกลม
       x = x + 30; // ให้ค่า x เพิ่มขึ้นเรื่อยๆที่ละ 30
     }
     if (cal[i] == false){ // กำหนดเงื่อนไข ถ้า cal ท่ตำแหน่ง i เป็น false
       plus[i] = 0;  // ให้ plus ที่ตำแหน่ง i เป็น 0
       fill(255); // กำหนดสีให้เป็นสีขาว
       ellipse(x,120,30,30); // วาดวงกลม
       x = x + 30; // ให้ค่า x เพิ่มขึ้นเรื่อยๆที่ละ 30
     }
     i = i + 1; // ให้ค่า i เพิ่มขึ้นเรื่อยๆทีละ 1
   }
  if(A[0] == true && B[0] == true){ // กำหนดเงื่อนไข ถ้า A ที่ตำแหน่ง 0 เป็น true และ B ที่ตำแหน่ง 0 เป็น true                                        
    fill(0); // กำหนดสีเป็นสีดำ
    textFont(createFont("Cordia New",26));  // กำหนดฟรอนต์เป็น Cordia New ขนาด 26
    text("Plus is" + " " + "1" + plus[0] + plus[1] + plus[2] + plus[3],45,70); // แสดงค่า
  }
  else{  // ถ้านอกเหนือจากเงื่อนไขข้างต้น
    fill(0);  // กำหนดสีเป็นสีดำ
    textFont(createFont("Cordia New",26));  // กำหนดฟรอนต์เป็น Cordia New ขนาด 26
    text("Plus is" + " " + plus[0] + plus[1] + plus[2] + plus[3],45,70);  // แสดงค่า
  }
}

ไม่มีความคิดเห็น:

แสดงความคิดเห็น