Лабораторна робота №4 Тема: Опрацювання даних типу рядок icon

Лабораторна робота №4 Тема: Опрацювання даних типу рядок


Скачать 24.98 Kb.
НазваниеЛабораторна робота №4 Тема: Опрацювання даних типу рядок
Размер24.98 Kb.
ТипЛабораторна робота

Лабораторна робота №4


Тема: Опрацювання даних типу рядок.


Загальні завдання

  1. Записати символи текстового рядка в зворотному порядку.

  2. У текстовому рядку замінити кожну группу підряд розмішених пропусків одним пропуском.

  3. Знайти кільість різних символів текстового рядка.

  4. Знайти найдовше слово в тексті.

  5. Знайти однакові слова двох текстових рядків.

  6. Впорядкувати слова текстового рядка в алфавітному порядку.


Індивідуальні завдання

  1. Записати кожне слово текстового рядка в окремий рядок з великої літери.

  2. У рядку знайти слова які повторюються.

  3. Обчислити значення виразу який подано текстовим рядком abc де а перша цифра в друга цифра ,с знак арифметичноъ операцыъ.

  4. Знайти найдовше однакове слово двох рядків.

  5. Зясувати чи правельно розмішені дужки в арифметичному виразі.

  6. У рядку перше слово записати після останього .

  7. Урядку остане слово записати після першого.

  8. Записати кожне слово рядка з великої літери.

  9. У рядку замінити всі одноцифрові десяткові числа римськими числами.

  10. Змінити регістр символів текстового рядка на протилежний.



^ ТЕОРЕТИЧНИЙ МАТЕРІАЛ

Тип String

Для опрацювання послідовностей символів (рядків) визначено тип даних ^ String – одновимірний масив символів. Розмірність такого масиву (найбільша довжина рядка) задається у квадратних дужках за ідентифікатором String у розділах описів і вказує на розмір пам’яті, яка виділяється для збереження символів. Якщо розмірність не вказується, то за замовчуванням приймається найбільша довжина рядка, рівна 255.

var S1 : String[20];

S : String;

begin S1 := ‘BORLAND PASCAL 6.0’;

^ S1 := ‘BORLAND’;



Поточна кількість символів рядка зберігається в елементі під номером 0, як символ, код якого вказує на дійсну кількість символів, які зберігаються у масиві. Нумерація символів масиву починається з 1.

В наведеному прикладі змінна ^ S вказує на масив, у якому може розміститися 255 символів, змінна S1 указує на масив 60 символів.

Розмірність

Поточна довжина

Рядок символів S1

20

18

^ ‘BORLAND PASCAL 6.0’

20

7

‘BORLAND’

Схематично розміщення символів у масиві S1 можна подати так:

p=7

n=20

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

#7

B

O

R

L

A

N

D

















































знаходиться символ, код якого рівний 7




n



розмірність рядка




p



поточна довжина рядка

Надати значення змінній типу ^ String можна за допомогою стандартної процедури введення ReadLn або за допомогою оператора надання значень. При цьому встановлюється нова довжина рядка.

Наприклад,

var S : String;

begin S := ‘BORLAND PASCAL 6.0’;



До виконання оператора надання значень довжина рядка S рівна 0.


Після виконання – 18.

Виведення текстових рядків або їх елементів на екран здійснюється стандартними процедурами WriteLn , Write.

Наприклад,

^ S := ‘BORLAND PASCAL 6.0’;

WriteLn(S);



for i:=9 to 14 do Write(S[i]);



На екран буде виведено усі символи рядка S.


На екран буде виведено символи рядка S, які мають номери від 9 до 14, тобто ‘PASCAL’.

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

^ Опис підпрограми

Приклад

S1:=’Turbo Pascal 6.0’;

S2 := ‘Pascal’;

Concat(s1, s2,…, sn: String) : String;

s1 ,s2 ,…, sn – вирази типу String;

Функція Concat повертає рядок символів, який утворюється послідовним з’єднанням рядків s1, s2,…, sn. Символи, номери яких перевищують 255, не зберігаються.

S := Concat(S2, ’ ‘, S1);

S – ’Pascal Turbo Pascal 6.0’;

Copy(s : String; n, k : Integer) : String;

s – вираз типу String; n, k – вирази цілого типу;

Функція Copy повертає рядок із n символів, які беруться з рядка s, починаючи з позиції k.

S := Copy(S1, 7, 6);

S – ’Pascal’

Length(s : String) : Integer;

