Hướng dẫn lập trình C phần 1

- Hướng dẫn lập trình C phần 2

Giới thiệu

  • Một số đoạn mã có thể không chạy đúng do được viết trực tiếp mà chưa kiểm tra.
  • Nếu gặp lỗi, hãy liên hệ qua email: example@example.com.
  • Nên sử dụng trình biên dịch thay vì viết tay mã nguồn:
  • Trình biên dịch sẽ chỉ ra ngay lỗi trong mã của bạn, còn sách không.
  • Dễ dàng sửa chữa lỗi so với việc sửa trên giấy.
  • Viết mã trực tiếp tiết kiệm giấy.
  • Học lập trình hiệu quả hơn khi nhận phản hồi tức thì từ trình biên dịch.
  • Nên thử nghiệm trên trình biên dịch trước khi viết lại trên giấy.

Kiến thức cơ bản (Thi cử)

  • Đặc điểm của thuật toán: hữu hạn, xác định, khả thi, có thể có hoặc không có đầu vào, ít nhất một đầu ra.
  • Cấu trúc chương trình: tuần tự, nhánh, lặp.

Xuất dữ liệu

  • Định dạng xuất trong C là printf(""), nội dung trong dấu ngoặc kép sẽ được hiển thị.
  • Lưu ý hầu hết các ký hiệu và chữ đều là tiếng Anh, bao gồm cả dấu câu.
  • Ký hiệu ; ở cuối câu lệnh không được bỏ.
#include <stdio.h>
int main(){
    printf("HelloWorld-123");
}

Mã trên sẽ hiển thị: HelloWorld-123. Phần còn lại là cấu trúc bắt buộc khi viết mã.

Ký tự thoát

  • Có một số ký tự thoát trong C, định dạng: \ký_tự, ví dụ: \n đại diện cho xuống dòng.
#include <stdio.h>
int main(){
    printf("Hello\nWorld");
}

Mã trên sẽ hiển thị:

Hello
World

Bình luận

  • Bình luận trong C có thể là đơn dòng hoặc nhiều dòng. Chúng không được thực thi.
  • Định dạng bình luận đơn dòng là //, nhiều dòng là /* */.
#include <stdio.h>
int main(){
    printf("Hello\n");
    //printf("World");
    printf("123");
}

Xuất hằng số

  • Định dạng kiểu dữ liệu: %d (int), %f (float), %lf (double).
  • Số lượng ký hiệu % trong chuỗi phải tương ứng với số lượng biến sau đó.
  • Các biến sau dấu phẩy được phân cách bằng dấu phẩy.
#include <stdio.h>
int main(){
    printf("%d", 123);
    printf("\n%f", 3.14);
    printf("\n%d %f", 123, 3.14);
    printf("\n%d", 3.14);
    printf("\n%.2lf %.3lf %.3lf", 3.1415, 3.1415, 3.1414);
}

Hằng số (Thi cử)

Hằng số nguyên

  • Hệ thập phân không có tiền tố, bao gồm các chữ số từ 0 đến 9.
  • Hệ bát phân bắt đầu bằng số 0, bao gồm các chữ số từ 0 đến 7.
  • Hệ thập lục phân bắt đầu bằng 0x hoặc 0X, bao gồm các chữ số từ 0 đến 9 và chữ cái từ A đến F hoặc a đến f.

Hằng số thực

  • Định dạng thập phân: bao gồm dấu âm hoặc dương, chữ số từ 0 đến 9 và tối đa một dấu chấm thập phân.
  • Định dạng số mũ: bao gồm số nhị phân, ký hiệu số mũ e hoặc E và số mũ.

Tên biến và biến

  • Tên biến chỉ bao gồm chữ cái, số và dấu gạch dưới, không bắt đầu bằng số.
  • Tên biến không được trùng với từ khóa.
  • Phân biệt chữ hoa và chữ thường.
#include <stdio.h>
int main(){
    int score;
    score = 100;
    printf("%d", score);
}

Toán tử gán

#include <stdio.h>
int main(){
    int x = 50;
    float y = 3.14;
    int tong = x + y;
    float tong2 = x + y;
    printf("%d %f", x, y);
    printf("\n%d %.2f", tong, tong2);
}

Hoán đổi giá trị biến

#include <stdio.h>
int main(){
    int a = 5, b = 10, temp;
    temp = a;
    a = b;
    b = temp;
    printf("a=%d, b=%d", a, b);
}

