Wednesday, July 22, 2009

Computer Programming (C language) – Basic

การทำงานของโปรแกรมที่ต้องเข้าใจ
- โปรแกรมจะทำงานจากบรรทัดบนไปล่างทีละบรรทัด
- คำสั่งทั่วไปจะต้องจบด้วยเครื่องหมาย ; ทุกครั้ง เช่น
int a,b,c; scanf(“%d %d”,&a,&b); //ถึงแม้จะอยู่บรรทัดเดียวแต่เนื่องจากมี ; สองครั้ง จึงถือว่ามี 2 คำสั่ง
- คำสั่ง scanf อย่าลืม & เมื่อประกาศตัวแปร
- คำสั่งคำนวณที่เป็นสมการ โปรแกรมจะทำงานโดยคิดจากขวามือเครื่องหมาย = ส่งคำตอบที่ได้ไปให้ตัวแปรหน้าเครื่องหมาย = เช่น
a=5; // a=5
a=a*a; // a=5*5 ดังนั้นตอนนี้ a=25
- คำสั่งคำนวณประเภท increment, decrement
i++; // เหมือนกับเขียนคำสั่ง i=i+1;
i--; // เหมือนกับเขียนคำสั่ง i=i-1;
เช่น
b=5; //b=5
b++; //b=6
- คำสั่งประเภทฟังก์ชั่นปรกติ เช่น if, switch หรือประเภท loop เช่น while, for, do…while จะต้องมีเครื่องหมาย { } เปิดและปิดถ้าคำสั่งในฟังก์ชั่นมีตั้งแต่ 2 คำสั่งขึ้นไป แต่ถ้าหลังคำสั่งประเภทฟังก์ชั่นมีคำสั่งเดียว ไม่ต้องมี { } ก็ได้ เช่น

if(a==5){
printf(“555”);//จะแสดงผลถ้า a=5
printf(“program ends”);//จะแสดงผลเมื่อ a=5 เช่นกัน
}

ซึ่งจะต่างจาก

if(a==5)
printf(“555”);//จะแสดงผลเมื่อ a=5
printf(“program ends”);//แสดงผลแน่นอน

- ฟังก์ชั่น loop คือ คำสั่งที่สั่งให้โปรแกรมทำงานซ้ำเรื่อยๆ จนกว่าจะไม่เข้าเงื่อนไขที่กำหนดไว้ (เป็นคำสั่งที่ทำให้โปรแกรมกลับไปทำงานตามคำสั่งที่อยู่ข้างบนซ้ำได้)
- ฟังก์ชั่น for loop กับ while loop ต่างกันอย่างไร >> ต่างกันที่การเขียน แต่สามารถเขียนให้ได้ผลลัพธ์เหมือนกันได้ เช่น โปรแกรมคำนวณเลข 1*2*3*…*n where n=integer number that user inputs

int a,i,ans;
scanf(“%d”,&a); // สมมติใส่ 4
ans=1;
i=1;//initial i=1
while(i<=a){ // 1<=4 จริง||2<=4 จริง ทำต่อ||3<=4 จริง ทำต่อ||4<=4 จริง ทำต่อ||5<=4 ไม่จริง จบ loop ทันที
ans=ans*i; // ans=1*1=1||ans=1*2=2||ans=2*3=6||ans=6*4=24
i++;// i=2||i=3||i=4||i=5
}
printf(“the result is %d\n”,ans);// ดังนั้นมันจะแสดงผลว่า the result is 24

ถ้าเปรียบเทียบกับ for >>>
int a,i,ans;
scanf(“%d”,&a);
ans=1;
for(i=1;i<=a;i++){ // for(initial;condition;increment or decrement){ statement }
ans=ans*i;
}
printf(“the result is %d\n”,ans);

จะเห็นว่าจะแสดงผลเหมือนกัน ต่างกันเพียงการเขียนที่ดูแล้วใช้ for จะสั้นกว่า

- do…while คือฟังก์ชั่นที่โปรแกรมจะทำตามคำสั่งใน do แน่นอนใน loop แรก (ทำแน่ 1 ครั้ง) ไม่ว่า condition ใน while จะเป็นอย่างไร วิธีการเขียน>>
do{
statement
}while(condition);

ตัวอย่างเช่น
int a,i,ans;
scanf(“%d”,&a); // สมมติใส่ 4
ans=1;
i=1;
do{
ans=ans*i; // ans=1*1=1||ans=1*2=2||ans=2*3=6||ans=6*4=24
i++; // i=2||i=3||i=4||i=5
}while(i<=a); // 2<=4 จริง ทำต่อ||3<=4 จริง ทำต่อ||4<=4 จริง ทำต่อ||5<=4 ไม่จริง จบ loop ทันที
printf(“the result is %d\n”,ans);
// ดังนั้นมันจะแสดงผลว่า the result is 24

***** จบ Basic to Computer Programming *****

No comments:

Post a Comment