ШКОЛА ЮНОГО ПРОГРАММИСТА

Дорогие друзья!

Я очень хочу, чтобы все вы, кто любит программирование, помогли мне в создании виртуальной школы юного программиста. Как известно, школа не может существовать без учеников и преподавателей. Сначала я обращаюсь к будущим ученикам создаваемой школы.

Дорогой юный друг! Если ты очень увлекаешься программированием, но пока не стал специалистом в этой области, а ещё только учишься, то приглашаю тебя в школу юного программиста. Я по профессии программист, была немного преподавателем математики и информатики (так этот предмет назывался, да, кажется, и сейчас называется в обычной общеобразовательной школе). Мной написаны две книги по программированию: "Компьютер решает головоломки" и "Играем сами, играем с компьютером" (аннотации этих книг можно посмотреть на странице "Аннотации моих книг"), которые, к сожалению, пока не изданы. На этом сайте ты найдёшь главы из этих книг.

Для того чтобы поступить в эту виртуальную школу программиста, ты должен выполнить экзаменационную работу. Она состоит из трёх заданий. Каждое из них ты должен выполнить с помощью программы, составленной тобой. Эта программа должна быть выполнена на твоём (или на школьном) компьютере.

Задание 1

            Дан пример, в котором перемножаются два пятизначных числа. Буквой X заменены все неизвестные цифры, буквой A – тоже неизвестная цифра, но одна и та же (все цифры принимают значения от 0 до 9, среди цифр, заменённых на X, могут быть одинаковые, но Х не равно A).
            Требуется восстановить пример, то есть найти сомножители и произведение. При этом важно, чтобы во всех промежуточных результатах умножения цифра, заменённая буквой А, занимала точно обозначенное место. Задача имеет два решения.

               XAXXX

               XAXXX

               -----------

            AXXXXX

         XAXXXX

      XXAXXX

   XXXAXX

XXXXAX

----------------------

XXXAXXXXXX

 

            Конечно, ты можешь выполнить это задание и без компьютера, если у тебя очень хороши дела в математике. Однако задача всё-таки довольно сложная, и потому ты обязательно должен решить её с помощью компьютера. В этом задании не оговаривается язык, на котором ты будешь составлять программу для решения задачи. Главное получить результат. Этот результат, то есть две пары сомножителей ты и пришлёшь мне в своём послании.

Задание 2

В этом и в следующем задании ты должен поработать с языком BASIC. Этот язык является одним из самых простых алгоритмических языков. Именно на этом языке мной составлены все программы в вышеназванных книгах. Но загвоздка в том, что я писала свои книги давно (в начале 90-х гг. прошлого века), с тех пор язык претерпел изменения, появились новые версии. Поэтому мои программы, безупречно работавшие на ЭВМ "Электроника 100-25", на современном компьютере работать "не хотят".

            Сначала тебе надо выполнить задания, предложенные в главе из книги "Компьютер решает головоломки". Там предложены две задачи. В дополнение к этим задачам ещё одна: составь программу для построения магического квадрата шестого порядка. Эта программа должна быть составлена на языке BASIC. Её надо не просто составить, но и отладить, то есть "заставить" её работать, выполнить её и получить результат – три разных (в смысле поворотов и отражений) магических квадрата шестого порядка.

Итак, в задании 2 три задачи: две из них о магических квадратах четвёртого порядка и одна – о магических квадратах шестого порядка. Готовые магические квадраты ты пришлёшь мне в своём послании (квадраты можно записывать в виде наборов чисел, как это сделано в главе из книги с квадратами третьего порядка, полученными в результате работы программы).

Задание 3

            Это задание относится к программе для игры "Калах". В главе из книги "Играем сами, играем с компьютером" ты найдёшь описание этой игры и текст программы для неё. Эта программа по причине, указанной выше, не работает на современном компьютере. Совершенно точно могу сказать, что она работала на ЭВМ, я сама провела за этой игрой много времени. Так вот, требуется модернизировать эту программу, довести её до современной версии языка, чтобы она стала работающей. Программа эта довольно большая, поэтому, конечно, преобразовать её сложно. Есть другой путь выполнения задания: ты можешь составить свою программу для игры "Калах", при этом можно воспользоваться любым другим языком. Но программа должна быть отлаженной и работающей. Вполне согласна, что проще сделать новое, чем исправлять старое, да к тому же чужое. Так что, дерзай!

