23 FreeBASIC - блуждающих точек рой(ещё)

F
freebs
![](https://serey.io/imageupload_data/665c936a8c4cb04b513e65eb07513557712eb1a2) Поизменяем немного программу прошлого примера. Когда счёт идет на тысячи элементов слишком накладно хранить столь мелкие числа в **integer** достаточно будет типа **short**. А если немного подумать можно расход памяти уменьшить ещё в два раза. Это правда усложнит вычисления и читаемость программы, но знать о такой возможности надо. Ещё поговорим здесь о константах. Константа это как бы такая переменная, но не переменная)) Переменная - изменяется, константа не изменяется, а в остальном они похожи. Обычно имя константы пишут ЗАГЛАВНЫМИ_БУКВАМИ. Это просто такая договорённость чтобы по тексту их всегда видеть. Если помните цвет задаётся кодом от 0 до 15, а помните какой цвет какому коду отвечает? Это можно было задать константами (BLACK=0...GRAY=7...WHITE=15) Зачем константа в нашем примере? Если мы хотим запустить программу несколько раз, с разным количеством точек, нам придется три раза менять это количество просматривая весь текст программы. ![](https://i.imgur.com/0i3vodH.png) А используя константу достаточно будет изменить её начальное значение лишь раз. Вас не насторожило слово изменить? Изменить константу? Уточню - значение константы не изменяется **в процессе** работы программы. Тут ещё одна выгода будет - если попытаться изменить константу компилятор об этом предупредит и одной ошибкой в программе будет меньше. `const N as integer = 100` ![](https://i.imgur.com/Wi5nV31.png) Сто разноцветных точек смотрятся не хуже 100 000))) ![](https://i.imgur.com/Drs9pWE.gif) ![](https://i.imgur.com/o2V0HGX.png) ``` screen 19 const N as integer = 100 dim as short x(N),y(N) dim as byte c(N) dim as long i for i=1 to N x(i)=400:y(i)=300:c(i)=int(rnd()*8)+8 next i do for i=1 to N x(i)=x(i)+int(3*rnd()-1) y(i)=y(i)+int(3*rnd()-1) pset(x(i),y(i)),c(i) next i sleep 5 cls loop while inkey="" ```

Comments