75662

Операції над стрічками

Лабораторная работа

Информатика, кибернетика и программирование

Визначення позиції початку в стрічці s слова з номером n. Потім вводиться ціле число номер слова у рядку що буде перевірятись. Далі у циклі шукається позиція слова під введеним номером. За умовами необхідно врахувати усі символироздільники що розташовані між словами наприклад кома і пробіл крапка і пробіл два пробіли тощо.

Украинкский

2015-01-24

170.05 KB

2 чел.

Міністерство  освіти  і  науки України

Вінницький національний технічний університет

Інститут інформаційних технологій та комп’ютерної інженерії

Кафедра ПЗ

Лабораторна робота №2 варіант №9

з дисципліни Алгоритми та структури даних

Виконала: ст. гр. 1 ПІ-13б                            Лілик Л. С.

Перевірив:                                                       Власюк В. Х.

Вінниця, 2013

Тема: операції над стрічками.

Мета: набуття практичних навичок застосування операцій над стрічками.

Завдання:

Розробити процедури та функції які забезпечують виконання операції вказаних в завданні. В контрольному прикладі передбачити всі можливі комбінації вхідних параметрів (нульова довжина, вихід за межі стрічки і т.п.), в тому числі і неправильні.

Варіант № 9.

Визначення позиції початку в стрічці s слова з номером n.

Хід роботи

Програма починається з того, що користувач вводить бажаний рядок будь-якого змісту латинськими буквами.  Потім вводиться ціле число – номер слова у рядку, що буде перевірятись. Далі за допомогою стандартний функцій для роботи з рядками , як strtok(), рядок розбивається на лексеми. Ці лексеми записуються у окремий масив. Кількість елементів масиву і буде дорівнювати кількості слів. Роздільниками вважаються символи «пробіл» та .,?!:;_-'  . Підраховується кількість слів. Якщо введене число більше нуля і менше або дорівнює кількості знайдених слів, а рядок не порожній, то обчислення продовжуються. Інакше ж виводиться повідомлення про помилку.

Далі у циклі шукається позиція слова під введеним номером. За умовами необхідно врахувати усі символи-роздільники, що розташовані між словами (наприклад кома і пробіл, крапка і пробіл, два пробіли тощо). Тому пошук позиції з використанням складеного масиву слів недоречний, адже втрачаються символи-роздільники, що йдуть підряд. Для цього необхідно «підрахувати слова» вручну. Початком нового слова буде вважатись символ попередній символ якого дорівнює одному з роздільників, а сам він не роздільник. Таким чином обчислення доходять до шуканого слова. При кожній ітерації розглядається наступний символ, і номер символу збільшується на 1. В результаті початком шуканого слова й буде номер ітерації у циклі, тобто останній символ, що розглядається.

Складність алгоритму

Складність алгоритму дорівнює ( 7n+14 )Т, де Т - час виконання.


Блок-схема алгоритму

Лістинг програми

#include <iostream>

#include <string.h>

#include <stdio.h>

using namespace std;

void WordIndex()

{

   char st[100];

  cout<<"\nInput the string:\n\n";

  gets (st);

  int n=0;

  cout<<"\nInput number of the word: " ;

  cin>>n;

  char DELIMITERS[] = " .,?!:;_-'";

  int i=1;

  int wordNum=0;

  char arr[30][100];

  char *p;

  p=strtok(st, DELIMITERS); // splitting string into tokens

  while (p!=0)  // filling the array by tokens

  {

      strcpy (arr[wordNum], p);

      p=strtok(NULL, DELIMITERS);

      wordNum++;

  }

  cout<<endl;

if (n>0&&n<=wordNum&&strlen(st)!=0)

{

  int wordNum2=0;

  while (wordNum2<n-1)

  {

       if(!strchr(DELIMITERS, st[i])&&(strchr(DELIMITERS, st[i-1])!=0))

                  wordNum2++;

       i++;

  }

   int wordPos=i;

 сout<<"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nWord number "<<n<<"  is:  " <<arr[n-1];

  cout<<"\nPosition of the "<<n<<" word is: "<<wordPos;   cout<<"\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";

}

  else

   {

       cout<<"ERROR!";

       //WordIndex();

   }

}

