Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лабораторна робота №1




Складання алгоритму та написання програми мовою ТР 7.0 для розрахунку функції розгалуженням

Кількість занять – 2(4години).

Мета роботи – ознайомитися зі структурою ТР-програми, вивчити основні правила написання програм мовою ТР 7.0, правила застосування умовних операторів та операторів циклу мови ТР 7.0; навчитися працювати з одномірними масивами.

Підготовка до роботи: за матеріалом лекції, методичною та додатковою літературою вивчити структуру ТР-програми, правила застосування умовних операторів (IF) та операторів циклу (WHILE, REPEAT, FOR); ознайомитися з типом даних ARRAY (масив), відповісти на контрольні питання.

 

Послідовність виконання роботи

1. Отримати індивідуальне завдання.

2. Скласти алгоритм розв`язування задачі у вигляді графічної блок-схеми.

3. Написати програму мовою ТР 7.0, яка реалізує даний алгоритм.

4. Ввести й налагодити програму, виконати числові розрахунки за комп`ютером.

5. Оформити і захистити звіт.

 

3.1.1. Умовні оператори (умовні конструкції) мови ТР

 

Умовні конструкції використовуються тоді, коли необхідно перевірити умову, перш ніж виконувати певні дії в програмі:

а) конструкція IF…THEN. Ця конструкція використовується тоді, коли потрібно або виконати певні дії (умова істинна), або не виконувати жодних дій (умова хибна).

У загальному вигляді вона записується:

IF <yмова>

THEN

BEGIN {якщо умова істинна}

<оператор_1>;

-

-

<оператор_N>;

END;

Якщо при виконанні умови треба виконати лише один оператор, то BEGIN i END можна не використовувати. Це правило справедливе й для інших конструкцій.

б) конструкція IF…THEN…ELSE. Ця конструкція використовується від значення (істинності чи хибності) вказаної умови (розгалуження по двох напрямках)

Загальний вигляд конструкції

IF <yмова>

THEN

BEGIN {якщо умова істинна}

<оператор_1>;

-

-

<оператор_N>;

END;

ELSE

BEGIN {якщо умова істинна}

<оператор_1>;

-

-

<оператор_M>;

END.

В умові ТР 7.0 є можливість уключення всередину віток THEN i ELSE інших (вкладених) операторів IF…THEN…ELSE (при так званому розгалуженні по багатьох напрямках).

 

3.1.2. Оператори циклу (циклічність конструкції) мови ТР

 

Цикли дозволяють багаторазово виконувати окремі оператори або послідовність операторів програми, причому ці оператори записуються в програмі лише один раз.

a) конструкція WHILE…DO. Літературною мовою вона означає: “До тих пір, поки вказана умова істинна, виконувати таке…”.

Загальний вигляд цієї конструкції записується, як

WHILE <yмова> DO

BEGIN

<оператор_1>;

-

-

<оператор_N>;

END;

Сукупність операторів, обмежених ключовими словами BEGIN i END, утворюють так зване тіло циклу.

У конструкції WHILE…DO спочатку перевіряється <умова> (цикл із передумовою), а потім, якщо ця умова істинна, виконується тіло циклу. Інакше тіло циклу ігнорується і виконується оператор, який стоїть відразу після закінчення тіла циклу (вихід із циклу).

б) конструкція REPEAT…UNTIL. Загальний вигляд цієї конструкції такий:

REPEAT

<оператор_1>;

-

-

<оператор_N>;

UNTIL <yмова>;

Вона відрізняється від попередньої конструкції тим, що, по-перше, спочатку виконується тіло циклу, а потім перевіряється <умова> (цикл із післяумовою); по-друге, цикл продовжується до тих пір, поки <умова> хибна. Коли ж вона стає істинною, настає вихід із циклу. До того ж у конструкції REPEAT…UNTIL не обов`язкове застосування слів BEGIN…END для виділення тіла циклу.

Кожний цикл має так звану змінну циклу. Особливість розглянутих циклічних конструкцій полягає в тому, що програміст сам повинен змінювати значення цієї змінної, інакше виникне зациклення програми.

в) конструкція FOR…TO (DOWNTO)…DO характеризується тим, що змінна циклу (або лічильник циклу) змінюється автоматично. При використанні FOR…TO…DO лічильник автоматично збільшується на одиницю після кожного виконання тіла циклу, а для FOR…DOWNTO…DO - зменшується на одиницю.

Загальний вигляд цієї конструкції:

FOR <змінна_циклу>:=<початкове_значення> TO (DOWNTO)

<кінцеве значення> DO

BEGIN

<оператор_1>;

-

-

<оператор_N>;

END;

 

Тіло циклу виконується до тих пір, поки змінна циклу (лічильник) не досягне свого кінцевого значення. Після цього тіло циклу виконується останній раз, і настає вихід із циклу.

 

3.1.3. Дані типу ARRAY (масив)

 

Масив – це впорядкований набір змінних одного типу, які називаються елементами масиву. Всі елементи масиву пронумеровані; номер елемента масиву називається його індексом. Перед використанням масиву його необхідно описати. Оголошення (опис) змінних типу ARRAY виконується в розділі оголошень та узгоджень ТР-програми таким чином (для одномірного масиву):

 

VAR <iм`я масиву>:ARRAY [<поч.індекс>…<кінц. індекс>] OF <тип даних>

 

