русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Варіанти завдань до лабораторної роботи №4


Дата додавання: 2014-11-28; переглядів: 1216.


1. Видалити|знищити,віддалити| зайві пропуски|прогалини| у введеному|запровадженому| рядку символів.

2. Порахувати|полічити| частоту появи букв|літер| в рядку, якщо вважати|лічити| рівними букви|літери| у верхньому і нижньому регістрах|реєстрі|.

3. У рядку слів всі слова, що складаються з чотирьох букв|літер|, видалити|знищити,віддалити|, а слова, що складаються з п'яти букв|літер|, замінити словом “комп’ютер”.

4. Ввести|запровадити| рядок символів і перетворити, якщо можна, на число типу int або float за наступним|слідуючим| правилом: рядок “123.45” перетвориться на число 123.45; рядок 123 - в число 123.

5. Задано масив рядків, що складаються з трьох символів. Відсортувати рядки за першою буквою|літері| у спадному порядку|ладі|.

6. Вводити|запроваджувати| масив рядків, довжина яких не більше певного числа. Знайти рядок найменшої довжини і вирівняти всі рядки до довжини найменшого рядка.

7. Уводять|запроваджується| рядок символів. Символи, які оточені пропусками|прогалинами|, називаються словами. Необхідно знайти в рядку слова, які починаються з однієї і тієї ж самої букви|літери|, і поміняти їх місцями.

8. Вводять|запроваджується| рядок слів (слово - рядок символів, які оточені пропусками|прогалинами|). Відсортувати слова за першою буквою|літері|.

9. Вводитять|запроваджується| рядок символів, в якому можуть бути символи верхнього і нижнього регістрів|реєстру|. Необхідно символи верхнього регістра|реєстру| замінити символом " * ".

10. Вводять|запроваджується| масив рядків символів. Необхідно знайти рядок найбільшої довжини і збільшити всю решту рядків в масиві до довжини найбільшого рядка, використовуючи символ " ! ".

11. У рядку слів з|із| букв|літер| латинського алфавіту знайти слова, в яких немає букв|літер|, що повторюються.

12. У рядку слів з|із| букв|літер| латинського алфавіту знайти слова, в яких перша буква|літера| слова входить ще хоча б раз.

13. У рядку слів з|із| букв|літер| латинського алфавіту знайти найкоротше симетричне слово.

14. Уводять|запроваджується| рядок символів, серед яких є хоча б один символ " : ". Необхідно записати в зворотному порядку|ладі| символи, які зустрінуться до першого " : " і підрахувати|підсумувати| кількість символів між символами " :", якщо таких декілька.

15. Уводять|запроваджується| рядок слів (слово - рядок символів, які оточено пропусками|прогалинами|). Необхідно знайти слова, що складаються тільки|лише| з букв|літер| і лише з|із| цифр.

16. Уводять|запроваджується| масив рядків довільної довжини (не більше заданого числа). Необхідно відсортувати слова в неспадному порядку|ладі| за останнім символом в рядках і за довжиною рядків.

17. Використовуючи послідовність рядків (кожний рядок – деяке число в двійковій системі числення|обчислення|), скласти рядок з|із| чисел десяткової системи числення|обчислення| (і-е число відповідає і-му рядку початкової|вихідної| послідовності).

18. Написати рекурсивну функцію визначення довжини рядка.

19. Задано словник слів. Необхідно визначити, чи можна у введеній|запровадженій| послідовності символів виділити слова із|із| словника.

20. У вигляді рядка символів задано арифметичний вираз|вираження|. Обчислити|обчисляти,вичислити| його, задавши значення відповідних змінних.

21. Написати функції додавання|добавки| підрядка і видалення|віддалення| підрядка в будь-якому вказаному місці заданого рядка.

22. Задано два рядки слів. Перетворити їх на один за принципом:
Задано: рядок1слово1 слово2 слово3 ..
рядок2слово1 слово2 слово3 ..
Одержати|отримати|: ряд1слово1 ряд2слово1 ряд1слово2 ряд2слово2 ….

