- •Методичні рекомендації та індивідуальні завдання для лабораторних та самостійних робіт
- •Лабораторна робота №1
- •Запис алгоритмів мовою блок-схем.
- •Навчитися будувати блок-схеми алгоритмів засобами Microsoft Word.
- •Лабораторна робота №2
- •Робота в середовищі програмування Turbo Pascal. Запуск програм на виконання.
- •Ознайомитись з середовищем програмування Turbo Pascal. Навчитись вводити, редагувати, записувати та виконувати програми.
- •Ознайомистися з середовищем Turbo Pascal 7.0.
- •Лабораторна робота №3
- •Мп Turbo Pascal. Знайомство з середовищем. Створення програми за зразком
- •Питання для самоконтролю
- •Лабораторна робота №4
- •Створення та реалізація послідовних алгоритмів мп Pascal. Обчислення за формулами. Організація діалогу між користувачем та еом
- •Навчитися записувати послідовні алгоритми мовою програмування Pascal, виконувати запуск програм, компіляцію, редагування програмного коду.
- •Лабораторна робота №5
- •Мп Turbo Pascal. Реалізація алгоритмів розгалуження
- •Навчитися реалізовувати алгоритми розгалуження в середовищі Turbo Pascal.
- •Лабораторна робота №6
- •Мп Turbo Pascal. Реалізація циклічних алгоритмів
- •Навчитися реалізовувати циклічні алгоритми в середовищі Turbo Pascal.
- •Лабораторна робота №7
- •Мп Turbo Pascal. Одновимірні масиви. Формування одновимірного масиву. Виведення елементів одновимірного масиву.
- •Навчитися формувати одновимірний масив за різними способами: через присвоєння, в режимі діалогу, за допомогою функції генерування виипадкових чисел. Виведення результатів на екран.
- •З авдання 3
- •Результати обчислень
- •Лабораторна робота №8
- •Мп Turbo Pascal. Одновимірні масиви. Характерні прийоми алгоритмізації.
- •Навчитися обчислювати суму, добуток, кількість елементів масиву, що відповідають заданій умові. Навчитися знаходити максимальний та мінімальний елементи масиву та їх індекси.
- •Мп Turbo Pascal. Одновимірні масиви. Характерні прийоми алгоритмізації
- •Перевірити рівень теоретичних знань та практичних навичок при створенні та опрацюванні одновимірних масивів
- •Лабораторна робота №9
- •Мп Turbo Pascal. Одновимірні масиви. Впорядкування одновимірних масивів.
- •Навчитися розв’язувати задачі на упорядкуання одновимірних масивів в середовищі Turbo Pascal.
- •Лабораторна робота №10
- •Мп Turbo Pascal. Одновимірні масиви. Пошук в одновимірному масиві.
- •Навчитися використовувати алгоритми пошуку в одновимірному масиві при розв’язуванні задач.
- •1 Спосіб
- •2 Спосіб Рис.10.4. Програма розв’язання задачі.
- •Лабораторна робота №11
- •Робота з рядковими величинами.
- •Ознайомитися з основними процедурами і функціями для роботи з рядковими величинами.
- •Лабораторна робота №12
- •Мп Turbo Pascal. Двовимірні масиви. Формування двовимірного масиву. Виведення елементів двовимірного масиву на екран.
- •Навчитися вводити елементи двовимірного масиву по рядках і по стовпцях та виводити елементи двовимірного масиву на екран.
- •Лабораторна робота №13
- •Мп Turbo Pascal. Двовимірні масиви. Пошук максимального та мінімального елемента в стовпцях та рядках двовимірного масиву.
- •Навчитися знаходити максимальні та мінімальні елементи двовимірного масиву, а також індекси цих елементів при розв’язуванні задач в середовищі Turbo Pascal.
- •Лабораторна робота №14
- •Мп Turbo Pascal. Опрацювання двовимірних масивів.
- •Отримати навички роботи з двовимірними масивами.
- •Мп Turbo Pascal. Функції користувача в мові програмування Turbo Pascal.
- •Навчитися створювати функції користувача при розв’язуванні задач.
- •Лабораторна робота №16
- •Використання процедур і функцій мп Turbo Pascal при опрацюванні масивів даних.
- •Навчитися використовувати процедури при опрацюванні масивів даних.
- •Опрацювання одновимірних і двовимірних масивів в середовищі Turbo Pascal
- •Перевірка теоретичних знань та набутих практичних навичок при роботі з масивами даних
Лабораторна робота №11
Робота з рядковими величинами.
Ознайомитися з основними процедурами і функціями для роботи з рядковими величинами.
Завдання для лабораторної роботи
Написати програми для розв’язання задач
Задача №1
Постановка задачі
Дано деякий текст, у якому є хоча б одна кома. Визначити порядковий номер останньої коми в тексті.
Примітка.
Для пошуку останньої коми в тексті необхідно організувати цикл перегляду рядка з кінця до початку, тобто від останнього символу рядка з номером length(St) до першого. В зв'язку з тим, що ми не знаємо, якою за номером буде кома, краще це зробити командою повторення з передумовою. Цикл завершить свою роботу при досягненні позиції, в якій знаходиться кома (за умовою вона обов'язково є в тексті). Значення змінної циклу і буде номером шуканої позиції.
Текст програми.
Program Zadacha11_1;
Uses wincrt;
Var i:byte; {i - змінна циклу}
St:string; {St - даний текст}
Begin
Clrscr;
Write ('Введіть текст: ');
Readln(St);
i:=length(St);
while St[i]<>',' do i:=i-1;
Writeln ('Номер позиції останньої коми в тексті ',i);
Readkey; {Затримка зображення на екрані}
End.
Задача №2
Постановка задачі
Дано деякий текст. Створити новий текст, який утворено із даного читанням з кінця до початку.
Примітка.
Для реалізації даної задачі знов, як і в попередньому випадку, пройдемо рядок з кінця до початку, виконуючи конкатенацію кожного наступного символу до нового рядка.
Текст програми.
Program Zadacha11_2;
Uses wincrt;
Var i:byte; {i - змінна циклу}
St,Rez:string; {St - даний текст, Rez -результуючий рядок}
Begin
Clrscr;
Write ('Введіть текст: ');
Readln (St);
Rez:=''; {Очищення рядка}
For i:=length(St) downto 1 do
Rez := Rez+St[i];
Writeln ('Результуючий рядок: ');
Writeln (St);
Readkey; {Затримка зображення на екрані}
End.
Задача №3
Постановка задачі
Визначити, скільки разів у даному тексті зустрічається послідовність символів "абв".
Примітка
Організовуємо прохід по рядку за допомогою циклу з параметром, причому враховуємо, що необхідно перевірити три послідовно розташованих символи (зверніть увагу на можливість виходу за межі рядка!). Використуємо функцію копіювання Copy.
Текст програми
Program Zadacha11_3;
Uses wincrt;
Var i:byte; {i - змінна циклу}
St:string; {St - даний текст} Count:byte; {Count - лічильник послідовностей}
Begin
Clrscr;
Write ('Введіть текст: ');
Readln (St);
Count:=0; {Початкове значення лічильника}
For i:=1 to length(St)-3 do
If Copy (St,i,3) = 'абв'
Then count:=count+1;
Writeln ('Кількість шуканих послідовностей: ',count);
Readkey; {Затримка зображення на екрані}
End.
Задача №4
Постановка задачі
Нехай дано формулу. Визначити коректність формули щодо кількості відкритих та закритих дужок. Вважається, що закриті дужки не стоять перед відкритими. Якщо дужки у формулі відсутні − повідомити про це.
Примітка
Для визначення коректності формули необхідно підрахувати кількість відкритих та кількість закритих дужок. Якщо ці значення дорівнюють одне одному, баланс дужок виконується, якщо ні - не виконується. Щоб визначити, чи є в формулі дужки взагалі, достатньо перевірити на нуль кількість одних чи других дужок. Визначимо змінні count_left та count_right, як кількість відповідно лівих (відкритих) та правих (закритих) дужок.
Текст програми
Program Zadacha11_4;
Uses wincrt;
Var i:byte; {i - змінна циклу}
St:string; {St - даний текст} count_left, count_right:byte;
Begin
Clrscr;
Write ('Введіть формулу: ');
Readln(St);
Count_left:=0; {Початкове значення лічильника}
Count_right:=0;
For i:=1 to length(St) do
Begin
If St[i] = '('
Then count_left:=count_left+1;
If St[i] = ')'
Then count_right:=count_right+1;
End;
Writeln ('Кількість лівих дужок: ',count_left);
Writeln ('Кількість правих дужок: ',count_right);
If (count_left=0) or (count_right=0)
Then writeln ('Формула не має дужок.')
Else
Begin
If count_left = count_right
then Writeln ('Формула коректна.')
else writeln ('Формула не коректна.');
end;
Readkey; {Затримка зображення на екрані}
End.
Задача №5
Постановка задачі
Дано деякий текст. Групи символів, які розділені пробілами (одним або кількома) та не містять всередині себе пробілів, називатимемо словами. Вважатимемо, що текст завжди починається зі слова. Визначити кількість слів, у яких перша та остання літера однакові.
Примітка
При розв’язуванні цієї задачі, очевидно, що початок першого слова буде співпадати з першою літерою рядка (дивись умову), а кінець слова можна визначити, знайшовши перший проміжок. Скопіювавши це слово в додатковий рядок, ми отримаємо нескладну задачу порівняти його перший та останній символи. Якщо ці символи співпадають, слово підраховується, і процес продовжується для наступного слова. Щоб задачу пошуку чергового слова зробити ідентичною для всіх слів, можна вважати, що початком слова є послідовність з проміжку та непроміжку, а відповідно кінцем слова є послідовність з непроміжку та проміжку (цей метод зручний ще тим, що враховує те, що між словами може бути не один проміжок − всі зайві проміжки пропускаються). Виділятися з цього буде перше та останні слова, тому що на початку рядка та в його кінці користувач може не поставити проміжок і ці слова не буде знайденим. Щоб узагальнити задачу пропонуємо один зі штучних методів: дописати на початку та в кінці рядка проміжки
Текст програми
Program Zadacha11_5;
Uses wincrt;
Var i:byte; {i - змінна циклу}
S,Slovo:string; {S - даний текст, Slovo - вирізане з тексту слово}
count:byte; {count - лічильник шуканих слів}
Begin
Clrscr;
Write ('Введіть текст: ');
Readln (S);
S:=' '+S+' '; {Дописування проміжку перед першим словом та після
останнього}
Count:=0; {Початкове значення лічильника}
i:=1; {Початок перегляду рядка}
while i<=length(S)-1 do
Begin
If (S[i]=' ') and (S[i+1]<>' ')
Then
Begin
Slovo:='';
While (S[i+1]<>' ') do
Begin
Slovo:=Slovo+S[i+1];
i:=i+1;
End;
If Slovo[1] = Slovo[length(Slovo)]
Then count:=count+1;
End;
i:=i+1;
End;
Writeln ('Кількість шуканих слів: ',count);
Readkey; {Затримка зображення на екрані}
End.
№11
Написати програми мовою Pascal, відлагодити їх та проаналізувати отримані результати.
Задача №1
У заданій формулі порахувати кількість входжень символів "+" та кількість символів "-".
Задача №2
Дано деякий текст, у якому є хоча б одна кома. Визначити порядковий номер першої коми в тексті.
Задача №3
Роздрукувати даний текст у зворотному порядку.
Задача №4
Нехай дано формулу, яка містить лише арифметичні операції +, -, *, / і не містить дужок та функцій. Визначити загальну кількість арифметичних дій, передбачених у цій формулі, та кількість чисел, над якими вони виконуються.
Задача №5.
Дано текст. Відредагувати його таким чином, щоб всі символи "." Були замінені на "...", символи ":" на "−", символи "−" на ":".
Задача №6.
Скласти програму, яка кожну літеру "а", що зустрічається в тексті, замінює на групу символів "ку" (наприклад "ади" - "куди").
Задача №7
Дано деякий текст. Групи символів, які розділені пробілами (одним або кількома) та не містіть всередині пробілів, називатимемо словами. Вважатимемо, що текст завжди починається зі слова. Визначити кількість слів у тексті.
Питання для самоконтролю
Поясніть, що являє собою рядкова величина? Як описується рядок?
Яким чином можна виконати конкатенацію рядків?
Яким чином можна визначити кількість символів, з яких складається рядок?
Яким чином можна скопіювати фрагмент текстового рядка?
Яким чином можна виконати пошук підрядка в рядку?
Яким чином можна вставити підрядок в рядок?
Яким чином можна перетворити числове значення на рядкове?
Яким чином можна перетворити рядкове значення на числове?
