Kvant

Bản dịch tự động sơ bộ, chất lượng thấp: có thể còn lỗi và câu chữ chưa tự nhiên. Bản này sẽ được thay bằng bản dịch tốt hơn. Bản gốc →

48

Về phần khai mạc
Thư từ toàn diện
trường lập trình

Viện Hệ thống Phần mềm của Viện Hàn lâm Khoa học Liên Xô mở chương trình trường học tương ứng toàn diện dành cho học sinh và sinh viên trường dạy nghề, liên kết thông tin, máy tính và lập trình. Mục tiêu của Trường là nói về các vấn đề và triển vọng của thông tin, kỹ thuật lập trình cơ bản và các lĩnh vực ứng dụng của nó, đồng thời chỉ ra cách viết chương trình bằng một số ngôn ngữ lập trình. Nói chung, kiến ​​thức trước đây về khoa học máy tính không được giả định, tuy nhiên, trong những trường hợp mà tác giả của bài học thấy hữu ích khi so sánh một công cụ phần mềm cụ thể với ngôn ngữ thuật toán, trên cơ sở đó, khóa học “Cơ bản về Khoa học Máy tính và Khoa học Máy tính”, lớp 9-10, được xây dựng ở trường, các bài học ở trường sẽ không lặp lại nội dung trong sách giáo khoa của trường. Bốn bài học đầu tiên của Trường sẽ được xuất bản vào «Kvant».

Mỗi bài học sẽ bao gồm bài toán từ một số bài toán, lời giải và sẽ được bổ sung không muộn hơn một tháng sau khi nhận bài tập. Chương trình giảng dạy của trường được thiết kế trong hai năm.

Bài học của Trường Báo chí được thiết kế dành cho những học sinh không có công nghệ máy tính. Tuy nhiên, bất kỳ ai có cơ hội kiểm tra tính chính xác của lời giải của mình trên máy tính mà mình có thể truy cập được khuyên không nên bỏ qua cơ hội này.

Những người muốn tham gia vào công việc của Trường Lập trình Liên minh Liên minh phải, trước khi nhận được số thứ 11 của tạp chí, phải gửi đơn đăng ký theo mẫu sau:

Biểu tượng ngôn ngữ

A. A. DUVANOV, Y. A. PERVIN

Bài 1: Hành trình của Rùa (các lệnh Logo đơn giản)

– Bạn có thể điều khiển TV không?

  • Chắc chắn! Bạn cần bật mạng, chọn kênh mong muốn, điều chỉnh hình ảnh và âm thanh.
    Cũng dễ dàng như vậy, bạn có thể điều khiển một chiếc xe đạp tóc, bếp ga, điện thoại và những thiết bị biểu diễn quen thuộc khác.
    Chúng ta đang sống trong thế giới của người biểu diễn. Các loại máy móc, cơ chế,

thiết bị, đơn giản và phức tạp. Bản thân chúng ta thường đóng vai trò là người biểu diễn. Người thi hành cũng bị hạn chế như thư, thận, kho. Trong thế giới điều hành này, nổi bật một loại hình đặc biệt - máy tính điện tử. Vai trò đặc biệt của họ là giúp quản lý những người biểu diễn khác, rất khác nhau về mục đích và thiết kế. Trong trường hợp này, máy tính đóng vai trò trung gian. Một người từ điều khiển từ xa của máy thiết lập chương trình hành động cho người biểu diễn bằng ngôn ngữ đặc biệt của giao tiếp giữa người và máy - ngôn ngữ lập trình. Bài toán máy - chuyển đổi các cụm từ của ngôn ngữ này thành tín hiệu điều khiển và truyền chúng đến người biểu diễn.

49

