Begin
Clrscr;
Write(‘Введіть текст: ‘);
Readln(St);
Count:=0; {Початкове значення лічильника}
For i:=1 to length(St)- 2 do
If Copy(St,i,3) = ‘абв’ Then count:=count+1;
Writeln(‘Кількість шуканих послідовностей: ‘,count);
Readkey;
End.
ЗАДАЧА № 394
Умова: Нехай дано формулу. Визначити коректність формули щодо кількості відкритих та закритих дужок. Вважається, що закриті дужки не стоять перед відкритими. Якщо дужки у формулі відсутні - повідомити про це.
Розв’язання: Для визначення коректності формули слід підрахувати кількість відкритих та закритих дужок, причому баланс дужок вважається вірним не тільки якщо ці значення дорівнюють одне одному, а й якщо відкрита дужка передує закритій. Останнє перевіряється тим, що кількість відкритих дужок має завжди бути більшою або рівною кількості закритих.
Звідси випливає, що для розв’язку даної задачі зручно скористатися циклом з передумовою, який буде слідкувати за досягненням кінця рядка, та відслідковувати правильність розташування відкритих та закритих дужок.
Щоб визначити, чи є в формулі дужки взагалі, достатньо перевірити на нуль кількість одних чи других дужок. Визначимо змінні count_leftта count_rightяк кількість відповідно лівих (відкритих) та правих (закритих) дужок, тоді програма, що реалізує описаний алгоритм, має вигляд:
Program Example_394;
Var і:byte; {і - змінна циклу}
St:string; {St - даний текст}
count_left, count_right:byte; {count_left - лічильник лівих дужок, count_right - лічильник правих дужок}
Begin
Clrscr;
Write(‘Введіть формулу: ‘);
Readln(St);
Count_left:=0; {Початкове значення лічильника)
Count_right:=0;
і:= 1;
While (i<=length(St)) and (Count_left>=Count_right)) do
Begin
If St[i] = ‘(‘ Then count_left:=count_left+1;
If St[i] = ‘)’ Then count_right:=count right+1;
і: =i+l ;
End;
If (oount_left=0) and (count_right=0)
Then wrіteln(ЛФормула не має дужок.’)
Else
If count_left=count_right then Writeln( ‘Формула коректна’)
else writeln(‘Формула не коректна.’);
Readkey;
End.
Домашнє завдання
• Повторити сторінки 120—123 запропонованого підручника;
• Задачі № 384 (1), 388, 389 (1,3,4), 390, 396, 399,406 (1,2,4).
УРОК 30. Робота з графікою
Мета уроку: дати поняття графічного режиму роботи монітору, ініціалізації графічного режиму, основних процедур та функцій для побудови графічних зображень.
Теоретичний матеріал
Режими роботи монітору було розглянуто в уроці 9.
Для роботи в графічному режимі використовується модуль Graph, який складається з більш ніж 90 графічних процедур і функцій. Усі стандартні засоби модуля Graph стають доступними після його підключення до програми в розділі Uses: Uses Graph;Зверніть увагу що для того, щоб графічна бібліотека стала доступною, слід прописати до неї шлях доступу в пункті меню Options/Directories / Unit directories оболонки Паскаль. За замовчуванням цей шлях доступу наступний: BP\UNITS відповідного диску. Екран у графічному режимі може адресуватися за допомогою системи координат, причому значення X(номера стовпчика) збільшується зліва направо, а значення У (номера рядка) збільшується зверху до низу. За замовчуванням координати екрана мають такий вигляд:
(0,0) - лівий верхній кут;
(639,0) - правий верхній кут;
(319,239)-центр;
(0,479) - лівий нижній кут екрана;
(639,479) - правий нижній кут.
Графічна система підтримує поточний покажчик СР, який виконує ті ж функції, що і курсор, але не виводиться на екран. Для переміщення курсора використовуються процедури MoveTo , LineTo , InitGraph , LineRel , MoveRelі деякі інші. У графічному режимі можна виводити текст, причому є можливість масштабування і вибору типу шрифту, виконання вирівнювання виведеного тексту тощо. Наявні програми підтримують різні засоби малювання і заповнення фігур, зокрема, точку, лінії, окружності, еліпси, прямокутники, багатокутники. Для всіх команд виведення можна встановити графічне вікно (прямокутну область на екрані заданого розміру). Уся графічна інформація виводиться у поточне вікно, поки не активізується інше. При установці віконного режиму всі графічні зображення, якщо вони виходять за межі вікна, усікаються. При виконанні графічної операції може виникнути помилка, код якої можна одержати за допомогою функції GraphResult . Код помилки може приймати одне з наступних значень:
Читать дальше