giúp em lớp 10 tin zoi''

Bài đó để luyện hơi bị tốt đó em :D ;) Làm xong rồi anh post tiếp B-)
 
Nếu học về Graphics rồi thì thử viết 1 chương trình soạn thảo văn bản giống như Bked của bác Quách Tuấn Ngọc cũng OK. Cái chương trình này ngày xưa ai cũng phải học, bây giờ không biết các em còn phải học nữa không.
 
Không biết chơi ô ăn quan, thật không đó? o_O Mà cái trò này trong quyển Pascal của ai-đó (không nhớ) cũng có rồi (ra đời cách đây 9 năm, chắc giờ không còn đâu).

Bên manguon.com có mấy e-book Pascal tiếng Việt đấy. Giờ còn có phần mềm giúp học Pascal (không phải món của đám schoolnet) xài cũng không tồi. Còn một website tiếng Việt nữa chuyên nói về lập trình, có cả Pascal, nhưng phải tìm lại đã.
 
BKED chắc chỉ thời anh em mình mới học anh Trung ạ giờ chắc chẳng ai dạy nữa rồi ........
 
mấy anh có vẻ chê pascal quá nhỉ
chương trình học ở tr` có pascal thì phải học thui chứ
nó ra đời mấy chục năm rồi thì hay làm sao = mấy ngon ngữ mới đc chứ
Khoái lập trình mạng hơn nhiều..
 
Ngô Duy Biên đã viết:
mấy anh có vẻ chê pascal quá nhỉ
chương trình học ở tr` có pascal thì phải học thui chứ
nó ra đời mấy chục năm rồi thì hay làm sao = mấy ngon ngữ mới đc chứ
Khoái lập trình mạng hơn nhiều..
C cũng 30 năm nay rùi còn rì. Vẫn tốt hơn hẳn Pascal như thường.
 
Pascal có cấu trúc dơn giản nên thường đựơc dùng với mục đích học tập thôi, chứ ít khi để làm các chương trình lớn lắm. Còn nói Pascal ra đời lâu rồi người ta không dùng nữa cũng không phải, thật ra ngôn ngữ C còn ra đời trước cả Pascal, bây giờ vẫn đựoc dùng rộng rãi. Hơn 90% mã nguồn của UNIX và Windows được viết trên C đấy. :|
 
Pascal ra đời trước chứ, Pascal được phát triển năm 1970 còn C ko nhớ rõ lém nhưng trong khoảng 1971 trở về sau.
 
http://acm.uva.es/problemset
http://ace.delos.com/usacogate

to Huân: đây la 2 trang web hay nhất về học thuật toán. Em chịu khó đọc bằng tiếng Anh rồi làm, 2 trang này có chương trình chấm luôn. còn về tiếng Việt thì anh nhớ được mấy quyển sách. hình như tên là các bài tập pascal của thầy My bên tổng hợp, một quyển khác là Toán rời rạc của thầy Nghĩa và thầy Thành bên Bách Khoa. em học tốt lập trình thuật toán thì sau này sẽ rất có lợi khi học lập trình những cái khác.

to mọi người khác: ở trường chỉ dạy pascal, đi thi cũng dùng pascal là chính, nếu yêu cầu C/C++ cũng được. Nhưng C/C++ không có khả năng check lỗi tràn mảng tốt như của Pascal ( trong pascal bật option {$R+} }. Đi thi chứa thấy các thầy cho VB, VC, Java, .net, ... bao giờ. Để viết các bài thuật toán học ở trường thì viết bằng VB sẽ chậm hơn nhiều viết bằng Pascal và C/C++.

hờ, mà ai dạy tin lớp các em bây giờ thế?
 
Hẹ, lỗi tràn mảng phần lớn ngôn ngữ nèo chẳng có. Có điều nó ở các dạng khác nhau thui, như trong C có thể assert được. C++ có thể dùng catch được để kiểm tra lỗi được. Ko phải là viết VB sẽ chậm hơn, mà vấn đề là nó sử dụng API & các hàm cài sẵn nhìu ---> ko dùng để học toán & bắt đầu lập trình tốt như Pascal được. Chứ còn lý do duy nhất là tốc độ thì dạy học sinh Assembler luôn cho xong. C & C++ có vẻ cũng nhanh hơn Pascal nữa.
 
