Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ekzamen_OPAM_vidpovidi_teoretichni.doc
Скачиваний:
4
Добавлен:
22.09.2019
Размер:
214.53 Кб
Скачать
  1. Оператор безумовного переходу

Розглянутий умовний оператор if-then-else вибирає один з двох можливих напрямів виконання програми залежно від виконання умови. Інакше його називають оператором умовного переходу. В програмі може виникнути потреба перейти до ви конання деякого відрізка програми незалежно від жодної умо­ви. Такий перехід реалізують у мові Паскаль за допомогою оператора безумовного переходу

goto <позначка>.

Тут позначка (мітка) - це число без знака, описане в розділі label (в Турбо Паскалі може бути ідентифікатор). Оператор goto передає керування до оператора, виділеного відповідною по­значкою.

Застосовують його в крайніх випадках - для виходу із деякого складеного оператора.

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

goto 15;

…….

15: begin

s1

s2;

………

end;

  1. Ініціалізація масивів.

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

double d[ ]={1.0, 2.0, 3.0, 4.0, 5.0}; d[0] = 1.0, d[1]=2.0 і т. д.

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

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

За допомогою ініціалізації можна присвоювати значення не всім елементам багатовимірного масиву.

  1. Символьні масиви. Рядковий тип.

Окремо виділимо масиви, елементи яких є символьного типу (char). Такі одновимірні масиви, індексами яких є діапазон цілого типу, називають рядками.

У Паскалі є деякі додаткові засоби роботи з такими маси­вами. По-перше, змінним такого типу можна присвоювати сим­вольні сталі (тобто рядки символів).

Крім того, для рядкових масивів допустима операція кон­катенації, яку позначають символом +. Виведення для рядка не є обов'язково покомпонентне, доз­волено задати й ім'я. Операцію конкатенації не можна вико­ристати в правій частині присвоєння.

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

знаків -, <>, <, <-, >, >=.

Рядки порівнюють шляхом послідов­ного порівняння символів до першого незбігання.

Стандартна процедура read не читає автоматично рядки, їх треба читати в циклі символ за символом.

Рядковий тип (string)

У Турбо Паскалі реалізований рядковий тип, що є узагаль­ненням символьних масивів, який дає змогу, на відміну від них, динамічно змінювати довжину рядка. Загальний вигляд опису рядкового типу такий:

type

<ім'я>=string[<максимальний розмір>];

Наприклад:

type

Line=string[80];

var R: Line;

Змінна R типу Line може набувати значення будь-якої послідовності символів (типу char) завдовжки від (задане число в програмі) до (задане число в програмі). Це значення може бути присвоєне або введенне.

Як і для символьних масивів, тут використовується опера­ція конкатенації.

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

Під змінну рядкового типу відводиться N+1 байтів пам'яті, де N - максимальна довжина, зазначена в описі (рис 1).

Нульовим елементом є байт.

Крім операції конкатенації, над змінними рядкового типу визначені операції порівняння, у разі використання яких діють такі правила:

а) коротший рядок завжди менший від довшого;

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

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

Доступ до окремих елементів рядкових типів такий самий, як і до елементів звичайних одновимірних масивів - за допомо­гою індексів у квадратних дужках.

У Турбо Паскалі з рядковими типами використовують низ­ку функцій:

1) concat: - злиття довільної кількості рядків. Якщо довжина вислідного >255, то він буде обрізаний;

2) copy - повертає частину рядка 5 довжиною Count, починаючи від символу з но­мером Index;

3) delete - вилучає з рядка s частину цього рядка довжиною Count, починаючи з Index;

4) Insert — вставляє рядок Source в рядок s, починаючи з Index;

5) Length - повертає довжину рядка s;

6) Pos - результатом цієї функції є номер позиції, з якої в рядку s розміщений рядок Substr.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]