Как это выглядит в КОНЦЕПТ: Pascal, Корабль

Данная статья является первой из цикла статей серии "Как это выглядит в КОНЦЕПТ".
Цикл статей посвящен сравнению исходных текстов программ на различных языках программирования с аналогичными программами, написанными на КОНЦЕПТ.
Цель цикла статей - продемонстрировать наглядным образом преимущества и особенности русскоязычного языка программирования КОНЦЕПТ.
В данной статье приведены для сравнения листинги простой программы формирорвания рисунка корабля на Pascal и КОНЦЕПТ.
Обилие формул в примере обусловлено тем, что все координаты рисунка рассчитываются исходя из задаваемых значений для ширины и высоты рисунка.

Сведения об источнике примера программы на Pascal

В данной статье используется пример из книги С.В.Глушков, А.Л.Клевцов. Delphi 2007. Самоучитель. Москва, Издательство АСТ, 2008. Стр. 385-387. Посмотреть обложку книги.

В книге приведены исходный текст (см. ниже в данной статье) и результат работы программы на Pascal для формирования простого рисунка корабля.

Сравнение листингов программы на Pascal и КОНЦЕПТ

Листинг Pascal Листинг КОНЦЕПТ


МАКС_ШИРИНА = 400
МАКС_ВЫСОТА = 300
Корабль

функция Корабль
  память локальный ширина высота
  ширина = [МАКС_ШИРИНА] / 10
  высота = [МАКС_ВЫСОТА] / 10

// Фон рисунка
  присвоить $ТипКисти 1 $ЦветКисти [$синий]  
  рисовать очистить

// Море
  присвоить $ТипКисти 1 $ЦветКисти [$голубой]  
  присвоить $ТипЛинии 1 $ЦветЛинии [$ЦветКисти] $ТолщинаЛинии 1
  рисовать прямоугольник 0 (= [МАКС_ВЫСОТА] - [высота] ) [МАКС_ШИРИНА] [МАКС_ВЫСОТА]  

// Корабль
// Корпус корабля
  $ЦветКисти = [$белый]    
  $ЦветЛинии = [$черный]
  рисовать многоугольник (= 2 * [ширина] ) (= [МАКС_ВЫСОТА] - (= 3 * [высота] ) ) \
    (= 8 * [ширина] ) (= [МАКС_ВЫСОТА] - (= 3 * [высота] ) ) \
    (= 7 * [ширина] ) (= [МАКС_ВЫСОТА] - [высота] ) \
    (= 2 * [ширина] ) (= [МАКС_ВЫСОТА] - [высота] )  
  рисовать прямоугольник (= 3.5 * [ширина] ) (= [МАКС_ВЫСОТА] - (= 5 * [высота] ) ) \
    (= 6 * [ширина] ) (= [МАКС_ВЫСОТА] - (= 3 * [высота] ) )

// Иллюминаторы
  $ЦветКисти = [$желтый]    
  рисовать круг (= 3.9 * [ширина] ) (= [МАКС_ВЫСОТА] - (= 4 * [высота] ) - (= 0.3 * [ширина] ) ) \
    (= 4.5 * [ширина] ) (= [МАКС_ВЫСОТА] - (= 4 * [высота] ) + (= 0.3 * [ширина] ) )
  рисовать круг (= 5 * [ширина] ) (= [МАКС_ВЫСОТА] - (= 4 * [высота] ) - (= 0.3 * [ширина] ) ) \
    (= 5.6 * [ширина] ) (= [МАКС_ВЫСОТА] - (= 4 * [высота] ) + (= 0.3 * [ширина] ) )

// Труба
  $ЦветКисти = [$черный]    
  рисовать прямоугольник (= 4.5 * [ширина] ) (= [МАКС_ВЫСОТА] - (= 8 * [высота] ) ) \
    (= 5 * [ширина] ) (= [МАКС_ВЫСОТА] - (= 5 * [высота] ) )

// Полоса на борту
  $ЦветЛинии = [$красный]
  рисовать линия (= 2 * [ширина] ) (= [МАКС_ВЫСОТА] - (= 2 * [высота] ) ) \
    (= 7.5 * [ширина] ) (= [МАКС_ВЫСОТА] - (= 2 * [высота] ) )

// Полосы на трубе
  $ТолщинаЛинии = 2
  рисовать линия (= 4.5 * [ширина] ) (= [МАКС_ВЫСОТА] - (= 7.5 * [высота] ) ) \
    (= 5 * [ширина] ) (= [МАКС_ВЫСОТА] - (= 7.5 * [высота] ) )
  рисовать линия (= 4.5 * [ширина] ) (= [МАКС_ВЫСОТА] - (= 7 * [высота] ) ) \
    (= 5 * [ширина] ) (= [МАКС_ВЫСОТА] - (= 7 * [высота] ) )
// Надпись на борту
  $ТипТекста = 1    
  $ЦветТекста = [$черный]    
  $ЦветКисти = [$белый]    
  рисовать текстВпрямоугольнике (= 6 * [ширина] ) (= [МАКС_ВЫСОТА] - (= 3 * [высота] ) ) \
    (= 8 * [ширина] ) (= [МАКС_ВЫСОТА] - (= 2 * [высота] ) ) ВАРЯГ
возврат

Что получилось в КОНЦЕПТ

Ниже приведен результат работы программы рисования корабля в системе КОНЦЕПТ.


Рисунок корабля, сформированного программой на КОНЦЕПТ