Mục đích của việc hòa giải này là gì? Thứ nhất, ngôn ngữ lập trình gần với ngôn ngữ tự nhiên hơn nhiều so với những ảnh hưởng điện tử, từ tính hoặc cơ học lên người biểu diễn. Thứ hai, máy cho phép bạn ghi nhớ chương trình và “ghi nhớ” bất cứ khi nào bạn cần. Thứ ba, bằng cách sử dụng ngôn ngữ lập trình, bạn có thể chỉ định không chỉ các chuỗi lệnh đơn giản mà còn cả các hành động phức tạp hơn: người thực hiện chỉ có thể thực hiện một số lệnh nếu đáp ứng một số điều kiện nhất định - lệnh có điều kiện; việc thực hiện những người khác bao gồm sự lặp lại lặp đi lặp lại của một nhóm hành động - lệnh chu kỳ. Trên thực tế, máy tính có tốc độ rất lớn - lên tới hàng tỷ thao tác mỗi giây hoặc hơn; cô ấy không biết những người đã thành danh và mặc dù cô ấy có một tính cách “sắt đá”, nhưng hoàn toàn có năng lực: cô ấy không quen với sự oán giận, kiêu ngạo, cáu kỉnh và những khuyết điểm thuần túy khác của con người.

Bốn bài học đầu tiên của Trường Lập trình Tương ứng sẽ giới thiệu cho bạn cách lập trình bằng ngôn ngữ Logo. Ngôn ngữ này được thiết kế để kiểm soát các trình thực thi đơn giản khác nhau. Chúng tôi sẽ tập trung vào một trong số chúng, theo truyền thống được gọi là Rùa. Người biểu diễn này sống trên một chiếc máy bay. Anh ta có thể sử dụng nó theo nhiều hướng khác nhau, để lại dấu vết phía sau. Bạn có thể tưởng tượng người biểu diễn này thực tế được làm bằng kim loại và nhựa.

Tuy nhiên, thường thì người biểu diễn như vậy chỉ hiển thị trên màn hình hiển thị. Cần lưu ý rằng đây là một tình huống khá điển hình. Nhiều người biểu diễn hữu ích và cần thiết chỉ tồn tại dưới dạng mô hình được lập trình trên máy tính. Hành vi của họ có thể được quan sát trên màn hình. có vẻ như chúng vô dụng vì chúng vô hình, giống như những dấu hiệu. Ý kiến ​​​​này có thể bị bác bỏ bằng cách chỉ cần liệt kê một số nghệ sĩ biểu diễn được sử dụng tích cực chỉ tồn tại “bên trong” máy.

  • Nhà toán học. Có khả năng thực hiện nhanh chóng và chính xác các phép tính số học và đại số khổng lồ.

  • Trình soạn thảo văn bản. Cho phép bạn lưu trữ, chuyển đổi văn bản và in chúng ở định dạng yêu cầu.

  • Biên tập viên hình. Một công cụ tiện lợi để tạo hình ảnh trên màn hình, bao gồm nhiều loại.

  • Người nôn mửa. Lưu trữ hình làm sẵn, đếm kết quả, chương trình trên băng từ hoặc đĩa từ; duy trì kho lưu trữ.

Người biểu diễn Rùa và ngôn ngữ điều khiển nó - Logo - được phát minh vào năm 1969 bởi nhà khoa học nổi tiếng người Mỹ S. Pipert. Logo nhanh chóng trở nên phổ biến trên toàn thế giới như một ngôn ngữ dành cho người mới bắt đầu làm quen với lập trình.

Cách dễ nhất để bắt đầu học lập trình là bằng ngôn ngữ mẹ đẻ của bạn. Có rất nhiều phiên bản Logo: ở các trường học ở Mỹ họ sử dụng Logo, tất cả các lệnh đều được viết bằng tiếng Anh; Những người đề xuất người Bulgaria tìm hiểu hành động của họ bằng cách sử dụng phiên bản Logo tiếng Bulgaria. Trong các bài học của chúng tôi, đương nhiên, người biểu diễn chỉ hiểu được các từ tiếng Nga. Người đọc muốn chạy ứng dụng chương trình ở đây trên máy tính mà anh ta có thể truy cập nên đọc về điều này, nếu Logo bằng tiếng Anh được đưa vào phần mềm của nó.

Chú ý! Chúng tôi bật máy tính. Hình ảnh người biểu diễn xuất hiện ở giữa màn hình dưới dạng mũi tên hình tam giác, hướng lên trên. Đây là Rùa. Bên cạnh màn hình là bàn phím. Nó giống như trên một chiếc máy lớn, chỉ có điều phím trên nó lớn hơn một chút.