23. Задано словник-перекладач у вигляді двовимірного масиву рядків. Написати програму, що дозволяє одержати|отримати| переклад|переведення,переказ| уведеного|запровадженого| рядка.

24. Скласти програму, яка підраховує|підсумовує| частоту повторення двобуквених поєднань в заданому тексті. Вивести тільки|лише| ті з|із| них, частота повторення яких не менше ніж 10%.

25. Задано масив рядків довільної довжини. Визначити, чи є|з'являється,являється| симетричною матриця символів, побудованих|споруджених| з|із| рядків.

26. Написати програму “демовірус|”: уводять|запроваджується| рядок символів,|розпочинаючи,зачинаючи| з|із| середини рядка букви|літери| починають|розпочинають,зачинають| “падати вниз” - спочатку одна, потім дві й т.д. При цьому рядок, поступово стискаючись|стискуючись|, в кінці|у кінці,наприкінці| зовсім зникає.

27. Задано масив слів – словник. Користувач вводить|запроваджує| слово пошуку по одній букві|літері|. Після|потім| кожної введеної|запровадженої| букви|літери| слова на екрані відображається|відображується| список всіх можливих слів продовжень зі|із| словника, або з'являється|появляється| повідомлення|сполучення| про відсутність даного слова.

28. Задано рядок слів довільної довжини. Сформувати динамічний масив рядків слів певної довжини. Упорядкувати одержаний|отриманий| масив.

29. Задано масив рядків довільної довжини. Відформатувати даний масив рядків за шириною поля і посторінково.

30. Задано масив рядків і словник. Визначити входження слів словника до заданого масиву як по вертикалі, так і по горизонталі.

ЛАБОРАТОРНА РОБОТА № 5
РОБОТА З|ІЗ| АБСТРАКТНИМИ ТИПАМИ ДАНИХ(АТД|): STRUCT, UNION, ENUM

Мета. Отримати тримати практичні навички навички побудови та застосування абстрактних типів даних на С++

Короткі теоретичні відомості

Структуру використовують для об'єднання різнотипних даних в одиночну іменовану змінну. Компоненти структури мають індивідуальні імена.

Загальний|спільний| синтаксис визначення структурного типу даних (шаблона АТД|):

struct таг _ структури

{

список членів структури, які можуть мати будь-який стандартний або абстрактний тип даних

};

В описі обов'язковий оператор « після|потім| «}». Далі як тип виступає|вирушає| таг_структури, тобто, щоб оголосити змінну, яка має організацію даних як шаблон структури, необхідно написати:

таг_структури ідентифікатор;

або таг_структури* ідентифікатор;

, якщо змінна повинна містити|утримувати| адресу змінної структурного типу.

Звернення до членів структури відбувається|походить| по імені, яке складається з імені змінно структурного типу та імені члена з|із| шаблону структури.

Приклад. Задати масив структур, кожна з яких містить|утримує| поля: ім’я_клієнта і сума_виплат.

# include < iostream. h>

void main ()

{ struct client {

char name [15];

int sum;

} ; //визначенняструктурного типу client

client mas [10]; //виділення пам’яті під 10 елементів типу client

int i, num; // кількість осіб

cin >> num;

for (i = 0; i < num; i++)

{ cout << ¢¢ \ n введіть ім’я ¢¢

cin >> mas [i].name; //звернення до поля name

cout << “ суму виплат”;

cin >> mas [i].sum; //звернення до поля sum

} }

З|із| прикладу|зразка| видно|показно|, що для звернення до члена структури використовують оператор ¢¢.¢¢ (прямого доступу до членів абстрактного типу даних).

Якщо змінна є|з'являється,являється| покажчиком на структуру (містить|утримує| адресу структури), то до члена структури можна звернутися|обернутися| за допомогою оператора непрямого доступу до члена структури

Покажчик_на_структуру –> ім’я_члена_структури

