Thứ Sáu, 5 tháng 4, 2024

6.Lập trình ngôn ngữ C-Mở đầu

Lý do đây là bài mở đầu: Năm bài trước chỉ nhằm mục đích làm quen, mặc dù chúng ta đã cùng nhau viết mã một chương trình!


Trước khi đi vào tìm hiểu chi tiết lập trình ngôn ngữ C. Chúng ta sẽ tóm tắt 5 bài "cỡi ngựa xem hoa" bắt đầu từ bài số 1, đồng thời sẽ dành thời gian để xào xáo mã nguồn của "chương trình tào lao".

Tóm tắt:

  • Học lập trình bằng ngôn ngữ C giúp các bạn tiếp cận và nắm bắt được những khái niệm quan trọng của máy tính.
  • Thông thường, một chương trình C sẽ bao gồm những phần sau đây:

        Các lệnh tiền xử lý
        Các hàm
        Các biến
        Các lệnh và biểu thức
        Các chú thích

  • Khi viết mã nguồn, chúng ta cần tuân thủ đúng mọi cú pháp. Nếu không chương trình sẽ không thể dịch, không thể chạy.
  • Cần nắm vững hai khái niệm:
  1.       Kiểu dữ liệu (data type): Có 4 kiểu dữ liệu trong lập trình C là: Kiểu dữ liệu cơ bản, kiểu dữ liệu enum, kiểu void và kiểu dữ liệu nâng cao.
  2.       Công cụ xác định định dạng (Format Specifiers): luôn bắt đầu bằng ký hiệu % và được sử dụng trong chuỗi được định dạng trong các hàm như printf(), scanf, sprintf(), ...
  • Bit là đơn vị nhỏ nhất được dùng để biểu thị thông tin của máy tính. Thông thường các bit sẽ được biểu diễn dưới dạng số nhị phân là 0 hoặc 1.
  • Byte dùng để mô tả một chuỗi bit cố định, 1 Byte có 8 bit và sẽ biểu thị được 2^8=256 giá trị khác nhau.

Bây giờ chúng ta sẽ quay lại với "chương trình tào lao" của chúng ta. Để tiện, chúng ta vẫn tiếp tục sử dụng IDE online:

 

/* Đây là chương trình tào lao */

#include <stdio.h>

int main()
{

    int so = 2024; // Đây là biến số

    char namtoi[] = "Năm 2025";  // Đây là biến chuỗi

 
    printf("Xin Chào ! \n);
    printf("Rất vui gặp bạn!");
    printf("Năm nay là %d \n", so);
    printf("Năm tới là %s", namtoi);


    return 0;
}

 

Chúng ta bắt đầu "quậy":

  • Bạn thay chú thích /* Đây là chương trình tào lao */ bằng chú thích  //Đây là chương trình tào lao. Bấm Run để chạy chương trình, bạn thấy mọi thứ vẫn ổn. Có nghĩa là: Dùng cách nào trong hai cách để ghi chú thích đều được
 
 
  • Bạn thử thêm 6 số 0 vào sau 2024 (biến so sẽ thành 2024000000). Bấm Run để chạy chương trình. Mọi thứ vẫn ổn. Có nghĩa là kiểu dữ liệu int của biến so lưu giữ được giá trị lên tới 2 tỷ.



 
  • Bạn tiếp tục thêm 1 số 0 vào sau 2024000000 (Lúc này sau số 4 sẽ có 7 số 0). Bấm Run để chạy chương trình. Tới đây thì chúng ta nhận báo lỗi! Chính xác hơn đây không phải lỗi mà là cảnh báo! Trình biên dịch vẫn dịch, chương trình vẫn chạy, nhưng mọi thứ đã không như ta mong muốn. Lý do là tràn dữ liệu. Tương tự như khi ta dùng bình 1 lít để chứa 1,2 lít nước vậy. Coi lại bảng các kiểu dữ liệu, ta sẽ thấy rằng kiểu dữ liệu int lưu giữ các số nguyên khoảng  âm 2,1 tỷ đến dương 2,1 tỷ. Trong lần thử này, khi thêm một số 0 vào cuối, ta đã làm cho biến so trở thành hơn 20 tỷ, và điều đó phát sinh cảnh báo tràn dữ liệu.
 
 


 
 
Tiếp tục coi lại bảng các kiểu dữ liệu, ta sẽ thấy kiểu long long lưu giữ các số nguyên từ -9,223,372,036,854,775,808 đến 9,223,372,036,854,775,807 hoàn toàn phù hợp, vậy ta thử thay int bằng long long. Bấm Run để chạy thử, chương trình vẫn cảnh báo lỗi!




Hóa ra chúng ta quên Format Specifiers, khi đổi qua long long chúng ta cần thay %d bằng %lld
Bấm Run để chạy, bây giờ chương trình đã chạy ngon lành!




Tiếp tục thay return 0; bằng return 1; Bấm Run để chạy, chương trình vẫn chạy ổn.





Để viết được những chương trình phức tạp bằng ngôn ngữ lập trình C thì trước hết bạn cần viết được một chương trình đơn giản. "Chương trình tào lao" của chúng ta không nhằm mục đích nào khác là làm cho bạn quen thuộc với cấu trúc của một chương trình C, quen thuộc với những thông báo lỗi, những cảnh báo nhận được trong khi viết mã nguồn. Hy vọng rằng sau bài Mở đầu này, bạn đã thấy thoải mái và tự tin hơn khi bước chân vào con đường vừa hấp dẫn vừa khó khăn này!



 
 
 

 

Không có nhận xét nào:

Đăng nhận xét