ý anh bảo viết VB chậm hơn Pascal và C/C++ có nghĩa là tốc độ viết chương trình chứ không định bàn về tốc độ chạy. Để viết các bài thuật toán thì dùng Pascal hay C/C++ sẽ tiện hơn nhiều. còn nếu dùng try, catch hay assert của C/C++ tất nhiên là cũng có thể bắt được lỗi tràn mảng, nhưng không tiện bằng {$R+} của pascal (theo nghĩa nhanh, ta không phải viết thêm bất kì một dòng code nào cho việc kiêm tra này). Trong phòng thi, tốc độ cài chương trình là cực kì quan trọng.
 
Thông báo với ông anh,lớp em là thầy Thỏa (cả trường chả ai biết,ai cũng hỏi:"CN lớp này là ai?....Thầy Thỏa nào nhỉ,chưa nghe bao giờ")
Nếu như em tính đúng và đóan cũng đúng thì thầy Thỏa dậy anh(theo kiểu cứ 1 người 1 khóa 3 năm).
 
hờ, anh biết thầy Thỏa, hồi xưa thầy cũng dạy bọn anh mấy lần. Nhưng mà thầy không phải dạy chính bọn anh. Em có biết thầy Sửu không? Không biết bây giờ thầy dạy khối nào.
 
Thầy Thỏa nào nhỉ, nghe tên quen quen ma không biết dã học thầy hay chưa. Hồi cấp 3 mỗi năm lớp anh hoc 1 thầy tin, anh chỉ nhớ hồi lớp 11 học thầy Sửu thôi.
 
Hoang Duc Viet Dung đã viết:
ý anh bảo viết VB chậm hơn Pascal và C/C++ có nghĩa là tốc độ viết chương trình chứ không định bàn về tốc độ chạy. Để viết các bài thuật toán thì dùng Pascal hay C/C++ sẽ tiện hơn nhiều. còn nếu dùng try, catch hay assert của C/C++ tất nhiên là cũng có thể bắt được lỗi tràn mảng, nhưng không tiện bằng {$R+} của pascal (theo nghĩa nhanh, ta không phải viết thêm bất kì một dòng code nào cho việc kiêm tra này). Trong phòng thi, tốc độ cài chương trình là cực kì quan trọng.
Hẹ, quan trọng là nó xử lý thế nèo ấy chứ. Chứ {$R+} xong rùi nó cho 1 lỗi fatal rùi quit luôn chương trình thì cũng rứa. Hơn nữa, như thế mình làm chương trình xử lý đúng như ý được. Hơn nữa, C++ có thể quá tải toán tử ---> xử lý tràn mảng hay bất cứ lỗi nèo khác tiện hơn nhìu. Ko phải nó chỉ hữu dụng sau nì đâu, hồi ở VN, em đi thi 1 phát, mặc dù làm đúng tất cả các bài nhưng đứng thứ 3 vì ko có comment & ko xử lý lỗi, để mặc cho nó quit.
 
hờ, dùng {$R+} khi mình test chương trình, nếu có lỗi tràn mảng ( Range check error) thì nó khi nó thoát ra về lại màn hình của editor, nó sẽ báo cho mình dòng lệnh bị lỗi. Việc nay sẽ tiết kiệm khá nhiều thời gian cho việc xác định lỗi. (không phải viết bất cứ một dòng lệnh nào cho việc này).

Anh đồng ý với em là nếu dùng quá tải toán tử thì sẽ rất tiện cho nhiều chương trình, nhưng nếu nói riêng về việc lập trình thuật toán để thi ở cấp 3 thì sẽ rất mất công. Để giải một bài tập, thường chỉ viết từ 1 trăm đến 4,5 trăm dòng lệnh. Nếu tổ chức class thì sẽ mất khá nhiều thời gian vì có nhiều thứ phải quan tâm (constructor, destructor, copy constructor,...). Thi tin ở cấp 3 do bộ GD tổ chức, theo anh biết từ năm anh thi đổ về trước là có cần comment hay kiểm tra lỗi gì đâu. Các thầy có khoảng 10 test cases, cứ cho chương trình chạy từng cái một, đúng thì được điểm của test đó, sai thi kô đc điểm.