Nhập dữ liệu

  • Định dạng nhập: scanf("%d", &a), cần sử dụng ký hiệu & để chỉ địa chỉ biến.
#include <stdio.h>
int main(){
    int x, y, z;
    printf("Nhập 3 số nguyên: ");
    scanf("%d %d %d", &x, &y, &z);
    printf("x=%d, y=%d, z=%d", x, y, z);
}

Toán tử chia lấy dư

  • Kết quả của phép chia lấy dư là số dư khi số bị chia không chia hết cho số chia.
#include <stdio.h>
int main(){
    printf("%d\n", 7 % 3);
    printf("%d\n", 21 % 3);
    printf("%d\n", 21 % 10);
    printf("%d\n", 21 % 11);
}

Chức năng toán học

  • Sử dụng thư viện math.h khi sử dụng các hàm toán học.
Hàm Mô tả Ví dụ
pow(x,y) Tính x^y pow(2,5)=32.000000
rand() Tạo số ngẫu nhiên từ 0 đến 1 rand()%900+100 tạo số ngẫu nhiên 3 chữ số
sqrt(x) Tính căn bậc hai của x sqrt(36)=6.000000
abs(x) Tính giá trị tuyệt đối của số nguyên x abs(-5)=5
fabs(x) Tính giá trị tuyệt đối của số thực x fabs(-3.14)=3.14
floor(x) Tìm số nguyên lớn nhất nhỏ hơn hoặc bằng x floor(3.14)=3.000000
ceil(x) Tìm số nguyên nhỏ nhất lớn hơn hoặc bằng x ceil(3.14)=4.000000
log(x) Tính logarit tự nhiên của x log(2)=0.693147
exp(x) Tính e^x exp(2)=7.389056

Toán tử gán hợp thành

  • Các toán tử cộng, trừ, nhân, chia, chia lấy dư có thể kết hợp với toán tử gán.
#include <stdio.h>
int main(){
    int a = 10;
    a += 5; // Tương đương a = a + 5;
    printf("%d", a);
}

Toán tử tăng/giảm

  • i++ hoặc ++i: Tăng giá trị của i lên 1.
  • i-- hoặc --i: Giảm giá trị của i xuống 1.
#include <stdio.h>
int main(){
    int i = 5;
    printf("%d\n", ++i); // Hiển thị 6
    printf("%d\n", i--); // Hiển thị 6
    printf("%d\n", i);   // Hiển thị 5
}

Toán tử phẩy

  • Giá trị cuối cùng của biểu thức được sử dụng.
#include <stdio.h>
int main(){
    int x = 5, y = 10;
    int z = (x++, y--, x + y);
    printf("%d", z); // Hiển thị 14
}

Biến ký tự

  • Định nghĩa biến ký tự bằng char, ví dụ: char c = 'A'.
  • Mỗi ký tự có một mã ASCII tương ứng.
#include <stdio.h>
int main(){
    char ch = 'A';
    printf("%c %d", ch, ch); // Hiển thị A 65
}

Câu lệnh điều kiện if

  • Cú pháp: if(dieu_kien) { câu_lệnh }.
  • Nếu điều kiện đúng, thực hiện các câu lệnh trong khối.
#include <stdio.h>
int main(){
    int x = 10;
    if(x > 5){
        printf("x lớn hơn 5");
    }
}

Câu lệnh if-else

  • Cú pháp: if(dieu_kien) { câu_lệnh1 } else { câu_lệnh2 }.
  • Nếu điều kiện đúng, thực hiện câu_lệnh1; ngược lại, thực hiện câu_lệnh2.
#include <stdio.h>
int main(){
    int x = 3;
    if(x % 2 == 0){
        printf("x là số chẵn");
    } else {
        printf("x là số lẻ");
    }
}

Câu lệnh switch

  • Cú pháp: switch(biểu_thức) { case giá_trị1: câu_lệnh1; break; ... default: câu_lệnh_default; }.
  • Chỉ thực hiện các câu lệnh trong case phù hợp với biểu_thức.
#include <stdio.h>
int main(){
    int n = 2;
    switch(n){
        case 1: printf("Một"); break;
        case 2: printf("Hai"); break;
        default: printf("Khác");
    }
}

Thẻ: C lập_trình thuật_toán biến toán_tử

Đăng vào ngày 26 tháng 9 lúc 17:19