Метка «с++»

Привет Хаброжители!
У нас вышла книга Алекса Эллайна «C++. От ламера до программера»

image

Прототип: Jumping into C++ Paperback – April 19, 2013

Эта книга предлагает быстрый способ изучить принципы объектно-ориентированного программирования и освоить практику программирования на языке С++. Издание может использоваться как учебный курс для начинающих осваивать C++, так и удобный справочник для тех, кто хочет быстро найти актуальную информацию о том или ином аспекте языка. Автор книги Алекс Эллайн — профеcсиональный разработчик на С++, создатель популярнейшего ресурса Cprogramming.com, предлагает собственную уникальную методику обучения программирования, которая позволит вам в кратчайшие сроки стать экcпертом разработки на C++.
Читать полностью »

в 20:07, , рубрики: Песочница, метки: , , , ,

Доброе время суток, Хабраобщество.

Сегодня я попробую вам рассказать как написать программу на Malbolge.

Ровно две недели назад я узнал о языке Malbolge из сериала «Элементарно». Как раз в этот период мне в Университете поручили написать статью и провести исследование на выбранную мной тему, не задумываясь я выбрал Malbolge (о чем скоро пожалел). Забравшись в интернет я нашел не так много информации, точнее я нашел только описание специфики и историю. Мне пришлось разбираться со всем самому. При многочисленных попытках я нашел довольно много нюансов которыми я хочу поделиться с вами, также я представлю свой код программы.

Информацию и специфику языка вы может найти перейдя по ссылке вики.

Вики дает две программы, которые печатают «Hello, world.»:

(=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**hKs_dG5[m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@986543W10/.R,+O<

Второй вариант:

('&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=<M:9wv6WsU2T|nm-,jcL(I&%$#"`CB]V?Tx<uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj«Fhg${z@>

Если попытаться заменить любой символ в программе она перестает работать. Прична скрывается в шифровании, то есть любой символ входящий в программу шифруется с помощью формулы (m [c] + c-33)% 94, эту формулу нам предоставляет вики. Когда прогрма загружается в память, она просматривает каждый символ и если хотя бы один из них не является командой файл отключается. Для примера возьмем фрагмент из первого варианта программы:

(= <`: 9876Z4321UT.-Q + *)

Этот фрагмент равен:

jpp <ppppp <pppp << pp <ppp

Теперь подробнее. На входе в программу строка делится на символы каждый из них соответствует номеру в таблице ASCII, и именно этот номер играет решающую роль в шифровании данных, например: (= 40 (по коду ASCII), так что в формулу передается число 40 (напомню, нумерация всех символ начинается с 0): (40 + 0-33)% 94 = 0,07, остаток от деления используется как индекс в следующей строке:

+ b (29e * j1VMEKLyC}) 8 & m # ~ W> qxdRp0wkrUo [D7, XTcA „lI.v% {gJh4G \ — = O @ 5`_3i <? Z '; FNQuY] szf $! BS / | t: Pn6 ^ Ha

Под индексом 7 находится символ j. Операция шифрования проводится до окончания входного рядка.Дали согласно зашифрованного файла выполняется команда.

Отступление. Не все это вы прочтете в этой статье будет отвечать вики, так как я пишу с своих наблюдений и опыта.

Итак, вернемся к выполнению программы. Если таким методом зашифровать всю строку мы получим следующее:
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js