- •1. Вступ
- •2. Основи мови програмування
- •§ 2.1 Вступ до мови програмування
- •§ 2.2 Алфавіт мови і структура програми
- •§ 2.3 Стандартні типи змінних
- •§ 2.4 Опис констант і змінних
- •§ 2.5 Організація вводу-виводу
- •§ 2.6 Вправи та завдання
- •3. Стандартні операції, процедури та функції
- •§ 3.1 Стандартні математичні операції мови
- •§ 3.2 Стандартні математичні функції
- •§ 3.3 Стандартні операції для роботи з символьною інформацією.
- •§ 3.4 Логічні операції
- •§ 3.5 Вправи та завдання
- •4. Графічна інформація та її обробка на мові Pascal.
- •§ 4.1 Організація відображення графічної інформації
- •§ 4.2 Вправи та завдання
- •5. Поняття розгалуження і вибору.
- •§ 5.1 Структура “якщо... То... Інакше...”
- •§ 5.2 Інструкція If... Then... Else...
- •§ 5.3 Інструкція Case
- •§ 5.4 Організація розгалужень в програмах
- •§ 5.5 Вправи та завдання
- •6. Організація циклів
- •§ 6.1 Цикл з параметром
- •§ 6.2 Цикл з передумовою
- •§ 6.3 Цикл з післяумовою
- •§ 6.4 Який з циклів використовувати?
- •§ 6.5 Приклади використання циклів при розв’язуванні конкретних задач.
- •§ 6.6 Вправи та завдання
- •7. Поняття про процедури та функції
- •§ 7.1 Чи потрібні процедури і функції
- •§ 7.2 Процедури
- •§ 7.3 Функції
- •§ 7.4 Вправи та завдання
- •8. Масиви § 8.1 Поняття масиву
- •§ 8.2 Пошук найбільшого або найменшого елементу масиву
- •§ 8.3 Сортування елементів масиву
- •§ 8.4 Приклади розв’язання задач з використанням масивів
- •§ 8.5 Вправи та завдання
- •9. Робота з літерними та символьними величинами
- •§ 9.1 Основні операції для роботи з літерними величинами
- •§ 9.2 Приклади розв’язування задач з використанням основних операцій для роботи з літерними величинами
- •§ 9.2 Лексикографічний метод генерації перестановок
- •§ 9.4 Вправи та завдання
- •10. Двомірні масиви
- •§ 10.1 Приклади використання двомірних масивів
- •§ 10.2 Вправи та завдання
- •11. Множини, записи, файли § 11.1 Множини
- •§ 11.2 Записи
- •§ 11.3 Файли
- •§ 11.4 Вправи та завдання
- •Побажання тим, хто відчув себе програмістом
- •Додатки Словник деяких зарезервованих слів та основних операцій мови
- •Основні команди оболонки програмування Turbo Pascal 5.5
- •Список рекомендованої літератури
§ 9.1 Основні операції для роботи з літерними величинами
Перейдемо до розгляду основних операцій, призначених для роботи з літерними величинами.
Для роботи з літерними величинами у мові Паскаль передбачено наступні операції, процедури та функції :
Length(st) – визначає довжину літерної величини st. Іншими слова, просто підраховує кількість символів в літерній величині. Цю ж інформацію можна отримати, зчитавши значення st[0], але будьте уважні, необхідно на друк виводити значення не st[0], a ord(st[0])!
Copy(st, m, n) – виділяє з літерної величини st n символів, починаючи з символу під номером m. Дана функція використовується для копіювання.
Concat(st1, st2) – об’єднує дві літерні величини. Дана функція виконує ту ж саму дію, що й операція ‘+’, введена вона для сумісності з більш ранніми версіями мови Паскаль.
Val(st, m, kod) – перетворює літерну величину st в число m. Якщо kod <> 0, то введена літерна величина не є числом.
Для кращого розуміння приведемо простеньку програму:
program demo_val_str;
var st : string;
k, kod : integer;
begin
write('Введiть слово: ');readln(st);
val(st, k, kod);
if kod <> 0 then writeln(' Введене слово не є числом ')
else writeln('Слово є числом ', k);
readln
end.
Str(m, st) – перетворює число в літерну величину, тобто дана процедура є оберненою до val.
Delete(st, m, n) – видалення деякої групи символів довжиною n починаючи з позиції m в літерній величині st.
Insert(st2, st1, n) – вставити в літерну величину st1 літерну величину st2 починаючи з позиції n.
Крім того, до літерних величин можна застосовувати операції порівняння, так само, як і до числових величин. З останнім розберемося дещо детальніше на прикладі конкретної задачі.
Задача 188 Знайти, яке з двох введених слів більше.
Розв’язання: Всі розглянуті раніше операції порівняння двох величин, які ми застосовували до числових змінних, можна застосовувати і до літерних величин. Тобто можна говорити, що одна величина дорівнює іншій, або величина А більша (менша) за величину В. Тут необхідно зробити відповідні роз’яснення.
По–перше, зрозуміло, що мама = мама, але тільки у тому випадку, коли всі літери в обох словах написані одними й тими ж символами, тобто літерами одного і того ж алфавіту. Якщо ж ми у першому слові літери а напишемо літерами англійського алфавіту, а у другому – на перший погляд ті ж самі літери а напишемо у російському (українському) алфавіті, то ці слова вже не будуть однаковими. Це пов’язано з тим, що, як ми вже вказували, тип string описано як масив типу char, а останній тип є впорядкованим і однакові на вигляд літери різних алфавітів не є однаковими, оскільки їм відповідають різні порядкові номери відповідних символів.
По–друге, як бути у випадках, коли слова мають різну кількість літер (мама – мам), або ж відрізняються одним символом (мама – Мама)? У даному випадку (як і всіх інших) ПЕОМ діє наступним чином: порівнюються попарно відповідні літери двох слів і як тільки виявляється, що два чергові символи в слові відмінні, то більшим вважається те слово, у якого код даного символу більший.
Все вищесказане демонструє наступна програма:
program poriwn_stroki;
var st1, st2 : string;
i,s: integer;
begin
write('Введiть переше слово: ');readln(st1);
write('Введiть друге слово: ');readln(st2);
s := 0;
for i := 1 to length(st1) do
begin
write(ord(st1[i]):3,' ');
s := s + ord(st1[i]);
end;
writeln('s = ',s);
s := 0;
for i := 1 to length(st2) do
begin
write(ord(st2[i]):3,' ');
s := s + ord(st2[i]);
end;
writeln('s = ',s);
if st1 = st2 then writeln('Слова однаковi')
else if st1 > st2 then writeln('Переше слово бiльше')
else writeln('Друге слово бiльше');
readln;
end.