CProgramming

บทที่ 1 รับค่าแสดงผลคำนวณ

กฏการตั้งชื่อและคำสงวน

กฎการตั้งชื่อ

  1. ชื่อประกอบขึ้นจากตัวอักขระ ตัวเลข และขีดเส้นใต้ เท่านั้น
  2. ชื่อจะขึ้นต้นด้วยตัวอักขระ และขีดเส้นใต้เท่านั้น
  3. ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก ถือเป็นอักขระคนละตัวกัน
  4. ความยาวไม่เกิน 31 ตัว
  5. ชื่อจะต้องไม่ซ้ำกับคำสงวน

คำสงวน

auto                  double             int                struct
break                 else               long               switch
case                  enum               register           typedef
char                  extern             return             union
const                 float              short              unsigned
continue              for                signed             void
default               goto               sizeof             volatile
do                    if                 static             while

ตัวอย่างการตั้งชื่อตัวแปร

int num1;          int num2 = 10;               int num3,num4,num5;
char c;            char d = ‘A’;                char e,f,g;
float real;        float real2 = 10.9872;       float real3,real4,real5;

รหัสแอสกี

ชนิดของข้อมูล (Data Type)

ชื่อชนิดข้อมูลหน่วยความจำขอบเขตข้อมูล
char1 ไบต์อักขระ 1 ตัว หรือเลขจำนวนเต็ม -128 – 127
short2 ไบต์เลขจำนวนเต็ม -32768 – 32767
int2 หรือ 4 ไบต์เลขจำนวนเต็ม -32768 – 32767 หรือ -2147483648 – 2147483647
long4 ไบต์เลขจำนวนเต็ม -2147483648 – 2147483647
float4 ไบต์1.2E-38 – 3.4E+38 (6 ตำแหน่ง)
double8 ไบต์2.3E-308 – 1.7E+308 (15 ตำแหน่ง)
unsigned int2 หรือ 4 ไบต์เลขจำนวนเต็ม 0 – 65535 หรือ 0 – 4294967295
long double10 ไบต์3.4E-4932 – 1.1E+4932 (18 ตำแหน่ง)

อักขระพิเศษ (Escape Character)

อักขระพิเศษที่ใช้แสดงผลลัพธ์อักขระพิเศษที่ใช้ในการแสดงผล
รูปแบบความหมายรูปแบบความหมาย
%cอักขระ\nขึ้นบรรทัดใหม่
%dจำนวนเต็ม\tเว้น 1 แท็บ
%iจำนวนเต็ม\0ค่าว่าง
%fจำนวนจริง\\พิมพ์ \
%sข้อความหรือสายอักขระ\’พิมพ์ ‘
%oเลขฐานแปด\”พิมพ์ “
%xเลขฐานสิบหก%%พิมพ์ %
%uตัวเลขแบบไม่คิดเครื่องหมาย
%eตัวเลขแบบเอ็กซ์โปเนนเชียล
%ldจำนวนเต็มชนิด long
%hdจำนวนเต็มชนิด short
%lfจำนวนจริงชนิด double
%Lfจำนวนจริงชนิด long double

รูปแบบของภาษา

โครงสร้างของภาษาซีมีลักษณะดังนี้ โดยโปรแกรมจะทำงานจากบรรทัดบนลงไปตามลำดับ

#include<library file>     // preprocessor
int main(){                //ฟังก์ชันหลักของภาษาจะประกอบไปด้วยการประกาศตัวแปรและคำสั่ง
   <การประกาศตัวแปร>
   <คำสั่งต่างๆ>
   return <ค่าที่ต้องการส่งกลับ>;
}

มักจะเขียนในรูปแบบดังต่อไปนี้

#include<stdio.h>
#include<conio.h>
int main(){
   การประกาศตัวแปร และคำสั่งต่างๆ
   getch();
   return 0;
}

คำสั่งการแสดงผล และรูปแบบการแสดงผลลัพธ์

  • printf(“ข้อความหรืออักขระพิเศษ”,ตัวแปร, …);
  • putc(‘อักขระ’ หรือตัวแปร char ,stdout);
  • putchar(‘อักขระ’ หรือตัวแปร char);
  • puts(“ข้อความ” หรือตัวแปรสตริง);

ลองบันทึกผลลัพธ์จากโปรแกรมตัวอย่างเหล่านี้

