Tin học CÁCH VIẾT THUẬT TOÁN (LỚP 10)

Hoàng Long AZ

Cựu Mod Vật lí
Thành viên
17 Tháng mười hai 2017
2,553
3,576
564
▶️ Hocmai Forum ◀️
Last edited:

CuongGrove

Học sinh
Thành viên
29 Tháng mười 2019
83
36
21
20
Quảng Ngãi
THPT Trà Bồng
Theo mình thì để viết thuật toán mình phải suy nghĩ chậm lại, suy nghĩ ra những bước cơ bản nhất. VD như phân tích bài toán tìm số lẻ trong một dãy số, thì mình phải suy nghĩ chậm lại, xem thử là để biết số nào là số lẻ trong một dãy số thì mình làm thế nào => nhìn một lượt các số trong dãy xem thử số nào không chia hết cho 2 => Viết thuật toán cho chương trình chạy tới từng số, kiểm tra xem có chia hết cho 2 không? MÌnh nghĩ cái quan trọng trong viết thuật toán là khi mình biến cách giải quyết một vấn đề trở nên cơ bản nhất có thể, rồi viết thành thuật toán cho máy tính nó hiểu.
 
  • Like
Reactions: Hoàng Long AZ

Hải Ham Học

Học sinh
Thành viên
24 Tháng sáu 2017
133
34
26
20
Bà Rịa - Vũng Tàu
thcs hòa hiệp
Thứ nhất hiểu thuật toán là gì ...
Thuật toán , còn gọi là giải thuật, là một tập hợp hữu hạn hay một dãy các qui tắc chặt chẽ của các chỉ thị, phương cách hay 1 trình tự các thao tác trên một đối tượng cụ thể được xác định và định nghĩa rõ ràng cho việc hoàn tất một số sự việc từ một trạng thái ban đầu cho trước; khi các chỉ thị này được áp dụng triệt để thì sẽ dẫn đến kết quả sau cùng như đã dự đoán trước. (copy mạng)
Thứ hai : đặt ra 1 dãy các câu hỏi và trả lời nó :">
+ Bài đó đưa vô dữ liệu và dữ liệu ra là gì??
=> chẳng hạn như 1 bài tìm số chẵn trong dãy N số nguyên dương,...vậy : dữ liệu vào là N và dãy a1, a2,...an ; còn dữ liệu ra là các số chẵn trong dãy N số nguyên dương đó
=> 1 ví dụ nữa nhé, tìm tất cả các ước của N ... vậy : dữ liệu vào là N ; còn dữ liệu ra là các số chia hết cho N hay nói cách khác là ước của N.
+ Làm sao để từ dữ liệu vào ta có thể viết các lệnh để máy tính có thể tìm ra được dữ liệu ra ấy giải các bài ấy nếu đưa qua pascal thì nó sẽ dùng các lệnh if...then , for...to ...do, while...do, repeat....until...., vân vân nhé, nhưng thuật toán chúng ta nên dùng các bước với các cụm từ như nếu i>n thì kết thúc, quay lại bước ...., hoặc vài cụm từ để nó thay cho if...then, hay các vòng lặp for...to...do, while...do,.... và áp dụng vô 2 ví dụ trên chúng ta sẽ giải 1 thuật toán phải làm như nào??
* Đề : Tìm số chẵn trong dãy N số nguyên dương :
B1 : Nhập N và dãy a1,a2,...an. (cái này bài nào cũng phải có).
B2 : i [tex]\leftarrow[/tex] 1; (tương tự với việc gán i:=1 to n do ở vòng for....to..do)
B3: Nếu i>N thì kết thúc (đặt điều kiện để vòng lặp kết thúc, nếu không nó sẽ là vòng lặp vô hạn);
B4: Nếu N mod a[tex]a_{i}[/tex] = 0 thì in ra màn hình a[tex]a_{i}[/tex] ; (cái này để tìm số chẵn theo yêu cầu bài toán, N mod a[tex]a_{i}[/tex] = 0 nghĩa là N chia hết cho a[tex]a_{i}[/tex] )
B5 : i [tex]\leftarrow[/tex] i + 1; (tăng i để vòng lặp tiếp theo nó kiểm tra số tiếp đó của dãy);
B6: Quay lại bước 3 ( bước này để nó quay lại kiểm tra điều kiện để bẻ gãy vùng lặp);
1 bài tiếp nhé !!! :">
Đề : Tìm tất cả ước của N :
B1: Nhập N và dãy a1,a2,...an (bước này phải có nhé, nhưng tùy bài mà nhập);
B2: i [tex]\leftarrow[/tex] 1 : ( tiếp tục lại là 1 vòng lặp, tại các ước của N nó chỉ trong phạm vi 1 -> N)
B3: Nếu i>N thì kết thúc (điều kiện để bẻ gãy vòng lặp);
B4: Nếu N mod i = 0 thì in ra màn hình i ; (cái này là n chia hết cho i nhé);
B5 : i [tex]\leftarrow[/tex] i+1 ; (tăng lên để bẻ gãy vòng lặp);
B6 : Quay lại bước 3 ; (quay lại kiểm tra điều kiện);
Thứ ba : là luyện tập thường xuyên, từ bài dễ đến khó, nếu được có thể inbox để mình gửi vài bài mà luyện thử :">
 
  • Like
Reactions: Hoàng Long AZ

Hải Ham Học

Học sinh
Thành viên
24 Tháng sáu 2017
133
34
26
20
Bà Rịa - Vũng Tàu
thcs hòa hiệp
Nếu bạn có zalo hay facebook có thể cho mình để chúng ta thảo luận về chủ để thuật toán cũng như pascal :>> nếu bạn có đam mê
 
  • Like
Reactions: Hoàng Long AZ
Top Bottom