Ответ на задание 3 (готовая программа для игры "Калах") большой по объёму, поэтому присылать его на сайт не надо, ты пришлёшь ответы на первые два задания и сообщишь, в каком виде ты выполнил третье задание. Главное, чтобы ты его выполнил, и у тебя была работающая программа. Если ты будешь предварительно зачислен в школу по результатам выполнения первых двух заданий, тогда я пришлю тебе свой электронный адрес, и на него ты пришлёшь мне свою программу третьего задания. По результатам выполнения третьего задания ты будешь зачислен в школу окончательно.

***

            А теперь я обращаюсь к будущим преподавателям школы. Уважаемые программисты! Если вы хотите внести свой вклад в дело образования молодого поколения, подготовки достойной смены вам, пожалуйста, присоединяйтесь ко мне. Я пока не знаю, что получится из моего проекта создания виртуальной школы юного программиста, будет ли в ней хоть один ученик и ещё хотя бы один преподаватель, кроме меня. Но я очень хочу создать такую школу! Люблю свою профессию, имею некоторый опыт преподавания. Написала немало программ.  Хочу сразу сказать, что создание школы и работа в ней преподавателем, равно как и обучение, предполагается абсолютно бесплатным.
            Если кто-то хочет принять участие в реализации моего проекта, который мне кажется очень достойным, то напишите мне в Гостевую книгу. Жду ваших писем!

***

Страница помещена на сайт 11 марта 2006 года.

Добавление: (9 апреля 2007 г.)

Дорогие мои юные программисты! Вам не понравились мои задания? Вы не хотите их решить и поступить в школу? Очень сожалею, что мне не удалось вас заинтересовать программированием. Ну, а я снова составляю программы! Мне удалось освоить современный интерпретатор языка Basic, и теперь я могу снова заниматься любимым делом. Вот вам ещё небольшой этюд по программированию. В старом журнале “Наука и жизнь” (№ 1, 1981 г.) я нашла интересный пример на деление, в котором одинаковым буквам соответствуют одинаковые цифры, а разным буквам – разные цифры (как сказали бы математики: между буквами и цифрами существует взаимнооднозначное соответствие). А “звёздочки” могут быть любыми цифрами. Вот этот пример:

 

*

*

*

*

*

*

*

*

*

*

 

 

С

Х

Е

М

А

-

*

*

*

Х

А

 

 

 

 

 

 

С

М

Е

Х

А

 

*

Х

А

*

*

*

 

 

 

 

 

 

 

 

 

 

-

*

*

*

*

Х

А

 

 

 

 

 

 

 

 

 

 

 

 

 

 

*

*

*

*

*

 

 

 

 

 

 

 

 

 

 

 

-

*

*

*

*

*

 

 

 

 

 

 

 

 

 

 

 

 

*

*

*

*

*

*

 

 

 

 

 

 

 

 

 

 

-

*

*

*

*

*

*

 

 

 

 

 

 

 

Красивый пример, не правда ли? Можно ли решить его без компьютера? Трудно сказать. Наверное, можно. Но придётся поломать голову. А вот с компьютером проще. Но для того, чтобы решить пример на компьютере, надо составить программу. Мне очень захотелось вспомнить программирование, и я составила программу для решения этого примера. Пока не буду сообщать вам ответ. Попробуйте и вы себя в программировании на этом примере.

