Archive for the ‘Техники и алгоритми в C++’ Category
Функция strcpy – копира от един низ в друг
Функцията strcpy е аналог на вградената такава в библиотеката „cstring“. Низът source се копира в низа dest.
void strcpy(char* dest, char const* source) { char* pd = dest; char* ps = (char*) source; while(*pd) *pd++=*ps++; }
Нмиране на най-голям общ делител
Намиране на най-голям делител – алгоритми на С++
- Алгоритъм на Евклид с изваждане
- Алгоритъм на Евклид с остатък от деление
Алгоритъм на Евклид с изваждане
Алгоритъмът е следния: От по-голямото се вади по-малкото число и присвоява получения резултат. Това се изпълнява докато числата са различни. Когато се изравнят двете числа, то това е НОД(a,b).
Пример: NOD(16,12) = NOD(16-12,12)=NOD(4,12)
NOD(4,12) = NOD(4,12-4)=NOD(4,8)
NOD(4,8) = NOD(4,8-4)=NOD(4,4)
NOD(4,4) => 4
Забележете, че задачата винаги има решение и не може да се получи безкраен цикъл!
Итеративно решение на C++:
/** * Функцията за най-голям общ делител */ unsigned int NOD(unsigned int a, unsigned int b) { while(a!=b){ if(a>b) a = a-b; else b = b-a; } return a; }
Функция str_replace
Функция str_replace на C++
Да се напише Функция str_replace на C++, която да търси подниз в даден низ и да го замества с друг такъв!
Решение на C++:
Прочетете остатъка от публикацията »
Универсална функция за сортиране на С++, чрез използване на указател към callback функция за сравнение
Езикът С++ предоставя различни възможности, чрез които да се реализаира унивесалност на дадена функция. Една такава възможност е използването на шаблони (templates), а другиа е наследство от c, при което може да се декларират указатели от функционален тип – указател който ще се насочи към функция с определен прототип (тип на върнат резултат и брой и тип на входните параметри).
Техниката за която ще разгледаме тук ще е чрез указател към функционален тип, или така наречените callback функции.
Прочетете остатъка от публикацията »