Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «ОписаниС языка PascalABC.NETΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 77

Автор W Cat

ДСмонстрационный Ρ€Π΅ΠΆΠΈΠΌ

Для запуска Π·Π°Π΄Π°Ρ‡Π½ΠΈΠΊΠ° Π² дСмонстрационном Ρ€Π΅ΠΆΠΈΠΌΠ΅ слСдуСт ΠΏΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ΠΈ задания Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ Task Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ это имя символом ?, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Task('Begin12?');

МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ символ ? сразу послС ΠΈΠΌΠ΅Π½ΠΈ Ρ‚Π΅ΠΌΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 'Begin?'. Π’ этом случаС Π² ΠΎΠΊΠ½Π΅ Π·Π°Π΄Π°Ρ‡Π½ΠΈΠΊΠ° сразу Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ послСднСС Π·Π°Π΄Π°Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹.

ДСмонстрационный Ρ€Π΅ΠΆΠΈΠΌ Π·Π°Π΄Π°Ρ‡Π½ΠΈΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ особСнности:

Π΄Π°ΠΆΠ΅ Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° содСрТит Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ задания, это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅ анализируСтся ΠΈ информация Π² Ρ„Π°ΠΉΠ» Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π½Π΅ заносится; послС отобраТСния Π½Π° экранС ΠΎΠΊΠ½Π° Π·Π°Π΄Π°Ρ‡Π½ΠΈΠΊΠ° Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² сразу Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ° ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ"; ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠΌ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² исходных ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…; для смСны Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… трСбуСтся Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ "НовыС Π΄Π°Π½Π½Ρ‹Π΅" ΠΈΠ»ΠΈ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΏΡ€ΠΎΠ±Π΅Π»Π°; ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠΌ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС задания Π΄Π°Π½Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹; для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ заданию с Π±oльшим Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ трСбуСтся Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ "Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅" ΠΈΠ»ΠΈ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Enter, Π° для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ заданию с мСньшим Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ трСбуСтся Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ "ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅" ΠΈΠ»ΠΈ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Backspace. Задания ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ цикличСски. На рисункС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π²ΠΈΠ΄ ΠΎΠΊΠ½Π° Π·Π°Π΄Π°Ρ‡Π½ΠΈΠΊΠ° Π² дСмонстрационном Ρ€Π΅ΠΆΠΈΠΌΠ΅.

ΠŸΡ€ΠΈ использовании динамичСской ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ, появившСйся Π² вСрсии 4.11, ΠΎΠΊΠ½ΠΎ Π² дСмонстрационном Ρ€Π΅ΠΆΠΈΠΌΠ΅ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ДСмонстрационный Ρ€Π΅ΠΆΠΈΠΌ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для быстрого просмотра всСх Π·Π°Π΄Π°Π½ΠΈΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² исходных Π΄Π°Π½Π½Ρ‹Ρ… для Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ задания.

Для Π΄Π΅ΠΌΠΎ-просмотра всСх Π³Ρ€ΡƒΠΏΠΏ Π·Π°Π΄Π°Π½ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ PT4Demo, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вызываСтся нСпосрСдствСнно ΠΈΠ· срСды PascalABC.NET ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ мСню ΠœΠΎΠ΄ΡƒΠ»ΠΈ | ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ задания" (с Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ связана Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈ клавиатурная комбинация Shift+Ctrl+D).

НиТС приводится Π²ΠΈΠ΄ ΠΎΠΊΠ½Π° модуля PT4Demo. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ Π·Π°Π΄Π°Π½ΠΈΠΉ (для быстрого ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Π³Ρ€ΡƒΠΏΠΏ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ горячиС клавиши Ctrl+[<] ΠΈ Ctrl+[>]) ΠΈ Π½ΠΎΠΌΠ΅Ρ€ задания Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π³Ρ€ΡƒΠΏΠΏΡ‹ (Π½ΠΎΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ Ctrl+Shift+[<] ΠΈ Ctrl+Shift+[>]).

