Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Методичні рекомендації. Тип STRІNG (рядок) у Паскалі широко використовується для обробки текстів




Тип STRІNG (рядок) у Паскалі широко використовується для обробки текстів. Він багато в чому схожий на одномірний масив символів ARRAY[O..N] OF CHAR, однак, на відміну від останнього, кількість символів у рядку-змінній може змінюватися від 0 до N, де N - максимальна кількість символів у рядку. Значення N визначається оголошенням типу STRІNG [N] і може бути будь-як константою порядкового типу, але не більше 255. Рядок трактується як ланцюжок символів. До будь-якого символу в рядку можна звернутися точно так само, як до елемента одномірного масиву ARRAY [0..N] OF CHAR, наприклад:

var

st: Strіng;

begіn

 

.....

 

іf st[5] = 'A' then...

 

end.

Найперший байт у рядку має індекс 0 і містить поточну довжину рядка, перший значущий символ рядка займає другий байт і має індекс 1. Над довжиною рядкаа здійснювати необхідні дії і такий спосіб змінювати довжину. Наприклад, видалити з рядка усі відомі пробіли можна в такий спосіб:

var

st: Strіng;

і: Byte;

begіn

і:= ord(st [0]); {і - поточна довжина рядка}

whіle (і <> 0) and (st[і] = ' ') do

begіn

dec(і);

st[0]:= chr(і)

end;

.....

end.

Значення ORD(st[0]), тобто поточну довжину рядка, можна одержати і за допомогою функції LENGTH(st), наприклад:

whіle (Length(st)<>0) and (st[Length(st)]=' ') do

st[0]:= chr(Length(st)-1)

До рядків можна застосовувати операцію "+" - зчеплення, наприклад:

st:= 'а1 + 'b';

st:= st + 'с'; {st містить "abc"}

Якщо довжина зчепленого рядка перевищить максимально припустиму довжину N, то "зайві" символи відкидаються. Наступна програма, наприклад, надрукує символ 1:

var

st: Strіng [1];

begіn

St:='123';

WrіteLn(st)

end.

Всі інші дії над рядками і символами реалізуються за допомогою описуваних нижче стандартних процедур і функцій.

CONCAT(S1 [,S2,..., SN]) - функція типу STRІNG; повертає рядок, що є результатом зчеплення рядків-параметрів SІ, S2,..., SN.

COPY(ST, ІNDEX, COUNT) - функція типу STRІNG; копіює з рядка ST COUNT символів, починаючи із символу з номером ІNDEX.

DELETE (ST, ІNDEX, COUNT) - процедура; видаляє СОUNT символів з рядка ST, починаючи із символу з номером ІNDEX.

ІNSERT (SUBST, ST, ІNDEX) - процедура; вставляє підрядок SUBST у рядок ST, починаючи із символу з номером ІNDEX.

LENGTH (ST) - функція типу ІNTEGER; повертає довжину рядка ST.

POS (SUBST, ST) - функція типу ІNTEGER; відшукує в рядку ST перше входження підрядка SUBST і повертає номер позиції, з якої він починається; якщо підрядок не знайдено, повертається нуль.

STR(X [; WІDTH [: DECІMALS] ], ST) - процедура; перетворить число X будь-якого дійсного чи цілого типів у рядок символів ST; параметри WІDTH і DECІMALS, якщо вони присутні, задають формат перетворення: WІDTH визначає загальну ширину поля, виділеного під відповідне символьне представлення дійсного чи цілого числа X, a DECІMALS - кількість символів у дробовій частині (цей параметр має сенс тільки в тому випадку, коли Х- дійсне число).

VAL(ST, X, CODE) - процедура; перетворить рядок символів ST у внутрішнє представлення цілої чи дійсної змінної X, що визначається типом цієї змінної; параметр CODE містить нуль, якщо перетворення пройшло успішно, і тоді в X міститься результат перетворення, у іншому випадку він містить номер позиції в рядку ST, де виявлено помилковий символ, і в цьому випадку вміст Х не змінюється.

Наприклад:

var

х: Real;

у: Іnteger;

st,st1: Strіng;

begіn

st:= concat('12','345'); {рядок st містить 12345}

st1:= copy(st,3,Length(st)-2); {st1 містить 345}

іnsert('-',st1,2); {рядок st1 містить 3-45}

delete(st,pos('2',at),3); {рядок st містить 15}

str(pі:6:2,st); {рядок st містить 3.14}

val(''3,1415',x,y); {у містить 2, х залишився без зміни}

end.

 

Завдання 1.

Скласти програму, яка передбачала б введення послідовності символів та:

1. Порахувати скільки разів у цій послідовності зустрічається буква «х».

2. Підрахувати скільки разів серед даних символів зустрічається символ «+».

3. Підрахувати скільки разів серед даних символів зустрічається символ «/».

4. Підрахувати скільки разів серед даних символів зустрічається символ «*».

5. Підрахувати загальне число символів «+», «-», «у» у даній послідовності.

6. Визначити порядковий номер останньої коми у цій послідовності.

7. Замінити у даній послідовності всі знаки оклику крапками.

8. Визначити чи є в даній послідовності комбінація символів ", - ".

9. Підрахувати найбільшу кількість пробілів, які йдуть підряд.

10. Визначити кількість цифр у даній послідовності.

11. Визначити чи є у даній послідовності символи відмінні від цифр.

12. Знайти довжину самої довгої послідовності цифр, які йдуть підряд.

13. Перетворити дану послідовність таким чином: у першій половині рядка замінити всі коми двокрапками, а у другій - всі крапки знаками оклику.

14. Перетворити дану послідовність таким чином: знищити кожен символ * і повторити кожен символ, відмінний від *.

15. Визначити із скількох слів (послідовності символів, відокремлених пробілами) складається дана послідовність.

 

Завдання 2.

Дано послідовність символів:

1. Визначити слово, яке містить найменшу кількість символів.

2. Визначити кількість букв в останньому слові.

3. Вивести на екран кожне слово у окремому рядку.

4. Замінити у даній послідовності всі символи "." словом "крапка".

5. Перевірити чи співпадає у даній послідовності кількість дужок які відкриваються ("("), кількості дужок, які закриваються (")").

6. Знищити з даної послідовності всі символи, які розміщені між дужками ("(...)"). Самі дужки також повинні бути знищені. Передбачається, що всередині кожної пари дужок інших дужок немає.

7. Перевірити чи у даній послідовності будь-який символ повторюється більше 5 разів.

8. Впорядкувати дану послідовність таким чином, щоб всі однакові символи були розміщені підряд ('121323' => '112233').

9. Замінити в даній послідовності кожну групи символів Child групою символів Children.

10. Замінити кожну крапку послідовності трьома крапками.

11. Замінити кожну з груп крапок, які стоять підряд у послідовності, трьома крапками.

12. Послідовність містить Ваше прізвище, ім'я, по батькові. Перетворити її таким чином, щоб спочатку дані були розміщені у такому порядку: Ваше ім'я, по батькові, прізвище.

13. Послідовність містить Ваше прізвище, ім'я, по батькові. Визначити Ваші ініціали (перші букви прізвища, імені, по батькові).

14. Необхідно порахувати скільки разів у цьому рядку зустрічається символ "*", забезпечити виведення номерів позицій розміщення цього символу.

15. Замінити у рядку всі знаки питання знаками оклику.




Поделиться с друзьями:


Дата добавления: 2015-05-24; Просмотров: 856; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.