четвер, 4 лютого 2016 р.

Тип даних рядок

   5.88. Скласти алгоритм підрахунку загального числа входжень символів '+', '-', '*' у рядок А.

          5.89. Скласти алгоритм перетворення рядка А, замінивши у ньому всі знаки оклику '!' крапками '.', кожну крапку – трьома крапками '...', кожну зірочку '*'- знаком '+'.

          5.90. Інверсія рядка A - це рядок B, записаний тими ж символами у зворотньому порядку. Інверсія порожнього рядка за означенням – порожній рядок. Побудувати інверсію рядка.

          5.91. Рядок називається симетричним, якщо його символи, рівновіддалені від початку та кінця рядка, співпадають. Порожній рядок вважається симетричним. Перевірити рядок A на симетричність.

          5.92. Скласти алгоритм видалення із рядка А всіх входжень заданої групи символів.

          5.93. Скласти алгоритм перетворення слова А, видаливши у ньому кожний символ '*' та подвоївши кожний символ, відмінний від '*'.

          5.94. Скласти алгоритм підрахунку найбільшої кількості цифр, що йдуть підряд, у рядку А.

          5.95. Скласти алгоритм підрахунку числа входжень у рядок А заданої послідовності літер.

          5.96. Скласти алгоритм, який за рядком А та символом будує новий рядок, отриманий заміною кожного символу, слідуючого за S, заданим символом С.

          5.97. Cкласти алгоритм перетворення рядка А видаленням із нього всіх ком, які передують першій крапці, та заміною у ньому знаком '+' усіх цифр '3', які зустрічаються після першої крапки.

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

          5.99. Рядок називається монотонним, якщо він складається з зростаючої або спадної послідовності символів. Cкласти алгоритм перевірки монотонності рядка.

          5.100. Cкласти алгоритм обчислення числа входжень у рядок А символів, перелічених у рядку V.

          Знайти символ, кількість входжень якого у рядок A
а) максимальна;
б) мінімальна.

          5.101. Виділити з рядка A найбільший підрядок, перший і останній символи якого співпадають.

          5.102. Перевірити, чи складається рядок з
а) 2 симетричних підрядків;
б) симетричних підрядків.

          5.103. Видалити з рядка всі повторні входження символів.

          5.104. Виділити з рядка найбільший монотонний підрядок, коди послідовних символів якого відрізняються на 1.

          5.105. Замінити всі пари однакових символів рядка, які йдуть підряд, одним символом. Наприклад, рядок aabcbb перетворюється у abcb.

          5.106. Побудувати рядок S з рядків S1S2 так, щоб у S входили
а) ті символи S1, які не входять у S2;
а) всі символи S1, які не входять у S2, та всі символи S2, які не входять у S1.

          5.107. Видалити з рядка симетричні початок та кінець. Наприклад, рядок abcdefba перетворюється у cdef.

          5.108. Cкласти алгоритм виведення на друк тільки маленьких літер українського алфавіту, які входять в заданий рядок.
          Розвязок. Наступний символ рядка виводиться на друк, якщо він співпадає з одним з символів слова V - послідовності всіх маленьких літер українського алфавіту.
         
          Алг Ukr_lit це
                   змін c,d:симв;
                             A,P,V:рядок;
                             q:бул;
          поч
                   взяти(A);
                   V¬ 'абвгдеєжзіийклмнопрстуфхцчшщьюя';
                   поки len(A)>повт
                             P¬Vc¬hd(A);
                             повт
                                      q¬c=hd(P); P¬tl(P);
                             до qÚ(len(P)=0);
                             якщо q то показати(скр;
                             A¬tl(A)
                   кц;
          ка.

          5.109. Скласти алгоритм виведення на друк рядка А, складенного з маленьких літер українського алфавіту, відповідними великими літерами.

          5.110. Заданий рядок, який складається з великих літер українського алфавіту. Скласти алгоритм перевірки впорядкованості цих літер за алфавітом.

          5.111. Скласти алгоритм виведення на друк в алфавітному порядку усіх різних маленьких українських літер, які входять до даного рядка.

          5.112. Словами називаються підрядки, які розділені одним чи кількома пропусками та не містять пропусків всередині себе. За рядком A скласти алгоритм виведення на друк:
а) всіх слів рядка у зворотньому порядку;
б) усіх слів, які зустрічаються у рядку по одному разу;
в) цього ж рядка, але з видаленням з нього повторних входжень слів.

          5.113. Знайти
а) найкоротше слово рядка;
б) найдовше слово рядка;

          5.114. Використовуючи операції роботи з рядками, скласти алгоритми, які реалізують наступні дії:
а) знищення n символів рядка S, починаючи з позиції k;
б) вставка рядка А у рядок В, починаючи з позиції k;
в) виділення із рядка S підрядка R довжиною n символів, починаючи з позиції k;
г) перетворення дійсного числа у рядок S;
д) перетворення рядка у дійсне число d з кодом перетворення і: і=у випадку успішного перетворення або і дорівнює номеру першого помил­кового символу рядка;
е) виділення з рядка А підрядка довжиною символів, починаючи з кінця рядка.

          Зауваження. Задачі 5.53 – 5.71 з підрозділу "Символьний тип даних" (5.4) можуть бути сформульовані у термінах рядків і запропоновані для розв'язання у даному підрозділі. Тоді в умовах задач замість “текст або послідовність символів слід читати “рядок”. Так, наприклад, алгоритм розв'язку задачі 5.59 може бути складено наступним чином:
          Алг  Del_scob це
                   змін d:симв;
                             A,S:рядок;
          поч
                   взяти(A); S¬' ';
                   поки len(A)>0 повт
                             d¬hd(A);
                             якщо d='(' то
                                      повт
                                                A¬tl(A)
                                      до hd(A)=')'
                                      кц
                             інакше S¬app(S,d)
                             кр;
                             A¬tl(A)
                   кц;
                   показати(S)
          ка.

Немає коментарів:

Дописати коментар