ตัวอย่าง 1
int main(){#include<stdio.h>
   printf("Hello first program\n");
   printf("number = %d\n",100);
   printf("num2 = %f\n",10.234);
   printf("char is %c\n",'A ');
   printf("string = %s\n","I love C");
   return 0;
}

ตัวอย่าง 2
#include<stdio.h>
int main(){
   printf("num1 = %10d\n",100);
   printf("num2 = %-10d\n",100);
   printf("num3 = %10.2f\n",10.234567);
   printf("num4 = %-10.2f\n",10.234567);
   return 0;
}

ตัวอย่าง 3
#include<stdio.h>
#include<conio.h>
int main(){
   char a[10]="POSN";
   char b='M';
   puts("Programming is easy");
   puts(a);
   putchar('S');putchar('\t');
   putc('A',stdout);putc(b,stdout);
   putc('\n',stdout);
   getch();
   return 0;
}

คำสั่งรับค่า

กรณีตัวเลข

scanf(“อักขระพิเศษ”,&ตัวแปร, ...);

กรณีตัวแปรอักขระ

scanf(“อักขระพิเศษ”,&ตัวแปร, ...);
ตัวแปร = getchar();
ตัวแปร = getc(stdin);
ตัวแปร = getche();
ตัวแปร = getch();

กรณีตัวแปรสตริง

scanf(“อักขระพิเศษ”,ตัวแปร, ...);
gets(“ข้อความ”หรือตัวแปรสตริง);

ลองบันทึกผลลัพธ์จากโปรแกรมตัวอย่างต่อไปนี้ดูนะครับ

ตัวอย่างที่ 4 เมื่อป้อนตัวเลข 4 จำนวน

#include<stdio.h>
int main(){
   int num1,num2;
   float num3,num4;
   scanf("%d",&num1);
   scanf("%d",&num2);
   scanf("%f",&num3);
   scanf("%f",&num4);
   printf("num1 = %d\nnum2 = %d\n",num1,num2);
   printf("num3 = %f\nnum4 = %.2f\n",num3,num4);
   return 0;
}

ตัวอย่างที่ 5 เมื่อป้อนตัวเลข 4 จำนวน

#include<stdio.h>
int main(){
   int num1,num2;
   float num3,num4;
   scanf("%d%d",&num1,&num2);
   scanf("%f%f",&num3,&num4);
   printf("num1 = %d\nnum2 = %d\n",num1,num2);
   printf("num3 = %-9.3f\nnum4 = %10.2f\n",num3,num4);
   return 0;
}

ตัวอย่างที่ 6 เมื่อป้อนอักขระ 1 ตัว

#include<stdio.h>
int main(){
   char c;
   c=getc(stdin);
   putc(c,stdout);
   return 0;
}

ตัวอย่างที่ 7 เมื่อป้อนอักขระ 1 ตัว

#include<stdio.h>
int main(){
   char c;
   c=getchar();
   putchar(c);
   return 0;
}

ตัวอย่างที่ 8 เมื่อป้อนอักขระ 1 ตัว

#include<stdio.h>
int main(){
   char c;
   c=getche();
   putchar(c);
   return 0;
}

ตัวอย่างที่ 9 เมื่อป้อนอักขระ 1 ตัว

#include<stdio.h>
int main(){
   char c;
   c=getch();
   putchar(c);
   return 0;
}

ตัวอย่างที่ 10 เมื่อป้อนอักขระ 1 ตัว

#include<stdio.h>
int main(){
   char a;
   scanf("%c",&a);
   printf("%c\n",a);
   return 0;
}

ตัวอย่างที่ 11 เมื่อป้อนอักขระ 1 ตัว

#include<stdio.h>
int main(){
   char a;
   scanf("%c",&a);
   printf("%d\n",a);
   return 0;
}

ตัวอย่างที่ 12 เมื่อป้อนตัวเลขในช่วง 65-90 , 97-122

#include<stdio.h>
int main(){
   char a;
   scanf("%d",&a);
   printf("%c\n",a);
   return 0;
}

ตัวอย่างที่ 13 เมื่อป้อนข้อความ เช่น ชื่อนามสกุล

#include<stdio.h>
int main(){
   char str[50];
   scanf("%s",str);
   printf("%s\n",str);
   return 0;
}

ตัวอย่างที่ 14 เมื่อป้อนข้อความ เช่น ชื่อนามสกุล

#include<stdio.h>
int main(){
   char str[50];
   gets(str);
   printf("%s\n",str);
   return 0;
}

