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.


 

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

38419. МОДЕРНИЗАЦИЯ УСТАНОВКИ ДЛЯ ОЧИСТКИ ВОДЫ 14.09 MB
  Актуальность работы обусловлена необходимостью производства качественной воды в постоянно возрастающих объемах. Целью диссертационной работы является теоретическое обоснование разработка новой и усовершенствование существующей автоматизированной системы очистки воды. Научная новизна работы заключается в обоснованном выборе режимов работы отчистного оборудования и создании автоматизированной системы управления обеспечивающей производство воды отвечающей высоким требованиям СанПиНа.
38420. Разработка стратегии развития предприятия на примере ИП «СОРОЧИНСКАЯ Л.В.» 475 KB
  Стратегическое планирование дает главное - цель, зная которую руководство фирмы будет принимать решения, обоснованные и направленные на ее достижение. На предприятии планируются все процессы: маркетинг, финансы и так далее. Стратегическое планирование включает в себя эти и другие планы.
38421. Анализ эффективности проведения соляно-кислотных обработок на Талаканском НГКМ 147.13 KB
  Простая солянокислотная обработка Применение простых кислотных обработок наиболее распространенного вида кислотных обработок нефтяных скважин направлено на воздействие растворами кислоты на продуктивные породы призабойной зоны скважин с целью повышения их производительности. Простые кислотные обработки являются методом первичного воздействия раствором кислоты на породы призабойной зоны скважины. Если кислотные ванны подготавливают поверхность ствола скважины в интервале продуктивных коллекторов то цель простых кислотных обработок ...
38422. Встановлення, налаштування і оптимізація операційної системи MS Windows 7 в покроковому режимі 2.88 MB
  Вміння налаштувати операційну систему, дозволить уникнути багатьох неприємностей і незручностей: елементарний захист комп’ютера від несанкціонованого доступу, неналежне налаштування роздільної здатності і частоти оновлення екрану, залишки деінстальованих програм, а також помилки в самій операційній системі, які можуть призвести до помітного зниження швидкодії комп'ютера і втрати даних на жорсткому диску і т.п.
38423. ОПТИМИЗАЦИЯ АВТОМАТИЗИРОВАННОГО УЧАСТКА ОБРАБОТКИ СТУПИЦЫ ВЕДОМОГО ДИСКА СЦЕПЛЕНИЯ 2.45 MB
  2 Определение количества и типа основного и вспомогательного технологического оборудования 45 3.4 Технологическое проектирование вспомогательных служб участка 50 Материалы и грузооборот участка 62...
38425. Проект строительства жилого комплекса трех 8- 9-этажных блок-секций в городе Кингисепп 151.23 KB
  Реализация инвестиционной политики требует повышения уровня индустриализации капитального строительства. Под нее предстоит подвести принципиально новую материально-техническую базу. Предусматривается увеличение числа объектов из элементов заводского изготовления, поставка средств ручной механизации, расширение применения новых строительных материалов.
38426. Разработка бета версии технологического цикла виртуального ателье по пошиву одежды 1.16 MB
  Техникоэкономическое обоснование работы 2. Целью данной работы является создание программного продукта с помощью которого можно будет упростить изучение машин. Это дает возможность создавать на основе данной работы широкий круг компьютерных моделей. Техникоэкономическое обоснование работы При компьютерном моделировании процессов изготовления швейных изделий одним из важных вопросов является выполнение экономических расчетов.
38427. Поліетилен та його основні хімічні властивості 193.76 KB
  0 обємна чаcтка суми метану з етаном не більше 010 обємна чаcтка суми вуглеводнів С3 і С4 ррm не більше 50 обємна чаcтка ацетилену ррm не більше 10 обємна частка окису вуглецю ррm не більше 5 обємна частка двоокису вуглецю ррm не більше 10 обємна частка водню ррm не більше 10 обємна чаcтка загальних карбонілів в перерахунку на МЕК ррm не більше 1 обємна чаcтка кисню ррm не більше 3 масова чаcтка загальної сірки ррm не більше 1 масова чаcтка хлору ррm не більше 1 обємна чаcтка води ррm не більше 10 обємна чаcтка...