Chuyển đến nội dung chính

Data-Driven Programming

Data-Driven Programming Data driven progamming is a programming model where the data itself controls the flow of the program and not the program logic. It is a model where you control the flow by offering different data sets to the program where the program logic is some generic form of flow or of state-changes. set1: DOWN - STOP - START - STOP - UP - STOP set2: UP - DOWN - UP - DOWN For example if you have program that has four states: UP - DOWN - STOP - START You can control this program by offering input (data) that represents the states: The program code stays the same but data set (which is not of a dynamic input type but statically given to the computer) controls the flow. Although there are more than a few ideas as to what data driven programming is, allow me to give an example using a data structure and a function. Non data driven example: data_lloyd = {'name': 'Lloyd', 'lives': 'Alcoy } data_jason = {'name': 'Jason', 'lives':...

Look-Up Table

LOOK UP TABLE



Định nghĩ đơn giản

Trong lập trình, bảng tra cứu (look up table), còn được gọi là LUT, là một mảng chứa các giá trị cần được tính toán theo cách khác. Bảng có thể được điền theo cách thủ công khi chương trình được viết hoặc có thể điền vào bảng các giá trị khi nó tính toán chúng. Khi có các giá trị cần thiết chương trình có thể tra cứu chúng sau này và giúp tiết kiệm tài nguyên CPU, tăng tốc độ xử lý.

Look Up Table

    const char *currency[] = {
        "VND","USD","YEN","BRD"
    }

    const int TABLE_SIZE = (sizeof(currency)/sizeof(char *))

    void print_table(size_t curr){
        for (int i=1; i<TABLE_SIZE; i++){
            printf("%s - %d\n", currency[i], i);
        }
    }

Bài đăng phổ biến từ blog này

Công cụ Lập Trình Vim

Vim là gì Vim là một trình soạn thảo văn bản Unix được bao gồm trong Linux, BSD và macOS. Nó được biết đến với tốc độ nhanh và hiệu quả, một phần vì nó là một ứng dụng nhỏ có thể chạy trong một thiết bị đầu cuối (mặc dù nó cũng có giao diện đồ họa), nhưng chủ yếu là vì nó có thể được điều khiển hoàn toàn bằng bàn phím mà không cần menu hoặc chuột. . Ví dụ, để chèn văn bản vào một tệp, bạn nhấn I và nhập. Để điều hướng hoặc ra lệnh (chẳng hạn như Lưu, Xóa lùi, Trang chủ, Kết thúc, v.v.), bạn nhấn Esc trên bàn phím rồi nhấn bất kỳ phím hoặc tổ hợp phím nào tương ứng với hành động bạn muốn thực hiện. Đó là một cách rất khác để chỉnh sửa văn bản so với những gì người dùng máy tính hiện đại mong đợi, nhưng đó là cách quản trị viên Unix trên toàn thế giới chỉnh sửa các tệp cấu hình, thay đổi, tập lệnh và hơn thế nữa. Vim cũng thường được gọi là Vi vì khi nó được viết bởi Bill Joy vào cuối những năm 1970, nó là viết tắt của visual editor. Trước Vi, ít ai tưởng tượng rằng máy tính có thể hoạt ...

Tấn Công Man In The Middle

MAN IN THE MIDDLE Định nghĩa ngắn gọn Tấn công Man-in-the-middle (MITM) là một kiểu tấn công mạng trong đó những kẻ tấn công chặn một cuộc trò chuyện hoặc truyền dữ liệu hiện có, bằng cách nghe trộm hoặc giả vờ là một người tham gia hợp pháp. Đối với nạn nhân, nó sẽ có vẻ như một cuộc trao đổi thông tin tiêu chuẩn đang được tiến hành - nhưng bằng cách đưa chúng vào “giữa” của cuộc trò chuyện hoặc truyền dữ liệu, kẻ tấn công có thể âm thầm chiếm đoạt thông tin. Một số kiểu tấn công Man-in-the-Middle IP spoofing - Giả mạo IP Mỗi thiết bị có khả năng kết nối với internet đều có internet protocolt address (IP), tương tự như địa chỉ cho nhà bạn. Với IP spoofing, kẻ tấn công có thể thay thế bạn hoặc đối tượng tương tác với bạn và lừa bạn rằng bạn đang liên hệ trực tiếp với bên kia, kẻ tấn công có thể truy cập vào thông tin mà bạn đang trao đổi. DNS spoofing - Giả mạo DNS Domain Name Server (DNS) spoofing là một kỹ thuật buộc người dùng vào một website giả chứ không phải trang mà người ...

CÁC THUẬT TOÁN SẮP XẾP CƠ BẢN

CÁC THUẬT TOÁN SẮP XẾP CƠ BẢN Khái niệm Bài toán sắp xếp là bài toán giải quyết việc tổ chức dữ liệu theo một trật tự nhất định, thường là tăng dần hoặc giảm dần. phép toán cơ bản cho bài toán sắp xếp: Phép toán đổi chỗ: Là phép toán đảo giá trị 2 biến void swap(datatype &a, datatype & b) { datatype temp = a ; a = b; b = temp ; } Phép toán so sánh: Trả về true nếu a > b và trả về false cho trường hợp ngược lại. bool compare (datatype a, datatype b) { if (a > b) { return true ; } else { return false ; } } Bảng ghi về độ phức tạp của các thuật toán sắp xếp Độ phức tạp càng lớn đồng nghĩa với việc thuật toán chạy càng chậm và càng lâu Ba thuật toán sắp xếp cơ bản 1. Sắp xếp chèn (Insertion Sort) Ý tưởng: Insertion Sort lấy ý tưởng từ việc chơi bài, dựa theo cách người chơi "chèn" thêm một quân bài mới vào bộ bài đã được sắp xếp trên tay. Thuật toán: Tại bư...