Nói chung là vì cần phải viết chương trình thật nhanh nên rất nhiều thứ sẽ được đơn giản hóa. Bài toán bên cạnh việc lập trình còn phải nghĩ giải thuật. Có thể nói các bài tập hồi cấp 3 được dùng để luyện khả năng lập trình và tư duy thuật toán. Còn nếu ta làm các phần mềm hay những thứ lớn hơn thì bước quan trọng nhất là thiết kế nó, còn bước lập trình không phải là quá khó. Và tất nhiên khi viết thì dùng class, operator overloading, hay nhiều thứ khác chắc chắn là tốt.

hờ, anh nghĩ anh em mình đi xa mất cái chủ để của Huân rồi. Để thi tin ở cấp 3 thì anh thấy là dùng Pascal là hay nhất. Mặc dù bản thân anh bây giờ thích và dùng C++ nhiều hơn.
 
:)) :)) có thế mà các chú cũng cãi nhau :))
Anh đang học năm cuối, cũng hóc Delphi - Pascal cả đây này có sao đâu? :))

Vấn đề trong lập trình không phải là cái nào mạnh cái nào yếu, cái nào tốt cái nào dở mà là mình quen với cái nào nhất, sử dụng thành thạo với cái nào nhất!!! Chứ lại đem "tủ" của mình đọ với "tủ" của người thì quả là sự so sánh khập khiễng :)

Hơn thế nữa em nó mới vào lớp 10, mà lớp 10 thì hình như mới chỉ biết mấy dòng lệnh cơ bản writeln, readln... rồi cùng lắm là if với for hay while là cùng. Các chú các bác dọa đến tận class thì chắc em nó đứt mất rồi.

Tóm lại, chú Huân có thể làm những bài tập sau:
- nhập vào tên 1 người (ví dụ Hoàng), rồi in ra màn hình câu: "chào Hoàng" (readln, writeln)
- giải phương trình bậc 2 (if), chú ý các trường hợp đặc biệt (a, b, c ??? 0)
- nhập vào điểm của tất cả các môn học, đưa in ra điểm trung bình học kỳ(chú ý hệ số của từng môn, của từng loại điểm 15' hay 1 tiết hay học kỳ (oaoa bắt đầu phức tạp rồi đây.......)
 
Vũ Đình Hoàng đã viết:
:)) :)) có thế mà các chú cũng cãi nhau :))
Anh đang học năm cuối, cũng hóc Delphi - Pascal cả đây này có sao đâu? :))

Vấn đề trong lập trình không phải là cái nào mạnh cái nào yếu, cái nào tốt cái nào dở mà là mình quen với cái nào nhất, sử dụng thành thạo với cái nào nhất!!! Chứ lại đem "tủ" của mình đọ với "tủ" của người thì quả là sự so sánh khập khiễng :)

Hơn thế nữa em nó mới vào lớp 10, mà lớp 10 thì hình như mới chỉ biết mấy dòng lệnh cơ bản writeln, readln... rồi cùng lắm là if với for hay while là cùng. Các chú các bác dọa đến tận class thì chắc em nó đứt mất rồi.

