Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка з програмування (школа).doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1 Мб
Скачать
☆

Var a:Masiv; {a — масив для вихідної послідовності}

і,j,count:byte; {і,j - змінні циклу, count - кількість елементів, що входять у послідовність один раз}

k: integer; {к - змінна, що коригує праву границю сортування}

Flag:Boolean; {Flag - змінна, що фіксує, чи була перестановка}

Begin

Randomize;

Clrscr;

For i:=1 to N do

Begin

A[i]:=random(300)/ll-random*15;

Write(A[i]:8:2);

End;

k:=1;

Repeat

Flag:=false;

For i:=1 to N-k do

Begin If A[i]<A[i+l] then

begin {Обмін елементів масиву через третю змінну}

Rez:=A[i]; А[і]:=А[і+1]; A[i+1]:=Rez;

Flag:=true;

end;

k:=k-1;

End;

Until Flag = false;

count:=0;

For i:=1 to N-1 do

Begin If A[i]OA[i+l] then count: =count+1; End;

count:=count+l;

Writeln;

Write ('Кількість елементів, що входять у послідовність 1 paз ') ;

Writeln(count);

Readkey;

End.

Домашнє завдання:

Задача №339(2), №342(3,5), №367

УРОК 28. Поняття рядкової величини

Мета уроку. Дати поняття рядкових величин, вказівок та функцій опрацювання рядкових величин.

Теоретичний матеріал

Рядок—це послідовність символів кодової таблиці комп'ютера (ASCII таблиця). При використанні у виразах рядок береться в одинарні лапки.

Кількість символів у рядку (довжина рядка) може динамічно змінюватися від 0 до 255. Для опису даних рядкового типу використовується ідентифікатор string, за яким вказується в квадратних дужках значення максимально допустимої довжини даного рядка. Якщо значення не вказується, то вважається, що довжина рядка складає 255 байт.

Змінну рядкового типу можна визначити безпосередньо в розділі опису змінних. Рядкові дані можуть використовуватися в програмі також у якості констант. Опис рядкового типу встановлює максимальну кількість символів, що може їх вмістити рядок.

Формат опису:

var

«ідентифікатор, . . . > : string [<махсимальна довжина рядка>] ;

Приклад:

ST : string; {опис рядка довжиною 255 символів (відсутня довжина рядха в описі)}

ST1 : string[50]; {опис рядка довжиною 50 символів)

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

Операція зчеплення (+) застосовується для з'єднання кількох рядків в один результуючий рядок. Наприклад, 'П' +' Е' +' О' +' М' в 'ПЕОМ'

Довжина результуючого рядка не повинна перевищувати 255 символів.

Операції відношення (=, <, >, о, <=, >=) здійснюють порівняння двох рядкових операндів і мають пріоритет нижчий, ніж операції зчеплення. Порівняння рядків робиться зліва направо до першого не співпадаючого символу. Більшим вважається той рядок, в якого перший неспівпадаючий символ буде мати більший номер у кодовій таблиці ASCII. Якщо рядки мають різну довжину, але в загальній частині збігаються, вважається меншим той рядок, у якого довжина менша. Рядки вважаються рівними, якщо вони рівної довжини і містять однакові символи.

Для присвоєння рядковій змінній значення результату рядкового виразу використовується оператор присвоювання (:=). Якщо довжина змінної після виконання оператора присвоювання перевищує максимально допустимий при описі розмір, усі зайві символи праворуч усікаються (тобто втрачаються!). Допускається змішування в одному виразі операндів рядкового і літерного типів. Якщо при цьому літерній змінній присвоюється значення рядкового типу, довжина рядка має дорівнювати одиниці, інакше виникає помилка виконання. До окремих символів у рядку можна звернутися за номером (індексом) даного символу в рядку. Індекс визначається виразом цілого типу, що записується в квадратних дужках за ідентифікатором рядкової змінної або константи. Для обробки рядкових даних використовуються наведені нижче стандартні процедури та функції.

Процедури для роботи з рядками.

Delete(Str,Poz,N) — вилучення N символів рядка Str, починаючи з позиції Poz. Якщо Poz>255, виникає програмне переривання.

Insert(Strl,Str2,Poz)—вставка рядка Strl у Str2, починаючи з позиції Poz.

Str(Number,St) — перетворення числового значення величини Number і занесення результату в рядок St. Після Number може записуватися формат, аналогічний формату виведення. Якщо у форматі зазначена недостатня кількість розрядів, поле виведення розширюється до потрібної довжини.

Значення Number

Вираз

Результат

1500

Str(Number:6,Str)

'___1500'

4.8Е+03

Str(Number:10,Str)

'_____4800'

76854

Str(-Number:3,Str)

'-76854'

Val(St,Number,Cod) — перетворює значення St у величину цілого або дійсного типу і розміщує результат у Number. Значення St не повинно містити зайвих пробілів на початку і наприкінці рядка. Cod—ціла змінна, значення якої не дорівнює нулю, якщо під час перетворення виявлена помилка. Cod буде містити номер позиції першого помилкового символу, a Number не буде визначено.

Значення Str

Вираз

Результат

'1450'

val(Str,Number,Cod)

1450 Cod=0

'14.2Е+02'

val(Str,Number,Cod)

1420 Cod=0

'14.5А+01'

val(Str,Number,Cod)

? Cod=5

Функції для роботи з рядками.

Lenght(St) — обчислює поточну реальну довжину в символах рядка St. Результат має цілий тип.

Copy(St,Poz,N) — копіює з St підрядок довжиною N символів, починаючи з позиції Poz. Якщо Poz > Lenght(St), то результатом буде пробіл; якщо Poz > 255, то виникне помилка при виконанні.

Pos(St1,St2) — виявляє першу появу в рядку St2 рядка St1. Результат має цілий тип і дорівнює номеру тієї позиції, де знаходиться перший символ рядка Stl. Якщо в St2 рядок St1 не знайдений, результат дорівнює 0.

UpCase(Ch)—перетворює малу літеру на велику. Параметр і результат мають літерний тип. Обробляються тільки літери латинського алфавіту.