Фантазия для Genteeльмена

  Мой Компьютер, №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.

 

Всеволод ЛОЙЗОВ

Avatar photo
Robo User
Web-droid редактор

Не пропустите интересное!

Підписывайтесь на наши каналы и читайте анонсы хай-тек новостей, тестов и обзоров в удобном формате!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читайте також Read more




Статьи & тестыArticles

Обзор смартфона Oppo A6 Pro: амбициозный Oppo A6 Pro (CPH2799)

Новый смартфон Oppo A6 Pro — телефон среднего уровня с функциональностью смартфонов премиум-класса. Производитель наделил его множеством характеристик, присущих более дорогим телефонам. Но не обошлось и без компромиссов. Как именно сбалансирован Oppo A6 Pro – расскажем в обзоре.


Источники автономного питания для дома: инверторы, аккумуляторы, солнечные панели Invertor

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


НовостиNews
| 18.47
Игровой монитор MSI MAG 345CQRF E20 разрешением 3440×1440 и частотой 200 Гц стоит $200  
MSI MAG 345CQRF E20

MSI представила новый доступный игровой монитор MAG 345CQRF E20, который предлагает ультраширокий дисплей с частотой обновления 200 Гц по цене около $200.

| 16.05
Sony LinkBuds Clip Open — Bluetooth наушники в формате клипсы с защитой IPX4   
Sony LinkBuds Clip Open

Sony LinkBuds Clip Open получили фирменные технологии улучшения звука Sony, включая DSEE и алгоритмы обработки голоса на базе искусственного интеллекта.