Наприклад:

 

VAR MASSIV:ARRAY[1…100] OF INTEGER;

Цей запис означає, що масив з іменем MASSIV може містити 100 елементів цілого (INTEGER) типу, які пронумеровані (мають індекси) цілими числами від 1 до 100. Індексами елементів масиву можуть бути константи будь-якого простого типу, крім дійсного. Доступ до елементів масиву виконується за іменами цих елементів. Ім`я елемента масиву утворюється з імені самого масиву, за яким у квадратних дужках слідує індекс (номер) цього елемента, наприклад MASSIV [8].

Над елементами масиву можна виконувати ті самі дії, що й над змінними того ж типу.

Перед тим, як використовувати масив у якості набору вхідних даних програми, необхідно його елементам надати конкретних значень.

В умові ТР 7.0 немає можливості ввести в пам`ять комп`ютера відразу значення всіх елементів масиву. Тому введення масиву виконується по-елементно за допомогою циклу. Наприклад:

 

 

FOR i:=1 TO 100 DO

BEGIN

WRITE (‘Введіть’,і,’-ий елемент масиву’);

READLN (MASSIV[i]);

END;

 


3.1.4. Зразок виконання індивідуального завдання

 

Завдання. Скласти програму обчислення функції.

а) аргумент хі задається умовами

а<= хі<=b, хі +1= хі +h, де а, b, с — константи, h – крок.

б) аргумент хі визначається значенням елементів одномірного масиву, тобто хі =[ х12,…,хn-1n], n=20.

1) Виконання завдання. Складемо алгоритм обчислень для варіанта а), побудувавши графічну блок-схему (рис.3.1.1.).

 
 

Рис.3.1.1. Блок-схема обчислення функції з розгалуженням

 

Перш ніж перейти до написання програми мовою ТР 7.0, яка реалізує цей алгоритм, зробимо декілька зауважень.

1. У мові ТР 7.0 немає функцій для обчислення математичних операцій logy(x) та yx (піднесення до степеня), але можна скористатися рівностями:

 

logy(x) =ln(x)/ln(y); yx=e(x·ln(y))

2. Оскільки в побудованій блок-схемі умова (х>b) стоїть після тіла циклу, то при написанні програми зручно використати циклічну конструкцію REPEAT…UNTIL (цикл із післяумовою).

3. Конкретні значення констант а, b, с і h слід задавати коректно, тобто так, щоб виконувались умови: a<b, a<c<b, h<<(b-a), a>-1.

4. Оскільки в тілі циклу після перевірки умови (х<с), слід використовувати умовну конструкцію IF…THEN…ELSE.

Тоді ТР-програма, яка реалізує алгоритм (рис.3.1.1.), запишеться:

 

PROHRAM TABULATION1; {табуляція функції}

USES Crt; {під`єднання модуля}

CONST a=0.0; b=10.5; C=5.4; h=0.1;

VAR x,F:REAL; {оголошення констант та змінних}

BEGIN {початок основного блоку програми}

ClrScr; {очищення екрана монітора}

X:=a;

REPEAT {цикл}

IF x<c {умовна конструкція}

THEN

F:=ln(x+1)/ln(5)

ELSE

F:=exp(x*ln(2));

WRITELN(x,F); {виведення результатів}

X:=x+h; {перепозначення змінної циклу}

UNTIL x>b; {перевірка умови виходу з циклу}

END. {кінець основного блоку програми}

 

Змінимо початковий варіант графічної блок-схеми, як показано на рисунку 3.1.2.

Оскільки тепер умова (x<=b) стоїть перед тілом циклу, то при написанні програми зручно використовувати циклічну конструкцію WHILE…DO (цикл із передумовою):

 

PROGRAM TABULATION2;

uses crt;

CONST a=0.0; b=10.5; C=5.4; h=0.1;

VAR x,F:REAL;

BEGIN

X:=a;

WHILE x<=b DO

BEGIN

IF x<=c

THEN

F:=ln(x+1)/ln(5)

ELSE

F:=exp(x*ln(2));

WRITELN(x,F);

X:=x+h;

END;




Поделиться с друзьями:


Дата добавления: 2014-10-31; Просмотров: 375; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.023 сек.