Программа всей моей жизни

Я расскажу не о глобальной жизненной программе, которую намерен выполнить до печального конца, а о созданной мной программе для компьютера на скромном языке Yabasic. Название продукта "KLADKA906". Предназначен он для организации банка  многорядных кладок из обыкновенных массивов-параллелепипедов. Структуры эти озвучены мной так: "простейшие кладки из двух типов блоков". Была разработана даже теория простейших кладок, найдены способы построения многорядных полос с необходимыми перекрытиями швов между курсами. Был выявлен критерий кладки, позволяющий совокупность элементов с целочисленными размерами трансформировать в реальную конструкцию с реальными физическими характеристиками. Такими, как длина и ширина секции, максимальный вес блоков, нормируемые минимальные перекрытия швов, предельные соотношения габаритов каждого блока и так далее. Число 906 - это количество найденных мной математических структур.Иными словами я создал внушительный банк математических кладок.

Текст проги оказался довольно большим. Если его распечатать, то получится уже солидная книга. Но чтобы понять суть завершенной моей работы, покажу всего один пример. Допустим из девятисот математических кладок мы выбрали вариант номер десять. Это число первым только что пришло в голову. У меня в ящике стола всегда прибрана "Тетрадь для всего", куда я давно закодировал все найденные кладки. Поэтому мне известны необходимые натуральные числа, относящиеся к десятому варианту. В нем два типа блоков. У первого плановые размеры 8 на 6, у второго 8 на 5. Ширина секции B=14, длина L=16. Первый курс скомпонован из рядов шириной 8 и 6. В смежном курсе - шириной 6 и 8. Ряд шириной 8 сложен из трех блоков: 8х6, 8х5 и 8х5.В ряду же шириной 6 - всего два блока длиной 8. Второй курс - это дважды зеркально отраженный первый.

Пишу сходу простенькую программу, позволяющую на мониторе дать чертеж кладки номер десять в плане:

input "N=" nn
ot=600:ob=550
open window ot,ob
window origin "lb"
clear window
clear screen

Здесь я резервировал окно на экране монитора для будущего чертежа.

dim n(10),b(10),n(50),l(10,50)
nnn=10
if nn=nnn then
data 2,8,6,3,6,5,5,2,8,8:t=3:c()
data 2,6,8,2,8,8,3,5,5,6:t=1:c()

Здесь были заданы все целочисленные параметры рядов и блоков в них. Первая строка с командой data задает курс кладки, который будет чертиться толстой линией (толщина t=3). Переход на подпрограмму с() - это конкретное построение линий на мониторе.

sub c()
read n:for i=1 to n:read b(i):next i:for i=1 to n:read n(i)
for j=1 to n(i):read l(i,j):next j:next i
tt=0
for j=1 to n(1):tt=tt+l(1,j):nextхорошо j
sb=0:k=int(500/tt)
for i=1 to n:y1=sb:sb=sb+b(i):y2=sb:s1=0
for j=1 to n(i):x1=s1:s1=s1+l(i,j):x2=s1
a()
next j:next i
end sub
sub a()
u1=k+x1*k:u2=k+x2*k:v1=k+k+y1*k:v2=k+k+y2*k
rectangle u1,v1 to u2,v2
if t=3 then
rectangle u1-1,v1-1 to u2+1,v2+1
rectangle u1+1,v1+1 to u2-1,v2-1
fi
end sub
fi

Чертеж, построенный по этой проге, хорошо виден над заголовком (Рис.а). Прекрасно видны перекрытия швов. И также прекрасно видно, что нигде нет совпадений тонких и толстых линий.

Любой программист среднего уровня может скачать дистрибутив языка yabasic, выполнить установку в своем компьютере, загрузить в окно интерпретатора текст моей программы (без комментариев, естественно) и произвести исполнение.

Но это все прелюдия только. Программа дает некий центр кристаллизации. Дальше должно развиваться творчество. А что если мне понравился этот десятый вариант, но хотелось бы улучшить перекрытия швов (минимальный элемент перекрытий окрашен в зеленый цвет) и изменить ширину В? Логика подсказывает: чем прямоугольник зеленого цвета шире и длиннее, тем показатель монолитности структуры выше. Чтобы число вариантов новых альтернативных структур не зашел за сотню, примем три сильных ограничения: длина L всегда равна 16; наибольший блок - только  8х6; второй блок может быть минимум размером 8х4. В этом случае добавляются еще три варианта: b), c), d). Оказывается,что самый большой зеленый прямоугольник наблюдается у последнего варианта шириной 12. Степень монолитности, следовательно, у него наивысшая. Да и визуально видно, что структура получилась добротной и надежной. Во всяком случае, я именно на ней бы остановился.

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

Так было всегда и так было везде!

14 декабря 2020 г.


Рецензии