Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
sergiy
6 лет назад

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

Поизменяем немного программу прошлого примера. Когда счёт идет на тысячи элементов слишком накладно хранить столь мелкие числа в integer достаточно будет типа short. А если немного подумать можно расход памяти уменьшить ещё в два раза. Это правда усложнит вычисления и читаемость программы, но знать о такой возможности надо.

Ещё поговорим здесь о константах. Константа это как бы такая переменная, но не переменная)) Переменная - изменяется, константа не изменяется, а в остальном они похожи. Обычно имя константы пишут ЗАГЛАВНЫМИ_БУКВАМИ. Это просто такая договорённость чтобы по тексту их всегда видеть. Если помните цвет задаётся кодом от 0 до 15, а помните какой цвет какому коду отвечает? Это можно было задать константами (BLACK=0...GRAY=7...WHITE=15)

Зачем константа в нашем примере? Если мы хотим запустить программу несколько раз, с разным количеством точек, нам придется три раза менять это количество просматривая весь текст программы.

А используя константу достаточно будет изменить её начальное значение лишь раз. Вас не насторожило слово изменить? Изменить константу? Уточню - значение константы не изменяется в процессе работы программы. Тут ещё одна выгода будет - если попытаться изменить константу компилятор об этом предупредит и одной ошибкой в программе будет меньше.

const N as integer = 100

Сто разноцветных точек смотрятся не хуже 100 000)))

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="" 

3
437.939 GOLOS
На Golos с October 2016
Комментарии (4)
Сортировать по:
Сначала старые