або за допомогою оператора прямого доступу з використанням оператора переходу за адресою «*»:

|(*Покажчик_на_структуру). ім’я_члена_структури

Організація даних у формі списку дозволяє зберігати елементи списку в різних|перебувають| ділянках пам'яті, які, на відміну від масивів, не |поруч| знаходяться поряд. Для створення|створіння| елемента списку використовують структурний тип даних. При цьому одним з членів структури є|з'являється,являється| покажчик на створений структурний тип. Фактично цей покажчик містить|утримує| адресу |наступного| або попередній елемент списку.

Приклад.Написати програму створення|створіння|, перегляду|проглядання| і видалення|віддалення| елементів списку, організованого за принципом LIFO(«last input, first output»«останній прийшов,- перший пішов»).

#include <iostream.h>

#include <process.h>

#include <conio.h>

//визначення перелічуваного типукористувача boolean

enum boolean{true, false};

//визначення шаблону елемента списку за допомогою типу struct

struct stack{

char s;

stack* p;

};

 

//оператор typedef дозволяє створити тип користувача Stk, який є

//аналогом стандартного типу stack*

typedef stack* Stk;

Stk stk;

 

//функція reset() повертає порожній покажчик (адресу) вершини стеку,

//тобто відбувається “скидання” стеку

Stk reset()

{

return NULL;

}

 

//функція push(char c, Stk top) заносить символ с, що введено, на вершину //стеку, утворюючи новий елемент списку типу stack и повертає його //адресу як адресу першого елемента в списку

Stk push(char c, Stk top)

{ stk=new stack;

if(stk==NULL){ cout<<"\n Помилка під час розподілу пам’яті";

exit(1);}

stk->s=c;

if(top!=NULL) stk->p=top;

return stk;

}

 

/*функція pop( Stk top) виштовхує елемент вершини, видає символ , що зберігається в вершині, на екран, замінює адресу попередньої вершини адресою вершини, що йде за нею, а місце, що було розподілено під попередню вершину, звільняється (повертається до “купи” вільної пам’яті)*/

Stk pop( Stk top)

{ cout<<top->s;

stk=top;

top=top->p;

delete stk;

return top->p;

}

 

//функція empty( const Stk top) перевіряє, чи є стек порожнім, повертає

// константу false, якщо це так

boolean empty( const Stk top)

{ return (boolean)(top==NULL);

}

 

void main()

{ clrscr();

Stk top;

char str[]="fghg hfgt dtdt dtyd dtyf";

int i=0;

cout<<str<<endl;

top=reset();

while(str[i])

top=push(str[i++],top);

while(!empty(top))

top=pop(top);

getch();

}

Об'єднання (union) – це похідний тип від типу struct. Синтаксис визначення об’єднання такий же самий, як і у|в,біля| структур, за винятком того, що ключове|джерельне| слово union замінюється struct. Ці типи відмінні|розрізняти| за способом зберігання членів АТД|. Члени об'єднання сумісно| використовують пам'ять, тобто їх значення перекриваються. При цьому під об'єднання виділяється об'єм|обсяг| пам'яті, достатній для зберігання найбільшого члена об'єднання. Члени структур зберігаються подібно до масивів (послідовно у вигляді лінійної структури відповідно до їх оголошення всередині шаблону структури).

Ключове|джерельне| слово| enum використовують для оголошення особливого типу з|із| набором іменованих цілих констант, названих константами перелічуваного типу, або константами переліку|перерахування| (enumerators). Перелічуваний тип даних має структуру оголошення таку ж саму, як struct, або union. Перелічувані константи за умовчанням нумерують значеннями, починаючи|розпочинаючи,зачинаючи| з|із| нуля. Допускається явне призначення|присвоєння| цілого значення в перелічуваному наборі|перерахування| у вигляді|виді|:
перелічувана_константа=значення.

 


<== попередня лекція | наступна лекція ==>
Приклад виконання лабораторної роботи №4 | Приклад виконання лабораторної роботи №5


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн