Bài 1 : Ngôn Ngữ C là gì

3241

Ngôn ngữ C :

Ngôn ngữ c là một ngôn ngữ mệnh lệnh được phát triển từ đầu thập niên 1970 bởi Dennis Ritchie để dùng trong hệ điều hànhUNIX. Từ đó, ngôn ngữ này đã lan rộng ra nhiều hệ điều hành khác và trở thành một những ngôn ngữ phổ dụng nhất. C là ngôn ngữ rất có hiệu quả và được ưa chuộng nhất để viết các phần mềm hệ thống, mặc dù nó cũng được dùng cho việc viết các ứng dụng. Ngoài ra, C cũng thường được dùng làm phương tiện giảng dạy trong khoa học máy tính mặc dù ngôn ngữ này không được thiết kế dành cho người nhập môn( theo wikipedia).

dennis-ritchie
Dennis Ritchie là người tạo ra ngôn ngữ lập trình C

Chuẩn C (standard C)

  • Có rất nhiều phiên bản C
  • ANSI C (American National Standards Institute): 1989
  • Các phiên bản update vào năm 1995(C95), 1999(C99)
  • C và C++
    • C++ là bản mở rộng của ngôn ngữ C để hỗ trợ lập trình hướng đối tượng và thiết kế các phần mềm lớn.
    • C không hẳn là một phần của C++, nhưng có thể sử dụng cả C và C++ nhằm thiết kế chương trình linh hoạt
    • nên thành thạo C trước khi học C++

Thư viện chuẩn C

  • Chương trình C chỉ bao gồm các modues được gọi là hàm (funcion)
  • Có thể tự viết các hàm
  • Sử dụng các hàm trong thư viện chuẩn
    • Tránh phát minh lại bánh xe (avoid re-inventing the wheel)
  • Tránh việc tự viết các hàm đã có trong thư viện
    • Các hàm trong thư viện chuẩn thường được viết cẩn thận và hiệu quả

Các pha của chương trình C

  • pha-chuong-trinh-C Soạn thỏa chương trình (edit)
  • Đặt tên file có đuôi là .c (vidu.c, bai1.c,…)
  • Tiền xử lý (preprocess)
  • Biên dịch (compile)
  • Link
  • Load
  • Excute

 

 

 

 

 

Một chương trình C đơn giản

Ví dụ 1 : In một dòng chữ ra màn hình

vi-du-c

  • Lời giải thích
    • Đặt trong cặp dấu /*…*/
    • Trình biên dịch sẽ bỏ qua
    • Được dùng để chú thích các dòng lệnh
  • Chỉ dẫn tiền biên dịch
    • #include <stdio.h> – sử dụng các hàm vào ra
    • Cần biết hàm nào nằm trong thư viện nào
  • Một chương trình C có thể có nhiều hàm , nhưng buộc phải có hàm main()
  • Cặp dấu{} thể hiện các khối(block) chương trình, thân các hàm luôn được đặt trong{}
  • Lệnh printf() đưa nội dung ra ngoài màn hình
  • Kí tự \n đưa con trỏ xuống 1 dòng dưới
  • Hàm int main(), nên phải có lệnh return trả về một số nguyên , return 0; – hàm kết thúc bình thường.

Hàm printf() và các kí tự điều khiển

  • Hàm printf(s): đưa nội dung của s ra màn hình, s có thể là một xâu kí tự, biến, hoặc biểu thức
  • Một số kí tự đặc biệt :
    • \n – đưa con trỏ xuống dòng dưới
    • \r – đưa con trỏ về đầu dòng
    • \t – đưa con trỏ đến vị trí tab tiếp theo
    • \a – bật 1 tiếng chuông
    • \\ – đưa ra kí tự \
    • \” – đưa ra kí tự “

Ví dụ 2: Cộng hai số

cộng hai số

Nhập dữ liệu -scanf()

  • scanf(“%d”,&integer1)
    • Đợi người dùng nhập giá trị , rồi gõ phím Enter
    • Lưu giá trị vào biến ở bên phải toán tử
    • Đổi giá trị được nhập sang kiểu dữ liệu của biến
  • =(toán tử gán)
    • Gán giá trị cho biến
    • Toán tử hai ngôi – Binary Operator
    • Ví dụ : Sum = variable 1 + variable 2;

