Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 64 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
64
Dung lượng
6,33 MB
Nội dung
ĐỊNH HƢỚNG CHUYÊNMÔNđàotạo – bồi dƣỡng họcsinhkhiếuTinhọc A – ĐỊNH HƢỚNG Các thi Olympic Tinhọc triển khai rộng rãi gần giới hướng tới mục đích: Đẩy mạnh phong trào dạy họcTinhọc nhằm đáp ứng yêu cầu sống tinhọc hóa sâu rộng với tốc độ cao lĩnh vực, Phát nhân tố bật để đàotạo khai thác nguồn nhân lực đỉnh cao, có tri thức có tay nghề theo kịp phát triển lý thuyết yêu cầu thực tế Việc đào tạo, bồidưỡnghọcsinh giỏi Tinhọc chịu tác động nhiều hai yếu tố: Sự phát triển lý thuyết, Sự phát triển công cụ Tinhọc Có thể thấy rõ xu hướng dạy họcTinhọc chia thành ba giai đoạn: Giai đoạn I: năm cuối kỷ XX, Giai đoạn II: Thập kỷ kỷ XXI, Giai đoạn III: Thập kỷ thứ kỷ XXI, tức năm Ở giai đoạn I, ngành Tinhọc tách phát triển thành ngành khoa học độc lập Người ta tập trung sức lực vào việc xây dựng móng cho ngành khoa học mới, cố gắng tìm cách để giải lớp toán truyền thống xuất tiếp cận toán quan điểm toán học Việc nắm vững kiến thức toán học điều kiện chủ yếu để giải toán tinhọc Ngoài phải lưu ý tới cấc ràng buộc tự nhiên nhớ nhỏ tốc độ tương đối thấp máy tính lúc Đó tiếp tục tư năm 70 – 80 kỷ 20 Ví dụ, Hình vuông diệu kỳ (Bài ngày IOI 1996) vào thời điểm khó Hình vuông diệu kỳ 1/64 Những thành công khối lập phương kỳ diệu động lực để ông Rubic đề xuất phương án phẳng trò chơi tiếng Đó bảng gồm hình vuông xếp thành hàng (xem hình vẽ) A Ph ép bi ến đổ i Phép biến đổi Trong xét B phương án hình vuông 3 Phép biến tô màu khác Màu đổi A Phép biến đổi 8 đánh tám số nguyên B Trạng thái ban đầu Phép biến dương (xem hình vẽ) đổi C Cấu hình bảng xác định cách cho màu hình vuông, hình góc trái theo chiều kim đồng hồ Ví dụ, hình bên cấu hình ban đầu bảng xác định dãy (1, 2, 3, 4, 5, 6, 7, 8) ép Ph ến bi i đổ C Có phép biến đổi sở ký hiệu „A‟, „B‟ „C‟ tác động lên bảng: „A‟: Hoán đổi vị trí dòng dưới, „B‟: Đẩy vòng tròn cột cuối lên cột đầu, „C‟: Đẩy vòng tròn theo chiều kim đồng hồ hình vuông Cho cấu hình cuối bảng Nhiệm vụ bạn viết chương trình xác định dãy phép biến đổi sở đưa bảng từ trạng thái ban đầu nêu hình bên trạng thái cuối cho (Bài toán A) Bạn nhận thêm điểm thưởng số phép biến đổi lời giải bạn không 300 Dữ liệu: vào từ file INPUT.TXT gồm dòng chứa số nguyên mô tả trạng thái cuối bảng Kết quả: Đưa file OUTPUT.OUT, dòng chứa số nguyên L – độ dài dãy phép biến đổi Mỗi dòng L dòng sau chứa ký tự - tên phép biến đổi cần thực Công cụ trợ giúp: Chương trình MTOOL.EXE thư mục chứa đề cung cấp để thử nghiệm thực phép biến đổi xác định trạng thái cuối bảng Lời gọi chương trình có dạng “MTOOL input.txt output.txt” Ví dụ: INPUT.TXT OUTPUT.TXT 2/64 7 B C A B C C B Phân tích: Số lượng trạng thái khác bảng 8! = 40 320 Việc tổ chức loang lưu trữ vết loang từ trạng thái ban đầu tới trạng thái đích điều kiện chuyện khó Nhưng vào thời điểm diễn kỳ thi, nhớ sử dụng 64KB + 64KB cấp phát động máy thực thuộc loại 386 vấn đề lớn Chúng ta đạt kết rực rỡ thời kỳ đội ngũ giáo viên tinhọc phần lớn xuất thân từ giáo viên chuyên ngành toán Họcsinh trang bị kiến thức sở toán tốt Giai đoạn II từ năm 2001 đến 2007, tiến công nghệ phổ cập hệ thống phần mềm tiên tiến đưa đến chuyển dịch việc đàotạochuyên gia lĩnh vực tinhọc Điều dẫn đến thay đổi công tác phát hiện, đàotạobồidưỡnghọcsinh giỏi tinhọc Do nội dung thi Tinhọc Quốc tế có nhiều thay đổi Các kiến thức giải thuật coi đỉnh cao trước trở thành “bảng cửu chương” mà phải biết phải thuộc Những giải thuật phức tạp, dùng không thiết phải thuộc, lúc tra cứu, tìm kiếm chúng Internet cần thiết Sự thông minh tính sáng tạo phải thể chổ bạn thuộc nhiều hay giải thuật khác nhau, bạn cài đặt chúng nhanh tới mức Thử thách chổ bạn tìm giải pháp hữu hiệu giải cách có hiệu toán vấn đề có mô hình toán học đơn giản có kích thước lớn hay không? Để đạt mục đích người lập trình phải biết tận dụng tối đa khả mà phần cứng hệ điều hành cung cấp Các hệ thống lập trình Free Pascal, Dev C++ (những phiên đầu tiên) tạo điều kiện để người dùng khai thác tối đa khả phần cứng Đáng tiếc tới tận năm 2007 giới hết chặng đường quan trọng phép thức đặt chân lên mãnh đất in đầy dấu 3/64 chân người tiên phong, vào đường vốn trở thành kỷ niệm đẹp người trước Ở giai đoạn III, tức năm gần đây, danh mục yêu cầu người lập trình có thêm đòi hỏi mới: Không bạn phải đứng vững tảng phần cứng hệ thống mà phải biết khai thác tối đa khả công cụ lập trình Cụ thể, bạn phải khai thác triệt để mặt mạnh thư viện hệ thống lập trình có tay, Nâng cao tính hoàn thiện chương trình: chương trình phải cho kết xử lý có hiệu với lớp liệu (của toán) Phải biết tạo chương trình linh hoạt, kết hợp vài loại giải thuật để giải toán vốn đơn giản kích thước bé 4/64 Ví dụ, Vườn bách thảo (Thi toàn Liên bang Nga 04/2011) VƢỜN BÁCH THẢO Trong vườn bách thảo có khu đất hình chữ nhật kích thước w×h trồng loại đặc biệt quý Với người ta làm lối tạo thành hình vuông có tâm Kích thước hình vuông phụ thuộc vào vùng rễ y (w, h) lan tới Nếu tạo hệ tọa độ để khu đất có đỉnh đối (0, 0) (w, h) đỉnh tất hình vuông có tọa độ nguyên Hai hình vuông phần chung diện tích khác 0, tổng diện tích hình vuông có diện tích khu đất, cạnh hình vuông song song với trục tọa độ Thời gian trôi cỏ mọc um tùm che kín lối Người ta cần vẽ đồ khôi phục lại lối để lập trình điều khiển rô bốt chăm sóc 1 x Yêu cầu: Cho w, h, n, xi, yi, n số cây, (xi, yi) – tọa độ thứ i (1 ≤ w, h ≤ 1012, ≤ n ≤ 2×105) Hãy xác định độ dài cạnh hình vuông bao quanh Dữ liệu đảm bảo tồn lời giải Dữ liệu: Vào từ file văn GARDEN.INP: Dòng chứa số nguyên w, h n, Dòng thứ i n dòng sau chứa số thực xi yi Kết quả: Đưa file văn GARDEN.OUT n số nguyên n dòng, dòng thứ i chứa cạnh hình vuông có tâm thứ i Ví dụ: GARDEN.INP 1 GARDEN.OUT 2 Phân tích: Để đạt điểm tối đa cần phải biết tổ chức lưu trữ liệu dạng đồ thị cây, thực phép xử lý cây, tổ chức tìm kiếm nhị phân trên 5/64 Các hệ thống lập trình Free Pascal 2.4.4, Dev C++ 4.9.9 cung cấp thư viện khổng lồ hỗ trợ người dùng mang lại hiệu tương đương lập trình Tuy C++ nhận lựa chọn đông đảo thí sinh dự thi lý do: Thư viện chuẩn hộ trợ lập trình C++ dễ tiếp cận có nhiều tài liệu giới thiệu, Có nhiều phiên chương trình dịch miễn phí để Ban tổ chức cung cấp cho thí sinh, Ở nhiều nước lấy C++ làm sở giảng dạy trường phổ thông, Trong tương lai, lên đại học người ta dùng C++ chủ yếu, Mặt mạnh Pascal khả thể có cấu trúc trình triển khai giải thuật không trọng tâm nội dung giảng dạy, C++ cho phép xây dựng chương trình tối ưu, thể tiểu xảo lập trình Tuy vậy, C++ có mặt yếu so với Pascal Ta nói đến vấn đề muộn hơn, đề cập tới công cụ lập trình B – CÔNG CỤ LẬP TRÌNH Trang bị kiến thức ngôn ngữ lập trình chưa vấn đề lớn tinhọc Điều quan trọng kỹ thuật lập trình tổ chức liệu Khi biết tương đối tốt ngôn ngữ lập trình việc chuyển sang lập trình ngôn ngữ đơn giản Bên cạnh ngôn ngữ truyền thống PASCAL với hệ thống lập trình Free Pascal C++ với hệ thống lập trình DEV C++, nhiều nước cho phép khuyến khích sử dụng loạt ngôn ngữ khác Delphi, Python, Java, C#, v v Đương nhiên, chọn ngôn ngữ làm công cụ cho người lập trình cần phải: Biết rõ điểm mạnh yếu ngôn ngữ hệ thống hệ thống lập trình hỗ trợ, Cần nắm vững dịch vụ mà hệ thống lập trình cung cấp, Cần có thói quen suy nghĩ hành động phù hợp với ngôn ngữ hệ thống lập trình, Cần biết sâu tốt thư viện chuẩn hỗ trợ lập trình biết khai thác chúng cách tối ưu 6/64 Nếu có cách tiếp cận hợp lý vấn đề giải cách đơn giản hiệu Ở nước ta, bậc PTTH hệ thống lập trình sử dụng phổ biến ngôn ngữ PASCAL với hệ thống lập trình Free Pascal Ở bậc đại học, ngôn ngữ lập trình chủ yếu C/C++ với hệ thống Dev C++ Trên giới nhiều nước sử dụng C++ với hệ thống lập trình Dev C++ tương đươngngay từ bậc phổ thông trung học Việc giảng dạy đại trà nhà trường vấn đề thảo luận Nhưng việc trang bị công cụ cho họcsinh khiếu, phục vụ cho kỳ thi Tinhọc vấn đề nằm tầm xem xét xử lý Các thành phần cấu trúc tƣơng đƣơng hệ thống lập trình Các phép tính số học Stt Ví dụ PASCAL C/C++ + * / DIV MOD + * / / % Pascal a a a a n n + b - b * b / b div m mod m C/C++ a a a a n n + * / / % b b b b m m Các phép tính quan hệ Stt PASCAL C/C++ < = and or not < = != && || ! Ví dụ Pascal a < b a = b ab Pascal sử dụng phép xử lý bit để tạo biểu thức quan hệ 7/64 C/C++ a < b a = b a!=b Các phép tính xử lý bit Stt PASCAL C/C++ not and or xor shl shr Ví dụ Pascal C/C++ ~ | & ^ > Khai báo PASCAL C++ Var i,j,k:integer; m,n: longint; a,b:real; p,d:int64; x:array[0 20] of longint; y:array[1 10, 5] of longint; z:array[1 15] of real; c:char; s:string; int i,j,k; long m,n,x[21], y[10][5]; float a,b,z[15]; long long p,d; char c; string s; Lệnh gán C++ PASCAL a:=y[i,j]; a:=a+b; a:=a*z[i]; i:=i+1; k:=i div j; k:=i mod j; a=y[i][j]; a+=b; // a=a+b; a*=z[i]; i++; // ++i; k=i/j; k=i%j; 8/64 Lệnh IF Không có then PASCAL if a b then c=c+5; if a= b then z[i]:=0 else begin z[i]:= z[i]+c; z[n-i]:=z[n-i]-c end; Đặt điều kiện ngoặc Lưu ý có ; C++ if (a!=b) c+=5; if (a==b)z[i]=0; else {z[i]+=c; Z[n-i]-=c; } Lưu ý có ; Câu lệnh FOR C++ PASCAL for i:=1 to n begin end; for j:= n downto begin end; for (i=1;i0;i ) { } Lƣu ý: Có thể khai báo biến i cục hóa chu trình: C++ for (int i=1;i0;i ) { } 9/64 Tổ chức chu trình có số lần lặp trƣớc C++ PASCAL repeat until j=i; { } while (i==j); while i n; while (n ){ string s; finp >> s; if (s.size() < 6){ fout