Void main ()

{

string s1("лесная королева"), s2("лe"), s3("корова");

cout << "s1= " << s1 << endl;

cout << "s2= " << s2 << endl;

cout << "s3= " << s3 << endl;

if (s2.compare(s3) > 0) cout << "s2 > s3 " << endl;

if (s1.compare(7, 4, s3) < 0)

cout << "s1[7-10] < s3 " << endl;

if (s1.compare(7, 4, s3, 0, 4 ) == 0)

cout << "s1[7-10] == s3[0-3] " << endl;

}

 

Результат роботи програми:

 

s1= лесная королева

s2= ле

s3= корова

s2 > s3

s1[7-10] < s3

s1[7-10] == s3[0-3]

 

7.2.4 Отримання характеристик рядків

 

У класі string визначено декілька функцій-членів, що дозволяють отримати довжину рядка і об'єм пам'яті, займаний об'єктом:

 

size_type size() const; // Кількість елементів рядка

size_type length() const; // Кількість елементів рядка

size_type max_size() const; //Максимальна довжина рядка

size_type capacity() const;//Об'єм пам'яті, займаний рядком

bool empty() const; //Істина, якщо рядок порожній

Завдання

 

Всі завдання необхідно реалізувати з використанням класу string.

Перелік варіантів завдань:

Варіант 1

У заданому тексті замінити слово А на слово В (довжини слів не співпадають).

Варіант 2

У заданому тексті визначити кількість слів.

Варіант 3

Маємо відомість, яка складається із 10 прізвищ. Знайти і надрукувати порядкові номера прізвищ, які задаються.

Варіант 4

У слові "лірика" після кожного складу вставити склад "ма".

Варіант 5

У тексті забрати зайві пропуски між словами, залишивши по одному.

Варіант 6

У тексті вставити між словами замість одного два пропуски.

Варіант 7

У заданому слові переставити літери в алфавітному порядку.

Варіант 8

У текстовій змінній "71D523СЕ8" поставити числа у порядку зменшення.

Варіант 9

Розділити заданий текст на рядки. У формі розділення рядків використаний символ %.

Варіант 10

У виразі "МІСЯЧНИЙ ШЛЯХ" переставити місцями слова.

Варіант 11

Дано слово "АЛГОРИТМ". Вивести його на друк у зворотному порядку.

Варіант 12

Скільки разів у тексті зустрічається задане слово? (Слова розділені пропусками).

Варіант 13

У слові "ЕЛЕКТРОНІКА" переставити літери у порядку зворотному алфавіту.

Варіант 14

Надрукувати найдовше слово із заданого тексту "Ціль статистики зосереджується в наданні фактів у найбільш стислій формі".

Варіант 15

У текстовій змінній "2С35ІА4" представити числа у порядку зростання.

Варіант 16

Існує відомість, яка складається із 10 прізвищ. Вивести на друк цю відомість у алфавітному порядку.

Варіант 17

В аналізуючому слові всі голосні літери видалити та на їх місце поставити пропуск. Вивести на дисплей початкове слово та результат перетворень.

Варіант 18

У слові "ЛІТЕРАТУРА" кожну голосну літеру виділити символом ".

Варіант 19

У заданому слові змінити місцями першу і останню літери. Вивести на екран дисплея початкове слово і результат.

Варіант 20

У заданому тексті видалити частину тексту , яка взята в дужки. (Разом з дужками).

 

 


РОЗДІЛ 8. ШАБЛОНИ КЛАСІВ

8.1. Загальна характеристика динамічних структур даних

 

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

Пам'ять під дані виділяється або на етапі компіляції (в цьому випадку необхідний об'єм має бути відомий до початку виконання програми, тобто заданий у вигляді константи), або під час виконання програми за допомогою операції new. У обох випадках виділяється безперервна ділянка пам'яті.

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

Динамічні структури широко застосовують і для ефективнішої роботи з даними, розмір яких відомий, особливо для вирішення задач сортування, оскільки впорядковування динамічних структур не вимагає перестановки елементів, а зводиться до зміни вказівок на ці елементи. Наприклад, якщо в процесі виконання програми потрібно багато разів упорядковувати великий масив даних, має сенс організувати його у вигляді лінійного списку.

Елемент будь-якої динамічної структури даних є структурою (struct), що містить принаймні два поля: для зберігання даних і для вказівки. Полів даних та вказівок може бути декілька. Опис простого елементу виглядає таким чином:

 

struct Node

{

Data d; // тип даних Data має бути визначений раніше

Node *р;

};

 

Розглянемо реалізацію основних операцій з динамічними структурами даних (стек, черга, лінійний список).

 

Стек

 

Стек реалізує принцип обслуговування LIFO (last in – first out, останнім прийшов, – першим пішов). Стек можна представити як стопку книг, які складаються одна на одну. Так першою буде взята остання книга в стопці.

Нижче приведена програма, яка формує стек з п'яти цілих чисел (1, 2, 3, 4, 5) і виводить його на екран. Функція поміщення елементу в стек називається push, а вибірки – pop. Вказівка для роботи із стеком (top) завжди посилається на його вершину.

#include <iostream>

using namespace std;

 








Дата добавления: 2014-12-26; просмотров: 848;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.01 сек.