Bạn đã sẵn sàng chưa? Người biểu diễn đang chờ đợi. Đây là hai lệnh đầu tiên trong ngôn ngữ Logo: FORWARD n, BACK n. Bạn có thể viết chữ V viết tắt cùng FORWARD và N cùng nhau BACKWARD thì xe sẽ hiện ra. Số n—một tham số lệnh—chỉ định số bước mà người thực thi sẽ thực hiện. Rùa có đôi chân ngắn: 10 bước của nó - đơn vị đo chiều dài - xấp xỉ 1 cm.

Vì vậy, hãy cố gắng kiểm soát:

50

Nó đã hoạt động! Đầu tiên con rùa di chuyển rồi lại trở về vị trí ban đầu. Dấu vết về chuyến đi của cô vẫn còn trên màn hình.

Đây là hai lệnh Logo khác: chúng điều khiển các lượt: RIGHT α, LEFT α. Các lệnh này (viết tắt hợp lệ của chúng là P và L) buộc người biểu diễn phải xoay lệnh tương ứng sang phải hoặc trái một góc α.

Hãy cho Rùa đi dọc theo một con đường hình vuông:

Rùa rất ngoan ngoãn! Hãy gõ một lệnh khác BACK100 trên bàn phím. Rùa không cử động nhưng trên màn hình xuất hiện thông báo: BACK100 LÀ GÌ?

Thực tế là trong ngôn ngữ Logo, giống như trong tiếng Nga, các từ được phân tách bằng dấu cách. Máy đã cố gắng tìm lệnh BACK100 trong bộ nhớ của nó, nhưng tất nhiên là nó không có ở đó.

Hãy sửa nó! Chúng tôi gõ trên bàn phím: BACK 100. Bây giờ có một lá cờ trên màn hình (hình 1).

Vấn đề 1*. Lập chương trình cho Rùa vẽ một chiếc thuyền (hình 2).

Lệnh SVROS xóa các dấu vết trên màn hình và đặt người biểu diễn vào giữa màn hình với mũi hướng lên trên. Bật máy tính bằng cách thực hiện lệnh này. Hãy vẽ một tam giác đều. Mỗi góc là 60 độ. Vì vậy, anh ta muốn viết một chương trình:

SVROS V 50 P 60
B 50 P 60
B 50 P 60

Bạn nghĩ điều gì sẽ xuất hiện trên màn ảnh? Tam giác? Vậy là bạn đã nhầm, Rùa sẽ vẽ hình như thế này (hình 3).

Bạn có thấy lỗi không? Để các góc trong của tam giác là 60 độ, mỗi lần bạn cần mở rộng Rùa thêm 120. Chương trình đúng sẽ trông như thế này:

SVROS V 50 P 120
B 50 P 120
B 50 P 120

Vấn đề 2*. Hãy miêu tả chiếc thuyền có cánh buồm trong bài toán 1 (hình 4).

Hai lệnh sau đây cho phép bạn di chuyển người biểu diễn xung quanh màn hình mà không để lại dấu vết (nâng công cụ vẽ lên - “bút chì”) và bật lại dấu vết theo ý muốn (hạ bút chì xuống): KHÔNG VẼ (tiết kiệm HP), VẼ (lưu P). Lưu ý rằng thao tác hạ bút chì là một phần không thể thiếu trong quá trình thực hiện lệnh SVROC.

Các quy tắc của logo không phải lúc nào cũng trùng khớp với các quy tắc của ngôn ngữ bản địa. Nếu, theo quan điểm của tiếng Nga, viết KHÔNG VẼ là đúng, thì khi nhận được lệnh như vậy, máy tính sẽ lại ngạc nhiên: KHÔNG LÀ GÌ?

Vấn đề 3*. Rùa sẽ viết từ gì lên màn hình khi thực hiện chương trình sau:

SVROS
V 40 L 45 N 20 P 90 V 20 L 45 N 40
HP P 90 V 20 L 90 R
V 40 N 40 P 45 V 50 L 40 N 40
HP P 90 V 20 L 90 R
V 40 P 90 V 30 P 90 V 20 P 90 V 30

Tôi tự hỏi điều gì sẽ xảy ra với Rùa nếu chúng tôi tiếp tục chương trình vẽ tam giác không chính xác (xem hình 1) và viết:

SVROS V 50 P 60
B 50 P 60
B 50 P 60
B 50 P 60

Rõ ràng là ở cuối đường Rùa đang nhìn lên vì nó quay 60 độ 6 lần. Hơn nữa, cô ấy kết thúc ở điểm xuất phát.

51

Con rùa đã vẽ một hình lục giác đều đặn! Lưu ý rằng hình có được bằng cách lặp lại hai lệnh sáu lần. Logo có một phương tiện để ghi lại những lần lặp lại đó một cách chính xác hơn - lệnh vòng lặp. Lệnh trông giống như: REPEAT nl.

Số n chỉ định số lần lặp lại. l là danh sách các lệnh (thân vòng lặp), được phân tách bằng dấu ngoặc vuông.

Đây là giao diện của một chương trình vẽ một hình lục giác đều bằng lệnh vòng lặp:

ĐẶT LẠI LẶP LẠI 6 [B 50 P 60]
Bài toán 4*. Lập chương trình vẽ vân sam (hình 5).

Chúng tôi buộc phải sử dụng vẽ một hình lục giác. Hãy thử thiết kế: HEXAGON. Bạn nói đúng! Máy tính sẽ lại viết dòng chữ quen thuộc:

LỤC GIÁC LÀ GÌ?
Nói chung, mọi thứ đều đúng. Rốt cuộc, chúng tôi đã không nói với cô ấy rằng tập lệnh được ghi trước đó có tên là HEXAGON.

Bạn có thể học cách sử dụng khái niệm về những từ mới chưa quen thuộc và coi chúng như những mệnh lệnh bằng cách sử dụng một lệnh khác của ngôn ngữ Logo. Lệnh bắt đầu bằng từ THIS sẽ khiến máy ghi nhớ bất kỳ chương trình nào - một chuỗi lệnh (hoặc cụ thể là một lệnh) kết thúc bằng từ END. Đó là để nhớ chứ không phải để biểu diễn! Sau chữ NÀY bạn cần viết tên để máy biết chương trình cần ghi nhớ. Có, ghi lại

ĐÂY LÀ MỘT LỤC GIÁC
LẶP LẠI 6 [B 50 P 60] (1)
KẾT THÚC
Có một lệnh để lưu trữ chương trình (đây là trạng thái từ một lệnh)

LẶP LẠI 6 [B 50 P 60]
Khi thực hiện lệnh NÀY, máy không gửi bất kỳ gợi ý nào cho người thực hiện và do đó, Rùa không di chuyển. Thật vậy, lúc này máy tính đang bận ghi nhớ một chương trình có tên HEXAGON. Theo đó, chương trình này hiện có thể được gọi để thực thi. Để làm điều này, chỉ cần gõ từ trên bàn phím
Lục giác
và Rùa sẽ thực hiện bức vẽ vốn đã quen thuộc. Do đó, máy đã học được một lệnh mới - HEXAGON.

Một chương trình được lưu trong bộ nhớ của máy và có tên để gọi nó để thực thi được gọi là một thủ tục. Bản ghi (1), bao gồm các dòng ĐÂY IS A LỤC GIÁC (khoảng trống của mô tả quy trình) và END (cuối mô tả), là mô tả về quy trình và lệnh thực tế của chương trình cần ghi nhớ (trong ví dụ của chúng tôi, dòng REPEAT 6 [B 50 P 60] là phần nội dung của quy trình).

Bài toán 5*. Tạo một proedura vẽ một ngôi nhà (hình 6).

Bây giờ chúng ta hãy thử vẽ chính xác cái sau - ví dụ: oty cho bếp lò (hình 7).

Hãy chia bản vẽ thành ba lớp. Quy trình CELL sẽ như sau:

ĐÂY LÀ MẬT ONG MẬT ONG
LẶP LẠI 3 [LỚP]
KẾT THÚC

Mỗi lớp (hình 8) sẽ bắt đầu vẽ ở điểm 1 và kết thúc ở điểm 4. Điều này đảm bảo rằng các lớp khớp với nhau một cách chính xác khi thực hiện vòng lặp trong chương trình HONEYCOMB.

