Возможно ли?

miha1l_YT_

Участник
Регистрация
16 Май 2023
Сообщения
6
Я хочу сделать топы без массивов, но не знаю можно ли как-то закодить, хотя бы с костылями
 

maxim34a

Эксперт
Регистрация
10 Июн 2023
Сообщения
601

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
370

maxim34a

Эксперт
Регистрация
10 Июн 2023
Сообщения
601
ну смотри. у нас всего есть три вида массивов:
массив
односвязный список
двусвязный список
односвязный и двусвязный список хранят ссылки на следующий элемент - они нам не подойдут; у нас просто негде хранить эти ссылки. Нам нужен массив обычный, последовательный. и нам нужен какой то разделитель элементов. предлагаю такой синтаксис
элемент|элемент|элемент
нужен ещё парсер. да все я придумал щас вот распишу схему
--------------------------------------------------------------------------------------------------------------------------------------------------
делаешь цикл или функцию с поиском по этой строке. в чем суть...
для начала инициализируешь массив. присваиваешь динамической переменной текстовое значение, которое будет первым элементом в массиве. название динам переменной МАССИВ.
Тебе нужно итерировать по каждой букве, пока не дойдешь до |. | будет нашим индексом в этом массиве. когда будешь писать код что то типа такого:
установить значение переменной(какая-то переменная1; индекс в массиве) -> запустить функцию(найтиЭлементВМассиве) -> дальше используешь где хочешь текстовую переменную "element"
----------------------------------------------------------------------------------------------------------------------------------------------------
теперь функция найтиЭлементВМассиве. она будет цикличная. в функции у тебя будет переменная число i и число seps(separators). ты делаешь типа
получить букву в строке по индексу(динам переменная МАССИВ, число i)
добавить к строке букву(к строке "element"(это динам переменная) добавляешь букву которую получил по индексу)
эту букву проверяешь если она равна |
если seps == какая-то переменная1
если равна
удаляешь последнюю букву с переменной "element"
если не равна
seps + 1
установить значение переменной("element" и пустота тип крч удаляешь текст)
i + 1
повторить функцию
 
