- •Лабораторна робота №1. Тема: Програмування алгоритмів циклічної структури. Оператор циклу з параметром. Оператори циклу while, repeat.
- •Хід роботи
- •Лабораторна робота №2. Тема: Робота з одновимірними масивами.
- •Хід роботи
- •Теоретичні відомості до лабораторної роботи № 2 . Масиви.
- •Дії над масивами. Заповнення масиву даними
- •Виведення масиву.
- •Дії з одновимірними масивами
- •Сортування масиву
- •Лабораторна робота №3. Тема: Сортування масивів. Робота з двовимірними масивами.
- •Хід роботи
- •Лабораторна робота №4. Тема: Процедури та функції. Рекурсивні функції. Відкриті масиви
- •Хід роботи
- •Використання процедур без параметрів та з параметрами.
- •Використання функцій.
- •Лабораторна робота №5. Тема: Робота з даними рядкового типу.
- •Хід роботи
- •Теоретичні відомості до лабораторної роботи № 5 . Рядки (string)
- •Змінну рядкового типу оголошують за допомогою слова string так:
- •Лабораторна робота №6. Тема: Модулі користувача. Модулі crt і graph.
- •Хід роботи
- •Теоретичні відомості до лабораторної роботи № 6. Модулі.
- •Виведення тексту
- •Приклад виводу тексту.
- •Поняття модуля
- •Структура модуля
- •Компіляція модулів
- •Стандартні модулі Короткий опис модулів
- •Графіка
- •Лабораторна робота №7. Тема: Записи. Команда приєднання (with).
- •Хід роботи
- •Теоретичні відомості до лабораторної роботи № 7. Поняття запису
- •Оператор with
- •Лабораторна робота №8. Тема: Робота з текстовими файлами. Використання типізованих файлів.
- •Хід роботи
- •Теоретичні відомості до лабораторної роботи № 8. Файли і робота з ними.
Теоретичні відомості до лабораторної роботи № 5 . Рядки (string)
Дані рядкового типу - це обмежена послідовність довільних символів (тобто елементів типу char). Постійні рядкового типу записують за допомогою двох штрих-символів (апострофів), що охоплюють текст. Рядок може мати від 0 до 255 символів. Наприклад, 'Україна', 'Львівська політехніка' " - порожній рядок нульової довжини, ' ' - рядок, що складається з одного символу-пропуску.
Змінну рядкового типу оголошують за допомогою слова string так:
var <змінна> : string[n];
де п – довжина рядка, n<256. Довжину рядка можна не вказувати. Наприклад
const slovo = 'University';
var frazal : string[45];
fraza2 : string;
Над змінними рядкового типу визначені операції об'єднання (символ операції +) і порівняння (< <= > >= = <>). Порівняння двох рядків здійснюється зліва направо до перших різних символів, причому 'А' < 'В', 'В' < 'С' і т.д. «Великим» вважається символ, який розміщений в алфавіті далі (він має більший номер в таблиці кодів комп'ютера ASCII). Числовий код символу дає функція ord, наприклад, ord('B')= 66, ord('A')= 65. Зворотну дію виконує функція chr: chr(66) дає 'В'.
Приклад. Хай tl = 'New', t2=' Year'. Тоді об'єднанням цих рядків буде s := tl + t2 (результат: s = 'New Year').
Тут s > tl.
Приклад. Вивести на екран рядкові букви латинського алфавіту і їх коди можна таким чином:
for v := 'a' to 'z' do writeln(v, ord(v):5);
Для обробки даних рядкового типу призначені стандартні функції
Length (<рядок>) - визначає кількість символів в заданому рядку;
Сору (г, m, n) - дає п символів рядка r, починаючи з символа з номером т;
Concat (rl, r2 ..., гn) - об'єднує рядки rl ..., гn в один рядок;
Pos (rl, r2) - визначає № символу, з якого починається входження рядка rl в рядок г2.
і процедури
insert(rl <змінна>, n) - вставляє рядок rl в рядок, який заданий змінною, починаючи з позиції n;
delete(<змінна>, m, n) - видаляє n символів з рядка, який заданий зміною, починаючи з позиції m;
str(<число> <змінна>) - переводить числове дане в дане рядкового типу;
val(rl, si, s2) - засилає в числову змінну si числовий образ рядка rl. Якщо це можливо, то змінна s2 набуває значення 0, інакше - числове значення номера першого неприпустимого символу заданого рядка.
Вказана змінна передає в процедуру вхідне дане рядкового типу і одержує назад змінений рядок — результат виконання процедури.
Приклад. Хай змінна Lvov має значення 'Львівська політехніка'. Розглянемо приклади функцій і їх значення:
Функція Значення
length(Lvov) 21;
сору(Lvov, 15, 11) 'техніка';
concat(Lvov,' - 2001') 'Львівська політехніка - 2001';
роs(V, Lvov) 15.
Наступні процедури присвоять змінній Lvov такі значення:
Процедура Значення змінної Lvov
Insert(‘Hy ', Lvov, 1) 'НУ Львівська політехніка'
delete(Lvov, 6, 16) 'Львів'
str(2001, Lvov) '2001'
val('1256', Lvovl, Ozn) Lvovl = 1256, Ozn = 0
Існує два способи обробки даних типу string. Перший: весь рядок користувач обробляє як єдине дане за допомогою описаних вище функцій і процедур. Другий: рядок розглядає як масив символів і обробляє її поелементно.
Приклад. Значення рядковим змінним frazal і fraza2 можна привласнити, а потім вивести їх на екран так:
frazal := 'Ви любите канікули?';
for i := 1 to 19 do read(fraza2[i]);
writeln(frazal); writeln(fraza2);
Задача. Кодування тексту. Видалити з деякої фрази а всі пропуски, коми і крапки, інші символи продублювати. Вивести результат.
program MyCode;
uses Crt;
var а, b, с : string;
i : integer;
begin
clrscr;
write('Введіть текст: '); readln(a); b:=";
for i := 1 to Length(a) do
begin
с := сору(а, i, 1); {або поелементно так: с := а[i];}
if (с <> ',') and (с <>'.') and (с <>' ' )then b := b + с + с
end;
writeln(b);
end.
Задача. Хай заданий рядок 'Я люблю Мерседес'. Визначити довжину рядка. Вивести на екран друге слово цього рядка.
program Stroka;
uses Crt;
const rl : string = 'Я люблю Мерседес';
var i, к, m, nl, n2 : integer;
begin
clrscr;
m := 0;
к:= length(rl); {Визначаємо довжину рядка}
writeln('Довжина рядка к =', к);
for i := 1 to к do {Перебираємо всі символи рядка}
if rl[i]= ' ' then begin {і шукаємо пропуск}
m := m + 1;
if m = 1 then nl := i; {Визначаємо номер першого пропуску}
if m = 2 then n2 := i {Визначаємо номер другого пропуску}
end;
for i := nl + 1 to n2 - 1 do write(rl[i]);
end.
