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.


 

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

20200. Популяция, её структура и динамика 350 KB
  Стрелки это каналы передачи вещества энергии и информации. Этот процесс идёт с поглощением энергии которая запасается в химических связях органического вещества. Понятие о трофической цепи Трофическая цепь это цепь последовательной передачи вещества и эквивалентной ему энергии от одних организмов до других. упорядоченный поток передачи энергии солнца от продуцентов к консументам различного порядка.
20201. Круговорот веществ в биосфере 106.5 KB
  Он заключается в следующем: горные породы подвергаются разрушению и выветриванию продукты разрушения сносятся потоками воды в Мировой океан. Круговорот воды Нам знакомы 3 состояния воды: твёрдое лёд жидкое собственно вода газообразное водяной пар. Главный источник поступления воды атмосферные осадки а главный источник расхода испарение. Продолжительность кругооборота: океан 3000 лет подземные воды 5000 лет полярные ледники 8500 лет озера 17 лет реки 10 дней вода в живых организмах несколько часов.
20202. Промышленная экология. Промышленное производство и его воздействие на окружающую среду 47.5 KB
  Протяжённость тропосферы 710 километров на полюсах и 1618 километров по экватору. Протяжённость стратосферы примерно 40 километров. До высоты 30 километров температура стратосферы примерно 50оС а затем начинает расти и на высоте 50 километров составляет 10оС. Это связано с наличием в стратосфере озонового слоя расположенного на высоте 2540 километров.
20203. Загрязнение гидросферы 87 KB
  Пресная вода составляет только 25 от всех запасов воды. Примерно 70 пресной воды содержится в ледниках. Ежегодно люди расходуют около 3000 км3 воды из них 150 км3 безвозвратно. Больше всего воды потребляет сельское хозяйство.
20204. Стандартизация и охрана окружающей природной среды 31 KB
  ПДКрз это концентрация которая при ежедневной работе в течение всего рабочего стажа не может вызвать заболевания или отклонения в состоянии здоровья в процессе работы или в отдаленные сроки жизни настоящего и последующего поколения. ПДКав это максимальная концентрация примеси в атмосфере отнесенная к определению времени усреднено значение которой при периодическом воздействии или на протяжении всей жизни человека не оказывая на него вредного влияния включая отдаленные последствия. Это концентрация присутствие которой допустимо не...
20205. Расчёт предельно допустимого выброса вредного вещества в атмосферу 145 KB
  Нарисуем график зависимости концентрации загрязняющего вещества по оси факела выброса от расстояния до источника выброса. Расчёт предельно допустимого выброса состоит из нескольких частей и первая часть расчёт максимальной приземной концентрации. Все формулы даются для двух вариантов: горячего выброса и холодного выброса.
20206. Контроль загрязнения почв 38 KB
  Кроме ПДК в номенклатуру санитарного состояния почв входят показатели: Общее количество аммонийного азота. Общее количество нитратного азота. Общее количество хлоридов. Общее количество пестицидов.
20207. ИССЛЕДОЛВАНИЕ ДИФФЕРЕНЦИАЛЬНЫХ СИСТЕМ 96 KB
  Для получения равноплечной дифференциальной системы соединяются дужками гнезда 10 16 при этом коэффициенты трансформации равны: Для получения неравноплечной дифференциальной системы соединяются дужками гнезда 10 16 при этом коэффициент трансформации равны Резисторная дифференциальная схема состоит из четырех резистров по 600 Ом образующих равноплечный мост рис. Для этого соединить дужкой гнезда 11 16 а к гнездам ГЕН 23 27 подключить измерительный генератор с частотой...
20208. ИЗУЧЕНИЕ ОКОНЕЧНОЙ АППАРАТУРЫ СИСТЕМЫ ПЕРЕДАЧИ К - 60П 148.5 KB
  Шестидесятиканальная система передачи на транзисторах К 60П предназначена для уплотнения симметричного кабеля диаметром жил 12мм в спектре частот 12 252 кГц. Работой устройств АРУ управляют токи контрольных частот: 16кГц наклонная 112 кГц криволинейная 248 кГц плоская. Индивидуальное преобразование спектра частот 03 34 кГц каждого из 12 каналов тональной частоты осуществляется соответственно с помощью одной из несущих частот: 108; 104; ; 64 кГц. В результате этого преобразования образуется спектр стандартной первичной...