О калькуляторе TI-76 и одной пользовательнице

Небольшое отступление. Французская система среднего образования состоит из

  • "материнской" школы (école maternelle), частичный аналог детского сада для для детей с неполных 3 до 5-6 лет
  • начальной школы (école élémentaire), 6-10 лет
  • коллежа (collège), аналог средних классов школы, 11-14 лет, после которой выпускники получают специальное свидетельство (brevet)
  • лицея (lycée), 15-18 лет. Это аналог не только старших классов общеобразовательной школы, но и профессиональных училищ (соотношение примерно 1,4 к 1), включая сельскохозяйственные и военные

Начиная с уровня коллежа, то есть среднего школьного возраста, в обучении используются калькуляторы. На нашем сайте уже приводился пример таблицы рекомендованных моделей калькуляторов HP для разных уровней. Однако, модели TI более популярны, что отражает и наполнение полок магазинов.

Героине нашего репортажа, Маше, ученице лицея, недавно исполнилось 14. О том, что она сама пишет для своего калькулятора программы я узнал случайно и, конечно, заинтересовался подробностями. Маша пользуется моделью TI-76, точнее "TI-76.fr". Министерство образования следит за локализацией англоязычной продукции тем более в процессе формирования нового гражданина.

Отличия моделей с окончанием на ".fr" касаются не только локализации клавиатуры и сообщений, но даже многих функций встроенного языка программирования. Например, на картинке слева в программе видна функция EffEcr(), что является локализацией "effacer écran" оригинальной функции ClrScr(). К счастью, многие системные функции оставлены "как есть", а некоторые, вроде pause, просто имеют одинаковое написание в обоих языках.

По отзывам непосредственных пользователей, TI-76 - модель менее функциональная, чем даже TI-82, не говоря уже о его старших собратьях. Прежде всего, дело касается ввода символьной информации. Если в TI-82 можно войти в режим "альфа", превращающий цифровую клавиатуру в алфавитную, то в TI-76 имеется лишь выбор символов из таблицы, по которой приходится перемещаться стрелками. Так называемая "виртуальная клавиатура", только без стилуса и на нетактильном экране (см. на фото справа).

Мнение родителей.
Калькулятор нужен для школы и был приобретен по причине относительно невысокой цены. В розницу, в крупных магазинах, можно найти предложение около 50 евро, тогда как более функциональные модели приближаются к 100 и выше. Но мы не видим необходимости в таких моделях, потому что в доме уже имееются компьютеры.

Тем не менее, Маша преодолевает препятствия, чинимые виртуальной клавиатурой и умудряется программировать прямо "на борту", вводя программы длиной около 100 строк. Небольшая хитрость заключается в максимально коротких именах переменных и лаконичных сообщениях. Одну из таких программ мы публикуем ниже с разрешения автора.

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

Программа представляет собой несложный двумерный динамический симулятор полета корабля в границах некоторого коридора. Необходимо уклоняться от летящих навстречу звездочек.

В тексте добавлены курсивом комментарии, которые вводить не нужно. Они помогут адаптировать программу к вашей модели, если она не понимает французский язык. Сам же текст живо напомнил локализованные языки программирования в позднесоветской России: на Рапире мы тоже писали операторы по-русски, а прикладные программисты "1С:Бухгалтерии" до сих пор имеют возможность использовать родной язык.

* * *

На традиционный вопрос "ваши творческие планы", Маша поделилась желанием написать программу для игры в "Питон" ("Удав и кролики"), в настоящее время работает над алгоритмом.

Со своей стороны редакция сайта "Кон-тики" обещала выделить юной программистке имеющийся в распоряжении калькулятор TI-82 вместе с печатной документацией, чтобы автор мог сосредоточиться на задаче, и не мучиться со вводом символов с виртуальной клавиатуры.

PROGRAM: EVITE
EffEcr  'аналог ClrScr
OUTPUT(2,4,"EVITE LES") 'Остерегайтесь
OUTPUT(3,5,"ETOILES!") 'ЗВЕЗД!
1000->J
Pause
Lbl 1
EffEcr
FOR(A,1,8)
  OUTPUT(A,5,"*")
  OUTPUT(A,12,"*")
