суббота, 4 августа 2012 г.

Задачка на логику.

Попробуйте решить задачку, не заходя под кат. Это интересно)



Предположим, что нужно сделать функцию от 4 аргументов (числа одинакового типа), возвращающую наименьшее из них. Без использования switch, не используя if/else более одного раза, не используя циклы и не создавая никаких новых переменных. Выбор языка не принципиален.


вторник, 31 июля 2012 г.

Кириллица в консоли C++

Многим известна проблема с выводом русских (кириллических) символов в консоли. Раньше решалось все с помощью функции ChraToOem(...), в новом же стандарте эта функция как-то затерялась, по этой причине используется небезызвестная С-шная функция setlocale(...). Так вот, я тут нашел неплохую статью, агрегирующую все интересные вещи по этой теме, я просто оставлю ее здесь: клик_сюда

суббота, 21 июля 2012 г.

C++ Шаблонный класс стека

Тут на днях сижу, вспоминаю С++. Решил отработать "стандарты" на прошлых задачках. Вот набросал шаблонный класс стека (велосипед по мотивам std::stack). Тут есть кое-что интересное - динамические структуры (решил не привязываться к std::list и подобным) и внутренние классы.

среда, 18 июля 2012 г.

Точный замер времени (C/C++)

Была как-то задачка по одному предмету: построить график зависимости затраченного времени на некоторую операцию - копирование массива элементов от количества этих элементов. Вот сам алгоритм замера:

#include <windows.h>

void Some_function(void)
{
  LARGE_INTEGER lFrequency, lStart, lEnd;
  double dfTime1;
  QueryPerformanceFrequency(&lFrequency);
  QueryPerformanceCounter(&lStart);
  // ...
  // Замеряемая операция
  // ...
  QueryPerformanceCounter(&lEnd);
  dfTime1 = (double)(lEnd.QuadPart - lStart.QuadPart) / (double)lFrequency.QuadPart;
  }

воскресенье, 25 марта 2012 г.

Умная зарядка Li-Po аккумулятора.

Li-Po или литий-полимерные аккумуляторы привлекают своими качествами многих православных людей. Они нам хорошо знакомы - от батарейки CMOS на материнской плате, до источника питания любого современного сотового телефона. Этот аккумулятор компактен, практически не имеет эффекта памяти (его не обязательно полностью заряжать и полностью разряжать, как это дело обстоит в никелевых аккумуляторах, до боли знакомых бывшим обладателям Nokia 3310 :-) ). Минусы: очень боится механических повреждений, боится полной разрядки и зарядки. Крайнее обстоятельство вынуждает производителей вшивать специальный контроллер, который будет "обрубать доступ" при попытке использовать аккумулятор после порогового значения, либо при попытке его "перекормить". /*В противном случае аккумулятор вздувается, при особом упорстве - дымит, воспламеняется и даже взрывается*/

воскресенье, 4 марта 2012 г.

Maplet for Maple. Маплеты: руководство для начинающих.

По данной теме информации в этом вашем рунете ну просто мизер! Английский, французский, немецкий...на выбор :-) Максимум, на что замахиваются здешние писатели - надергать примеры из руководств и привести несколько своих, особо не комментируя. Да, есть эти самые руководства (исключительно English, недоступный некоторым). Да, есть Maplets Builder (GUI-утилита для создания тех самых "гуёв" для маплетов), который можно скачать на оффсайте кленовых, но для этого нужно иметь лицензионный Мэпл, а он далеко не у каждого. Но нигде не говориться (напрямую) с чего начинать. А структура маплета, скажем так, довольно атипичная для классического штампа языков программирования. Поэтому, я этой сегодняшней статьей хочу заполнить эту самую нишу - начальную, от "Хеллоу ворда" до некоторой полезности расчетов.