Если Π·Π°Π΄Π°Ρ‡Π½ΠΈΠΊ Π½Π΅ зарСгистрирован, Ρ‚ΠΎ ΠΎΠ½ всСгда запускаСтся Π² дСмонстрационном Ρ€Π΅ΠΆΠΈΠΌΠ΅ (ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ задания, доступныС для выполнСния Π² ΠΌΠΈΠ½ΠΈ-Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅). ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² дСмонстрационный Ρ€Π΅ΠΆΠΈΠΌ автоматичСски происходит Ρ‚Π°ΠΊΠΆΠ΅ Π² случаС, Ссли Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ с выполняСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ отсутствуСт Ρ„Π°ΠΉΠ» Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² results.abc.

Π’ вСрсии 4.8 Π·Π°Π΄Π°Ρ‡Π½ΠΈΠΊΠ° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ тСкста Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΎΠΊ ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… пояснСний ΠΊ заданиям Π² Π²ΠΈΠ΄Π΅ html-страницы. Для создания ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ страницы ΠΈ Π΅Π΅ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ отобраТСния Π½Π° экранС (Π² html-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, установлСнном ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) достаточно Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Task, ΡƒΠΊΠ°Π·Π°Π² Π² качСствС Π΅Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° имя Π³Ρ€ΡƒΠΏΠΏΡ‹ Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΈΠ»ΠΈ имя ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ задания, Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ΅ символом #", Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Begin# ΠΈΠ»ΠΈ Begin3#. ΠŸΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ гСнСрируСтся тСкст всСх Π·Π°Π΄Π°Π½ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² эту Π³Ρ€ΡƒΠΏΠΏΡƒ. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Task с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ, ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΡΡ символом #, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ нСсколько Ρ€Π°Π·, указывая Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° Π³Ρ€ΡƒΠΏΠΏ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ; Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ созданная html-страница Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ тСксты всСх Π·Π°Π΄Π°Π½ΠΈΠΉ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… запусках ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Task (Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ порядкС).

Если ΠΏΡ€ΠΈ ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ΅ имя Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΈΠ»ΠΈ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ задания Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π³Ρ€ΡƒΠΏΠΏΡ‹, Ρ‚ΠΎ вывСдСтся сообщСниС ΠΎΠ± ошибкС, ΠΈ html-страница создана Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

Π’ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡƒΡŽ html-страницу Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ стилСвыС настройки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ бСрутся ΠΈΠ· Ρ„Π°ΠΉΠ»Π° PT4Tasks.css, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ищСтся Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π° ΠΏΡ€ΠΈ Π΅Π³ΠΎ отсутствии Π² этом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ -- Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ PT4 систСмного ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° PascalABC.NET. Если Π΄Π°Π½Π½Ρ‹ΠΉ стилСвой Ρ„Π°ΠΉΠ» Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, Ρ‚ΠΎ стилСвыС настройки Π² html-страницу Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ.

ΠŸΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ html-страницы ΠΎΠ½Π° сохраняСтся Π² Ρ„Π°ΠΉΠ»Π΅ со стандартным ΠΈΠΌΠ΅Π½Π΅ΠΌ PT4Tasks.html Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ прилоТСния. Если Π² этом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ нСльзя ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ», Ρ‚ΠΎ выводится сообщСниС ΠΎΠ± ошибкС.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ просмотра html-страниц с описаниСм Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π·Π°Π΄Π°Π½ΠΈΠΉ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ PT4Demo. Для этого прСдусмотрСна ΠΊΠ½ΠΎΠΏΠΊΠ° (см. ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ рисунок) ΠΈ клавиша F2.

ΠœΠΎΠ΄ΡƒΠ»ΠΈ констукторов Π·Π°Π΄Π°Π½ΠΈΠΉ

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ провСряСмых Π·Π°Π΄Π°Π½ΠΈΠΉ: ΠΎΠ±Π·ΠΎΡ€