Tóm lại, chú Huân có thể làm những bài tập sau:
- nhập vào tên 1 người (ví dụ Hoàng), rồi in ra màn hình câu: "chào Hoàng" (readln, writeln)
- giải phương trình bậc 2 (if), chú ý các trường hợp đặc biệt (a, b, c ??? 0)
- nhập vào điểm của tất cả các môn học, đưa in ra điểm trung bình học kỳ(chú ý hệ số của từng môn, của từng loại điểm 15' hay 1 tiết hay học kỳ (oaoa bắt đầu phức tạp rồi đây.......)
Có đấy anh ạ, ở VN thì học Pascal vài năm liền rùi nếu mà học đại học may ra mới học C, ở các nước khác thì thường thì khi vào đại học sẽ học Java đầu tiên. Thế mà cuối cùng thì phần lớn các chương trình đều được viết = C cả. Cứ nhìn như Windows với các hàm API của nó, Visual C++ chỉ việc dùng thẳng luôn, trong khi các các ngôn ngữ khác ko thể. Hay như Linux, API của nó cũng có thể dùng thẳng luôn với C & C++ được.

Còn mấy cái chương trình của anh, readln với writeln ở VN học từ hồi lớp 7 hay 8 rùi thì phải.
 
Hoang Duc Viet Dung đã viết:
hờ, dùng {$R+} khi mình test chương trình, nếu có lỗi tràn mảng ( Range check error) thì nó khi nó thoát ra về lại màn hình của editor, nó sẽ báo cho mình dòng lệnh bị lỗi. Việc nay sẽ tiết kiệm khá nhiều thời gian cho việc xác định lỗi. (không phải viết bất cứ một dòng lệnh nào cho việc này).

Anh đồng ý với em là nếu dùng quá tải toán tử thì sẽ rất tiện cho nhiều chương trình, nhưng nếu nói riêng về việc lập trình thuật toán để thi ở cấp 3 thì sẽ rất mất công. Để giải một bài tập, thường chỉ viết từ 1 trăm đến 4,5 trăm dòng lệnh. Nếu tổ chức class thì sẽ mất khá nhiều thời gian vì có nhiều thứ phải quan tâm (constructor, destructor, copy constructor,...). Thi tin ở cấp 3 do bộ GD tổ chức, theo anh biết từ năm anh thi đổ về trước là có cần comment hay kiểm tra lỗi gì đâu. Các thầy có khoảng 10 test cases, cứ cho chương trình chạy từng cái một, đúng thì được điểm của test đó, sai thi kô đc điểm.

Nói chung là vì cần phải viết chương trình thật nhanh nên rất nhiều thứ sẽ được đơn giản hóa. Bài toán bên cạnh việc lập trình còn phải nghĩ giải thuật. Có thể nói các bài tập hồi cấp 3 được dùng để luyện khả năng lập trình và tư duy thuật toán. Còn nếu ta làm các phần mềm hay những thứ lớn hơn thì bước quan trọng nhất là thiết kế nó, còn bước lập trình không phải là quá khó. Và tất nhiên khi viết thì dùng class, operator overloading, hay nhiều thứ khác chắc chắn là tốt.

hờ, anh nghĩ anh em mình đi xa mất cái chủ để của Huân rồi. Để thi tin ở cấp 3 thì anh thấy là dùng Pascal là hay nhất. Mặc dù bản thân anh bây giờ thích và dùng C++ nhiều hơn.
Đấy chỉ là tốc độ debug thui, cái đấy nó dựa vào lập trình viên nhìu hơn. Với mức độ như cấp 3 thì chương trình cũng chưa đến mức lớn đến nỗi ko phát hiện ra ngay được.

Vả lại, C++ có thể viết class cũng được, ko muốn thì ko viết = class cũng chẳng seo. Vấn đề là khi muốn thì sẽ có tính năng đó để mà viết.

Thi ở cấp 3, với mức độ đó thì rất nhiều hs có thể làm được đúng tất cả các bài. Lúc đó nó sẽ quyết định thứ hạng qua comment & cách xử lý lỗi anh ạ.
 
hờ, bây giờ thay đổi nhiều vậy sao. Đề thi bây giờ các thầy lại cho dễ đi à. Comment cũng tốt nhưng không thích hợp lắm cho kì thi 3 đến 5 tiếng.

anh Hoàng có lẽ không đọc rõ tên topic rồi ;). Các lớp chuyên tin không học mỗi readln, writeln đâu. Hết năm lớp 10, là bọn em học hết các thuật toán về Quy hoạch động (Dynamic Programming), Đồ thị, Hình học, Luồng,.... Nhiều thuật toán phải đến năm 2,3,4 đại học mới được học.
 
Back
Bên trên