Фантазия для Genteeльмена
31.03.09Мой Компьютер, №03 (434), 08.01.2007
Быстрый старт
Допустим, мы уже скачали и установили дистрибутив Gentee (www.gentee.ru). Начнем. Что нам дается? Текстовая база для редактирования программ и конструирования проектов, компилятор в бинарный код, утилита ge2exe, компилирующая файл студии в исполняемое приложение, справочный файл, оптимизатор программ на Gentee, папка с исходниками разнообразных программ, демонстрация связи Gentee c C++ и Delphi, папка с прилагающимися библиотеками языка. Я скачал еще и библиотеку random, чтобы в случае надобности сгенерировать случайное число (www.gentee.narod.ru).
Давайте напишем малюсенькую программку, демонстрирующую возможности языка:
func main<main>
{
str hello
hello=»Hello»
hello.write(«hello.txt»)
shell(«hello.txt»)
}
Сохраните программу в папке Мои документы. Теперь нажмем Запустить.
Перед нами промелькнет черное окошко, а потом откроется ваш текстовый редактор по умолчанию, в котором увидим заветное слово «Hello». А если мы заглянем в Мои документы, то увидим там новый файл hello.txt с этим самым «Hello». Обратите внимание, нам не понадобилось никаких файловых переменных! По случаю еще замечу, что текстовый тип в Gentee обладает рядом особых возможностей, не свойственных языкам подобного рода.
А теперь давайте займемся чем-нибудь более серьезным. Напишем программу, которая вычисляет 200 чисел ряда Фибоначчи начиная с пяти и записывает все это в файл. Я приведу код программы и разберу его:
func w(str txt)
{
@txt.char2oem()
}
func main<main>
{
uint a,b,c,d
str f,enter
a=1
b=2
c=3
f=»»
w(«Для начала работы программы нажмите Entern»);
conread(enter)
fornum d,200
{
a=b
b=c
c=a+b
f=f+»(c)
«//именно так, пропустив строчку Enter’ом!!!
@»(c)n»
}
f.write(«C:/fibonacci.txt»)
shell(«C:/fibonacci.txt»)
w(«nДля выхода из нее нажмите любую клавишу»)
getch()
}
Первая функция переводит текст в кодировке Windows‑1251 в кодировку консоли — CP‑866, или OEM. Имя этой функции сокращено до минимума — w. На ней мы останавливаться не будем — во-первых, она уже была описана в статье Дмитриева, во-вторых, ничего существенного или совсем уж непонятного в ней нет.
Вторая функция, главная. Сначала я описываю переменные a, b, c и d типом uint (целочисленные переменные). Потом описываю переменные f (для работы с текстовым файлом) и enter (для имитации нажатия Enter’а. К подобным фокусам мне приходилось прибегать в одной из версий Pascal’я, где нет функции вроде getch() и приходится все набирать собственноручно). Дальше я объявляю значения переменных a, b и с, а значение f устанавливаю нулевым. После чего вывожу текст с помощью уже описанной вспомогательной функции, а затем требую нажать Enter для продолжения. Оператор fornum приказывает выполнить вычисление чисел Фибоначчи до двухсот чисел.
Что касается комментария о пропуске строчки, имеется в виду вот что. После вычисления все запишется в текстовый файл. А текстовый редактор — существо недалекое, специального символа n не понимает и заменяет его квадратиком :-). Вот тут-то и пригодятся пресловутые особые возможности текстового типа. Я просто снес строчку, и то же самое происходит в текстовом редакторе. А что значит сама конструкция? Что к текстовой переменной f последовательно добавляются все вычисленные числа из ряда. Зачем? Смотрим дальше.
А дальше у нас знакомая уже конструкция записи текста в файл под названием fibonacci.txt. Просто в текстовую переменную записался весь ряд чисел, чтобы потом можно было создать файл и записать числа Фибоначчи туда. Следующая строка, соответственно, открывает файл.
Почему некоторые числа (в конце) не соответствуют действительности? Вспомним, что Gentee — не LISP, и с большими числами управляется с трудом. Поэтому концовки попросту сокращаются.
Заключительные строки пояснять не буду. Надеюсь, все понятно.
Настройки Gentee
Ну, с синтаксисом вроде бы разобрались. Теперь приступим к настройкам главного рабочего звена Gentee — Gentee Studio. Программа фриварная, работать с ней весело и просто. Слева — окошко проекта, справа — собственно, текст программы. Этот текст редактируется по ходу развития событий.
Давайте настроим программу под себя:
- вы только-только установили дистрибутив. Всюду текст на ненашем языке, хоть и знакомом, но неуютном… что ж, поправим положение! Заходим в Options, потом в Language и выбираем Russian (Русский) (рис. 1). Не надо перезапускать программу. Настройки активируются сами;
- зайдем в Запуск и кликнем на пункте Сохранять активный файл. Если выбрана эта опция, то при запуске программа сперва сохраняется, а потом лишь выполняется;
- выделение синтаксиса. Лезем в настройки. Они расположены в меню Свойства. Осматриваемся. Что же мы видим?
Пункт Общие. Здесь только одна опция — Сохранять открытые файлы при выходе. По умолчанию она вроде бы активирована. Если нет, активируйте! Очень пригодится.
Пункт Редактор. Начнем с обыкновенных настроек текста. Установим шрифт по вкусу, размер табуляции…
Подпункт Gentee файлы (рис. 2). Установим маску файлов *.g и *.gw — будет удобнее работать в дальнейшем.
Идем дальше. Переходим в Цвета подсвечивания. Предлагаю подобрать цвета по своему вкусу и титуловать текущую цветовую схему вашим именем/ником/прозвищем.
Пункт Панели. Этот пункт ясен, как глаза пользователя, который провел ночь в постели, а не у монитора:
- Главная панель — это та панель, где содержится информация о проекте, файловая система (мини-браузер), поисковик и менеджер окон. Лично я ее отключаю. Проектов я никогда не создаю, а для других задач ее присутствие необязательно. Лучше сэкономить место для кода и текста;
- Панель открытых файлов — это та панель, в которой висят названия всех файлов, открытых сейчас. НИ В КОЕМ СЛУЧАЕ НЕ ВЫКЛЮЧАЙТЕ! Очень полезна.
Показательный пример
Рекомендую начать вот с чего. Давайте зайдем на www.gentee.narod.ru, откроем пункт Библиотеки и скачаем библиотеки cconsole (потом просто раскрываем архив, переносим библиотеку — файл с расширением .g — в Gentee/Lib и запускаем ее. Появится новый файл с расширением .ge. Теперь исходный файл библиотеки переносим куда-нибудь в другое место, а на файл .ge мы будем ссылаться в своих программах).
Запускаем Gentee Studio и набираем:
include: «cconsole.ge»
func main <main>
{
cconsole con
con.Name(«Заголовок программы».char2oem() )
con.Show()
//con.Full() — если раскомментировать, то можно запустить программу на полный экран
con.Color(7,1)
con.Cls()
con.Cursore(10,0)
getch()
}
Запускаем (рис. 3). Что же мы видим? Синее окошко консоли, в заголовке которого красуется не пустотелое D:genprogsishodnikizub.g (к примеру), а назначенный вами текст. А теперь попробуем модифицировать:
include: «cconsole.ge»
func main <main>
{
cconsole con
con.Name(«Заголовок программы».char2oem() )
con.Show()
con.Color(7,1)
con.Cls()
con.Cursore(10,0)
con.Print(«Hello,world!nПривет, мир!».char2oem())
getch()
}
Как вам? Это уже больше похоже на полноценную программу!
Понравилось? Идем дальше. А дальше у нас…
Еще один показательный пример
Попробуем поработать с буфером обмена. По сути, достаточно подключить только библиотеку clipboard.ge, которая идет в комплекте со стандартным набором Gentee, и активировать в ней одну из функций — доставания и всовывания из/в clipboard :-).
Вот пример:
include: «clipboard.ge»
func w(str txt)
{
@txt.char2oem()
}
func main <main>
{
uint bufer
str data
w(«Введите текстовую строку: «)
conread(data)
data.oem2char()
bufer=clipboard_settext(data)
w(«Строка записана!»)
getch()
}
Теперь запустите эту программу. Введите строку, а потом включите текстовик и нажмите Вставить. Что вы получите? Свою строку (рис. 4). Следовательно, она в буфере обмена. Ну как?
Вывод
Gentee — язык вполне приличный, а по функциональности, имхо, он может потягаться и с языками программирования «наивысшего» уровня, такими как C++, C#, Delphi. Gentee отлично подойдет как для выполнения индивидуальных задач на компьютере программиста, так и для широкого распространения/использования.
З.Ы. Вопросы, замечания и все такое кидайте на e‑mail.
Всеволод ЛОЙЗОВ
Web-droid редактор
вологість:
тиск:
вітер:
Вселенная Fallout в 2024 году: от игр к сериалу
Как вселенная игр Fallout получила через десятки лет свой сериал и вновь попала на пик популярности
В Android 15 появится беспроводная зарядка через NFC-модуль
Google NFC Андроид беспроводная зарядка разработкаGoogle работает над добавлением поддержки беспроводной зарядки через модуль NFC, которым мы привыкли оплачивать покупки.
Защищённые смартфон и планшет Samsung — Galaxy XCover 7 и Galaxy Tab Active 5, уже продаются в Украине
Samsung защита планшет смартфонSamsung анонсировала в Украине защищённые смартфон и планшет — Galaxy XCover 7 и Galaxy Tab Active 5. Их уже можно купить в Украине