- •Основи програмування та алгоритмічні мови Програмування мовою 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.8.3. Варіанти завдань лабораторної роботи
1. Текстовий файл містить програму мовою Паскаль. Надрукувати в алфавітному порядку всі ідентифікатори цієї програми, вказавши для кожного з них число входжень в текст програми. Для збереження ідентифікаторів використати структуру типу дерева, елементами якого є ідентифікатор і число його входжень в текст.
2. Текстовий файл містить програму мовою Паскаль. Для збереження ідентифікаторів програми використати структуру типу дерева, елементами якого є ідентифікатори. Номер рядка, в якому оголошений ідентифікатор, визначає рівень дерева. Ліва гілка дерева визначає змінні, права гілка - константи.
3. Побудувати дерево, що відображає формулу (а*(в+с))/a, де коренем дерева та його підкоренями є операції "*,+,-,/", а листками є змінні а,в,с,а. Надрукувати дерево переліком своїх вершин на рівнях, які містять відповідні вершини.
4. Скласти програму, що обчислює кількість 'вузлів' заданого бінарного дерева та друкує всі елементи дерева з кореня до кінцевих вершин.
5. Побудувати дерево, що відображає формулу ((a+b)/c)*d, де коренем дерева та його підкоренями є операції, а листками є змінні. Ввести значення змінних та визначити значення дерева-формули. Надрукувати відповідні піддерева, наприклад: y1=a+b, у2=у1/с, y3=y2*d.
2.9. Графіка
2.9.1. Теоретичні вказівки
Для реалізації графічних зображень використовується графічний режим. Для ініціалізації графічного режиму необхідно підключити модуль graph.tpu за допомогою оператора USES GRAPH; та викликати процедуру ініціалізації графічного режиму:
initgraph(ім'я драйвера, режим, шлях до драйвера);
Можливе автоматичне визначення відеоадаптера. Для цього на місці першого параметра треба вказати ім'я Detect:
INITGRAPH(Detect,Regim,”);
Після роботи в графічному режимі його закривають процедурою closegraph.
Перелік процедур та функцій роботи з графічними елементами надана в додатку.
2.9.2 Приклад програми
Умова задачі: Дослідити область визначення і побудувати графік функції Y=3+2/X+3/X2
Алгоритм
1. Ініціалізація графічного режиму
2. Відображення координатних осей, асимптот, надписів.
3. Відображення графіка.
3.1. Перебір точок з абсцисами від лівого до правого кінця екрана
3.2. Визначення масштабу відображення точки на екрані
3.3. Визначення ординати точки
4. Кінець
uses crt,graph; { Підключення модуля GRAPH }
var grDriver,grMode:integer; {Змінні застосовуються процедурою
InitGraph}
x,y:real; { Змінні умови }
i:integer; { Змінна циклу }
function f(x:real):real; {функція , що досліджується}
begin
f:=3+2/x+3/sqr(x);
end;
procedure koordinate; {зображення координатних осей}
begin
setcolor(5); {колір осей червоний}
setbkcolor(15); {колір фону білий}
Line(320,0,320,350); {координатна вісь Х }
Line(0,300,640.300); {координатна вісь Y}
Line(318,10,320.0); {стрілка на осі Y }
Line(322,10,320.0): {стрілка на осі Y }
Line(630,298,640,300); {стрілка на осі Х }
Line(630,302,б40,300); {стрілка на осі Х }
SetLineStyle(DashedLn,0,1); { штрихова лінія }
Line(0.240,640,240); {асимптота графіка}
OutTextXY(310,305,'0'); {надписи на осях}
OutTextXY(310,5,'Y');OutTextXY(630.305.'X');
end;
begin {---------------------головна програма---------------------}
grDriver:=Detect; {визначення номера драйвера }
lnrtGraph(grDriver.grMode,'c:\tp7\bgi');{ініціалізація графічного
режиму}
koordinate; {зображення координатних осей}
for i:=-320 to 320 do begin {зображення графіка}
x:=0.05 *i; { визначити значення абсциси }
{масштаб представлення графіка в системі координат хОу дорівнює
20}
if x<>0 then { область визначення }
begin
y:=f(x); {визначити значення ординати}
PutPixel(round(320+20*x),round(300-20*y),1);
{зобразити піксель в заданих }
end; {координатах синім кольором}
end;
readin; closegraph; { закриття режиму графіки }
end.