Разбивка суммы по номиналам. Часть 2

В предыдущей заметке разбивка производилась без учетка количества купюр каждого номинала. Теперь настало время исправить этот недочет:
Continue reading

Posted in C++, Исходный код | Tagged | Комментарии отключены

Интерпретатор Brainfuck

В качестве упражения для изучения языка Python решил написать вот такой интерпретатор.
Continue reading

Posted in Python, Исходный код | Tagged , | Комментарии отключены

Обертка для DLL win32

Все мы в своих программах используем сторонние библиотеки. В большинстве случаев, вместе с dll файлом поставляет соответствующий lib файл, который можно прилинковать и получить статическую зависимость. Иногда такого файла нет, или необходимо подгружать dll динамически. Тогда приходиться вручную создавать класс-обертку для вызовов методов экспортируемых из библиотеки.
Continue reading

Posted in C++, Исходный код | Tagged , , , , | Комментарии отключены

Форматирование std::string

Для форматирования строки можно использовать много методов, начиная с sprintf, и заканчивая std::stringstream вместе с boost::format. Каждый из них имеет как недостатки так и достоинства.
Continue reading

Posted in C++, Исходный код | Tagged | Комментарии отключены

SpaceEater

Простейшая вертикальная стрелялка. При написании ставил цель систематизировать знания полученные при изучении sdl, а также возможность встраивания в свои проекты поддержки скриптов (в частности здесь используется LUA для генерации астеройдов).
Continue reading

Posted in C++, Исходный код | Tagged , , | Комментарии отключены

Смена кодировки текста через winapi

Недавно озаботился проблемой: как правильно преобразовывать текст из одной кодриовки в другую? В unix’ах для этого существует iconv, который представляет простой интерфейс:
iconv(откуда, куда, текст).
Напрямую преобразовать текст из кодировки UTF8 в 1251 под windows не представляется возможным. Но это можно сделать через промежуточный шаг:
UTF8 -> UTF16 -> CP_1251
Continue reading

Posted in C++, Исходный код | Tagged , | Комментарии отключены

Установка прав на каталог

Столкнулся с необходимостью устанавливать права на доступ к каталогу. Изучение WINAPI и различных форумов привело к простой последовательности:

  1. Получаем SID пользователя;
  2. Заполняем структуру EXPLICIT_ACCESS;
  3. Получаем DACL объекта, к которому хотим изменить доступ;
  4. С помощью метода SetEntriesInAcl() устанавливаем поля в полученном DACL:
  5. Записываем модифицированный DACL;

Continue reading

Posted in C++, Исходный код | Tagged , | Комментарии отключены

Импорт/экспорт реестра.

Данная утилита написанна по одной простой причине — на некоторых конфигурация банкоматов, политикой безопасности запрещено выполнение reg.exe и regedit.exe, что весьма напрягает, особенно учитывая, что доступ к самому реестру есть. Данное обстоятельство и стало причиной написания простенькой утилиты для работы с реестром. Файлы от reg.exe не принимаются по одной простой причине — они сохраняются в UTF16, а когда  я это заметил, было лень переделывать.

Continue reading

Posted in C++, Исходный код, Утилиты | Tagged , | Комментарии отключены

Разбивка суммы по номиналам.

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

Continue reading

Posted in C++, Исходный код | Tagged | Комментарии отключены

Тетрис.

Решил как-то познакомится с библиотекой SDL, а под это дело можно и простенкую игрушку написать. Вышла даже кросс-платформенной. Собирать под виндой mingw, под линем gcc. Также захотелось опробовать некоторые вкусности будущего стандарта C++1x, так что сборка идет с ключом —std=c++0x.

Скачать (бинарника для линукса сами соберете)

tetris-src.zip

tetris-win32.zip

Posted in C++, Исходный код | Tagged , | Комментарии отключены