size(270,100);
boolean[] a={true,true,true,false}; // เป็นการประกาศตัวแปลเป็นArray
ชนิดboolean(เก็บค่า true,false) ชื่อ a ซึ่งตัวแปลชนิดนี้
จะเก็บค่าได้หลายตัวโดยที่มีตำแหน่ง index เป็นตัวกำกับ
boolean[] b={true,true,false,false};
boolean[] ab=new boolean[a.length]; // เป็นการประกาศตัวแปลเป็นArray
ชนิดboolean(เก็บค่า true,false) ชื่อ ab ซึ่งตัวแปลชนิดนี้
จะเก็บค่าได้หลายตัวโดยที่มีตำแหน่ง index เป็นตัวกำกับ
(ในที่นี้ยังไม่กำหนดค่า แต่่กำหนดให้มีจำนวนข้อมูลเท่ากับ
ความกว้างของ array a ในที่นี้คือ 4)
.ให้ตัวแปลนี้เก็บผลบวกของa และ b โดยไม่รวมตัวทด
boolean[] tod=new boolean[a.length+1]; //ให้ตัวแปลนี้เก็บค่าทดเลข
boolean[] sum=new boolean[a.length]; //ให้ตัวแปลนี้เก็บคำตอบ
int count=a.length-1; //a.length คือความกว้างของarray a ในที่นี้เท่ากับ 4
ดังนั้น count=4-1=3
int r=30,y=50,x=70;
while(count>=0){ //ลูปนี้ทำหน้าที่ในการหาผลบวกของa และ b โดยไม่รวมตัวทด
if(a[count]==true&&b[count]==true){ //เงื่อนไขเทียบค่าaกับbในตำแหน่งเดียวกัน
เมื่อเงื่อนไขเป็นจริงจะทำตามคำสั่งด้านในทำหน้าที่คล้ายการบวก
ab[count]=false; //ตัวแปรabเก็บค่าผลบวกของa และ b โดยยังไม่รวมค่าทดเลข
tod[count]=true; //ตัวแปรtodเก็บค่าทดที่ได้จากการบวกกัน
}
else if(a[count]==false&&b[count]==false){ //เงื่อนไขเทียบค่าaกับbในตำแหน่งเดียวกัน
เมื่อเงื่อนไขเป็นจริงจะทำตามคำสั่งด้านในทำหน้าที่คล้ายการบวก
ab[count]=false;
tod[count]=false;
}
else{ //ในที่นี้คือเงื่อนไข a[count]==true&&b[count]==false
และ a[count]==false&&b[count]==true เป็น
เงื่อนไขเทียบค่าaกับbในตำแหน่งเดียวกัน
เมื่อเงื่อนไขเป็นจริงจะทำตามคำสั่งด้านในทำหน้าที่คล้ายการบวก
ab[count]=true;
tod[count]=false;
}
count=count-1;
}
if(tod[1]==true&&ab[0]!=false){ //เงื่อนไขในการปริ้นค่าตัวแรกที่เราจะปริ้นออกมา
fill(127 ,255, 0);
ellipse(x,y,r,r);
text("true",x,y-20);
}
if(tod[0]==true){ //เงื่อนไขในการปริ้นค่าตัวแรกที่เราจะปริ้นออกมา
fill(127, 255, 0);
ellipse(x,y,r,r);
text("true",x,y-20);
}
x=x+40;
count=0; //กำหนดค่าcount=0เพื่อใช้ในการวนลูปด้านล่าง
while(count<a.length){ //ลูปนี้ทำหน้าที่ในการรวมค่าabและค่าtodเข้าด้วยกัน
เพื่อให้ได้คำตอบ
if(ab[count]==true&&tod[count+1]==true){ //เงื่อนไขเทียบค่าabกับtodในตำแหน่งเดียวกัน
เมื่อเงื่อนไขเป็นจริงจะทำตามคำสั่งด้านในทำหน้าที่คล้ายการบวก
sum[count]=false;
}
else if(ab[count]==false&&tod[count+1]==false){ //เงื่อนไขเทียบค่าabกับtodในตำแหน่งเดียวกัน
เมื่อเงื่อนไขเป็นจริงจะทำตามคำสั่งด้านในทำหน้าที่คล้ายการบวก
sum[count]=false;
}
else { //เงื่อนไขเทียบค่าabกับtodในตำแหน่งเดียวกัน
เมื่อเงื่อนไขเป็นจริงจะทำตามคำสั่งด้านในทำหน้าที่คล้ายการบวก
sum[count]=true;
}
if(sum[count]==true){ //กำหนดเงื่อนไขในการใส่สี
fill(127 ,255, 0);
}
else if(sum[count]==false){
fill(255);
}
text(""+sum[count],x,y-20);
ellipse(x,y,r,r);
x=x+40;
count=count+1;
}
fill(0);
text("Sum(+)=",5,y-20); //เป็นคำสั่งแสดงข้อความโดยกำหนดดังนี้
("ข้อความ"+ค่าที่ต้องการแสดง,ตำแน่งแกนx,ตำแหน่งแกนy)
//อ้างอิงคำสั่งพื้นฐานต่างๆจาก 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
วันศุกร์ที่ 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
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
วันพฤหัสบดีที่ 25 กรกฎาคม พ.ศ. 2556
-New UFO-
int[] n={4,2,2,4}; //เป็นการประกาศตัวแปลเป็นArray จำนวนเต็ม ชื่อ n
ซึ่งตัวแปลชนิดนี้จะเก็บค่าได้หลายตัว โดยที่มีตำแหน่ง index เป็นตัวกำกับ
int i=0; //ค่าi มีผลต่อการนับเปลี่ยบเสมือนเวลา
int p=-200; //ค่าp มีผลต่อตำแหน่งในแนวแกน x ของUFO
void setup(){
size(400,300);
}
void draw(){
background(0);
drawUFO(p); //เป็นการเรียกใช้ฟังก์ชัน drawUFO โดยมีการส่งค่า p ไปที่ฟังก์ชัน
if(i<=600){ //if( ){ }เป็นการกำหนดเงื่อนไข โดยกำหนดเงื่อนไขไว้ใน ( )
ถ้าเงื่อนไขเป็นจริง ให้ทำตามคำสั่งใน { }
p=p+1;
}
else{ //else{ } เป็นคำสั่งที่ใช้ต่อจาก if( ){ } โดยคำสั่งจะเริ่มพิจารณา
เงื่อนไขจาก if ก่อนถ้าไม่เป็นจริง จะทำตามคำสั่งของ else ใน { }
p=p-1;
}
if(i>=1200){
p=-200;
i=0;
}
i=i+1; //เป็นการกำหนดให้ค่า i เพิ่มขึ้น 1 ทุกๆครั้งที่มีการ
เรียกใช้ฟังก์ชัน void draw( ){ }
}
void drawUFO(int p){ //เป็นการสร้างฟังก์ชันขึ้นมาเอง
(int p)ที่เห็นคือการ กำหนดตัวแปลเพื่อให้สามารถ
รับค่าที่ส่งมาเมื่อมีการเรียกใช้ฟังชัน และส่งต่อไปยังตัวแปลp
ในคำสั่งต่าง ๆ
int y=50;
int count=0;
while(count<n.length){ //while( ){} คือคำสั่งที่ใช่ในการวนลูป
หรือทำงานซ้ำๆเมื่อเงื่อนไขเป็นจริง
และเลิกทำเมื่อเงื่อนไขไม่เป็นจริง
โดยกำหนดเงื่อนไขใน ( ) และกำหนดคำสั่งใน { }
ในที่นี้เงื่อนไขคือ count<n.length (n.length)คือความกว้างของตัวแปลarray n
int c=0; int x=30;
while(c<n[count]){
fill(250,255,0);
triangle(x+p,y,x-15+p,y+30,x+15+p,y+30);
fill(150);
ellipse(x+p,y,30,30);
fill(30, 144 ,255);
ellipse(x+p,y+5,50,15);
x=x+50;
c=c+1;
}
y=y+60 ;
count=count+1;
}
}
//อธิบายเพิ่มเติมลูปwhileแรกทำงานเป็นตัวกำหนดจำนวนแถวในแนวนอน จำนวนแถวในแนวนอนจะขึ้นอยู่กับความกว้างของ array n
ลูปwhileสองทำงานเป็นตัวกำหนดจำนวนUFOในแต่ล่ะแถว สามารถเปลี่ยนได้โดยการเปลี่ยนเลขใน array n ที่ประกาศไว้ข้างตน
//อ้างอิงคำสั่งพื้นฐานต่างๆจาก 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
วันพุธที่ 24 กรกฎาคม พ.ศ. 2556
-Bar Chart-
ข้อมูลสถิติ จังหวัดที่มีผลผลิตข้าวมากที่สุด5 อันดับ ในปี 2554
โดยแสดงจำนวนผลผลิตเป็น%อย่างหยาบ นำมาคำนวณหารค่าMax Min
float[] s={24.81, 19.87, 19.06, 18.91, 17.35};// เป็นการประกาศตัวแปลเป็นArray จำนวนทศนิยม ชื่อ s ซึ่งตัวแปลชนิดนี้จะเก็บค่าได้หลายตัวโดยที่มีตำแหน่ง index เป็นตัวกำกับ
String[] t={"Suphan Buri","Nakhon Sawan","Phichit","Phitsanulok","Ayutthaya"};
//String[] t เป็นการประกาศตัวแปลเป็นArray ชนิดข้อความ ชื่อ t ซึ่งตัวแปลชนิดนี้จะเก็บค่าได้หลายตัวโดยที่มีตำแหน่ง index เป็นตัวกำกับ
int count=0;
void setup(){
size(300,200);
background(150);
drawBar();
}
void drawBar(){
int x=16;
int y=100;
int d=30;
int a=25;
line(0,y,300,y);
while(count<s.length){ //while( ){} คือคำสั่งที่ใช่ในการวนลูป
หรือทำงานซ้ำๆเมื่อเงื่อนไขเป็นจริง
และเลิกทำเมื่อเงื่อนไขไม่เป็นจริง
โดยกำหนดเงื่อนไขใน ( ) และกำหนดคำสั่งใน { }
ในที่นี้เงื่อนไขคือ count<s.length (s.length) คือความกว้างของตัวแปลarray s
if(count==0){fill(255,0,0);}
if(count==1){fill(0,255,0);}
if(count==2){fill(0,0,255);}
if(count==3){fill(255,255,0);}
if(count==4){fill(0,255,255);}
rect(x,y,d,-s[count]);
text(s[count]+"%",x,y-s[count]-10);//เป็นคำสั่งแสดงข้อความโดยกำหนดดังนี้
(ค่าที่ต้องการแสดง+"ข้อความ",ตำแน่งแกนx,ตำแหน่งแกนy)
rect(16,y+a,5,5);
text(t[count],25,y+a+8);
a=a+15;
count=count+1; //ค่าcountจะเพิ่มขึ้น1ทุกๆครั้งที่มีการวนลูป
x=x+60;
}
}
///อ้างอิงคำสั่งพื้นฐานต่างๆจาก 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
-Max Min-
ข้อมูลสถิติ จังหวัดที่มีผลผลิตข้าวมากที่สุด5 อันดับ ในปี 2554
โดยแสดงจำนวนผลผลิตเป็น%อย่างหยาบ นำมาคำนวณหารค่าMax Min
Suphan Buri=24% Nakhon Sawan=20% Phichit=19% Phitsanulok=18% Ayutthaya=17%
size(200,100);
int[] n={24,20,19,18,17}; // เป็นการประกาศตัวแปลเป็นArray จำนวนเต็ม ชื่อ n
ซึ่งตัวแปลชนิดนี้จะเก็บค่าได้หลายตัวโดยที่มีตำแหน่ง index เป็นตัวกำกับ
int max=n[0]; //เป็นการประกาศให้ค่าmax =ค่าn[0] ในที่นี้คือ 24
เพื่อให้สะดวกในการคำนวน
int min=n[0]; //เป็นการประกาศให้ค่าmin =ค่าn[0] ในที่นี้คือ 24
เพื่อให้สะดวกในการคำนวน
int count=0;
float sum=0;
float avg;
while(count<n.length){ //while( ){} คือคำสั่งที่ใช่ในการวนลูป
หรือทำงานซ้ำๆเมื่อเงื่อนไขเป็นจริง
และเลิกทำเมื่อเงื่อนไขไม่เป็นจริง
โดยกำหนดเงื่อนไขใน ( ) และกำหนดคำสั่งใน { }
ในที่นี้เงื่อนไขคือ c<n.length (n.length) คือความกว้างของตัวแปลarray n
if(max<n[count]){ //กำหนดเงื่อนไขในการคำนวน ถ้าค่าmax<n[count]
(ซึ่งค่าn[count]เปลี่ยนแปลงค่าเมื่อมีการวนลูป)
max=n[count]; ถ้าจริงให้maxเก็บค่าn[count] ซึ่งเมื่อวนลูปเสร็จเราก็จะได้ค่าmax
}
if(min>n[count]){ //กำหนดเงื่อนไขในการคำนวน ถ้าค่าmin>n[count]
(ซึ่งค่าn[count]เปลี่ยนแปลงค่าเมื่อมีการวนลูป)
min=n[count]; ถ้าจริงให้minเก็บค่าn[count] ซึ่งเมื่อวนลูปเสร็จเราก็จะได้ค่าmin
}
sum=sum+n[count]; //หาผลรวมของจำนวนทั้งหมดเพื่อนำไปคิดค่าเฉลี่ย
count=count+1;
}
avg=sum/n.length; //คิดหาค่าเฉลี่ย
fill(0);
text("max is Suphan Buri ="+max+"%",10,20); //เป็นคำสั่งแสดงข้อความโดยกำหนดดังนี้
("ข้อความ"+ค่าที่ต้องการแสดง,ตำแน่งแกนx,ตำแหน่งแกนy)
text("min is Ayutthaya ="+min+"%",10,50);
text("average="+avg,10,80);
//อ้างอิงคำสั่งพื้นฐานต่างๆจาก 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
โดยแสดงจำนวนผลผลิตเป็น%อย่างหยาบ นำมาคำนวณหารค่าMax Min
Suphan Buri=24% Nakhon Sawan=20% Phichit=19% Phitsanulok=18% Ayutthaya=17%
size(200,100);
int[] n={24,20,19,18,17}; // เป็นการประกาศตัวแปลเป็นArray จำนวนเต็ม ชื่อ n
ซึ่งตัวแปลชนิดนี้จะเก็บค่าได้หลายตัวโดยที่มีตำแหน่ง index เป็นตัวกำกับ
int max=n[0]; //เป็นการประกาศให้ค่าmax =ค่าn[0] ในที่นี้คือ 24
เพื่อให้สะดวกในการคำนวน
int min=n[0]; //เป็นการประกาศให้ค่าmin =ค่าn[0] ในที่นี้คือ 24
เพื่อให้สะดวกในการคำนวน
int count=0;
float sum=0;
float avg;
while(count<n.length){ //while( ){} คือคำสั่งที่ใช่ในการวนลูป
หรือทำงานซ้ำๆเมื่อเงื่อนไขเป็นจริง
และเลิกทำเมื่อเงื่อนไขไม่เป็นจริง
โดยกำหนดเงื่อนไขใน ( ) และกำหนดคำสั่งใน { }
ในที่นี้เงื่อนไขคือ c<n.length (n.length) คือความกว้างของตัวแปลarray n
if(max<n[count]){ //กำหนดเงื่อนไขในการคำนวน ถ้าค่าmax<n[count]
(ซึ่งค่าn[count]เปลี่ยนแปลงค่าเมื่อมีการวนลูป)
max=n[count]; ถ้าจริงให้maxเก็บค่าn[count] ซึ่งเมื่อวนลูปเสร็จเราก็จะได้ค่าmax
}
if(min>n[count]){ //กำหนดเงื่อนไขในการคำนวน ถ้าค่าmin>n[count]
(ซึ่งค่าn[count]เปลี่ยนแปลงค่าเมื่อมีการวนลูป)
min=n[count]; ถ้าจริงให้minเก็บค่าn[count] ซึ่งเมื่อวนลูปเสร็จเราก็จะได้ค่าmin
}
sum=sum+n[count]; //หาผลรวมของจำนวนทั้งหมดเพื่อนำไปคิดค่าเฉลี่ย
count=count+1;
}
avg=sum/n.length; //คิดหาค่าเฉลี่ย
fill(0);
text("max is Suphan Buri ="+max+"%",10,20); //เป็นคำสั่งแสดงข้อความโดยกำหนดดังนี้
("ข้อความ"+ค่าที่ต้องการแสดง,ตำแน่งแกนx,ตำแหน่งแกนy)
text("min is Ayutthaya ="+min+"%",10,50);
text("average="+avg,10,80);
//อ้างอิงคำสั่งพื้นฐานต่างๆจาก 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
วันอาทิตย์ที่ 21 กรกฎาคม พ.ศ. 2556
=Variable= (medium)
Programming Exercise
text book name :Programming and problem solving with Java – 2nd edition
Author : Nell Dale and Chip Weems
ISBN 978-0-7637-3402-2
Proposition =>Write an assignment statement to calculate the sum of the number from 1 through n
using Gauss'formula : sum=n(n+1)/2
using Gauss'formula : sum=n(n+1)/2
Translated into Thailand => เขียนคำสั่งที่ได้รับมอบหมายในการคำนวณผลรวมของจำนวน
จาก 1 ถึง n โดยใช้สูตรของ Gauss'formula : sum=n(n+1)/2
จาก 1 ถึง n โดยใช้สูตรของ Gauss'formula : sum=n(n+1)/2
Solution=>
int n=10;
int sum=0;
sum=n*(n+1)/2; //n*(n+1)/2 จะเริ่มคิดจากในวงเล็บก่อนเหมือนการคิดเลขคณิตศาสตร์
int n=10;
int sum=0;
sum=n*(n+1)/2; //n*(n+1)/2 จะเริ่มคิดจากในวงเล็บก่อนเหมือนการคิดเลขคณิตศาสตร์
เครื่องหมาย * คือการคูณ, / คือการหาร
print("sum="+sum);
Out put => sum =55
You can run code in http://processingjs.org/tools/processing-helper.html
อธิบายการทำงานของโปรแกรม =>
เป็นโปรแกรมที่ใช้หาผลรวมของจำนวนตั้งแต่ 1 จนถึงค่าn
เริ่มประกาศตัวแปล nและ sumโดยให้ n เก็บค่าจำนวนสุดท้ายที่เราต้องการหาผลบอก โดยเราสามารถแก้ไขค่าnได้ และ sum เก็บค่าผลรวมของจำนวนตั้งแต่ 1ถึง n ผลที่ออกมาคือ
ผลรวมของจำนวนตั้งแต่1จนถึงค่าn
เริ่มประกาศตัวแปล nและ sumโดยให้ n เก็บค่าจำนวนสุดท้ายที่เราต้องการหาผลบอก โดยเราสามารถแก้ไขค่าnได้ และ sum เก็บค่าผลรวมของจำนวนตั้งแต่ 1ถึง n ผลที่ออกมาคือ
ผลรวมของจำนวนตั้งแต่1จนถึงค่าn
Author : Nell Dale and Chip Weems
ISBN 978-0-7637-3402-2
=Variable=(easy)
Programming Exercise
Proposition => If alpha and beta are int variables with alpha=4 and beta=9,what value is stored
into alpha in each of the following? Answer each part independently of the others.
A) alpha=3*beta; B) alpha=alpha+beta; C)alpha++; D)alpha--;
E)alpha=alpha+alpha F)alpha=beta%6
Translated into Thailand => ถ้าอัลฟาและเบต้าเป็นตัวแปร int เมื่อ alpha = 4 และ beta = 9, จงหาว่าค่าที่ถูกเก็บไว้ในอัลฟาในแต่ละข้อดังต่อไปนี้เป็นเท่าไร คำตอบของแต่ละข้อเป็นอิสระจากข้ออื่น ๆ
A) alpha=3*beta; B) alpha=alpha+beta; C)alpha++; D)alpha--;
E)alpha=alpha+alpha F)alpha=beta%6
Solution=>
int alpha=4; //เป็นการประกาศตัวแปล และกำหนดค่า
int beta=9;
int a,b,c,d,e,f; //เป็นการประกาศตัวแปลแต่ยังไม่กำหนดค่า
a=3*beta;
b=alpha+beta;
c=alpha+1;
d=alpha-1;
e=alpha+alpha;
f=beta%6;
println("A) alpha="+a+" B) alpha="+b+" C) alpha++="+c);
println("D) alpha="+d+" e) alpha="+e+" f) alpha="+f);
Out put => A) alpha=27 B) alpha=13 C) alpha++=5
D) alpha=3 e) alpha=8 f) alpha=3
You can run code in http://processingjs.org/tools/processing-helper.html
text book name :Programming and problem solving with Java – 2nd edition
Author : Nell Dale and Chip Weems
ISBN 978-0-7637-3402-2
Proposition => If alpha and beta are int variables with alpha=4 and beta=9,what value is stored
into alpha in each of the following? Answer each part independently of the others.
A) alpha=3*beta; B) alpha=alpha+beta; C)alpha++; D)alpha--;
E)alpha=alpha+alpha F)alpha=beta%6
Translated into Thailand => ถ้าอัลฟาและเบต้าเป็นตัวแปร int เมื่อ alpha = 4 และ beta = 9, จงหาว่าค่าที่ถูกเก็บไว้ในอัลฟาในแต่ละข้อดังต่อไปนี้เป็นเท่าไร คำตอบของแต่ละข้อเป็นอิสระจากข้ออื่น ๆ
A) alpha=3*beta; B) alpha=alpha+beta; C)alpha++; D)alpha--;
E)alpha=alpha+alpha F)alpha=beta%6
Solution=>
int alpha=4; //เป็นการประกาศตัวแปล และกำหนดค่า
int beta=9;
int a,b,c,d,e,f; //เป็นการประกาศตัวแปลแต่ยังไม่กำหนดค่า
a=3*beta;
b=alpha+beta;
c=alpha+1;
d=alpha-1;
e=alpha+alpha;
f=beta%6;
println("A) alpha="+a+" B) alpha="+b+" C) alpha++="+c);
println("D) alpha="+d+" e) alpha="+e+" f) alpha="+f);
Out put => A) alpha=27 B) alpha=13 C) alpha++=5
D) alpha=3 e) alpha=8 f) alpha=3
You can run code in http://processingjs.org/tools/processing-helper.html
text book name :Programming and problem solving with Java – 2nd edition
Author : Nell Dale and Chip Weems
ISBN 978-0-7637-3402-2
วันพฤหัสบดีที่ 18 กรกฎาคม พ.ศ. 2556
=Array=(hard)
Programming Exercise
Proposition => Write a program that reads eleven numbers, computers their average, and finds out how many number are below the average.
Translated into Thailand => ให้เขียนโปรแกรมที่คำนวณค่าเฉลี่ยของเลขทั้ง 11 ตัว และ หาว่ามีกี่ตัวที่มีค่าน้อยกว่าค่าเฉลี่ย
Solution=>
int[] n= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
int i=1;
int av=0;
int sum=0;
int c=0;
int x=n[0];
while (i<n.length) {
sum=x+n[i];
x=sum;
av=sum/11;
i=i+1;
}
if (i>=n.length) {
i=0;
while (i<n.length) {
if (n[i]<av) {
c=c+1;
}
i=i+1;
}
}
println("How many number are below the average?");
println("average="+av+" answer="+c);
Out put => How many number are below the average?
average=6 answer=5
You can run code in http://processingjs.org/tools/processing-helper.html
อธิบายการทำงานของโปรแกรม =>
ใส่ตัวเลขที่ต้องการคำนวณทั้งหมด11ตัวใน
int[] n= {x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11};
ในที่นี้กำหนดให้เป็น int[] n= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; กำหนดให้ค่า i=1, x=n[0]
เช็คเงื่อนไขของwhile ว่า i<n.length
(n.length คือ จำนวนตัวแปลทั้งหมดที่มีใน n ในที่นี้คือ11 )
เมื่อเป็นจริง เริ่มทำการวนลูป ทำตามคำสั่งด้านในจนกว่าเงื่อนไขจะเป็นเท็จ จะจบการวนลูป
และเริ่มพิจารณาที่เงื่อนไขของif ต่อ ว่า i>=n.length(ซึ้งเมื่อจบจากการวนลูปแล้ว i=11)
เมื่อเป็นจริง ทำตามคำสั่งใน if ทำให้ค่า i=0 และพิจารณาเงื่อนไขของ while ที่อยู่ข้างใน if
ว่า i<n.length เมื่อเป็นจริง จำเริ่มทำการวนลูป โดยภายในลูปมี เงื่อนไข if ว่า n[i]<av (average)
เมื่อเป็นจริงให้ทำการเพิ่มค่าc 1หน่วย ทำการวนลูปไปเรื่อยๆ จนกว่าเงื่อนไขจะเป็นเท็จ
จะได้ค่า c=จำนวนตัวเลขที่มีค่าน้อยกว่าค่าเฉลี่ย
text book name : Introdution to Programming with C++
Author : Y.Daniel Liang
Proposition => Write a program that reads eleven numbers, computers their average, and finds out how many number are below the average.
Translated into Thailand => ให้เขียนโปรแกรมที่คำนวณค่าเฉลี่ยของเลขทั้ง 11 ตัว และ หาว่ามีกี่ตัวที่มีค่าน้อยกว่าค่าเฉลี่ย
Solution=>
int[] n= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
int i=1;
int av=0;
int sum=0;
int c=0;
int x=n[0];
while (i<n.length) {
sum=x+n[i];
x=sum;
av=sum/11;
i=i+1;
}
if (i>=n.length) {
i=0;
while (i<n.length) {
if (n[i]<av) {
c=c+1;
}
i=i+1;
}
}
println("How many number are below the average?");
println("average="+av+" answer="+c);
Out put => How many number are below the average?
average=6 answer=5
You can run code in http://processingjs.org/tools/processing-helper.html
อธิบายการทำงานของโปรแกรม =>
ใส่ตัวเลขที่ต้องการคำนวณทั้งหมด11ตัวใน
int[] n= {x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11};
ในที่นี้กำหนดให้เป็น int[] n= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; กำหนดให้ค่า i=1, x=n[0]
เช็คเงื่อนไขของwhile ว่า i<n.length
(n.length คือ จำนวนตัวแปลทั้งหมดที่มีใน n ในที่นี้คือ11 )
เมื่อเป็นจริง เริ่มทำการวนลูป ทำตามคำสั่งด้านในจนกว่าเงื่อนไขจะเป็นเท็จ จะจบการวนลูป
และเริ่มพิจารณาที่เงื่อนไขของif ต่อ ว่า i>=n.length(ซึ้งเมื่อจบจากการวนลูปแล้ว i=11)
เมื่อเป็นจริง ทำตามคำสั่งใน if ทำให้ค่า i=0 และพิจารณาเงื่อนไขของ while ที่อยู่ข้างใน if
ว่า i<n.length เมื่อเป็นจริง จำเริ่มทำการวนลูป โดยภายในลูปมี เงื่อนไข if ว่า n[i]<av (average)
เมื่อเป็นจริงให้ทำการเพิ่มค่าc 1หน่วย ทำการวนลูปไปเรื่อยๆ จนกว่าเงื่อนไขจะเป็นเท็จ
จะได้ค่า c=จำนวนตัวเลขที่มีค่าน้อยกว่าค่าเฉลี่ย
text book name : Introdution to Programming with C++
Author : Y.Daniel Liang
วันพุธที่ 17 กรกฎาคม พ.ศ. 2556
-Expressway-
void setup() {
size(300, 200);
int x=0;
int n=3;
int c=0;
int s=100;
fill(0,191,255);
rect(-5,-5, 310, 100);
fill(204, 102, 0);
rect(-5, 30, 310, 30);
while (c<n) { //while( ){} คือคำสั่งที่ใช่ในการวนลูป หรือทำงานซ้ำๆเมื่อเงื่อนไขเป็นจริง
และเลิกทำเมื่อเงื่อนไขไม่เป็นจริง
โดยกำหนดเงื่อนไขใน ( ) และกำหนดคำสั่งใน { }
ในที่นี้เงื่อนไขคือ c<n
fill(225, 225, 170);
rect(x+60, 60, 20, 40);
rect(x+50, 100, 40, 80);
fill(0);
rect(x+60, 110, 20, 30);
fill(250, 255, 0);
rect(x+0, 140, 50, 10);
fill(255, 0, 0);
ellipse(x+40, 50, 10, 10);
fill(0, 255, 0);
ellipse(x+55, 50, 10, 10);
x=x+s; //x=x+s คือ x จะมีค่าเพิ่มขึ้นs(s=100) ทุกๆครั้งที่มีการวนลูป
c=c+1; //c=c+1 คือ c จะมีค่าเพิ่มขึ้น1 ทุกๆครั้งที่มีการวนลูป
}
}
//เพิ่มเติม ตรวจสอบเงื่อนไขที่ while ในที่นี้คือ c<n ว่าเป็นจริงหรือไม่ เนื่องจากเริ่มต้น c =0
จะได้ว่าเงื่อนไขเป็นจริง ให้ทำตามคำสั่งข้างใน{ }
และค่าx เพิ่มขึ้น100(จะทำให้ได้ด่านเก็บเงินที่อยู่ทางขวาเพิ่มขึ้นมา)และ
ค่าcเพิ่มขึ้น1 ทุกๆครั้งที่มีการวนลูป และจะทำซ้ำอย่างนี้ไปเรื่อยๆจนเงื่อนไขเป็นเท็จ (c<n) จึงทำการออกจากลูปหรือหยุดการทำงาน
//อ้างอิงคำสั่งพื้นฐานต่างๆจากlab1 http://com5630043.blogspot.com/search/label/lab1
//อ้างอิงอธิบายฟังก์ชันจากlab2 http://com5630043.blogspot.com/search/label/lab2
=while loop= (medium)
Programming Exercise
Proposition =>Write a code segment that sums the even integers from 16 through 26,inclusive.
Translated into Thailand => ให้เขียนcode เพื่อหาผลรวมของจำนวนคู่ตั้งแต่ 16-26
Solution=> int x=16;
int y=26;
int n=2;
int z=x+n;
int sum=0;
while (x<y) { //เป็นการสร้างลูปขึ้นมาเพื่อใช้ในการคำนวน
โดยจะวนลูปเมื่อเงื่อนไข x<y เป็นจริง
โดยจะวนลูปเมื่อเงื่อนไข x<y เป็นจริง
sum=x+z; //เป็นการหาผลรวมของจำนวนคู่
z=sum+n;
x=x+n;
}
println("sum="+sum);
Out put => sum =126
You can run code in http://processingjs.org/tools/processing-helper.html
อธิบายการทำงานของโปรแกรม =>
เป็นโปรแกรมที่ใช้หาผลรวมของจำนวนคู่ตั้งแต่ค่าxจนถึงค่าy
เริ่มประกาศตัวแปล xและ y โดยให้ x เก็ยค่าน้อยกว่า y เสมอ โดยเราสามารถแก้ไขค่าxและyได้โดยที่xและyต้องเป็นจำนวนคู่เท่านั้น เมื่อเริ่มรันโปรแกรม จะเริ่มพิจารณาเงื่อนไขของwhile(x<y)
เมื่อเงื่อนไขเป็นจริง จำเริ่มทำการคำนวณ จนเงื่อนไขเป็นเท็จ ค่าที่ได้ออกมาคือ
ผลรวมของจำนวนคู่ตั้งแต่ค่าxจนถึงค่าy
text book name :Programming and problem solving with Java – 2nd edition
Author : Nell Dale and Chip Weems
ISBN 978-0-7637-3402-2
You can run code in http://processingjs.org/tools/processing-helper.html
อธิบายการทำงานของโปรแกรม =>
เป็นโปรแกรมที่ใช้หาผลรวมของจำนวนคู่ตั้งแต่ค่าxจนถึงค่าy
เริ่มประกาศตัวแปล xและ y โดยให้ x เก็ยค่าน้อยกว่า y เสมอ โดยเราสามารถแก้ไขค่าxและyได้โดยที่xและyต้องเป็นจำนวนคู่เท่านั้น เมื่อเริ่มรันโปรแกรม จะเริ่มพิจารณาเงื่อนไขของwhile(x<y)
เมื่อเงื่อนไขเป็นจริง จำเริ่มทำการคำนวณ จนเงื่อนไขเป็นเท็จ ค่าที่ได้ออกมาคือ
ผลรวมของจำนวนคู่ตั้งแต่ค่าxจนถึงค่าy
text book name :Programming and problem solving with Java – 2nd edition
Author : Nell Dale and Chip Weems
ISBN 978-0-7637-3402-2
วันอังคารที่ 16 กรกฎาคม พ.ศ. 2556
-Mobile carp-
void setup() {
background(225,225,170);
size(200, 300);
}
void draw() {
Treefish();
BigfishandBeam();
}
void BigfishandBeam() { //เป็นการสร้างฟังก์ชันขึ้นมาเอง จะตั้งชื่อว่าอะไรก็ได้
แต่ต้องมี void ....(){ }อยู่เสมอ โดยใส่คำสั่งที่ต้องการเข้าไปใน { }
ในที่นี้กำหนดให้เป็นฟังก์ขันที่วาดปลาตัวใหญ่และคาน
//beam
fill(0);
rect(85,0,2,70);
ellipse(86,20,10,10);
//bigfish
fill(250, 15, 180);
triangle(30, 100, 110, 50, 110, 150);
triangle(120, 100, 170, 60, 170, 140);
ellipse(80, 100, 100, 60);
fill(0);
ellipse(45, 95, 10, 10);
}
void Treefish() { //เป็นการสร้างฟังก์ชันขึ้นมาเอง จะตั้งชื่อว่าอะไรก็ได้
แต่ต้องมี void ....(){ }อยู่เสมอ โดยใส่คำสั่งที่ต้องการเข้าไปใน { }
ในที่นี้กำหนดให้เป็นฟังก์ขันที่วาดปลา3ตัว
int x=30;
int y=100;
int l=110;
int c=0;
int n=3;
while (c<n) { //while( ){} คือคำสั่งที่ใช่ในการวนลูป หรือทำงานซ้ำๆเมื่อเงื่อนไขเป็นจริง
และเลิกทำเมื่อเงื่อนไขไม่เป็นจริง
โดยกำหนดเงื่อนไขใน ( ) และกำหนดคำสั่งใน { }
ในที่นี้เงื่อนไขคือ c<n
line(x, y, x, y+l);
drawFish(x, l+100, 30);
x=x+50;
l=l+20;
c=c+1;
}
}
void drawFish(int x, int y, int r) { //เป็นการสร้างฟังก์ชันขึ้นมาเอง จะตั้งชื่อว่าอะไรก็ได้
แต่ต้องมี void ....(){ }อยู่เสมอ
(int x,int y,int,r)ที่เห็นคือการ กำหนดตัวแปลเพื่อให้สามารถ
ใส่ค่าเข้าไปเองได้ เช่น เรียกใช้ drawFish(30,210,30);
ค่าต่างๆก็จะถูกส่งไปที่ตัวแปล x,y และ rตามลำดับ
ในที่นี้คำสั่งในฟังก์ชันนี้
คือ ellipse(x,y,r,r); จะได้เป็น ellipse(30,310,30,30);
triangle(x+15, y, x+25, y-20, x+25, y+20);
จะได้เป็นtriangle(45,210,55,190,55,230);
fill(250, 15, 180);
ellipse(x, y, r, r);
triangle(x+15, y, x+25, y-20, x+25, y+20);
}
//เพิ่มเติม ตรวจสอบเงื่อนไขที่ while ในที่นี้คือ c<n ว่าเป็นจริงหรือไม่ เนื่องจากเริ่มต้น c =0
จะได้ว่าเงื่อนไขเป็นจริง ให้ทำตามคำสั่งข้างใน คือ วาดเส้น,เรียกใช้drawFish(); ,ค่าx เพิ่มขึ้น50,
ค่า l เพิ่ม20,และค่าcเพิ่มขึ้น1 ทุกๆครั้งที่มีการวนลูป และจะทำซ้ำอย่างนี้ไปเรื่อยๆจนเงื่อนไขเป็นเท็จ (c<n) จึงทำการออกจากลูปหรือหยุดการทำงาน
//อ้างอิงคำสั่งพื้นฐานต่างๆจากlab1 http://com5630043.blogspot.com/search/label/lab1
//อ้างอิงอธิบายฟังก์ชันจากlab2 http://com5630043.blogspot.com/search/label/lab2
-Railway-
void setup() {
size(200, 200);
background(0, 214, 214);
}
void draw() {
view();
way();
railway();
}
void view() { //เป็นการสร้างฟังก์ชันขึ้นมาเอง จะตั้งชื่อว่าอะไรก็ได้
แต่ต้องมี void ....(){ }อยู่เสมอ
โดยใส่คำสั่งที่ต้องการเข้าไปใน { }
ในที่นี้กำหนดให้เป็นฟังก์ขันที่วาด View ทั้งหมดในรูป
//draw Sun
fill(255, 0, 0);
ellipse(100, 20, 25, 25);
//draw Mountain
fill(50, 214, 100);
ellipse(150, 50, 130, 80);
ellipse(50, 50, 150, 80);
//draw Land
fill(240, 193, 113);
rect(-5, 50, 210, 200);
//draw tree
fill(204, 102, 0);
rect(20, 100, 10, 50);
rect(150, 60, 5, 30);
fill(73,255,47);
ellipse(25,100,40,40);
ellipse(152,60,20,20);
}
void way() { //เป็นการสร้างฟังก์ชันขึ้นมาเอง จะตั้งชื่อว่าอะไรก็ได้
แต่ต้องมี void ....(){ }อยู่เสมอ
โดยใส่คำสั่งที่ต้องการเข้าไปใน { }
ในทีนี้กำหนดให้เป็นฟังก์ชันที่วาด ทางรถไฟ
strokeWeight(6); //เป็นคำสั่งที่กำหนดความหนาของเส้น กำหนดความหนาใน ( )
line(95, 50, 30, 200);
line(105, 50, 170, 200);
strokeWeight(2); //เป็นคำสั่งที่กำหนดความหนาของเส้น กำหนดความหนาใน ( )
//บรรทัดนี้กำหนดความหนาของเส้นเป็นให้เล็กลงเพราะ
ถ้าหากไม่มีบรรทัดนี้ เส้นของคำสั่งต่อๆไปก็จะมีความหนาเป็น 6
}
void railway() { //เป็นการสร้างฟังก์ชันขึ้นมาเอง จะตั้งชื่อว่าอะไรก็ได้
แต่ต้องมี void ....(){ }อยู่เสมอ
โดยใส่คำสั่งที่ต้องการเข้าไปใน { }
ในทีนี้กำหนดให้เป็นฟังก์ชันที่วาด หมอนรองรางรถไฟ
int x=95;
int y=50;
int s=10;
int c=0;
int n=8;
fill(100);
while (c<n) { //while( ){} คือคำสั่งที่ใช่ในการวนลูป หรือทำงานซ้ำๆเมื่อเงื่อนไขเป็นจริง
และเลิกทำเมื่อเงื่อนไขไม่เป็นจริง
โดยกำหนดเงื่อนไขใน ( ) และกำหนดคำสั่งใน { }
ในที่นี้เงื่อนไขคือ c<n
rect(x, y, s, 5);
x=x-9; //x=x-9 คือ x จะมีค่าลดลง9 ทุกๆครั้งที่มีการวนลูป
y=y+20; //y=y+20 คือ y จะมีค่าเพิ่มขึ้น20 ทุกๆครั้งที่มีการวนลูป
s=s+18; // s=s+18คือ s จะมีค่าเพิ่มขึ้น18 ทุกๆครั้งที่มีการวนลูป
c=c+1; //c=c+1 คือ x จะมีค่าเพิ่มขึ้น1 ทุกๆครั้งที่มีการวนลูป
}
}
//เพิ่มเติม ตรวจสอบเงื่อนไขที่ while ในที่นี้คือ c<n ว่าเป็นจริงหรือไม่ เนื่องจากเริ่มต้น c =0
จะได้ว่าเงื่อนไขเป็นจริง ให้ทำตามคำสั่งข้างใน คือ วาดสี่เหลี่ยม ,ค่าx ลดลง9,ค่าy เพิ่ม20,
ค่าsเพิ่มขึ้น18 และค่าcเพิ่มขึ้น1 ทุกๆครั้งที่มีการวนลูป และจะทำซ้ำอย่างนี้ไปเรื่อยๆจนเงื่อนไขเป็นเท็จ (c<n) จึงทำการออกจากลูปหรือหยุดการทำงาน
//ค่าxและyมีผลต่อตำแหน่งของสี่เหลี่ยม และค่าsมีผลต่อความกว้างของสี่เหลี่ยม
//อ้างอิงคำสั่งพื้นฐานต่างๆจากlab1 http://com5630043.blogspot.com/search/label/lab1
//อ้างอิงอธิบายฟังก์ชันจากlab2 http://com5630043.blogspot.com/search/label/lab2
-Scout Bridges.
void setup() {
size(300, 200);
background(0, 214, 214);
strokeWeight(3); //เป็นคำสั่งที่กำหนดความหนาของเส้น กำหนดความหนาใน ( )
fill(204, 102, 0);
rect(0, 150, 20, 50);
rect(280, 150, 20, 50);
noFill(); //เป็นคำสั่งที่ทำให้รูปที่วาดไม่มีสี
stroke(250, 0, 0); //stroke(แดง,เขียว,น้ำเงิน) เป็นคำสั่งที่ใช้ในการใส่สีให้กับเส้น
โดยสีที่ได้ขึ้นอยู่กับค่าที่เราใส่ในแต่ละช่อใน ( )
ในที่นี้stroke(250,0,0);สีที่ได้คือสีแดง
quad(50, 100, 250, 100, 290, 150, 10, 150);
int x=50;
int y=100;
int s=25;
int l=50;
int n=4;
int count=0;
while (count<n) { //while( ){} คือคำสั่งที่ใช่ในการวนลูป หรือทำงานซ้ำๆเมื่อเงื่อนไขเป็นจริง
และเลิกทำเมื่อเงื่อนไขไม่เป็นจริง
โดยกำหนดเงื่อนไขใน ( ) และกำหนดคำสั่งใน { }
ในที่นี้เงื่อนไขคือ count<n
line(x, y, x+s, y+l);
line(x+50, y, x+s, y+l);
x=x+50; //x=x+50 คือ x จะมีค่าเพิ่มขึ้น50 ทุกๆครั้งที่มีการวนลูป
count=count+1; //count=count+1 คือ x จะมีค่าเพิ่มขึ้น1 ทุกๆครั้งที่มีการวนลูป
}
}
//เพิ่มเติ่ม n คือจำนวนของเส้นสลิงใช้ยึดสะพาน (ลักษณะเป็นตัว "V") (นิยามเองเพื่อให้ง่ายต่อความเข้าใจ)
พิจารณาเงื่อนไข count<n เงื่อนไขเป็นจริงจะทำการวนลูป (ทำงานซ้ำๆ) เมื่อเริ่มวนลูปจะทำการการวาดเส้น2เส้นในลักษณะตัว "V" เมื่อวาดแล้วค่าx และค่า count ก็จะเพิ่มขึ้นตามที่เขียนไว้ในโปรแกรม และกลับไปวนลูปใหม่ เมื่อวนลูปไปเรื่อยๆจนเงื่อนไขเป็นเท็จก็จะทำการออกจากลูป
//อ้างอิงคำสั่งพื้นฐานต่างๆจากlab1 http://com5630043.blogspot.com/search/label/lab1
//อ้างอิงอธิบายฟังก์ชันจากlab2 http://com5630043.blogspot.com/search/label/lab2
วันอาทิตย์ที่ 14 กรกฎาคม พ.ศ. 2556
-I see you-
void setup() {
size(200, 200);
}
void draw(){
int x=5;
int y=200;
int e=100;
int r=110;
background(255);
while(y>=0){ //while( ){} คือคำสั่งที่ใช่ในการวนลูป หรือทำงานซ้ำๆ เมื่อเงื่อนไขเป็นจริง
และเลิกทำเมื่อเงื่อนไขไม่เป็นจริง
โดยกำหนดเงื่อนไขใน ( ) และกำหนดคำสั่งใน { }
ในที่นี้เงื่อนไขคือ y>=0
line(200,x,y,200);
line(x,0,0,y);
ellipse(e,e,r,r);
r=r-1; //r=r-1 คือ r จะมีค่าลดลง1 ทุกๆครั้งที่มีการวนลูป
y=y-5; //y=y-5 คือ y จะมีค่าลดลง5 ทุกๆครั้งที่มีการวนลูป
x=x+5; //x=x+5 คือ x จะมีค่าเพิ่มขึ้น5 ทุกๆครั้งที่มีการวนลูป
}
}
//เพิ่มเติม ตรวจสอบเงื่อนไขที่ while ในที่นี้คือ y>=0ว่าเป็นจริงหรือไม่ เนื่องจากเริ่มต้น y =200
จะได้ว่าเงื่อนไขเป็นจริง ให้ทำตามคำสั่งข้างใน คือ การวาดเส้น2เส้น ,วงกลม1วง ,ค่าr ลดลง1,ค่าy ลดลง5 และค่าxเพิ่มขึ้น5 ทุกๆครั้งที่มีการวนลูป และจะทำซ้ำอย่างนี้ไปเรื่อยๆจนเงื่อนไขเป็นเท็จ (y<=0)
จึงทำการออกจากลูปหรือหยุดการทำงาน
//อ้างอิงคำสั่งพื้นฐานต่างๆจากlab1 http://com5630043.blogspot.com/search/label/lab1
//อ้างอิงอธิบายฟังก์ชันจากlab2 http://com5630043.blogspot.com/search/label/lab2
วันพุธที่ 10 กรกฎาคม พ.ศ. 2556
-UFO-
void setup(){
size(300,200);
}
int x=30;
int c=0;
void draw(){
background(0);
drawUFO1(x);
drawUFO2(x);
c=c+1; //เป็นการกำหนดให้ค่า c เพิ่มขึ้น 1 ทุกๆครั้งที่มีการ
เรียกใช้ฟังก์ชัน void draw( ){ }
เรียกใช้ฟังก์ชัน void draw( ){ }
if(c<=250){ //if( ){ }เป็นการกำหนดเงื่อนไข โดยกำหนดเงื่อนไขไว้ใน ( )
ถ้าเงื่อนไขเป็นจริง ให้ทำตามคำสั่งใน { }
ถ้าเงื่อนไขเป็นจริง ให้ทำตามคำสั่งใน { }
x=x+1;
}
else{ //else{ } เป็นคำสั่งที่ใช้ต่อจาก if( ){ } โดยคำสั่งจะเริ่มพิจารณา
เงื่อนไขจาก if ก่อนถ้าไม่เป็นจริง จะทำตามคำสั่งของ else ใน { }
เงื่อนไขจาก if ก่อนถ้าไม่เป็นจริง จะทำตามคำสั่งของ else ใน { }
x=x-1;
}
if(c>=500){
c=0;
}
}
void drawUFO1(int x){
fill(250,255,0);
triangle(x,20,x-10,70,x+10,70);
fill(255);
ellipse(x,30,30,30);
ellipse(x,35,50,15);
}
void drawUFO2(int x){
fill(250,255,0);
triangle(300-x,50,290-x,100,310-x,100);
fill(255);
ellipse(300-x,60,30,30);
ellipse(300-x,65,50,15);
}
//ตัวแปล x ใช้ในการเก็บค่าเพื่อให้UFOขยับไปซ้ายขวา แต่ที่UFOเคลื่อนที่สวนทางกันเพราะ
ค่าx ใน UFO1 มีค่าเป็นบวก แต่ค่าx ในUFO2 มีค่าเป็นลบ ทำให้เคลื่อนที่สวนทางกัน
//เพิ่มเติม ค่าcที่เพิ่มขึ้นเปรียบเสมือน เวลาที่เพิ่มขึ้นเรื่อยๆ จากเงื่อนไขถ้าc<=250 ค่าxจะบวก1เรื่อยๆ
ทำให้UFO1 ขยับไปทางขวา UFO2ขยับไปทางซ้าย แต่เมื่อเงื่อนไข c<=250 ไม่เป็นจริง
ค่าxจะลดลงมาเรื่อยๆ ทำให้UFOเคลื่อนที่กลับที่เดิม เมื่อc>=500 จะตรงกับอีกเงื่อนไขนึง
ทำให้ค่า c=0 เป็นการรีเซ็ต ค่าc ให้กลับมาเป็นค่าที่เริ่มต้น
//อ้างอิงคำสั่งพื้นฐานต่างๆจาก lab1 http://com5630043.blogspot.com/search/label/lab1
//อ้างอิงอธิบายฟังก์ชันจาก lab2 http://com5630043.blogspot.com/search/label/lab2
//ตัวแปล x ใช้ในการเก็บค่าเพื่อให้UFOขยับไปซ้ายขวา แต่ที่UFOเคลื่อนที่สวนทางกันเพราะ
ค่าx ใน UFO1 มีค่าเป็นบวก แต่ค่าx ในUFO2 มีค่าเป็นลบ ทำให้เคลื่อนที่สวนทางกัน
//เพิ่มเติม ค่าcที่เพิ่มขึ้นเปรียบเสมือน เวลาที่เพิ่มขึ้นเรื่อยๆ จากเงื่อนไขถ้าc<=250 ค่าxจะบวก1เรื่อยๆ
ทำให้UFO1 ขยับไปทางขวา UFO2ขยับไปทางซ้าย แต่เมื่อเงื่อนไข c<=250 ไม่เป็นจริง
ค่าxจะลดลงมาเรื่อยๆ ทำให้UFOเคลื่อนที่กลับที่เดิม เมื่อc>=500 จะตรงกับอีกเงื่อนไขนึง
ทำให้ค่า c=0 เป็นการรีเซ็ต ค่าc ให้กลับมาเป็นค่าที่เริ่มต้น
//อ้างอิงคำสั่งพื้นฐานต่างๆจาก lab1 http://com5630043.blogspot.com/search/label/lab1
//อ้างอิงอธิบายฟังก์ชันจาก lab2 http://com5630043.blogspot.com/search/label/lab2
วันอังคารที่ 9 กรกฎาคม พ.ศ. 2556
-One Piece-
void setup() { //เป็นฟังก์ชันที่โปรแกรมจะเรียกใช้อัตโนมัติเป็นอันดับแรก
size(200, 200);
background(0);
}
void draw() { //เป็นฟังก์ชันที่โปรแกรมจะเรียกใช้อัตโนมัติเป็นอันดับสอง
และจะเรียกใช้ซ้ำๆเรื่อยๆ เป็นพื้นฐานของการวาดanimation
fill(random(255), random(255), random(255));//เป็นการใส่สีแบบซุ่ม โดยใช้คำสั่ง
random(กำหนดค่าของสี)เข้าไปในช่องสีต่างๆ
ของคำสั่ง fill(แดง,เขียว,น้ำเงิน);
การซุ่มของrandomจะเริ่มจาก0ถึงค่าที่เรากำหนด
อาจเขียนในรูป random(0,ค่าที่เรากำหนด)
โดยค่า 0 เราสามารถเปลี่ยนเปนค่าอื่นได้เช่นกัน
drawCrossbones(); //เป็นการเรียกใช้ฟังก์ชัน drawCrossbones();
fill(255);
drawHeard(); //เป็นการเรียกใช้ฟังก์ชัน drawHeard();
frameRate(5); //frameRate( ); เป็นคำสั้งที่ใช้กำหนดความเร็วในการวาดภาพ
โดยกำหนดความเร็วใน ( )
}
void drawHeard() { //เป็นการสร้างฟังก์ชันขึ้นมาเอง จะตั้งชื่อว่าอะไรก็ได้
แต่ต้องมี void draw......(){ }อยู่เสมอ
โดยใส่คำสั่งที่ต้องการเข้าไปใน { }
ellipse(100, 150, 50, 50);
ellipse(100, 140, 50, 40);
ellipse(100, 100, 100, 100);
rect(30, 70, 140, 10);
fill(0);
ellipse(80, 110, 30, 30);
ellipse(120, 110, 30, 30);
ellipse(100, 130, 10, 10);
}
void drawCrossbones() { //เป็นการสร้างฟังก์ชันขึ้นมาเอง จะตั้งชื่อว่าอะไรก็ได้
แต่ต้องมี void draw......(){ }อยู่เสมอ
โดยใส่คำสั่งที่ต้องการเข้าไปใน { }
quad(30, 20, 170, 180, 150, 180, 30, 40);
quad(170, 20, 170, 40, 50, 180, 30, 180);
}
//quad(x1 ,y1 ,x2 ,y2 ,x3 ,y3 ,x4 ,y4 ); เป็นคำสั่งวาด4เหลี่ยมโดยเราสามารถ
กำหนดตำแหน่งได้ทุกจุดเพื่อรูปทรงที่แตกต่าง
//อ้างอิงคำสั่งพื้นฐานต่างๆจาก lab1 http://com5630043.blogspot.com/search/label/lab1วันจันทร์ที่ 8 กรกฎาคม พ.ศ. 2556
-What do a boy do-
void setup(){
size(200,200);
}
int c=0;
float x=55;
void draw(){
background(250,200,0);
drawFace();
drawEye(x);
c=c+1; //เป็นการกำหนดให้ค่า c เพิ่มขึ้น 1 ทุกๆครั้งที่มีการ
เรียกใช้ฟังก์ชัน void draw( ){ }
if(c<=60){ //if( ){ }เป็นการกำหนดเงื่อนไข โดยกำหนดเงื่อนไขไว้ใน ( )
ถ้าเงื่อนไขเป็นจริง ให้ทำตามคำสั่งใน { }
x=x+0.5;
}
else{ //else{ } เป็นคำสั่งที่ใช้ต่อจาก if( ){ } โดยคำสั่งจะเริ่มพิจารณา
เงื่อนไขจาก if ก่อนถ้าไม่เป็นจริง จะทำตามคำสั่งของ else ใน { }
x=x-0.5;
}
if(c==120){
c=0;
x=55;
}
}
void drawEye(float x ){
fill(0);
ellipse(x,100,15,15);
ellipse(x+60,100,15,15);
}
void drawFace(){
int s=0;
int e=200;
fill(250,0,0);
rect(s,s,e,50);
line(s,100,e,100);
fill(255);
ellipse(70,100,50,50);
ellipse(130,100,50,50);
fill(0);
ellipse(100,140,20,20);
line(70,180,140,160);
line(130,150,150,170);
line(40,30,40,50);
line(80,30,80,50);
line(120,30,120,50);
line(160,30,160,50);
ellipse(155,160,2,2);
ellipse(165,160,2,2);
ellipse(155,150,3,3);
ellipse(165,150,2,2);
}
//ตัวแปล x ใช้ในการเก็บค่าเพื่อให้ตาขยับไปซ้ายขวา
//เพิ่มเติม ค่าcที่เพิ่มขึ้นเปรียบเสมือน เวลาที่เพิ่มขึ้นเรื่อยๆ จากเงื่อนไขถ้าc<=60 ค่าxจะบวก0.5เรื่อยๆ
ทำให้ตา ขยับไปทางขวา แต่เมื่อเงื่อนไข c<=60 ไม่เป็นจริง
ค่าxจะลดลงมาเรื่อยๆ ทำให้ตาเคลื่อนที่กลับที่เดิม เมื่อc==120 จะตรงกับอีกเงื่อนไขนึง
ทำให้ค่า c=0 ,x=55 เป็นการรีเซ็ต ค่าc และ x ให้กลับมาเป็นค่าเริ่มต้น
//อ้างอิงคำสั่งพื้นฐานต่างๆจาก lab1 http://com5630043.blogspot.com/search/label/lab1
//อ้างอิงอธิบายฟังก์ชันจาก lab2 http://com5630043.blogspot.com/search/label/lab2
-Boat-
void setup(){
size(300,200);
}
int count=0;
int x=0;
int y=0;
void draw(){
background(220);
drawSky();
drawSea();
drawBoats();
count=count+1; //เป็นการกำหนดให้ค่า c เพิ่มขึ้น 1 ทุกๆครั้งที่มีการ
เรียกใช้ฟังก์ชัน void draw( ){ }
if(count<=170){ //if( ){ }เป็นการกำหนดเงื่อนไข โดยกำหนดเงื่อนไขไว้ใน ( )
ถ้าเงื่อนไขเป็นจริง ให้ทำตามคำสั่งใน { }
x=x+1;
}
if(count<=200){
y=y+1;
}
else{ //else{ } เป็นคำสั่งที่ใช้ต่อจาก if( ){ } โดยคำสั่งจะเริ่มพิจารณา
เงื่อนไขจาก if ก่อนถ้าไม่เป็นจริง จะทำตามคำสั่งของ else ใน { }
x=x-1;
y=y-1;
}
if(count==400){
count=0;
x=0;
y=0;
}
}
void drawSea(){
fill(0,69,215);
rect(0,150,300,100);
}
void drawBoats(){
fill(200);
quad(y+20,130,y+80,130,y+70,150,y+30,150);
noStroke();
fill(255,0,0);
triangle(y+50,95,y+80,120,y+50,120);
stroke(1);
fill(100);
rect(y+45,95,5,35);
quad(x+40,130,x+100,130,x+90,150,x+50,150);
noStroke();
fill(0,255,0);
triangle(x+70,95,x+100,120,x+70,120);
fill(100);
rect(x+65,95,5,35);
}
void drawSky(){
fill(255,50,10);
ellipse(50,150,80,80);
fill(250,255,0);
strokeWeight(10);
stroke(250,255,0);
line(-30,10,10,110);
line(10,10,30,100);
line(50,10,50,90);
line(90,10,70,100);
line(160,10,80,110);
line(230,20,90,120);
line(300,30,100,130);
line(300,90,110,140);
strokeWeight(1);
stroke(0);
}
//ตัวแปล x ใช้ในการเก็บค่าเพื่อให้เรือธงสีเขียวขยับไปซ้ายขวา
//ตัวแปล y ใช้ในการเก็บค่าเพื่อให้เรือธงสีแดงขยับไปซ้ายขวา
ที่กำหนด2ตัวแปลเพราะ จะทำให้เรือรับค่าที่ต่างกัน เพิ่มทำให้เหมือนเรือแซงกัน
//เพิ่มเติม ค่า count ที่เพิ่มขึ้นเปรียบเสมือน เวลาที่เพิ่มขึ้นเรื่อยๆ
จากเงื่อนไขถ้าcount<=170 ค่าxจะบวก 1 เรื่อยๆ ทำให้เรือธงสีเขียวขยับไปทางขวา
จากเงื่อนไขถ้าcount<=200 ค่าyจะบวก 1 เรื่อยๆ ทำให้เรือธงสีแดงขยับไปทางขวา
แต่เมื่อเงื่อนไข count<=170 และ เงื่อนไข count<=200 ไม่เป็นจริง
ค่าx และ y จะลดลงมาเรื่อยๆ ทำให้เรือทั้ง2เคลื่อนที่ไปทางซ้าย
จากข้างต้นเรือธงสีเขียวจะหยุดก่อนเรือธงสีแดงทำให้เวลากลับเรือธงสีเขียวจะนำหน้าเรือธงสีแดง
เมื่อcount==400 จะตรงกับอีกเงื่อนไขนึง
ทำให้ค่า count=0 , x=0, y=0 เป็นการรีเซ็ต ค่าc ,x และ y ให้กลับมาเป็นค่าเริ่มต้น
//อ้างอิงคำสั่งพื้นฐานต่างๆจาก lab1 http://com5630043.blogspot.com/search/label/lab1
//อ้างอิงอธิบายฟังก์ชันจาก lab2 http://com5630043.blogspot.com/search/label/lab2
สมัครสมาชิก:
ความคิดเห็น (Atom)