วันศุกร์ที่ 26 กรกฎาคม พ.ศ. 2556
binary plus
boolean[] a= {true,false,true,false}; //เปรียบเสมือน ตัวเลข 1010
boolean[] b = {true,false,true,true}; //เปรียบเสมือน ตัวเลข 0011
boolean[] c = new boolean[5]; //array ของคำตอบ มี 5 ช่อง กรณีบวกแล้ว ทดเกิน 4 ช่อง
boolean[] t = {false,false}; เก็บค่าของตัวทด
int i=0;
void setup(){//เป็น function หนึ่งใน system function เป็น function ที่เรียกใช้อัตโนมัติ และยังเป็นฟังก์ชั่นที่ทำงานเพียงครั้งเดียวและจะทำงานก่อนเป็นสิ่งแรก
i=a.length-1;//กำหนดให้ i คือจำนวนภายใน array -1
while(i>=0)//เงื่อนไขถ้า i มากกว่า 0 จะทำตาม statement ด้านล่าง
{
if(a[i]== true && b[i]== true){//ถ้าค่าใน array a มีค่าเป็น true และ array b มีค่าเป็น true จะทำตาม statement ด้านล่าง คือให้ c[i] ตำแหน่งลำดับที่ i มีค่าเป็น false กำหนดตัวทดเป็นหนึ่ง true ในหลังถัดไปที่จะนำไปคิด
t[0]=true;
c[i]=false;
if(t[1]==true){//ถ้าในขณะนี้มีตัวที่ทดอยู่มีค่าเป็น true ให้c[i]มีค่าเป็น true แต่ถ้าไม่ใช่ให้เป็น false จากนั้น t[1] จะกลับไปมีค่าเป็น false (ตาม statement ด้านล่าง)
c[i]=true;
}
else{
c[i]=false;
}
t[1]=t[0];
}
else if(a[i]== false && b[i]== false){//ถ้าค่าใน array a มีค่าเป็น true และ array b มีค่าเป็น true จะทำตาม statement ด้านล่าง คือให้ c[i] ตำแหน่งลำดับที่ i มีค่าเป็น false ไม่มีตัวทดให้ t[0] เป็น false
t[0]=false;
c[i]=false;
if(t[1]==true){//ถ้าในขณะนี้มีตัวที่ทดอยู่มีค่าเป็น true ให้c[i]มีค่าเป็น true แต่ถ้าไม่ใช่ให้เป็น false จากนั้น จากนั้น t[1] จะกลับไปมีค่าเป็น false (ตาม statement ด้านล่าง)
c[i]=true;
}
else{
c[i]=false;
}
t[1]=t[0];
}
else{//แต่ถ้าไม่ใช่ให้t[0] ตัวทดมีค่าเป็น false และให้c[i]มีค่าเป็น true
t[0]=false;
c[i]=true;
if(t[1]==true){//ในขณะนี้มีตัวที่ทดอยู่มีค่าเป็น true ให้c[i]มีค่าเป็น false และให้ตัวทดกับตำแหน่งถัดไปเป็น true
c[i]=false;
t[0]=true;
}
else{//แต่ถ้าไม่เป็นไปตามเงื่อนไขให้ c[i] มีค่าเป็น true และให้ตัวทดกลับไปเป็น false เหมือนเดิม
c[i]=true;
}
t[1]=t[0];
}
i=i-1;//ลดค่าเพื่อกลับไปวน loop อีก และจะหยุดลบและออกจาก loop เมื่อไม่เป็นไปตามเงื่อนไข
}
if(a[0] == true && b[0] == true){//ถ้าค่าใน array a[0] มีค่าเป็น true และ array b [0]มีค่าเป็น true จะแสดงค่า 1 ออกมาไว้ก่อน
print (1);}
i=0;
while(i<a.length && i<b.length){//เงื่อนไขถ้า i น้อยกว่าจำนวนภายใน array a และ b จะทำตาม statement ด้านล่าง
if(c[i]==true){//ถ้าc[i] มีค่าเป็น true ให้แสดงค่าออกมาเป็น 1
print(1);
}
if(c[i]==false){//ถ้าc[i] มีค่าเป็น false ให้แสดงค่าออกมาเป็น 0
print(0);
}
i=i+1;//มีการบวกเพิ่มค่าเพื่อจะได้กลับไปวน loop อีก และจะไม่บวกอีกเมื่อออกจากเงื่อนไข
}
}
ป้ายกำกับ:
lab5
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น