Последнее редактирование:

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
370
ну смотри. у нас всего есть три вида массивов:
массив
односвязный список
двусвязный список
односвязный и двусвязный список хранят ссылки на следующий элемент - они нам не подойдут; у нас просто негде хранить эти ссылки. Нам нужен массив обычный, последовательный. и нам нужен какой то разделитель элементов. предлагаю такой синтаксис
элемент|элемент|элемент
нужен ещё парсер. да все я придумал щас вот распишу схему
--------------------------------------------------------------------------------------------------------------------------------------------------
делаешь цикл или функцию с поиском по этой строке. в чем суть...
для начала инициализируешь массив. присваиваешь динамической переменной текстовое значение, которое будет первым элементом в массиве. название динам переменной МАССИВ.
Тебе нужно итерировать по каждой букве, пока не дойдешь до |. | будет нашим индексом в этом массиве. когда будешь писать код что то типа такого:
установить значение переменной(какая-то переменная1; индекс в массиве) -> запустить функцию(найтиЭлементВМассиве) -> дальше используешь где хочешь текстовую переменную "element"
----------------------------------------------------------------------------------------------------------------------------------------------------
теперь функция найтиЭлементВМассиве. она будет цикличная. в функции у тебя будет переменная число i и число seps(separators). ты делаешь типа
получить букву в строке по индексу(динам переменная МАССИВ, число i) -> добавить к строке букву(к строке "element"(это динам переменная) добавляешь букву которую получил по индексу) -> эту букву проверяешь если она равна | -> если равна { если seps == какая-то переменная1 -> если равна { удаляешь последнюю букву с переменной "element" } если не равна { seps + 1 -> и установить значение переменной ставишь в переменную "element" типа пустоту хз, крч удаляешь текст который добавил в эту динам переменную -> i + 1 -> повторить цикл } если не равна ниче не далаешь
такие дела что то такое для поиска в массиве. щас через пару минут перепишу чтобы красиво было
напомню, у текста лимит в 1024 байт
лучше делать через переменные и %var()%
 

maxim34a

Эксперт
Регистрация
10 Июн 2023
Сообщения
601
напомню, у текста лимит в 1024 байт
мало тебе что ли?
я не знаю что это. в мое время такого не было.
ну и как ты это сделаешь нормально через переменные? а у меня решение автоматическое. прям щас переписывай на С и пользуйся.
 

miha1l_YT_

Участник
Регистрация
16 Май 2023
Сообщения
6
ну смотри. у нас всего есть три вида массивов:
массив
односвязный список
двусвязный список
односвязный и двусвязный список хранят ссылки на следующий элемент - они нам не подойдут; у нас просто негде хранить эти ссылки. Нам нужен массив обычный, последовательный. и нам нужен какой то разделитель элементов. предлагаю такой синтаксис
элемент|элемент|элемент
нужен ещё парсер. да все я придумал щас вот распишу схему
--------------------------------------------------------------------------------------------------------------------------------------------------
делаешь цикл или функцию с поиском по этой строке. в чем суть...
для начала инициализируешь массив. присваиваешь динамической переменной текстовое значение, которое будет первым элементом в массиве. название динам переменной МАССИВ.
Тебе нужно итерировать по каждой букве, пока не дойдешь до |. | будет нашим индексом в этом массиве. когда будешь писать код что то типа такого:
установить значение переменной(какая-то переменная1; индекс в массиве) -> запустить функцию(найтиЭлементВМассиве) -> дальше используешь где хочешь текстовую переменную "element"
----------------------------------------------------------------------------------------------------------------------------------------------------
теперь функция найтиЭлементВМассиве. она будет цикличная. в функции у тебя будет переменная число i и число seps(separators). ты делаешь типа
получить букву в строке по индексу(динам переменная МАССИВ, число i)
добавить к строке букву(к строке "element"(это динам переменная) добавляешь букву которую получил по индексу)
эту букву проверяешь если она равна |
если seps == какая-то переменная1
если равна
удаляешь последнюю букву с переменной "element"
если не равна
seps + 1
установить значение переменной("element" и пустота тип крч удаляешь текст)
i + 1
повторить функцию
Теперь бы разобратся
 

onn512

Эксперт
Регистрация
2 Май 2023
Сообщения
165
переменной
символов. байт != символ, потому что символ может занимать от 1 до 4 байт
лучше делать через переменные и %var()%
эхх, а раньше были технические кролики...
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
370
мало тебе что ли?
этот массив очень мизерный будет
ок
символов. байт != символ, потому что символ может занимать от 1 до 4 байт
ок
эхх, а раньше были технические кролики...
я оцелотов юзал
 

maxim34a

Эксперт
Регистрация
10 Июн 2023
Сообщения
601
на мл онлайн выше тыщи не поднимается)
ДЕЖУРНО НАПОМИНАЮ: Apollo Guidance Computer, компьютер, который устанавливали в ракеты имел на борту всего 4 килобайта памяти(4096 байтов). ТЕМ ВРЕМЕНЕМ современным МЛ программистам не хватает 4 КИЛОБАЙТ для массивов на строках.

кстати если уж так хочется то можно данные в массиве сжимать.
 
Последнее редактирование:

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
370

maxim34a

Эксперт
Регистрация
10 Июн 2023
Сообщения
601
ок, сделаю топы с такими массивами в зс, в котором 3к акков зарегано
ЗС сколько? года 3? за 3 года 3к аккаунтов, тем более раньше на К+ можно было зайти сразу же.
ну по принципу винрара, хотя он тут сработает скорее всего плохо. повторящиеся паттерны(Xx _ YT и тд) сохраняешь где-то и используешь их айдишники. допустим есть куча аккаунтов maxim34a maxim34b maxim34c maxim34d, ты сохраняешь maxim34 и потом просто используешь айди этого.
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
370
ЗС сколько? года 3? за 3 года 3к аккаунтов
боже мой, старче, не играешь на мл
зс вайпнули, переписали с нуля
код зса теперь не в 20 этажей, а в 6
он буквально с нуля сделан
ну по принципу винрара, хотя он тут сработает скорее всего плохо. повторящиеся паттерны(Xx _ YT и тд) сохраняешь где-то и используешь их айдишники. допустим есть куча аккаунтов maxim34a maxim34b maxim34c maxim34d, ты сохраняешь maxim34 и потом просто используешь айди этого.
как будто проще уже массивы на переменных сделать
 

maxim34a

Эксперт
Регистрация
10 Июн 2023
Сообщения
601
Сверху