Задача 1.Да се дефинира функцията

void replace(char *s,char x, char y)

която заменя всички срещания на символа x в низа s със символа y.

Задача 2. Да се дефинира функцията

void capitalize(char *s)

която прави главни всички малки букви в низа.

Задача 3. Да се дефинира фунцкията

void reverse(char *s)

която обръща даден низ "отзад-напред".

Задача 4. Да се дефинира функцията

bool palindrom(char *s)

която проверява дали даден низ е еднакъв при прочитане отпред-назад и отзад-напред, т.е. дали е симетричн отностно средата си.

При решението с използване на reverse на тази задача е полезно да оставим студентите сами да достигнат до идеята, че е необходимо низа да се изкопира някъде, преди да се обърне. Затова е хубаво задачата да се реши именно във варианта "използвайте reverse".

Задача 5. Да се дефинира функцията

void binary(int x, char *&s)

Която намира двоичния запис на числото x и го връща чрез параметъра s.

Тук е полезно подробно да се обсъди ролята на псевдонима в дефиницията на функцията. Преди да се премине към решаването на задачата е хубаво да се приведът няколко по-прости примера за предаване на аргумент: по стойност, по адрес и по псевдоним, като се обърне специално внимание на разликите и приликите между всяка двойка. Да се поговори също така за физическите ефекти от тези операции (т.е. какво става с паметта). Да се поговори и за специалния случай на масиви, където променливите от тип масив са всъщност указатели към съответния тип данни и веднага да се даде пример със символни низове, които са от тип char*, т.е. указател към символ, с всъщност са масиви.

Последно модифициране: събота, 12 ноември 2011, 17:38