46 0 3MB
QT Creator 1. Kiến thức căn bản cần nhớ: 1. Kiến thức căn bản cần nhớ: https://www.facebook.com/notes/nguy%E1%BB%85n-trungth%C3%A0nh/t%C6%B0-v%E1%BA%A5n-tuy%E1%BB%83n-sinhng%C3%A0nh-cntt/1469842593071660/ http://vncoding.net/ngon-ngu-lap-trinh-cc/ http://vietjack.com/cplusplus/index.jsp http://www.nguyenvanquan7826.com/2014/12/04/lap-trinh-c-bai-2kieu-du-lieu-va-nhap-xuat-trong-c/#nhap_chuoi https://www.youtube.com/channel/UClzV7jGJREjvCTzfGTrdrkQ/pla ylists https://www.youtube.com/user/ProgrammingKnowledge/playlists http://phocode.com http://doc.qt.io/qt-5/classes.html
======================HAY===============================================HAY======================= nhapMang(int A[][MAX], int dong, int cot){ [] Toán tử lấy chỉ số for(int i=0; igia tang/giảm bớt] int *a; a = (int *)malloc(sizeof(int *)); a = (int *)calloc(1, sizeof(int *)); a = (int *)realloc(0, sizeof(int *)); // Số 0 là do ban đầu point a chưa được cấp phát. a = (int *)realloc(a, (n+1)* sizeof(int *)); //do a đã cấp phát rồi free(a); CON TRỎ HÀM: Được sử dụng như một lời gọi kiểm tra điều kiện (Số nguyên tố, số chính phương, đúng sai của một điều kiện thỏa). Để sau đó có thể thao tác một yêu cầu của bài toán(Tổng số chính phương trong mảng, Tần suất, dữ liệu khác) . Mà ở đây, có tính chất đồng bộ cao (có chung cấu trúc hàm ). VÍ DỤ: bool kiemTraNguyenTo (int n); bool kiemTraChinhPhuong(int n); int keuTaoKiemTraGi(int m, int c); int dungGoiChoTao(int n, int k); int Tong(int a, int b, bool (*p)(int)); //Làm hàm tính Tổng hoặc…v..v if ( p(5) ) thì……………gì đó. float Hieu(int a, int b, int (*p)(int, int)); //Làm hàm tính Chia chơi… if ( p(5,8) ) thì……………gì đó.
C++: int *a = new int; new int; //Mảng: new int[]; delete a; //Mảng: delete[] a; { // Cấp phát cho mảng 2 chiều C++ int **a; // Mảng 10x10. const int length = 10; a = new int * [lenght]; for (int i=0; i s; cách 1: scanf("%s", s); cách 2: getline(cin, s); hoặc: getline(cin, s, ‘’); cách 2: gets(s); Xuất:
Xuất: cách 1: printf("%s", s); cách 2: puts(s);
cout [0]; char *strlwr(char *chuỗi); Chuyển chuỗi thành thường. char *strupr(char *chuỗi); Chuyển chuỗi thành hoa. char *strrev(char *chuỗi); Đảo ngược chuỗi. char *strchr(char *chuỗi, int ch); Trả về địa chỉ ở vị trí xuất hiện đầu tiên ký tự ch trong chuỗi. NULL nếu không tìm thấy. char *strrchr(char *chuỗi, char ch); Trả về địa chỉ ở vị trí xuất hiện cuối cùng của ký tự ch trong chuỗi. NULL nếu không thấy. char *strstr(char *s, char *s1); Trả về địa chỉ ở vị trí xuất hiện đầu tiên của chuỗi s1 trong chuỗi s. NULL nếu không thấy. 13,14,15,16 chưa cần tới tại: https://daynhauhoc.com/t/wiki-cac-hamxu-ly-chuoi-thong-dung-trong-c-c/2052
s.length(); //Độ dài chuỗi str.capacity(); //Số byte cấp phát cho chỗi str. atoi((char *)str.c_str()) ; //Ép về kiểu char* để xài ----------------------------------------------------------------------------#include string str; ============ XÓA =========== str.erase(x, y); // Xóa đi y ký tự bắt đầu tại vị trí x. str.erase(str.begin() + x); // Xóa đi ký tự tại vị trí x. str.erase(str.begin() + x, str.begin() + y); // Xóa đi các ký tự từ chỉ số x đến chỉ số y – 1 str.pop_back(); //Xóa kí tự cuối chuỗi ============ THÊM ============= str.insert(x, "y"); // Thêm chuỗi y vào vị trí x. str.insert(x, "y", z); // Thêm z ký tự từ chuỗi y vào vị trí x. Nếu z có độ dài lớn hơn độ dài chuỗi y thì tiếp tục thêm vào 1 khoảng trắng và sau đó lại bắt đầu thêm vào các ký tự của chuỗi từ vị trí 0 -> sao cho đủ z thì thôi. str.insert(x, y, 'z'); // Thêm y lần ký tự z vào vị trí x. str.insert(str.begin() + x, 'y'); // Thêm ký tự y vào vị trí x. str.insert(str.begin() + x, y, 'z'); // Thêm y lần ký tự z vào vị trí x. str.insert(str.begin() + x, str2.begin() + y, str2.begin() + z); // Thêm chuỗi ký tự con của chuỗi str2 bắt đầu từ vị trí y cho đến vị trí z - 1 vào vị trí x trong chuỗi str. str.push_back(char ‘a’); //Thêm kí tự ‘a’ vào cuối chuỗi ============ LẤY CHUỖI CON ================
string str2 = str.substr(x, y); // Lấy ra chuỗi con của chuỗi str bắt đầu từ vị trí x và lấy ra y ký tự. string str2 = str.substr(x); // Lấy ra chuỗi con của chuỗi str bắt đầu từ vị trí x cho đến cuối chuỗi. ============ TÌM KIẾM ============ int found = str.find('x'); if(found != string::npos) => trả về found chính là vị trí xuất hiện đầu tiên của ký tự x trong chuỗi str. else => Không tồn tại ký tự x trong chuỗi str. int found = str.find("x"); if(found != string::npos) => trả về found chính là vị trí xuất hiện đầu tiên của chuỗi x trong chuỗi str. else => Không tồn tại chuỗi x trong chuỗi str. int found = str.find("x", y, z); if(found != string::npos) => trả về found chính là vị trí xuất hiện đầu tiên của chuỗi x lấy ra z ký tự và sẽ bắt đầu tìm kiếm từ vị trí y trong chuỗi str. else => Không tồn tại chuỗi x trong chuỗi str. ============ SO SÁNH ============
Để so sánh 2 chuỗi ta có thể dùng các toán tử so sánh ==, !=…….. int compare ( const string& str ) const; Hoặc: int compare ( const char* s ) const; int compare ( size_t pos1, size_t n1, const string& str ) const; Hoặc: int compare ( size_t pos1, size_t n1, const char* s) const; int compare ( size_t pos1, size_t n1, const string& str, size_t pos2, size_t n2 ) const; Hoặc: int compare ( size_t pos1, size_t n1, const char* s, size_t n2) const; Ví dụ: str.compare(s): hàm này sẽ trả về giá trị =0 hoặc là khác 0 nếu như =0 thì 2 chuỗi này bằng nhau. Nếu ko thì khác nhau.
str.compare (7, 10, s);//So sánh từ vị trí 7 của chuỗi str, lấy 10 kí tự sau vị trí đó, so sánh với chuỗi s. Trả về 0 nếu giống nhau, 1 hoặc 1 nếu lớn hoặc nhỏ hơn. str.compare ( size_t pos1, size_t n1, s , size_t pos2, size_t n2); So sánh 2 phần của 2 chuỗi. chuỗi str lấy từ pos1 và lấy n1 ký tự. chuỗi s lấy từ pos2 và lấy n2 ký tự. ====== THAY THẾ ============ string& replace (size_t pos, size_t len, const string& str); Hoặc: string& replace (size_t pos, size_t len, const char* s); //pos: vị trí muốn thay; //len: số kí tự muốn thay; //s/str: đoạn kí tự mới được ghép vào. ====================FILE===================================================FILE=================== #include #include fstream f(“tên tệp”, ); { FILE *f; f.open(“tên tệp”, ); f = fopen(, “”); fopen_s(&fopen, (, “”); //-VS2017 f.fail() == true; => file tồn tại. false =>Không tồn tại f ‘>>’ //Đọc dữ liệu từ tệp fcloseall(); f ‘; getline(); fileOuf setupUi(this); Với ui là ui (new namespace::class) ui(new Ui::MainWindow);
2. Có 2 cách để connect các slot và signal: Private slots: ở Hearder file private slots: void on_Button_New_clicked(); sodoku.cpp: void MainWindow::on_Button_New_clicked() {/* THÂN HÀM */
}