Лекції >> Програмування, комп’ютери і кібернетика >> Робота з рядковими та символьними величинами

Крім чисел, мови програмування можуть оперувати з окремими словами, наборами слів (реченнями, текстами). При цьому слова та їх набори необов’язково повинні мати смисл з точки зору людини – це можуть бути будь-які послідовності символів.

Під рядковою величиною розуміють значенн константи (змінної), яке складається з будь-якої послідовності символів кодової таблиці ЕОМ. Для такої величини кількість символів може бути від 0 до 255.

Під символьною величиною розуміють значення константи (змінної), яке складається з будь-якого, але тільки одного символу кодової таблиці комп’ютера. 

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

Навчальна алгоритмічна мова.

У НАМ комп’ютера. 

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

Навчальна алгоритмічна мова.

У НАМ рядкові та символьні величини не розрізняються, а використовується лише рядковий тип величин, який позначається службовим словом лит. Тому ще іноді про такі величин у НАМ говорять як про літерні. Рядкові величини беруться у лапки, наприклад: “так”, “ні”, “інформатика”, “12йокCKEBWLKSM=+//$”, “1”, “10_А” тощо.

У тілі програми значення змінних та констант рядкового типу заключають у лапки. Наприклад, y := “вперед”.

У Е-практикумі максимальна кількість символів (довжина), що входять до складу рядк рядкові та символьні величини не розрізняються, а використовується лише рядковий тип величин, який позначається службовим словом лит. Тому ще іноді про такі величин у НАМ говорять як про літерні. Рядкові величини беруться у лапки, наприклад: “так”, “ні”, “інформатика”, “12йокCKEBWLKSM=+//$”, “1”, “10_А” тощо.

У тілі програми значення змінних та констант рядкового типу заключають у лапки. Наприклад, y := “вперед”.

У Е-практикумі максимальна кількість символів (довжина), що входять до складу рядкової величини,  рівна 16.

Основні операції:

§  додавання (склеювання):

нехай х := “фіз”, у := “мат”, z := x + y, тоді z набуде значення ”фізмат”

(зауважимо, що на результат впливає порядок доданків);

§  визначення довжини (кількості символів):

нехай y := длин (“університет”), тоді у набуде значення 11;