Мне удалось также преобразовать программу для игры Калах, и она уже работает на моём компьютере (смотрите страницу http://klassikpoez.boom.ru/komp/kalah.htm). Если у вас есть интерпретатор языка Basic (QBASIC), то вы тоже можете сыграть с компьютером по этой программе.

Сейчас я занимаюсь преобразованием программы для игры “Угадай слово” (смотрите эту игру на странице http://klassikpoez.boom.ru/lingvist.htm). Она уже почти готова и, возможно, скоро появится на сайте.

***

Добавление: (22 июня 2008 г.)

Наконец-то есть отклик! Прислал письмо Артём. Он написал, что программирование – его хобби, и он решил попробовать выполнить первое задание. И с удивлением обнаружил, что его программа нашла 7 решений вместо 2. Он прислал мне все 7 решений. Я посмотрела, почему же у Артёма получилось 7 решений, а у меня только 2. Всё оказалось просто: я при составлении программы считала, что в промежуточных результатах умножения все цифры Х , стоящие слева, значимые, то есть не равны 0. Посудите сами: разве при умножении столбиком вы пишете слева незначащие нули? Конечно, нет. Однако, наверное, об этом всё-таки надо было сказать в условии задачи. Поэтому моя программа “потеряла” 5 решений. Приведу одно из “потерянных” решений:

               32145

               52648

               -----------

            257160

         128580

      192870

   064290

160725

----------------------

1692369960

Обратите внимание на промежуточный результат 064290, он начинается с цифры 0. Все 5 решений, найденных Артёмом помимо 2 правильных решений, имеют промежуточный результат с цифрой ноль слева, то есть с незначащим нулём. В двух правильных решениях таких промежуточных результатов нет, все промежуточные результаты являются шестизначными числами.

***

Хочу сказать об игре “Калах”. Я нашла в Интернете эту игру для современного компьютера. То есть она с красивой картинкой игрового поля, ходы делаются щелчком мышки и т. д. Есть только один недостаток по сравнению с моим вариантом программы: не ведётся счёт игры. Предлагаю участникам школы юного программиста сделать современную программу, подобную той, что я нашла в Сети (к сожалению, я забыла ссылку; ну, при желании вы найдёте игру сами по её названию). Очень интересно играть по современной программе! Конечно,  намного лучше, чем по моей старенькой программе, которая была сделана ещё на старой ЭВМ. Однако уровень игры компьютера в моей программе ничуть не хуже, чем в современной программе. Я легко обыгрываю компьютер. Надо сделать программу, по которой компьютер будет играть ещё “сильнее”. Вот, например, дали мне ссылку на шахматную программу. Я её скачала и стала играть. В этой программе компьютер непобедим! Мне ни разу не удалось выиграть или хотя бы сыграть вничью.

***

И последняя информация, очень важная для тех, кто учится программированию. Язык Бейсик давно устарел. Сейчас много новых языков программирования. Участвуя в одном научном форуме, я узнала об одном из таких языков – PARI/GP. На этом форуме даётся курс лекций по этому языку. Я тоже хочу его освоить. Приглашаю и вас, уважаемые посетители этой школы юного программиста, заняться изучением этого языка. Вот я вам и учителя нашла замечательного! Читайте его лекции, задавайте вопросы. Курс интерактивный, что очень удобно. Вот ссылка на курс лекций:

http://lib.mexmat.ru/forum/viewtopic.php?t=14229

А это цитата из письма автора лекций, который любезно согласился мне помогать в освоении языка:

      “Вот прямая ссылка на PARI/GP под Windows:

      http://pari.math.u-bordeaux.fr/pub/pari/windows/Pari-2-3-3.exe  (размер

      около 7 MB)”.

По этой ссылке вы сможете скачать программное обеспечение для языка. Я пока ещё не сделала этого, жду подключения к быстрому Интернету.

Присоединяйтесь! Будем изучать язык вместе.

А главное, не забывайте писать мне.

Артёму большое спасибо за письмо. Теперь я точно знаю, что в школе побывал хоть один ученик.

***

Я продолжаю писать программы пока на языке Бейсик. Это мне нужно для построения магических квадратов. Всех, кто увлекается магическими квадратами, приглашаю читать мою книгу “Волшебный мир магических квадратов”:

http://www.klassikpoez.narod.ru/glavnaja.htm

Хотя это и устаревший язык, но он помог мне построить много-много магических квадратов, самые большие имеют порядок n=120. Хотите посмотреть на такие магические квадраты? Зайдите сюда:

http://www.klassikpoez.narod.ru/mk/id120.TXT

http://www.klassikpoez.narod.ru/mk/sov120.TXT

 

Н. Макарова

 

       Пишите мне!

Рейтинг@Mail.ru

На главную страницу

 

Сайт создан в системе uCoz