Khi học các ngôn ngữ lập trình mọi người thường thấy khó khi giải 1 bài toán nào đó. Thực ra toán trong lập trình ít quy tắc hơn toàn học bình thường rất nhiều. Đơn giản máy tính ngu hơn người. Nó chỉ được cái trâu bò hơn con người.
Ví dụ : để tính tổng từ 1 đến 100 là người thì giải bằng công thức (1+100)*50/2. Ta có thể nhét công thức cho nó tính vậy cũng được nhưng nếu có 1 vài quy tắc khác ví dụ ko cộng số nguyên tố chẳng hạn thì người ko tìm ra công thức. Với máy tính thì mình có thể giải 1 cách tổng quát kiểu cho cộng từ 1 đến 100 rồi lấy kết quả nếu có quy tắc thì check bàng lệnh 1 chút, với nó thì chẳng hại gì cả.
Vậy học lập trình thì mình phải học 1 cách tư duy tổng quát và khiến máy tính có thể hiểu đc. Hãy tưởng tượng nó như 1 đứa trẻ 3 tuổi chỉ thạo lênh for, while, if và nhân chia cộng trừ v.v... vậy thui. Và ta nên hiểu rõ sức mạnh của đứa trẻ này. Ví dụ thằng bé Pascal thì ko thể giỏi bằng thằng bé C++ hehe.
Hiểu rõ nó có thể làm gì, rồi học cách nói chuyện với nó ( chính là học cú pháp lệnh của nó đó bạn ). Hiểu được đề bài và tìm đc quy luật của yêu cầu trong đề. Cuối cùng cộng với thuật toán trong đầu ta thì mình tin bài toán nào cũng có thể giải
Topic này lập nên mong mọi người chia sẻ các thuật toán mọi người biết để giúp đỡ nhau
//////////////////////////////////////////////////////////////
Trong bài đầu tiên này mình giới thiệu mọi người 1 thuật toán ( thực ra là 1 mẹo ) hay dùng để giải quyết những bài rất khó làm với cách thông thường - Cờ - Flag. chú ý đây là 1 cách trâu bò xài nó thì đồng nghĩa việc mình chịu thua với cách thông thường.
1/ Flag là gì : Flag trong mã nguồn thực ra là 1 biến có 2 trạng thái , tùy mọi người đặt trạng thái nhưng trong các ngôn ngữ lập trình thì cờ thường ở kiểu dữ liệu bit có 2 trạng thái 0 - 1 tương đương phất cờ và không phất cờ , tất nhiên là thường thườn thôi có thể là dạng integer với quy ước 0 là không phất <> 0 là phất, cái này tùy vào bài toán và sáng tạo của mỗi người
2/Flag làm gì : nó thường được kết hợp với câu lệnh if để kiểm tra xem nếu cờ phất thì làm gì nếu không phất thì làm gì.
3/ Khi nào phất và khi nào không phất : thực ra Flag hay được dùng khi mà mình cần rình 1 trạng thái của cái gì đó thay đổi. dưới đây là ví dụ 1 bài điển hình dùng cờ. Tui viết bằng 1 ngôn ngữ miêu tả , ai dùng ngôn ngữ gì thì biến thành ngôn ngư đõ rui chạy thử
Đề bài : tìm số nguyên tố từ 100 đến 1000
Một ví dụ khác nếu bạn cần check điều kiện của 1 biến mà điều kiện đó quá dài và chạy qua nhiều vòng for thì nghĩ đến flag là rất ổn.Code:bit f=0; //ban dau co` khong phat integer i,j; //khai bao i j de chay vong lap for for i from 100 to 1000 begin f=0; // ha co` xuong sau khi da kiem tra xong 1 so for j from 2 to (i-1) // doan nay kiem tra xem i co chia het cho so nao begin // nam tu` 1 den chinh no ko neu co thi phat co len (f=1) if (i mod j = 0) then // neu khong thi co` f van =o f=1; // bat co` // end if (f=0) then //kiem tra co` co phat ko neu khong thi in ra man hinh writeln(" ",i); endView more random threads same category:
There are currently 1 users browsing this thread. (0 members and 1 guests)
Actions : (View-Readers)
Bookmarks