нехай y := длин (&ld dquo;, “12йокCKEBWLKSM=+//$”, “1”, “10_А” тощо.

У тілі програми значення змінних та констант рядкового типу заключають у лапки. Наприклад, y := “вперед”.

У Е-практикумі максимальна кількість символів (довжина), що входять до складу рядкової величини,  рівна 16.

Основні операції:

§  додавання (склеювання):

нехай х := “фіз”, у := “мат”, z := x + y, тоді z набуде значення ”фізмат”

(зауважимо, що на результат впливає порядок доданків);

§  визначення довжини (кількості символів):

нехай y := длин (“університет”), тоді у набуде значення 11;

нехай y := длин (“математика і фізика”), тоді у набуде значення 19;

§  вирізка, за допомогою якої можна виділити частину рядка, вказавши номер першого та останнього символів:

нехай у := ”велосипед”, z := у [7:9], k := у [4:7],  тоді z набуде значення ”пед”, а k набуде значення ”осип”.

Basic.

У MSX-Basic рядкові та символьні величини не розрізняються, а використовується лише рядковий тип величин, який для змінної можна оголосити у два способи: дописати до імені змінної символ $ або використати оператор DEFSTR. Наприклад,

А$, B1$, C$ (10), WORD$ ; 

DEFSTR A, B1, С (10), WORD.

У програмі значення констант та змінних рядкового типу заключають у лапки. Наприклад, y := “вперед”.

Операції та деякі функції MSX-Basic, що використовуються для роботи з рядковими величинами:

§  + - додавання (склеювання):

нехай Х = “фіз”, Y = “мат”, Z = Х + Y, тоді Z набуде значення ”фізмат”;

§  LEN (A$) - визначає довжину рядкової величини A$ (кількість символів):

нехай Y = LEN (“університет”), тоді Y набуде значення 11;

нехай X$ = “математика і фізика”, Y = LEN (X$), тоді Y набуде значення 19;

нехай Y = LEN (“”), тоді Y набуде значення 0;

§  MID$ (А$, M {, N}) – виділяє з А$ частину рядка довжиною N символів, починаючи з позиції М. За відсутності параметра N виділяється частина рядка, починаючи з позиції М і до кінця рядка:

нехай Y$ = MID$ (“університет”, 9, 3 ), тоді Y$ набуде значення “тет”;

нехай X$ =”123456789”, Y$ = “університет”, MID$ (X$, 4, 3 ) = Y$, тоді X$ набуде значення “123уні789”;

§  LEFT$ (X$, N) – виділяє з Х$ частину рядка довжиною N символів, починаючи з крайнього лівого символу;

§  RIGHT$ (X$, N) – виділяє з Х$ частину рядка довжиною N символів, починаючи з крайнього правого символу;

§  STRING$ (N, X$) – формує рядок довжиною N, утворений першим символом X$. Другим аргументом даної функції може бути ціле число Х (0£Х£255) – код ASCII певного символу; тоді рядок формується з символу, код якого подано вказаним числом;

§  SPACE$ (N, X$) – формує рядок символів-пропусків довжиною N;

§  INSTR ({N,} X$, U$) – дає число, рівне номеру позиції, починаючи з якої частина рядка (U$) входить до всього рядка (X$) (при цьому відлік позицій ведеться з N-ої позиції). За відсутності параметра N відлік позицій починається з першої позиції;

§  STR$ (A) – перетворює десяткове число А у рядок символів, який має форму десяткового числа;

§  VAL (X$) – перетворює символьне подання X$ десяткового числа у числовий тип, тобто значенням цієї функції є десяткове число.  

Pascal.

Символьні величини описуються як тип даних char. У програмі значення змінних і констант цього типу мають бути поміщені у апосторофи, наприклад:

Var

   Simb : char ;

. . .

   Simb              := ‘A’ ;

Рядкові величини описуються як тип даних string (див. стор. 18). Рядок по іншому можна розглянути як масив, компоненти якого мають тип char і тип індекса має нижню межу рівну 1, тобто тип string  описується як array [1..255] of char. При використанні у програмі значення рядкових констант та змінних поміщаються у апострофи, наприклад

Var

   Name: string ;

. . .

   Name := ‘ Шевченко Тарас Григорович ‘ ;

Над рядковими даними допустимі операція зчеплення (“склеювання”) та операції відношення. Наприклад,

нехай Х := ’фіз’, Y := ’мат’, Z := Х + Y, тоді Z набуде значення ’фізмат’ ;

умова ‘ стіл ’ <= ‘ стілець ’ є істинна (true) ;

умова ' 12 ' > ' 2 ' є хибна (false) .

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

Для того, щоб символ “апостроф” входив до складу рядка, у запису рядка цей символ повтороють двічі. Наприклад,

Write ( ' ім ’ ’ я ' ) виведе на екран рядок ім’я.

Стандартні функції та процедури для роботи з рядками:

§  Concat (S1, S2, … Sn : string) : string – виконує послідовне зчеплення рядків S1, S2, … Sn. Результуючий рядок не повинен перевищувати 255 символів.

§  Copy (St : string, Poz : integer, N : integer) : string - виділяє з рядка S фрагмент довжиною N символів, починаючи з позиції Poz;

§  Length (St: string) : integer — повертає довжину рядка;

§  Pos (Substr : string, St: string): byte - повертає позицію, з якої рядок Substr перший раз зустрічається в рядку St.

§  Delete (St : string, Poz: integer; N : integer) – з рядка St вилучає N символів, починаючи з позиції Poz;

§  Insert (SubSt : string, S: string, Poz: integer) - вставляє рядок SubSt  у рядок S, починаючи з позиції Poz;

Для перетворення чисел у рядок і навпаки служать процедури:

§  Str (X, St) - перетворює числове значення величини X у рядок St.  Після Х може записуватися формат, аналогічний формату виводу в операторі Write;

§  Val (St : string, V, Code : integer) - перетворить рядок St у значення числової змінної V. Рядок St повинний бути коректним записом числа. Якщо це не так, V = 0, Code <> 0. У випадку вдалого перетворення Code = 0.

До окремого символу рядка можна звернутися, якщо у квадратних дужках після імені вказати індекс. Наприклад, до п’ятого символу змінної Name можна звернутися так: Name [ 5 ]. Якщо звернутися до нульового індек­су рядкової змінної, то одержимо кількість символів у рядку.

 Приклад 1.  Визначити кількість літер “л”, які містить даний рядок символів.

І етап. Спочатку визначимо довжину (кількість символів) для даного рядка. Довжину рядка використаємо як кінцевий параметр циклу. У циклі послідовно, починаючи з першого, братимемо по одному символу і перевірятимемо: якщо вказаний символ рівний літері “л”, то лічильник кількості літер “л” збільшуємо на одиницю. Зауважимо, що на початку роботи програми лічильнику потрібно присвоїти значення 0 (n := 0).

ІІ етап. Складемо блок-схему алгоритму (мал. 18).

алг Буква ( цел n, лит A)

   арг A

   рез n

нач  цел d, i

      d := длин ( А )

      n := 0

      нц для i от 1 до d шаг 1

             если A [ i : i] = “л”

                то n := n+1

             все

      кц

   n := n

кон

НАМ-програма 10

ІІІ етап. Запишемо текст програми.

початок

 

 

А

 

d := довж (А)

n := 0

 

i, 1, d, 1

 

 

A (i) = “л”

 

n := n+1

 

 

 

 

n

 

кінець                      

мал. 18

10 REM Кількість літер “л”

20 INPUT “Введіть рядок символів” ; A$

30 N=0

40 D=LEN(A$)

50 FOR i = 1 TO D

60 IF MID$ ( A$, i, 1) = ”л” THEN N=N+1

70 NEXT

80 PRINT “Результат” ; N

90 END

Basic-програма 10

 

 

Program Kol_Liter ;

   Var

       i, n, d : integer ;

       A : string ;

Begin

   WriteLn ( ‘ Введіть рядок символів ’ ) ;

   ReadLn ( A ) ;

   d := Length ( A ) ;

   n := 0 ;  

   For i := 1 to d do

       If Copy (A, i, 1) = ’ л ’ Then n := n+1 ;

   WriteLn ( ‘ Результат ’, n :10)

End.

 

Pascal-програма 10

 

IV етап.      Тест1. Рядок: “лелека летить”. Результат n=3. 

Тест2. Рядок: “інформатика”. Результат n=0. n  

 Приклад 2.  У рядку символів видалити всі пропуски.

початок

 

 

А

 

                d := довж (А)

                B := “”

 

i, 1, d, 1

 

 

A(i) <> “V”

 

B:=B+A(i)

 

 

 

 

B

 

кінець                      

мал. 19

І етап. Вводимо даний рядок символів як значення змінної А. Результуючий рядок сформуємо як значення нової змінної В. Процес утворення результуючого рядка реалізуємо так: визначимо довжину даного рядка; використаємо цикл, за допомогою якого послідовно братимемо по одному символу і, якщо взятий символ не пропуск, то “приклеїмо” його справа до поточного значення створюваного рядка.

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

ІІІ етап. Запишемо програму.

алг Пропуск (лит A, В)

   арг A

   рез B

нач  цел d, i

      d := длин ( А )

      B := “”   {присвоїти порожній рядок}

      нц  для i от 1 до d шаг 1

             если A [ i : i ] <> “V”

                то B := B +  A [ i : i ]

             все

      кц

   B := B  

кон

НАМ-програма 11

 

10 REM Видалення пропусків

20 INPUT “ Введіть рядок ” ; A$

30 B$ = ””   {присвоїти порожній рядок}

40 D=LEN ( A$ )

50 FOR і = 1 TO D

60 Y$=MID$( A$, i, 1)

70 IF Y$ <> ”V” THEN B$=B$+Y$

80 NEXT

90 PRINT “Результат” ; B$

100 END

Basic-програма 11

 

Program Del_Space ;

   Var

       i, D      : integer ;

       A, B, Y : string ;

Begin

   WriteLn (‘ Введіть рядок ’) ; ReadLn (A) ;

      B := ‘ ’ ;    {присвоїти порожній рядок}  

   D := Length ( A ) ;

   For i := 1 to D do

         begin

             Y := Copy (A, i, 1);

             If Y <> ’V’ Then B := Concat ( B, Y )

         end ;

   WriteLn ( ‘ Результат ’, B )

End.

 

 

Pascal-програма 11

IV етап.      Тест1. Рядок: “VфізVматV”. Результат: “фізмат”.

        Тест2. Рядок: “фіз.-мат.”. Результат: “фіз.-мат.”.n

Дисципліни та предмети

"Теорія і методика викладання спортивних ігор(баскетбол)"
"Українська мова (за професійним спрямуванням)"
INTEL
Web-дизайн
Web-програмування
аналітична геометрія
Анатомія людини з основами спортивної морфології
Англійська мова
Бази даних
Біохімія спорту
Вступ до літературознавства
Вступ до спеціальності
Гармонія
Декоративно-прикладне мистецтво
Декоративно-прикладне мистецтво. Теорія і методика дизайну
Динамічна анатомія
Дитяча література з основами культури і техніки мовлення
Диференціальна психологія
Диференціальні та інтегральні рівняння
Елементи теорії міри та інтеграла
Живопис
загальна психологія
Інноваційні технлогії навчання англійської мови в початковій школі
Інноваційні технології вивчення англійської мови
Інноваційні технології навчання англійської мови в початковій школі
Іноземна література для дітей
Іноземна мова
Інформатика
Інформатика та КТ
Історія образотворчого мистецтва
Історія психології
Історія української музики
Комплексний аналіз
Культура здоровя
Лікарський контрольу у фізичному вихованні і спорту
лінгводидактичні дисципліни, культура мови, практична стилістика
Література для дітей дошкільного віку
Малюнок
Малюнок в практиці психодіагностики
Математичний аналіз
Методика викладання іноземних мов
Методика музичного виховання
Методика навчання іноземної мови
Методика проведення психологічної експертизи
Методика та організація наукових досліджень
Модулі сімей кривих і квазіконформні відображення
Музична інформатика
Німецька мова
Образотворче мистецтво з методикою викладання
Операційні системи та системне програмування
основи геометрії
Основи кольорознавства
Основи культури і техніки мовлення
Основи математики, Основи C++, Основи Java, Алгоритми и структури даних тощо
Основи науково-дослідної роботи студентів
Основи образотворчого мистецтва з методикою керівнитва зображувальною діяльністю дітей
Основи психіатрії
Основи психокорекції
Основи психологічної практики (практична психологія)
Основи психотерапії
Основи штучного інтелекту
Педагогіка
Педагогічна психологія
Поліфонія
Початки програмування
Практика англійської мови
Практикум диригенсько-хорвоий
Практикум з групової психокорекції
Практикум з консультативно-тренінгової роботи
Практикум з художньої праці
Практична стилістика сучасної української мови
Програмне забезпечення ЕОМ
Програмування
проективна геометрія
Проектування програмного забезпечення
Психологічна служба
Психологічна служба в системі освіти
Психологія
Психологія вікова
Психологія інформаційної діяльності
Психологія конфлікту
Психологія мас
Психологія праці
Психологія професійної орієнтації
Розвиток творчих здібностей у наслідувальній діяльності
Самооцінка і розвиток творчих здібностей
Світова художня культура
Соціальна психологія
Соціальні та політичні конфлікти
Соціологія
Спортивна медицина
Спортивно-педагогічне вдосконалення (волейбол)
Сучасні підходи у психології особистості
Теорія і методика викладання атлетизму
Теорія і методика викладання плавання
Теорія і методика викладання спортивних ігор (волейбол)
Теорія і методика викладання спортивних ігор (гандбол)
Теорія і методика викладання спортивних ігор (футбол)”
Теорія і методика виховної роботи
Теорія і методика дизайну
Теорія і методика тренування спортсменів високої кваліфікації
Технологія і матеріалознавство
Традиції фізичної культури в Україні
Удосконалення правописних навичок майбутніх фахівців
Українська мова (за професійним спрямуванням)
Управління у сфері фізичного виховання
Фізіологія спорту
Філософія
Хорознавство
Художня праця
Цивільний захист
Шкільний курс англійської мови з методикою викладання в початковій школі
Шкільний курс СХК та методика його викладання
Схожі матеріали
05.10.2012 Введення та виведення даних, розробки та опису лінійних програм.
15.02.2012 Дизайн-патерни - просто, як двері
26.01.2012 Лекції на www.lektorium.tv
20.12.2011 Pascal - лабораторні роботи - для студентів III-го курсу (лекції Ляшенко Б.М.)
12.12.2010 Робота з підпрограмами
12.12.2010 Робота з рядковими та символьними величинами.
12.12.2010 Робота з циклічними програмами
12.12.2010 Робота з масивами даних.
12.12.2010 Розробка та описання програм з розгалуженнями
12.12.2010 Початки програмування

Тести даної категорії
12.12.2010 ПОЧАТКИ АЛГОРИТМІЗАЦІЇ. ВСТУП ДО ПРОГРАМУВАННЯ

Останні створені тести
28.03.2016 Ахметов Р. Ф. Основи наукових досліджень. Тести. 500 питань
16.11.2015 Олімпійські ігри Стародавньої Греції. Відродження олімпійських ігор. Олімпійський рух сучасності.
28.10.2015 British Writers. Тест для студентів 4 курсу ННІ педагогіки
27.10.2015 The Passive Voice. Тест для студентів 2 курсу ННІ педагогіки
27.10.2015 Articles. Тест для студентів 1 курсу неспеціальних факультетів
27.10.2015 The Active Voice. Тест для студентів 2 курсу ННІ педагогіки
08.10.2014 INTEL
22.10.2012 Цивільний захист
28.09.2012 Питання для поточного контролю
26.09.2012 Мовнокомунікативна компетентність. Орфографічна складова
Рекомендовані лекції
12.12.2010 Робота з масивами даних
12.12.2010 РЕДАКТОР TURBO PASCAL 5.5
22.03.2016 ОС та СП. Тема 5. Безпека. Слайди
12.12.2010 Алфавіт
12.12.2010 Порядковий тип даних
22.02.2016 ОС та СП. Тема 1. Початкові відомості про операційні системи. Тези
05.04.2016 ОС та СП. Тема 7. Міжпроцесова та міжпотокова взаємодія. Слайди
27.09.2012 Літературознавство як наука
09.12.2014 Лекції з ЦЗ для студентів 6-х курсів денної форми навчання
26.09.2012 Програмне забезпечення (ПЗ). Апаратне забезпечення інформаційної системи

    БIБЛІОТЕКИ
    ОСВІТНІ ПОРТАЛИ