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

Символьний тип даних

  5.51. Скласти алгоритм виведення великих літер латинського алфавіту в алфавітному порядку.
          РозвязокАлгоритм виведення буде мати вигляд
          алгоритм АВС це
                   змін S: симв;
          поч
                   для S¬'A' до 'Z' повт
                             показати(S)
                   кц
          ка.

          5.52. Визначити, чи є даний символ латинською літерою (великою або маленькою), цифрою або ні тим ні іншим.

          Надалі в цьому розділі під "текстом" будемо розуміти завдання непорожньої послідовності символів c1, …, cn (n заздалегідь не відоме), що передують символу '.' (тобто, в текст крапка не входить).

          5.53. Визначити, яка з двох заданих літер у даному тексті зустрічається частіше.

          5.54. Визначити, чи входить до даного тексту кожна з літер слова key.

          5.55. Перевірити, чи правильно в заданому тексті розставлені круглі дужки (тобто, чи знаходиться справа від кожної відкриваючої дужки відповідна їй закриваюча дужка, а зліва від кожної закриваючої - відповідна їй відкриваюча).
          Відповідь - "так" або "ні".
          Розвязок.
          алг Дужки це
                   змін ссимв;
                             k: ціл;
          поч
                   взяти(с); k ¬0;
                   поки (с<>'.')&(k>=0) повт
                             якщо с='(то k¬k+1
                             інякщо с=')' то k¬k-1 кр
                             взяти(c)
                   кц;
                   якщо k=0 то показати('Так')
                   інакше показати('Ні')
                   кр
          ка.

          5.56. Визначити, чи є заданий текст правильним записом цілого числа (можливо зі знаком).

          5.57. Надрукувати заданий текст:
а) виключивши з нього всі цифри і подвоївши знаки '+' та '-';
б) виключивши з нього всі знаки '+', безпосередньо за якими знахо­диться цифра;
в) виключивши з нього всі літери 'в', безпосередньо перед якими знаходиться літера 'с';
г) замінивши в ньому всі пари 'ph' на літеру 'f';
д) виключивши з нього всі зайві пропуски, тобто з кількох, що йдуть підряд, залишити один.

          Розв'язок б)
          алг Виключеня це
                   змін a,b:симв;
          поч
                   взяти(a,b);
                   поки b<>'.' повт
                             якщо (a<>'+')Ú(b<'0')Ú(b>'9') то показати(акр;
                             a¬bвзяти(b)
                   кц;
                   показати(а)
          ка.

          5.58. Дано текст, серед символів якого є принаймні одна кома. Знайти номер
а) першої по порядку коми;
б) останньої по порядку коми.

          5.59. Виключити з заданого тексту групи символів, які знаходяться між '(' та ')'. Самі дужки теж мають бути виключені. Вважається, що дужки розставлено правильно (парами) та всередині кожної пари дужок немає інших дужок.

          5.60. Заданий текст, серед символів якого міститься двокрапка ':'. Отримати всі символи, розміщені
а) до першої двокрапки включно;
б) після першої двокрапки;
в) між першою і другою двокрапкою. Якщо другої двокрапки немає, то отримати всі символи, розміщені після єдиної двокрапки.

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

          5.62. В умовах попереднього завдання:
а) знайти довжину самого короткого слова;
б) підрахувати кількість входжень заданої літери в останнє слово даної послідовності.

          5.63. Заданий текст надрукувати по рядках, розуміючи під рядком або наступні 60 символів, якщо серед них немає коми, або частину тексту до коми включно.

          5.64. Використовуючи тільки символьне введення, ввести непо­рожню послідовність цифр, перед якою може знаходитись знак '+' чи '-' і за якою знаходиться крапка, і отримавши відповідне ціле число, присвоїти його цілій змінній m.
          Розв'язок:
          Алг Введення_цілого це
                   змін s:симв;
                             k0,m,zn:ціл;
          поч
                   взяти(s); zn¬1;
                   якщо s='-' то zn¬ -1; взяти(s)
                   інякщо s='+' то взяти(sкр
                   m¬0; k0¬ord('0');
                   поки s<>'.' повт
                             m¬m*10+ord(s) - k0;
                             взяти(s)
                   кц;
                   m¬zn*m;
                   показати(m)
          ка.

          5.65. Використовуючи тільки символьне виведення, вивести на друк значення цілої змінної k (знак '+' не друкувати).

          5.66. Використовуючи тільки символьне введення, ввести задане дійсне число із знаком, записане у форматі з фіксованою крапкою, за яким знаходиться символ '?'. Присвоїти його дійсній змінній x.

          5.67. Використовуючи тільки символьне виведення, надрукувати дійсне число x у наступній формі:

          ±0.d1d2...d9E ± p1p2,

де dipj - цифри, причому d1¹ 0, якщо ¹ 0.

          5.68. Задана послідовність символів, яка має вигляд:

          d1 ± d2 ± ... ± dn

(di-цифри, n>1), за якою знаходиться крапка. Обчислити значення цієї алгебраїчної суми.

          5.69. Задане натуральне число n. Надрукувати в трійковій системі числення цілі числа від 0 до n.

          5.70. В заданий текст входять тільки цифри та літери. Визначити, чи задовольняє він наступній властивості:
а) текст є десятковим записом числа, кратного 9 (6, 4);
б) текст починається з деякої ненульової цифри, за якою знаходяться тільки літери і їх кількість дорівнює числовому значенню цієї цифри;
в) текст містить (крім літер) тільки одну цифру, причому її числове значення дорівнює довжині тексту;
г) сума числових значень цифр, які входять в текст, дорівнює довжині тексту;
д) текст співпадає з початковим (кінцевим, будь-яким) відрізком ряду 0123456789;
е) текст складається тільки з цифр, причому їх числові значення складають арифметичну прогресію (наприклад, 3 5 7 9, 8 5 2, 2).
          Розв'язок г)
          Алг Сума_значень це
                   змін s:симв;
                             k,k0,m:ціл;
          поч
                   взяти(s); k0¬ord('0');
                   k¬0; m¬0;
                   поки s<> '.' повт
                             k¬k+1;
                             якщо (s<='9')&(s>='0') то
                                      m¬m+ord(s)-k0
                             кр;
                             взяти(s)
                   кц;
                   показати('Сума числових значень цифр');
                   якщо k<>m то показати('не') кр;
                   показати('дорівнює довжині тексту')
          ка.

          5.71. Знайти у даному тексті символ та довжину найдовшої послідовності однакових символів, що йдуть підряд.

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

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