Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Програмування.doc
Скачиваний:
7
Добавлен:
19.11.2019
Размер:
742.91 Кб
Скачать

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.