Практикум по "ооп и сд" За специалност кн, група 6, седмица 7 Задача 1



Дата30.05.2017
Размер31.84 Kb.
Задачи за практикум по “ООП и СД”

За специалност КН, група 6, седмица 7

Задача 1.
Да се реализират:

  1. функция int lengthOf(char *s), която връща дължината на даден низ.

  2. функция void reverse(char *s), която обръща даден низ, като работи директно върху него.

  3. функция char* copyAndReverse(char *s), която приема низ, създава негов дубликат, обръща дубликата и го връща.

Забележка: Нямате право да ползвате offset operator [].
Вход

От стандартния вход се въвежда символен низ (използвайте gets).


Изход

На отделни редове на стандартния изход се извеждат резултатите от функциите.




Пример 1

Вход:

yorythecat


Изход:

10

tacehtyroy



tacehtyroy


Пример 2

Вход:

i sam
Изход:

5

mas i


mas i


Автор: Свилен Марчев

Задача 2.
Създайте функция със следния прототип:
int split(char *str, char *result[]);
която разделя по знака SEPAR низа str на масив от низове. Функцията работи върху самия низ str и записва в result само указатели. Връща броя на записаните в result низове (т.е. token-ите на str). Символът SEPAR е известен по време на компилация, т.е. може да се дефинира с #define.
Забележка: Нямате право да ползвате offset operator [].
Вход

От стандартния вход се въвежда един единствен ред (може да ползвате функцията gets). Ограничения: Низът няма да съдържа повече от 1000 фрагмента, разделени със SEPAR.


Изход

На стандартния изход се записват един под друг, оградени в двойни кавички, фрагментите на str.




Пример 1

Вход:

^^^^ as mariya 6718_&* ^&9 &jJJ


Изход:

"^^^^"


"as"

"mariya"


"6718_&*"

"^&9"


"&jJJ"
В този пример SEPAR е ‘ ’.

Пример 2

Вход:

Sonisphere_Bulgaria___2011,_Sofia Rocks


Изход:

"Sonisphere"

"Bulgaria"

"2011,"


"Sofia Rocks"
В този пример SEPAR е ‘_’.

Автор: Свилен Марчев

Задача 3.
Дадени са два низа S и T. Да се намери последното срещане на низа T в низа S и да се замени с обратния на T.

Забележка: Нямате право да ползвате offset operator [].


Вход

От първия ред на стандартния вход се въвежда низът S, а от втория – низът T. Ограничения: 1 ≤ |S| ≤ 1000, 1 ≤ |T| ≤ 1000.


Изход

На стандартния изход се извежда (евентуално) промененият низ S.




Пример 1

Вход:

missiissiipi

issii
Изход:

missiiissipi




Пример 2

Вход:

pointerpointer

pointer
Изход:

pointerretniop




Автор: Свилен Марчев

Задача 4.
Дадена е квадратна матрица ANxN от цели числа. Създайте функции със следните прототипи:

  1. void transpose(int **А, int N) – транспонира дадена матрица.

  2. void addOne(int **A, int N) – прибавя единица към всеки елемент на матрицата.

  3. void applyOperation(int **A, int N, void (*oper)(int **A, int N)) – взема матрица като аргумент и изпълнява дадена операция върху нея (операцията се подава като указател към функция).

Програмата ви трябва да въведе матрицата A. След това, използвайки applyOperation, да увеличи с единица всеки нейн елемент и накрая да я транспонира.


Вход

От първия ред на стандартния вход се въвежда числото N. Следват N реда, на всеки от които са записани по N цели числа, разделени с по един интервал. Ограничения: 1 ≤ N ≤ 1000.


Изход

На стандартния изход се извежда матрицата A след трансформациите.




Пример 1

Вход:

3

0 1 2



3 4 5

6 7 8
Изход:



1 4 7

2 5 8


3 6 9

Автор: Свилен Марчев


База данных защищена авторским правом ©obuch.info 2016
отнасят до администрацията

    Начална страница