Π’ систСмС PascalABC.NET ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ провСряСмыС задания для исполнитСлСй Π ΠΎΠ±ΠΎΡ‚ ΠΈ Π§Π΅Ρ€Ρ‚Π΅ΠΆΠ½ΠΈΠΊ, Π° Ρ‚Π°ΠΊΠΆΠ΅ для элСктронного Π·Π°Π΄Π°Ρ‡Π½ΠΈΠΊΠ° Programming Taskbook. Задания Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкторов RobotTaskMaker, DMTaskMaker ΠΈ PT4TaskMaker; конструкторы RobotTaskMaker ΠΈ DMTaskMaker Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, конструктор PT4TaskMaker Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ модуля PT4TaskMakerNET. Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ приводятся ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ описания ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· конструкторов ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΡ… использования для создания Π½ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ:

ΠœΠΎΠ΄ΡƒΠ»ΡŒ RobotTaskMaker

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΠΉ для исполнитСля Π ΠΎΠ±ΠΎΡ‚

ΠœΠΎΠ΄ΡƒΠ»ΡŒ DMTaskMaker

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΠΉ для исполнитСля Π§Π΅Ρ€Ρ‚Π΅ΠΆΠ½ΠΈΠΊ

ΠœΠΎΠ΄ΡƒΠ»ΡŒ PT4TaskMakerNET: ΠΎΠ±Ρ‰Π΅Π΅ описаниС

ΠœΠΎΠ΄ΡƒΠ»ΡŒ PT4TaskMakerNET: основныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

ΠœΠΎΠ΄ΡƒΠ»ΡŒ PT4TaskMakerNET: Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

ΠœΠΎΠ΄ΡƒΠ»ΡŒ PT4TaskMakerNET: Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ тСкста Π·Π°Π΄Π°Π½ΠΈΠΉ

ΠœΠΎΠ΄ΡƒΠ»ΡŒ PT4TaskMakerNET: ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ

ΠœΠΎΠ΄ΡƒΠ»ΡŒ PT4TaskMakerNET: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π·Π°Π΄Π°Π½ΠΈΠΉ, связанных с Π•Π“Π­ ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

ΠœΠΎΠ΄ΡƒΠ»ΡŒ RobotTaskMaker

Π’ΠΈΠΏΡ‹ модуля RobotTaskMaker

type TaskProcType = procedure;

Π’ΠΈΠΏ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅. КаТдоС Π·Π°Π΄Π°Π½ΠΈΠ΅ рСализуСтся Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹; для связывания этой ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ с ΠΈΠΌΠ΅Π½Π΅ΠΌ задания Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ RegisterTask, ΠΎΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌΡƒΡŽ Π½ΠΈΠΆΠ΅.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ модуля RobotTaskMaker

procedure Field(szx,szy: integer);

Π—Π°Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅ Π ΠΎΠ±ΠΎΡ‚Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° szx Π½Π° szy ΠΊΠ»Π΅Ρ‚ΠΎΠΊ.

procedure HorizontalWall(x,y,len: integer);

Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ стСну Π΄Π»ΠΈΠ½Ρ‹ len ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΡƒΠ³Π»Π° (x, y).

procedure VerticalWall(x,y,len: integer);

Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ стСну Π΄Π»ΠΈΠ½Ρ‹ len ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΡƒΠ³Π»Π° (x, y).

procedure RobotBegin(x,y: integer);

Π—Π°Π΄Π°Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π ΠΎΠ±ΠΎΡ‚Π° Π² ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ (x, y).

procedure RobotEnd(x,y: integer);

Π—Π°Π΄Π°Π΅Ρ‚ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π ΠΎΠ±ΠΎΡ‚Π° Π² ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ (x, y).

procedure RobotBeginEnd(x,y,x1,y1: integer);

Π—Π°Π΄Π°Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π ΠΎΠ±ΠΎΡ‚Π° Π² ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ (x, y) ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π² ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ (x1, y1).

