วันอังคารที่ 30 กรกฎาคม พ.ศ. 2556

Binary Calculate & Display (Minus)





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

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

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