int main()

{

  cout<<"\nLab #2 variant 9.\nKseniia Ivchenko\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;

   WordIndex();

   cout<<endl;

   return 0;

}


Результат виконання

Висновки

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


 

А также другие работы, которые могут Вас заинтересовать

85261. ОПРЕДЕЛЕНИЕ СТОИМОСТИ РАБОТ ПО ПОДТВЕРЖДЕНИЮ СООТВЕТСТВИЯ В ЗАКОНОДАТЕЛЬНО РЕГУЛИРУЕМОЙ СФЕРЕ 23.13 KB
  Стоимость работ по подтверждению соответствия конкретного вида продукции, систем качества, систем управления качеством, систем управления окружающей средой, персоналом устанавливается назначенным органом по оценке соответствия согласно с этими Правилами и утверждается их руководством.
85262. УПРАВЛЕНИЕ КАЧЕСТВОМ ПРОДУКЦИИ И УСЛУГ 43.67 KB
  Создание и внедрение системы качества Создание и внедрение системы менеджмента качества в организации предусматривает следующие шаги: признание высшим руководством организации качества как жизненно важного элемента его деятельности; осознание того что разработка системы качества является...
85263. КОНТРОЛЬ РАБОТ (АУДИТ) ПО УПРАВЛЕНИЮ КАЧЕСТВОМ ПРОДУКЦИИ И УСЛУГ 41.29 KB
  Аудит - систематический независимый и задокументированный процесс получения доказательств аудита и объективного их оценивания с целью определения ступени исполнения критерия аудита. Доказательства аудита протоколы изложенные факты или другая информация что является существенной для критериев аудита и может быть проверена.
85264. ПРОГНОЗИРОВАНИЕ УРОВНЯ КАЧЕСТВА ПРОДУКЦИИ 30.55 KB
  Успешная деятельность любой организации возможна лишь в условиях четкого прогнозирования уровня качества продукции и планирования его улучшения. Прогнозирование качества продукции это научно обоснованная информация об уровне качества продукции в будущем.
85265. ПОРЯДОК ПРОВЕДЕНИЯ СЕРТИФИКАЦИИ ПРОДУКЦИ, ПРОЦЕССОВ И УСЛУГ 46.73 KB
  Порядок проведения сертификации продукции в общем случае включает: представление и рассмотрение заявки на сертификацию продукции; анализ предоставленной документации; принятие решения по заявке с указанием схемы модели сертификации; обследование...
85266. ПРОВЕДЕНИЕ СЕРТИФИКАЦИОННЫХ ИСПЫТАНИЙ И КОНТРОЛЬ ЗА ИХ ПРОВЕДЕНИЕМ 64.8 KB
  Сертификационные испытания - элемент системы мероприятий направленных на подтверждение соответствия фактических характеристик продукции требованиям НД с целью получения достоверной информации при взаимоотношениях между изготовителями и потребителями продукции.
85267. СЕРТИФИКАЦИЯ ПЕРСОНАЛА И ИНСПЕКЦИОННЫЙ НАДЗОР 43.51 KB
  Получение сертификата компетентности аудитора является непременным условием для осуществления им работ в области подтверждения соответствия продукции, услуг, систем управления качеством, систем управления безопасностью пищевых продуктов (на основании принципов НАССР), отраслевых систем управления качеством...
85268. Социальное взаимодействие. Социальные движения и изменения 178 KB
  Социальные движения и социальные изменения. Продолжая углублять и развивать социальные связи индивиды вступают в кратковременные соприкосновения в ходе которых они обмениваются какими-либо ценностями материальными предметами информацией и т.
85269. Професійна робота з текстовим та табличним процесорами 1.31 MB
  Засоби автоматизації процесу створення документа. Під час створення текстового документа у Word він автоматично розбивається на сторінки відповідно до тих значень властивостей які встановлені в цьому документі. Сторінка як обєкт текстового документа має такі властивості: розмір сторінки розміри полів...