Once we accept our limits, we go beyond them.

เมื่อเรายอมรับในข้อจำกัดของตัวเอง แสดงว่าเราได้ก้าวล่วงข้อจำกัดนั้นไปแล้ว

อัลเบิร์ต ไอน์สไตน์

เครื่องหมายการคำนวณและตรรกะ

เครื่องหมาย = เป็นการกำหนดค่าให้กับตัวแปร โดยที่ด้านขวาของเครื่องหมาย = จะเป็นตัวแปรเท่านั้น

a = 10;
b = a;
c = a+b;

กลุ่มเครื่องหมาย +-*/%    โดยที่ เครื่องหมาย % จะใช้ได้เฉพาะจำนวนเต็มเท่านั้น

ตัวอย่างที่ 15

#include<stdio.h>
int main(){
   int a,b;
   scanf("%d%d",&a,&b);
   printf("%d+%d = %d\n",a,b,a+b);
   printf("%d-%d = %d\n",a,b,a-b);
   printf("%d*%d = %d\n",a,b,a*b);
   printf("%d/%d = %d\n",a,b,a/b);
   printf("%d%%%d = %d\n",a,b,a%b);
   return 0;
}

ตัวอย่างที่ 16

#include<stdio.h>
int main(){
   int a,b,c;
   scanf("%d%d%d",&a,&b,&c);
   printf("%d+%d*%d = %d\n",a,b,c,a+b*c);
   printf("%d/%d*%d = %d\n",b,a,c,b/a*c);
   printf("%d-%d+%d = %d\n",c,a,b,c-a+b);
   return 0;
}

กลุ่มเครื่องหมาย += -= *= /= %=       โดยที่ เครื่องหมาย % จะใช้ได้เฉพาะจำนวนเต็มเท่านั้น

ตัวอย่างที่ 17

#include<stdio.h>
int main(){
   int a=100;
   printf("a+=20 : %d\n",a+=20);
   printf("a-=20 : %d\n",a-=20);
   printf("a*=20 : %d\n",a*=20);
   printf("a/=20 : %d\n",a/=20);
   printf("a%%=3 : %d\n",a%=3);
   return 0;
}

ตัวอย่างที่ 18

#include<stdio.h>
int main(){
   int a=10,b;
   scanf("%d",&b);
   printf("a+=b : %d\n",a+=b);
   printf("a-=b : %d\n",a-=b);
   printf("a*=b : %d\n",a*=b);
   printf("a/=b : %d\n",a/=b);
   return 0;
}

กลุ่มเครื่องหมาย ++ — 

ตัวอย่างที่ 19

#include<stdio.h>
int main(){
   int a=10;
   printf("a = %d\n",a);
   printf("a++ = %d\n",a++);
   printf("a = %d\n",a);
   a=10;
   printf("a = %d\n",a);
   printf("++a = %d\n",++a);
   printf("a = %d\n",a);
   return 0;
}

ตัวอย่างที่ 20

#include<stdio.h>
int main(){
   int a=5;
   printf("a = %d\n",a);
   printf("a-- = %d\n",a--);
   printf("a = %d\n",a);
   a=5;
   printf("a = %d\n",a);
   printf("--a = %d\n",--a);
   printf("a = %d\n",a);
   return 0;
}

กลุ่มเครื่องหมาย == != > < >= <=   

ตัวอย่างที่ 21

#include<stdio.h>
int main(){
   int a,b;
   scanf("%d%d",&a,&b);
   printf("a==b : %d\n",a==b);
   printf("a!=b : %d\n",a!=b);
   printf("a>b : %d\n",a>b);
   printf("a>=b : %d\n",a>=b);
   printf("a<b : %d\n",a<b);
   printf("a<=b : %d\n",a<=b);
   return 0;
}

กลุ่มเครื่องหมาย && || !

ตัวอย่างที่ 22

#include<stdio.h>
int main(){
   int a,b;
   scanf("%d%d",&a,&b);
   printf("a==b&&a>=b : %d\n",a==b&&a>=b);
   printf("a!=b||a<b : %d\n",a!=b||a<b);
   printf("!a : %d\n",!a);
   printf("!b : %d\n",!b);
   return 0;
}

ประวัติภาษาซี (Prev Lesson)
(Next Lesson) บทที่ 2 คำสั่งเงื่อนไข
Back to CProgramming

No Comments

Give a comment