- •Основи програмування та алгоритмічні мови Програмування мовою borland Pаscаl v7.0 для пеом Процедурне та модульне програмування
- •2.2.1. Теоретичні відомості
- •1. Основи алгоритмізації та програмування
- •1.1. Послідовність рішення задачі з допомогою еом
- •1.2.Середовище turbo Pаscаl
- •1.3.Типи даних turbo Pаscаl
- •1.4.Основні поняття мови програмування turbo Pаscаl
- •1.4.1.Синтаксис мови Програмування turbo Pаscаl
- •1.4.2. Основні дії в мові програмування
- •1.4.3. Умовні оператори
- •1.4.4. Методи організації циклів
- •1.4.5. Оператор вибору
- •1.4.6. Масиви.
- •1.4.7. Робота з рядками, масиви символів
- •1.4.8. Робота з типом string
- •1.4.9. Тестові завдання
- •1.4.10. Варіанти завдань для самостійного розгляду
- •2. Програмування в мові Pascal
- •2.1 Процедурний підхід до програмування
- •2.1.1 Теоретичні відомості
- •2.1.2.Приклад програми
- •2.1.3. Варіанти завдань для лабораторної роботи
- •2.2. Записи з фіксованою частиною
- •2.2.1. Теоретичні відомості
- •2.2.2. Приклад програми
- •2.2.3. Варіанти завдань для лабораторної роботи
- •2.3. Записи з варіантами
- •2.3.1. Теоретичні відомості
- •2.3.2. Приклад програми
- •2.3.3. Варіанти завдань для лабораторної роботи
- •2.4. Типізовані файли
- •2.4.1. Теоретичні відомості
- •2.4.2. Приклад програми
- •2.4.3. Варіанти завдань лабораторної роботи
- •2.5. Текстові файли
- •2.5.1. Теоретичні відомості
- •2.5.2. Приклад програми
- •2.5.3. Варіанти завдань Лабораторної роботи
- •2.6. Множини
- •2.6.1. Теоретичні вказівки
- •2.6.2. Приклад програми
- •Алгоритм
- •2.6.3. Варіанти завдань лабораторної роботи
- •2.7. Черги та стеки
- •27.1. Теоретичні вказівки
- •Алгоритм побудови стека:
- •2.7.2. Приклад програми
- •2.7.3. Варіанти завдань лабораторної роботи
- •2.8. Дерева
- •2.8.1. Теоретичні вказівки
- •2.8.2. Приклад програми
- •2.8.3. Варіанти завдань лабораторної роботи
- •2.9. Графіка
- •2.9.1. Теоретичні вказівки
- •2.9.2 Приклад програми
- •2.9.3 Варіанти завдань
- •2.10.Програмування інтерфейсу користувача. Розробка меню
- •2.10.1. Теоретичні вказівки
- •2.10.2. Приклад програми
- •2.10.3. Варіанти завдань
- •4 Створити меню такої структури: Головне меню
- •3. Основні принципи модульного програмування
- •3.1. Приклад програми
2.6. Множини
2.6.1. Теоретичні вказівки
Множини - це структурований тип даних, що містить дані одного типу. Змінна типу множина задається так: ім'я_змінної : SET OF тип; . Тип даних - скалярний (порядковий). Кількість компонентів множини не повинна перевищувати 256.
Наприклад, d:SET OF 1..100;
Значення змінної, типу множина, задається переліком конкретних значень компонентів вказаного типу, наприклад: D:=[50,15,25); D:-[1..20,34,50..60];
D:=[];. Останній оператор задає порожню множину.
Над множинами можна виконувати операції:
+ об'єднання (результат - елементи, що входять до двох множин);
* переріз (результат - спільні елементи двох множинах) ;
- різниця (результат - елементи, що є в одній множині та відсутні в іншій). Операція IN визначає, належить елемент множині чи ні. Результат операції має тип BOOLEAN. При роботі з множинами використовуються операції порівняння. Операції = , <> перевіряють, дорівнює одна множина другій чи ні. За допомогою операцій <= , >= можна визначити, чи є одна множина підмножиною іншої множини.
2.6.2. Приклад програми
Умова задачі: Задана послідовність слів, розділених пропусками. Вважаючи перше слово зразком, вибрати ті слова, які можуть бути отримані із зразка шляхом переставлення його літер
Алгоритм
1. Введення слова-зразка.
2. Створення множини символів із літер слова-зразка.
3. Введення рядка слів.
4. Поки не кінець рядка слів
4.1.Створення множини символів із літер поточного слова;
4.2.Якщо множини символів слова-зразка і поточного слова співпадають, друкується поточне слово;
4.3.Множині символів поточного слова присвоюється порожнє значення;
4.4.Повторити дії пункту 4.
5. Кінець.
type charset=set of char; { Тип множина }
var s,p:charset; { Множини літер}
st:string; str:string; {задане слово і рядок символів }
c,i,j:integer; { Робочі змінні}
begin
s:=[]; {множина символів рядка порожнє}
с:=0; {кількість літер в слові}
р:=[]; {множина символів , що є словом, порожня} writeln(Введіть слово - зразок:'); readln(st);
for i:=1 to length(st) do s:=s+[st[i]]; {множина символів слова-зразка} writeln('Введіть послідовність слів:'); readln(str);
writeln('Лаб. роб.');
writeln('Bapiaнт N30, виконав студент ');
writeln('Задане слово - зразок:'); writeln(st);
writeln('Задана послідовність слів:'); writeln(str);
writeln('Cловa, якi можуть бути отримані із зразка шляхом');
writeln('переставляння його літер:');
for i:=1 to length(str) do
begin if (str[i]<>' ') then {якщо символ не пробіл}
begin
p:=p+[str[i]j; { створення слова}
с:=с+1; {лічильник літер в слові}
end
else begin {якщо є пробіл}
if p=s {якщо множини літер слова-зразка та поточного слова співпадають}
then begin
for j:=i-c to і do write(str[j]); { друкується поточне слово} writeln(‘ ');
end;
c:=0; {рахунок літер для нового слова}
р:=[]; {множина для нового поточного слова}
end; {кінець else}
end; {кінець циклу по і}
end.