Biến và cách đặt tên biến

  • Biến ( variables)
    • Tương ứng với các vùng trong bộ nhớ máy tính
    • Mỗi biến có tên, kiểu, kích thước, và giá trị
    • Khi biến được gán một giá trị mới, giá trị cũ bị ghi đè
    • Đọc giá trị các biến trong bộ nhớ không làm thay đổi các biến trong bộ nhớ
  • Quy tắc đặt tên biến
    • Chuỗi kí tự ( chữ cái a…z,A…Z, chữ số 0…9,dấu gạch dưới _ )
    • Không bắt đầu bằng chữ số
    • Phân biệt chữ hoa với chữ thường

Khai báo biến

  • Trước khi sử dụng các biến thì phải khai báo nó.
  • Cách khai báo :
    • kiểu_dữ_liệu  tên_biến;
    • kiểu_dữ_liệu  tên_biến = giá_trị_đầu;
  • Khai báo nhiều biến cùng kiểu thì các biến cách nhau bởi dấu phẩy
  • Ví dụ :

int a;

double n = 10;

float m = 10, p = 20;

Các kiểu dữ liệu chuẩn

kieu-du-lieu

 

 

 Các phép toán

  • Các phép toán số học
    • Cộng/trừ: + –   ( x = x +2;)
    • Phép nhân : *  ( x = x*4;)
    • Phép chia: /    (y = x/4);
    • Phép chia lấy dư: %  (x = x %10;)
  • Quy tắc ưu tiên
    • Các phép toán trong ngoặc được tính trước
    • Các ngoặc lồng nhau, các phép toán ở trong nhất được tính trước nhất
    • Tiếp theo là các phép nhân, chia, và phép lấy số dư
    • Các phép toán được tính từ trái qua phải
    • Cộng trừ được tính cuối cùng
phep-toan
Thư tự ưu tiên các phép toán

Các phép toán Logic trong lập trình C

logic

  • Toán tử “và” : &&
  • Toán tử”hoặc”:||

Các phép toán tử trên bit

  • Toán tử: & – phép toán AND
  • Toán tử: | – phép toán OR
  • Toán tử: ~ – phép đảo ngược bit
  • Toán tử: << – dịch bit sang trái
  • Toán tử: >> – dịch bit sang phải
  • Ví dụ:
    x = 10; y = x << 2; => y = 24
    x = 14; y = x >> 2; => y = 3
    x = 9; y = 7; z = x % y; => z = 2

Các phép toán tử rút gọn

rut-gon

  • Ví dụ
    x = 10; y = 20; x += y; => x = 30
    x = 4; x = 2; *= 2; => x = 8
  • Sự khác nhau giữa ++x và x++
    • „ ++x: giá trị của x sẽ tăng lên 1 đơn vị TRƯỚC khi thực hiện
      biểu h thức ó có mặt của x.

      • „ x++: giá trị của x sẽ tăng lên 1 đơn vị SAU khi thực hiện biể
        thức có mặt của x.
  • Ví dụ:
    x = 10; y = ++x + 2; => x = 11; y = 13
    x = 10; y = x++ + 2; => x = 11; y = 12
    x = 10; y = 20; z = 2 * (++x – y++); => x = 11; y = 21; z = -18

Các đặc tả của hàm Printf()

  • „ Để đưa nội dung của các biến (hoặc biểu thức) ra màn hình phải có các chỉ dẫn cụ thể cho từng loại dữ liệu.
  • „ Ví dụ:
    • „ int x = 20; printf(“x = %d”, x);
    • „ float x 15.5; printf( x = 15.5; printf(“x = %f”, x);
    • „ float x = 10; printf(“x = %6.2f”, x);
    • „ int x = 10; y = 15.5; printf(“x = %6d, y = %6.2f”,x,y);
  • Các kí tự đặc tả

ki-tu-dac-ta

  • „ Để nhập các giá trị vào cho các biến cần phải có chỉ dẫn kiểu dữ liệu cho từng biến.
  • „ Ví dụ:
  • „ Nhập hai số nguyên int từ bàn phím
               printf(“Cho hai so nguyen a,b: “); scanf(“%d%d”,&a,&b);
  • „ Nhập một số int và một số float từ bàn phím
              printf(“Cho so nguyen a va so thuc b: ”); scanf(“%d%f”,&a,&b);
  • „ Chú ý: Khi nhập xâu kí tự thì không có dấu & trước biến, vì bản thân tên xâu đã là con trỏ.
              printf(“Cho mot xau ki tu: “); scanf(“%s”,st);
  • „ Các kí tự đặc tả cho từng kiểu dữ liệu giống trong hàm printf()
  • „ Chú ý: Hàm printf() và scanf() đều nằm trong thư viện <stdio.h>, nên đầu chương trình phải khai báo thư viện bằng lệnh:
               #include <stdio.h>

BÌNH LUẬN

Please enter your comment!
Please enter your name here