END
entAléat(6,11)->E 'случайное число из диапазона
1->F
entAléat(6,11)->G
2->H
9->B
OUTPUT(8,B,"^")
Pause
OUTPUT(F,E,"*")
OUTPUT(H,G,"*")
0->S
Repeat ((F=8) et (E=B)) ou ((H=8) et (G=B))
codeTouche->K 'получение кода нажатой клавиши
IF K≠0
THEN
OUTPUT(8,B," ")
(K=26)
B+(K=26)-(K=24)->B
IF B<6
11->B
IF B>11
6->B
IF K=26
B+0.5
IF K=24
B-0.5
OUTPUT(8,B,"^")
END
OUTPUT(F,E," ")
OUTPUT(H,G," ")
F+1->F
H+1->H
IF F>8
THEN
S+1->S
entAléat(1,2)->F
entAléat(6,11)->E
END
IF H>8
THEN
S+1->S
1->H
entAléat(1,2)->H
entAléat(6,11)->G
END
OUTPUT(F,E,"*")
OUTPUT(H,G,"*")
END
EffEcr
OUTPUT(4,5,"SCORE:") 'Результат
OUTPUT(4,11,S)
IF J&ne;1000
THEN
OUTPUT(5,1,"DERNIER SCORE:") 'Последний результат
OUTPUT(5,15,J)
END
S->J
Pause
EffEcr
Menu("RECOMMENSER?","OUT",1,"NON",2) 'Начать снова?Да-нет
Lbl 2
EffEcr
OUTPUT(1,1," ")

Комментарии

У вас чудесный сайт, но я только хочу добавить что учусь уже в лицее,
и этот калькулятор (а точнее ti-82) просят купить только там,
в колледже совсем другие, несовершенные...

Быстро же идет время! Исправил "коллеж" на "лицей".

Маша, требуются ли в коллеже именно программируемые калькуляторы или можно обойтись каким-нибудь попроще? И еще вопрос: требования в устной форме от учителей или они где-то записаны?

Не совсем понял, TI-76.fr выдают или надо самим покупать?

Не выдают, пока, по крайней мере.

Кстати, похожая программа под названием road с той же скоростью, что и на ПМК крутилась у нас на ДВК-2 в далеком 1989-м. И строк там на паскале было поболее. Но персональный компьютер ДВК стоил, как автомобиль.

У нас тоже не выдают. Хотя в школе выдается много чего.

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

В журнале "Наука и жизнь" №12 за 1990 год была напечатана программка на бейсике "Землемерка" для МК-85, являющаяся упрощенным вариантом "Удава". Правда, бейсик там не такой как в TI-76, а сам текст очень компактный, но какие-то детали алгоритма подсмотреть можно.

> Министерство образования следит за локализацией англоязычной продукции тем более в процессе формирования нового гражданина
Вот-вот. Обратите внимание: французское государство воспитывает новых французов, заботится об их самосознании и качестве образования, потому что понимает, что это будущее их нации. Чем в это время занимается министерство образования РФ? Русских воспитывает, будущее для них готовит? Как бы не так. У нас же "многонацианальное" государство, из русских здесь делают безграмотную, безродную и безликую массу.

Результат налицо, не надо углубляться в какие-то дебри русского национального самосознания, достаточно посмотреть на отношение тех же современных работников сферы информационных технологий к отечественным разработкам: восприятие одно - если русское, значит априори убогое, отсталое и негодное ни для чего. Посмотрите, к примеру, какой дикостью им кажется русский язык в качестве лексической базы языка программирования. Вырожденное поколение. Что дальше? А дальше уже некуда, это дно, о которое Россия разобьётся, теперь уже раз и навсегда.

ClrHome
OUTPUT(2,6,"BEWARE")
OUTPUT(3,6,"STARS!")
1000→J
Pause 
Lbl 1
ClrHome
FOR(A,1,8)
OUTPUT(A,5,"*")
OUTPUT(A,12,"*")
END
randInt(6,11)→E
1→F
randInt(6,11)→G
2→H
9→B
OUTPUT(8,B,"^")
Pause 
OUTPUT(F,E,"*")
OUTPUT(H,G,"*")
0→S
Repeat ((F=8) AND (E=B) OR (H=8) AND (G=B))
getKey→K
IF K≠0
THEN
OUTPUT(8,B," ")
(K=26)
B+(K=26)-(K=24)→B
IF B<6
11→B
IF B>11
6→B
IF K=26
B+0.5
IF K=24
B-0.5
OUTPUT(8,B,"^")
END
OUTPUT(F,E," ")
OUTPUT(H,G," ")
F+1→F
H+1→H
IF F>8
THEN
S+1→S
randInt(1,2)→F
randInt(6,11)→E
END
IF H>8
THEN
S+1→S
1→H
randInt(1,2)→H
randInt(6,11)→G
END
OUTPUT(F,E,"*")
OUTPUT(H,G,"*")
END
ClrHome
OUTPUT(4,5,"SCORE:")
OUTPUT(4,11,S)
IF J≠1000
THEN
OUTPUT(5,1,"BEST SCORE:")
OUTPUT(5,14,J)
END
S→J
Pause 
ClrHome
Menu("START AGAIN?","YES",1,"NO",2)
Lbl 2
ClrHome
OUTPUT(1,1," ")