ĐÂY LÀ MỘT LỚP
HÀNG NGANG
PODVODV3
HÀNG NGANG
PODVODV4
KẾT THÚC

Trong phần mô tả thủ tục LAYER, gọi đến ba thủ tục ROW, SUPPLY3, SUPPLY4, chưa được lập trình, được sử dụng. Bạn không thể gọi LAYER proedura cho đến khi chúng

52

không được mô tả. Hãy để chúng tôi mô tả quá trình ROW:
ĐÂY LÀ MỘT HÀNG
LẶP LẠI 8 [ĐĂNG KÝ LỤC GIÁC] KẾT THÚC

Mặc dù, rõ ràng, rõ ràng quy trình ROW được giao nhiệm vụ thực hiện chính xác những gì, nhưng mô tả của nó chứa lệnh gọi đến quy trình SUIT khác, chưa được mô tả. Thủ tục CUNG CẤP là cần thiết để cài đặt Rùa vào vị trí mà từ đó nó sẽ tạo ra một hình lục giác đều trong quá trình vẽ hàng:

ĐÂY LÀ HỖ TRỢ
NR L 60 N 50
L 60 N 50
P 120 R
KẾT THÚC

Tiếp cận điểm 3 bao gồm quay lại điểm 1 và chuyển sang điểm 3:

Đây là tàu điện ngầm
TRẢ LẠI HP
B 50 L 60
B 50 P 60 R
KẾT THÚC

Việc hoàn trả được thực hiện từ điểm A đến điểm 1 bằng cách gọi quy trình STEP BACK chín lần:

ĐÂY LÀ HOÀN TIỀN
LẶP LẠI 9 [BƯỚC TRỞ LẠI]
KẾT THÚC

Hãy để chúng tôi mô tả quá trình STEP BACK:

ĐÓ LÀ MỘT BƯỚC TRỞ LẠI
L 120V 50
P 60 V 50
P 60
KẾT THÚC

Vẫn còn phải mô tả các quy trình của PODVOD4:

ĐÂY LÀ HỖ TRỢ4
TRỞ LẠI
B 50 P 60
B 50 L 60
KẾT THÚC

Thế thôi! Nếu bây giờ bạn xóa màn hình: ĐẶT LẠI và ra lệnh MẬT ONG MẬT ONG, bạn có thể thấy người thực hiện, cẩn thận làm theo hướng dẫn của chúng tôi, vẽ các ô hình lục giác.

Vấn đề 6*. Viết chương trình vẽ a) một con phố gồm 10 ngôi nhà, như bài 5; 6) một ngôi làng có năm con đường.

Bài 7. Tạo chương trình vẽ LOBIC ĐĂNG KÝ] END

Ví dụ vẽ tổ ong cho thấy một phương pháp thiết kế các chương trình phức tạp, được gọi là phương pháp “từ trên xuống” trong khoa học máy tính. Phương pháp này tương tự như vẽ дерева mọc với các nhánh hướng xuống dưới (hình 9).

Khi lên lịch cho quy trình HONEYCOMB, chúng tôi viết lệnh gọi tới bộ xử lý LAYER. Bây giờ chúng ta bắt đầu thiết kế bộ xử lý LAYER. Nó không thể thực hiện được nếu không có các thủ tục ROW, SUPPLY, SUPPLY4, v.v. Nói cách khác, chúng ta bắt đầu với sơ đồ chung bài toán, giới thiệu các lệnh để gọi các thủ tục không tồn tại. Mỗi lệnh mới như vậy được mô tả bằng cách sử dụng một thủ tục, do đó, có thể chứa các lệnh gọi đến các thủ tục mới, chưa được mô tả, v.v.

Phần ngọn của cây không có cành mọc xuống gọi là lá. Để chương trình hoạt động, tất cả các tên trên trang tính phải là lệnh ngôn ngữ Logo hợp lệ. Theo nghĩa này, cây ở hình 9 chưa hoàn chỉnh.

Nhiệm vụ 8. Bản vẽ bổ sung HONEYCOMB để viết các câu lệnh của ngôn ngữ Logo lên các tờ giấy.

Chú ý! Chúng tôi xin nhắc bạn rằng chỉ bài toán 1-6 dấu hoa thị được đặt mới được kiểm tra.