s – вираз типу String;

Функція Length повертає поточну довжину рядка s.

N := Length(S2);

N – 6

S :=’’;

N := Length(S);

N – 0

Pos(s1, s : String) : Byte;

s1, s – вирази типу String;

Функція Pos шукає рядок символів s1 в рядку s і повертає номер позиції першого символа рядка s1 в рядку s. Якщо в рядку s не знайдено рядок s1, то функція повертає 0.

N := Pos(S2, S1);

N – 7

Delete(var s : String; n, k : Integer);

s – вираз типу String;

n, k – вирази цілого типу;

Процедура Delete вилучає n символів із рядка s, починаючи з позиції k.

Delete(S1, 1, 6);

S1 – ‘Pascal 6.0’

Insert(s1 : String; var s : String; n : Integer);

s1, s – вирази типу String;

Процедура Insert вставляє рядок s1 у рядок s з позиції n. Символи, номери яких перевищують 255, не зберігаються.

^ Insert(‘Turbo ’, S2, 1);

S2 – ‘Turbo Pascal’

Insert(S1, S2, 7);

S2 – ’PascalTurbo Pascal 6.0’

Str(n [ : size [ : dec ] ], var s : String);

n – вираз числового типу;

dec, size – вирази цілого типу: параметри форматування (можна не вказувати);

s – вираз типу String;

Процедура Str перетворює n в рядок символів s у відповідності з параметрами форматування size та dec.

K := 5.123;

Str(K ,S);

S – ‘5.123

Pos(‘.’, S) – 2

Str(K : 10 : 2, S);

S – ‘_ _ _ _ _ _5.12’

Val(s : String; var r; var Code : Integer);

s – вираз типу String;

r – змінна цілого або дійсного типу;

Code – змінна цілого типу.

Процедура Val перетворює рядок s в числове подання і зберігає результат в r. Якщо в рядку зустрічається недопустимий символ, то в Code записується його номер, інакше 0.

S :=’12.345’;

Val(S, K, Code);

K – 12.345 Code – 0

S := ’12,345’;

Val(S, K, Code);

Code – 3

Операції над значеннями типу String

З’єднання рядків

Для позначення операції з’єднання двох рядків використовується символ (+). Результатом такої операції є рядок, утворений приєднанням символів другого рядка праворуч від символів першого рядка. Символи другого рядка, які у результуючому рядку матимуть номер більший за 255, не приєднуються. Наприклад,

‘abcd’+’efghi’ ‘abcdefghi’

^ Порівняння рядків

Для порівняння рядків використовуються операції відношення <, >, <=, >=, =, <>. При порівнянні рядків здійснюється порівняння кодів символів зліва направо за стандартом ASCII. Наприклад, ‘ABCD’ < ‘AD’, ‘ABC’ < ’abc’, ‘MNL’ > ’MN!’.


^ ПРИКЛАДИ РОЗВ'ЯЗУВАННЯ ЗАДАЧ

Кожну літеру рядка замінити на відповідну їй велику.

Розв’язування.

Визначимо потрібні об’єкти:

S – змінна типу String: заданий текстовий рядок;

i – змінна типу Byte: індекс поточного символу рядка.

Алгоритм

Програма

ввести рядок ^ S;

Length(S) раз повторити дії

(i змінюється від 1 до Length(S)):

i-ту літеру рядка S замінити на відповідну їй велику

за допомогою функції UpCase;

вивести на екран результат – S.

var S : String; i : Byte;

begin Write(' Введіть текстовий рядок: ');ReadLn(S);

for i := 1 to Length(S) do S[i] := UpCase(S[i]);

WriteLn(' S –', S )

end.

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

Розв’язування.

Розв’яжемо задачу трьома способами.

Визначимо потрібні об’єкти (для всіх способів):

^ S – змінна типу String: заданий текстовий рядок;

i – змінна типу Byte: індекс поточного символу рядка.



Алгоритм

1-й спосіб.

Програма

ввести рядок ^ S;

Length(S) раз повторити дії (i змінюється від 1 до Length(S)):

якщо i-й символ рядка S рівний пропуску,

то перейти до наступного рядка екрану,

інакше вивести на екран i-й символ рядка S.

var S : String; i : Byte;

begin Write('Введіть текстовий рядок: ');

ReadLn(S); WriteLn('Слова:');

for i:=1 to Length(S) do

if S[i] = ' ' then WriteLn else Write(S[i]);

end.

.

Алгоритм

2-й спосіб

