Записки программиста Программирование и не только

20Май/100

std::cin.ignore

Мой частоиспользуемы трюк:

 std::cin.clear();
 std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');

по очистке входящего потока от мусора, при подключении заголовка windows.h работать переставал и компилятор страшно ругался:

1>d:\documents\visual studio 2010\projects\oop_lab1_cpp\oop_lab1_cpp\oop_lab1_cpp.cpp(52): warning C4003: not enough actual parameters for macro ‘max’
1>d:\documents\visual studio 2010\projects\oop_lab1_cpp\oop_lab1_cpp\oop_lab1_cpp.cpp(52): error C2589: ‘(’ : illegal token on right side of ‘::’
1>d:\documents\visual studio 2010\projects\oop_lab1_cpp\oop_lab1_cpp\oop_lab1_cpp.cpp(52): error C2143: syntax error : missing ‘)’ before ‘::’
1>d:\documents\visual studio 2010\projects\oop_lab1_cpp\oop_lab1_cpp\oop_lab1_cpp.cpp(52): error C2059: syntax error : ‘)’

Выход оказался, как всегда, прост:

#include <windows.h>
#undef max
#include <limits>
Метки записи: Нет комментариев
30Мар/104

КМП поиск (Алгоритм Кнута Морриса Пратта)

Разъяснения напишу позже.

int Find (string str, string templ)
{
	int  i, j, strlen, templlen;

	strlen = str.length();
	templlen = templ.length();
	int *d = new int[templlen];
	// Вычисление префикс-функции
	i = 0;
	j = -1;
	d[0] = -1;
	while (i < templlen-1)
	{
		while ((j >= 0) && (templ[j] != templ[i]))
			j = d[j];
		++i;
		++j;
		d[i] = (templ[i] == templ[j]) ? d[j] : j;
	}
	// Поиск строки
	for (i = 0, j = 0; (i < = strlen-1) && (j <= templlen-1); ++i,++j)
		while ((j >= 0) && (templ[j] != str[i]))
			j = d[j];
	delete[] d;
	// Если совпадение есть - возвращаем позицию,
	// если нет - -1
	return (j == templlen) ? i - j : -1;
}

Вызывается:

	Find(*str, *tmpl)

Где:

	string* str;	//строка, в которой ищем
	string* tmpl;	//строка, которую ищем
Метки записи: , 4 Комментарии
30Дек/090

String to DateTime DateTime to String

.NET Framework, C#

String to DateTime

 // String to DateTime
 String MyString;
 MyString = "1999-09-01 21:34 PM";
 //MyString = "1999-09-01 21:34 p.m.";  //Depends on your regional settings

 DateTime MyDateTime;
 MyDateTime = new DateTime();
 MyDateTime = DateTime.ParseExact(MyString, "yyyy-MM-dd HH:mm tt",
                                  null);

DateTime to String

 //DateTime to String
 MyDateTime = new DateTime(1999, 09, 01, 21, 34, 00);
 String MyString;
 MyString = MyDateTime.ToString("yyyy-MM-dd HH:mm tt");
1Дек/090

Ошибка линковки при объявлении класса

Итак, в процессе моего знакомства с таким замечательным инструментом как класс столкнулся с проблемой. Точнее даже с двумя.

Метки записи: Нет комментариев
11Ноя/090

Из динамического массива в статический.

Итак, есть задача:
Дана динамическая структура данных. Количество элементов заранее неизвестно. Необходимо передать данные в функцию, которая вообще понимает только статические массивы.

Метки записи: Нет комментариев
10Окт/092

Пирамидальная сортировка

Сортировка:
1. Быстрая сортировка (англ. quicksort)
2. Сортировка Шелла (англ. Shell sort)

Поиск:
1. Прямой поиск (он же Простой, он же Алгоритм грубой силы)
2. Алгоритм Бойера-Мура-Хорспула

И новенькое:
Пирамидальная сортировка

20Сен/090

Минимальное OpenGL приложение

По лабораторным в институте должен быть OpenGL. Решил попробовать заранее и был неприятно удивлен отсутсвием полного описания как всё-таки скомпилировать программу (самих исходников вагон и маленькая тележка). Тем более под VS2008.

Трудности разрешил успешно :)

20Сен/092

Алгоритм Бойера-Мура-Хорспула

Сортировка:
1. Быстрая сортировка (англ. quicksort)
2. Сортировка Шелла (англ. Shell sort)

Поиск:
1. Прямой поиск (он же Простой, он же Алгоритм грубой силы)

И новенькое:
Алгоритм Бойера-Мура-Хорспула

Метки записи: , 2 Комментарии
13Сен/090

Прямой поиск

И вновь алгоритмы. Тут уже есть:
1. Быстрая сортировка (англ. quicksort)
2. Сортировка Шелла (англ. Shell sort)

Добавим алгоритмов поиска. Итак:

Прямой поиск.

Метки записи: , Нет комментариев
4Сен/090

Быстрая сортировка

Продолжаю публиковать алгоритмы. Уже есть Сортировка Шелла

А сегодня у нас: Быстрая сортировка (англ. quicksort)