Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга_мат_3_new1.doc
Скачиваний:
31
Добавлен:
17.02.2016
Размер:
1.19 Mб
Скачать

Контрольні запитання

  1. Що означає сортування даних?

  2. В яких структурах даних можна проводити сортування?

  3. Які методи сортування вам відомі?

  4. Принцип методу вставки?

  5. Принцип методу вибору?

  6. Принцип методу обміну?

Лабораторна робота № 12 “Робота з рядками”

Мета: сформувати уміння використовувати при розв’язанні задач рядкові та символьні змінні.

Питання для вивчення

  1. Рядкові змінні.

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

Теоретичні відомості Рядкові змінні

Рядок ‑ це скінчена послідовність символів кодової таблиці ASCII (розширеної).Рядок постійно містить у собі будь-які символи обмежені, апострофами. Довжина рядка не перевищує 255 символів.

Опис рядкової змінної відбувається наступним чином:

Type

<ім’я типу>=String; найбільша довжина

<ім’я типу>=String [50];

На зберігання рядка відводиться пам’яті: кількість символів плюс один. Це так звана біжуча довжина.

Var

<ім’я змінної>:<ім’я типу>;

<ім’я змінної>:string[n];

s[i] – це змінна складова.

Операції над рядками:

  1. Поєднання або щеплення (контакція). Вона не комутативна. Тобто нехай дано два рядки a та b тоді a+bb+a.

  2. Оператор присвоєння :=.

  3. Операції відношення: =, <>, <=,>=.

Порівняння відбувається зліва направо до першого символу і порівнюються коди. Рядок вважається більшим, якщо в нього код більший. Крім операцій над рядковими змінними використовують стандартні процедури та функції.

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

Назва функції, процедури

Опис змінних

Що робить

Тип

Copy(St,Poz,N)

St:string

Poz,N:word

Копіює з рядка St із позиції Poz N символів.

String

Concat(St1,St2,...,Stk)

St1,St2,...,Stk:string

Рядок в якому St1+St2+...+Stk.

String

Length(St)

St:string

Біжуча довжина рядка.

Word

Pos(St1,St2)

St1,St2:string

Позиція з якої St1 входить у St2.

Word

Upcase(Ch)

Ch:char

Перетворює рядкову букву в прописну.

Char

Delete(St,Poz,N)

St: string

Poz,N:byte

Видаляє з рядка St з позиції Poz N символів.

Процедура

Insert(St1,St2,Poz)

St1,St2:string

Poz:byte

Вставляє в рядок St1 із позиції Poz рядок St2.

Процедура

Str(IBR,St)

IBR:числовий тип

St:string

Перетворення числового значення величини IBR в рядок. Результат поміщається в рядок St. Числовий параметр може бути заданий по формату, якщо треба більше позицій, то зліва добавляють пробіли.

Процедура

Val(St,IBR,Cod)

St:string

IBR,Cod:word

Перетворення значення St в числову величину цілочисельного типу або типу real. Результат поміщається в IBR. При цьому значення St не повинно містити пробілів ні в кінці ні на початку. Якщо Cod=0, то помилки немає, якщо Cod>0, то він видає помилку і вказує позицію помилки, при цьому значення IBR не визначається.

Процедура

Приклад 13.Дано рядок, що містить від 2 до 50 слів, у кожному з яких від 1 до 8 рядкових латинських букв; між сусідніми словами не менш одного пробілу, за останнім словом немає пробілів. Підрахувати кількість слів у рядку.

Programslovo;

Vara:string;i,j:integer;t:boolean;

Begin

writeln('Введіть рядок');

readln(a);

i:=1;

j:=0;{кількість слів}

while i<=length(a) do

begin

t:=false;

while (a[i]<>' ') and (i<=length(a)) do

begin

t:=true;

i:=i+1

end;

if t then j:=j+1;

i:=i+1

end;

writeln('У рядку кількість слів =',j);

readln

End.