วันศุกร์ที่ 26 กรกฎาคม พ.ศ. 2556

-Binary display-(Minus)

size(240,100);
boolean[] a={true,false,true,false}; // เป็นการประกาศตัวแปลเป็นArray 
                                                        ชนิดboolean(เก็บค่า true,false)  ชื่อ a ซึ่งตัวแปลชนิดนี้
                                                      จะเก็บค่าได้หลายตัวโดยที่มีตำแหน่ง index เป็นตัวกำกับ
boolean[] b={true,true,false,true};
boolean[] sum=new boolean[a.length];  // เป็นการประกาศตัวแปลเป็นArray 
                                                        ชนิดboolean(เก็บค่า true,false)  ชื่อ sum ซึ่งตัวแปลชนิดนี้
                                                      จะเก็บค่าได้หลายตัวโดยที่มีตำแหน่ง index เป็นตัวกำกับ
                                                    (ในที่นี้ยังไม่กำหนดค่า แต่่กำหนดให้มีจำนวนข้อมูลเท่ากับ
                                                      ความกว้างของ array a  ในที่นี้คือ 4)
int count=a.length-1;                      //a.length คือความกว้างของarray a ในที่นี้เท่ากับ 4
                                                    ดังนั้น count=4-1=3
int j=1;
int r=30,y=50,x=60;                  
while(count>0){                           //ลูปนี้ทำงานคล้ายกับการลบเลข
 if(a[count]==false&&b[count]==true){    //เงื่อนไขเทียบค่าaกับbในตำแหน่งเดียวกันเมื่อ
                                            เมื่อเงื่อนไขเป็นจริงจะทำตามคำสั่งด้านในทำหน้าที่คล้ายการลบ
    sum[count]=true;                          //ให้sumเก็บคำตอบที่ได้ในตำแหน่งเดียวกับa และ b
    a[count-1]=!a[count-1];             //เป็นการเปลี่ยนตัวหน้าให้เป็นตัวเลขตรงกันข้าม
                                                        คล้ายกับการ ลบ เลขฐาน10(การยืมค่า)
    if(a[0]==false && b[0]==true){  
        sum[0]=true;
    }
    if(a[count-1]==true){         //เป็นการเปลี่ยนเช็คค่าที่เปลี่ยนไป ถ้าค่าที่เปลี่ยนเป็นtrue
                                               แสดงว่าค่าเดิมเป็นfalseจะต้องทำการยืมค่าไปเรื่อยๆ
                                           
      while(a[count-j]==true){ //ลูปนี้ทำงานเหมือนการยืมค่าไปเรื่อยๆจะออกจากลูป
                                           เมื่อค่าa[count-j]==false
        if(a[0]==true){
        break;                       //เป็นคำสั่งหยุดการทำงาน
        }
        j=j+1;
        a[count-j]=!a[count-j];     //เป็นการเปลี่ยนตัวหน้าให้เป็นตัวเลขตรงกันข้าม
                                                 คล้ายกับการ ลบ เลขฐาน10(การยืมค่า)ถ้าa[count-j]=true
                                                  ค่า!a[count-j]=false จะหยุดการทำงาน
      }
    }
 }
 else if(a[count]==true&&b[count]==false){ //เงื่อนไขเทียบค่าaกับbในตำแหน่งเดียวกัน
                                เมื่อเงื่อนไขเป็นจริงจะทำตามคำสั่งด้านในทำหน้าที่คล้ายการลบ
    sum[count]=true;
 }
 else{                                          //เงื่อนไขเทียบค่าaกับbในตำแหน่งเดียวกันเมื่อ
                                                   เมื่อเงื่อนไขเป็นจริงจะทำตามคำสั่งด้านในทำหน้าที่คล้ายการลบ
    sum[count]=false;
 }

 count=count-1;           //ให้ค่าcount-1 เรื่ีอยๆเพื่อให้ออกจากลูป
}

count=0;                 //กำหนดค่าcount=0เพื่อใช้ในการวนลูปด้านล่าง
while(count<a.length){    //ลูปนี้ทำหน้าที่ในการแสดงผลลบที่เก็บไว้ในsumออกมา
   if(sum[count]==true){
   fill(127 ,255, 0);
   }
   else {
    fill(255);
   }
  text(""+sum[count],x,y-20);     //เป็นคำสั่งแสดงข้อความโดยกำหนดดังนี้
                                   ("ข้อความ"+ค่าที่ต้องการแสดง,ตำแน่งแกนx,ตำแหน่งแกนy)
  ellipse(x,y,r,r);
  x=x+40;
  count=count+1;
}
fill(0);
text("Sum(-)=",5,y-20);



//อ้างอิงคำสั่งพื้นฐานต่างๆจาก lab1 http://com5630043.blogspot.com/search/label/lab1
//อ้างอิงอธิบายฟังก์ชันจาก lab2 http://com5630043.blogspot.com/search/label/lab2
//อ้างอิงอธิบายเรื่องif-elseจาก lab3 http://com5630043.blogspot.com/search/label/lab3%20%3A%20Condition




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

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