Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка(Паскаль)(А4).doc
Скачиваний:
7
Добавлен:
27.08.2019
Размер:
1.25 Mб
Скачать

Завдання

  1. Скласти програму, за якою:

    1. заповнити масив А(40) випадковим чином цілими числами із діапазону [100, 999];

    2. вивести елементи масиву на екран в рядок;

    3. упорядкувати діапазон елементів масиву за таких умов:

Варіант

Діапазон елементів масиву

Метод упорядкування

Властивості елементів масиву

Перший

останній

1

5

40

Вставкою

Парні

2

3

35

Обміном

Непарні

3

1

33

Вибором

Кратні 3

4

7

36

Вставкою

Кратні 7

5

1

35

Обміном

Прості

6

8

38

Вибором

Кратні 5

7

3

31

Вставкою

Одна з цифр=0

8

1

25

Обміном

Одна з цифр =5

9

2

35

Вибором

Послідовність цифр монотонно зростає

10

6

32

Вставкою

Цифра десятків не менша ніж 5

11

9

30

Обміном

Цифра одиниць=3

12

4

37

Вибором

Послідовність цифр монотонно спадає

13

7

34

Вставкою

Непарна цифра одиниць

14

3

25

Обміном

Непарна цифра десятків

15

7

39

Вибором

Парна цифра сотень

Лабораторна робота № 6 Робота з даними типу String

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

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

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

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

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

Опис рядкового типу встановлює максимальну кількість символів, що може вмістити рядок.

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

var

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

Приклад:

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

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

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

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

‘E’+’C’+’ 18’+’10’=‘EC 1810’

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

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

Для присвоєння рядковій змінній значення результата рядкового виразу використовується оператор присвоювання (:=).

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

Допускається змішування в одному виразі операндів рядкового і літерного типів. Якщо при цьому літерній змінній присвоюється значення рядкового типу, довжина рядка повинна дорівнювати одиниці, інакше виникає помилка виконання.

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

Для обробки рядкових даних використовуються наведені нижче стандартні процедури та функції.

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

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

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

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

Значення Number

Вираз

Результат

1500

Str(Number:6,Str)

‘__1500’

4.8E+03

Str(Number:10,Str)

‘______4800’

76854

Str(-Number:3,Str)

‘-76854’

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

Значення Str

Вираз

Результат

‘1450’

val(Str,Number,Cod)

1450 Cod=0

‘14.2E+02’

val(Str,Number,Cod)

1420 Cod=0

‘14.5A+01

val(Str,Number,Cod)

? Cod=5

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

Concat(S1, S2,…,Sn) – з’єднує рядки S1, S2,…,Sn в один рядок. Символи, номери яких перевищують 255, не зберігаються.

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

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

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

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