Програма

ввести рядок ^ S;

додати в кінець рядка S пропуск;

поки рядок S не порожній, виконувати дії:

вивести на екран символи рядка S,

починаючи з першого символу до першого пропуску;

перейти до нового рядка екрану;

вилучити символи рядка S,

починаючи з першого символу по перший пропуск включно;

var S : String; i : Byte;

begin Write('Введіть текстовий рядок: ');

^ ReadLn(S); S := S+ ' '; WriteLn(' Слова:');

while S <> '' do

begin WriteLn(Copy(S, 1, Pos(' ', S)-1));

Delete(S, 1, Pos(' ', S));

end;

end.



Алгоритм:

3-й спосіб.

Програма

Введемо змінну k типу Byte – позиція першого символу слова.

ввести рядок ^ S;

додати в кінець рядка S пропуск;

змінній k надати значення 1;

Length(S) раз повторити дії (i змінюється від 1 до Length(S)):

якщо i-й символ рядка S є пропуском,

то вивести на екран з k-го по i-1-й символи рядка S;

перейти до нового рядка екрану;

змінній k надати значення i + 1.

var S : String; i,k : Byte;

begin Write('Введіть текстовий рядок: ');

ReadLn(S); S := S + ' ';

WriteLn(' Слова:'); k := 1;

for i:=1 to Length(S) do

if S[i]=' ' then

begin WriteLn(Copy(S, k, i-k));

k := i + 1;

end;

end.

Похожие:

Лабораторна робота №4 Тема: Опрацювання даних типу рядок iconЛабораторна робота №4 Тема: Опрацювання даних типу рядок
У текстовому рядку замінити кожну группу підряд розмішених пропусків одним пропуском
Лабораторна робота №4 Тема: Опрацювання даних типу рядок iconЛабораторна робота 1 Тема: Проектування та створення реляційної бази даних, як джерела даних для сппр
Мета: Набуття навичок проектування бази даних, що використовуватиметься як джерело даних для сппр
Лабораторна робота №4 Тема: Опрацювання даних типу рядок iconЛабораторна робота №6 Тема: Цикли. Табулювання функції і пошук даних
Забезпечення заняття: 15 персональних комп'ютерів, операційне середовище Windows, алгоритмічна середа Borland C++ 0, 15 роздаткових...
Лабораторна робота №4 Тема: Опрацювання даних типу рядок iconОпрацювання числових даних. (35)
Типи форматів даних (Числовий, Текстовий, Дата, Час, грошовий, відсотковий тощо )та приклади. (73)
Лабораторна робота №4 Тема: Опрацювання даних типу рядок iconЛабораторна робота №8 розробка комплекту вихідних даних для розробки уп в діалоговому режимі токарної обробки
Тема роботи: Розробка комплекту вихідних даних для розробки уп в діалоговому режимі токарної обробки
Лабораторна робота №4 Тема: Опрацювання даних типу рядок iconЛабораторна робота №1 Тема: Робота з одновимірними масивами
Масив призначений для збереження значень зросту 12 чоловік. За допомогою дачика випадкових чисел заповнити значеннями в діапазоні...
Лабораторна робота №4 Тема: Опрацювання даних типу рядок iconПерелік питань, що вивчаються. Створення і заповнення бази даних. Об'єкти бази даних База даних
Тема: Вікно ms access. Структура бази даних в Access. Порядок проектування бази даних. Створення нової бази даних за шаблоном
Лабораторна робота №4 Тема: Опрацювання даних типу рядок iconЛабораторна робота №1 тема лабораторної роботи

Лабораторна робота №4 Тема: Опрацювання даних типу рядок iconЛабораторна робота №13 Тема : Інтернет. Служба www. Робота з інформацією державних порталів
Мета: Уміти переглядати web-сторінки, користуватись гіперпосиланнями, створювати закладки, вести журнал, шукати необхідну інформацію...
Лабораторна робота №4 Тема: Опрацювання даних типу рядок iconЛабораторна робота №1 5
У даний момент будь-яка задача пов’язана з керуванням інформацією та даними. Тому, за останні роки з’явилась низка різних комп’ютерних...
Лабораторна робота №4 Тема: Опрацювання даних типу рядок iconЛабораторна робота №5 типи обробки 1 Тема роботи
Персональна еом у складі локальної обчислювальної мережі
Вы можете разместить ссылку на наш сайт:
Документы


При копировании материала укажите ссылку ©ignorik.ru 2015

контакты
Документы