procedure Tag(x,y: integer);

ΠŸΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΊΠ»Π΅Ρ‚ΠΊΡƒ (x, y) для Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΡ.

procedure TagRect(x,y,x1,y1: integer);

ΠŸΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ ΠΈΠ· ΠΊΠ»Π΅Ρ‚ΠΎΠΊ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹Ρ… Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° (x, y) ΠΈ (x1, y1), для Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΡ.

procedure MarkPainted(x,y: integer);

Π—Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ»Π΅Ρ‚ΠΊΡƒ (x, y) (Π² Π·Π°Π΄Π°Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΆΠ΅ Π·Π°ΠΊΡ€Π°ΡˆΠ΅Π½Ρ‹).

procedure TaskText(s: string);

Π—Π°Π΄Π°Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΡƒ тСкста задания Π² строкС s.

procedure RegisterGroup(name,description,unitname: string; count: integer);

ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ Π½ΠΎΠ²ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π·Π°Π΄Π°Π½ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ PT4Load. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ имя Π΄Π°Π½Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² ΠΎΠΊΠ½Π΅ модуля PT4Load Π² спискС Π³Ρ€ΡƒΠΏΠΏ, связанных с исполнитСлСм Π ΠΎΠ±ΠΎΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ-Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ для выполнСния любого задания этой Π³Ρ€ΡƒΠΏΠΏΡ‹. Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ указываСтся имя Π³Ρ€ΡƒΠΏΠΏΡ‹ name, ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС Π³Ρ€ΡƒΠΏΠΏΡ‹ description, имя модуля unitname, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ описана Π³Ρ€ΡƒΠΏΠΏΠ°, ΠΈ количСство Π·Π°Π΄Π°Π½ΠΈΠΉ count. Имя Π³Ρ€ΡƒΠΏΠΏΡ‹ Π·Π°Π΄Π°Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 7 символов (Ρ†ΠΈΡ„Ρ€ ΠΈ латинских Π±ΡƒΠΊΠ²) ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ†ΠΈΡ„Ρ€ΠΎΠΉ, количСство Π·Π°Π΄Π°Π½ΠΈΠΉ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ 999. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° RegisterGroup Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² сСкции ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ модуля, содСрТащСго Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π½ΠΎΠ²ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π·Π°Π΄Π°Π½ΠΈΠΉ для Π ΠΎΠ±ΠΎΡ‚Π°.

RegisterTask(name: string; p: TaskProcType);


БвязываСт имя задания name с ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ p, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π΄Π°Π½Π½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅. Π”Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ слСдуСт Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ задания. Подобно описанной Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ RegisterGroup, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° RegisterTask Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² сСкции ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ модуля, содСрТащСго Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π½ΠΎΠ²ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π·Π°Π΄Π°Π½ΠΈΠΉ для Π ΠΎΠ±ΠΎΡ‚Π°. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Π²Ρ‹Π·ΠΎΠ²Π° этих ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΠΉ для исполнитСля Π ΠΎΠ±ΠΎΡ‚

ОпишСм ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ создания Π³Ρ€ΡƒΠΏΠΏΡ‹ Π·Π°Π΄Π°Π½ΠΈΠΉ для исполнитСля Π ΠΎΠ±ΠΎΡ‚. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ RobTasks.pas со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ тСкстом:

unit RobTasks;

interface

uses RobotTaskMaker;

implementation

procedure FirstRob;

begin

TaskText('Π—Π°Π΄Π°Π½ΠΈΠ΅ myrob1. Π—Π°ΠΊΡ€Π°ΡΠΈΡ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ');

Field(10,6);

HorizontalWall(0,3,4);

VerticalWall(4,3,2);

RobotBegin(1,4);

VerticalWall(5,1,5);

HorizontalWall(5,1,4);

RobotEnd(6,2);

Tag(6,2);

end;