asyan.org
добавить свой файл
1


МІНІСТЕРСТВО НАУКИ І ОСВІТИ УКРАЇНИ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"

Розра­хунок статичних характеристик об’єктів.

Алгоритмізація та програмування задач з галуженням і повторенням, ч.3

Інструкція

до лабораторної роботи

з дисципліни "Алгоритмізація і програмування"

для студентів базового напряму 6.0925

"Автоматизація і комп'ютерно-інтегровані технології"


Затверджено

на засіданні кафедри

автоматизації теплових

і хімічних процесів

Протокол № _ від _____

Львів 2008

^ Мета роботи: навчитися складати алгоритм і програму із галуженнями та циклічними повтореннями для побудови статичних характеристик об’єктів.

Необхідна підготовка: знання матеріалу попередніх лабораторних робіт.
Основні відомості

Цикл з відомою кількістю повторень реалізований оператором for. Формат цього оператора є таким:

for([<вираз_1>]; [<вираз_2>]; [<вираз_3>])

<оператор>;
де: вираз_1 задає початкове значення змінної, яка керує циклом (керуючої змінної), вираз_2 визначає умову, при якій оператор циклу буде виконуватися, вираз_3 визначає характер зміни керуючою змінною. Вирази в круглих дужках утворюють заголовок циклу, простий або складений оператор - тіло циклу.

Схема виконання оператора є такою:

1) спочатку обчислюється вираз_1, що зазвичай використовується для ініціалізації керуючої змінної;

2) далі обчислюється вираз_2, якщо вираз істинний, виконується тіло циклу;

3) потім обчислюється нове значення керуючої змінної, задане виразом_3. Якщо вираз істинний для нового значення керуючої змінної, то для цього значення керуючої змінної виконується тіло циклу. Процес продовжується доти, поки значення керуючої змінної не задовольнить умову виходу з циклу, визначену виразом_2, тобто вираз_2 стане хибним.

Наприклад:

int i, s=0;

for(i=1; i<10; i++) //i=i+1 або i+=1

s=s+i;

printf(“\n i=%d”, i);

Коли оператор циклу починає виконуватися, керуючій змінній i присвоюється початкове значення 1. Потім перевіряється умова продовження циклу i<10. Оскільки початкове значення i дорівнює 1, умова істинна, виконується оператор тіла циклу s=s+i;. Далі керуюча змінна збільшується на одиницю, тобто виконується i++. Після цього перевіряється умова продовження циклу. Оскільки значення i дорівнює тепер 2, тобто є меншим 10, то виконується тіло циклу. Цей процес продовжується доти, поки керуюча змінна не збільшиться до 10, умова продовження циклу порушиться і повторення завершиться. Виконання програми продовжиться з першого оператора, розташованого після for, у цьому разі буде виконуватися оператор printf.

На рис. подано опис оператора for у вигляді блок-схеми алгоритму.

Якщо в тілі for є більше одного оператора, то для визначення тіла циклу обов’язково потрібно взяти оператори у фігурні дужки. За синтаксисом мови С оператор може бути порожнім, у цьому разі тілом циклу буде крапка з комою (;).


Рис. Блок-схема оператора for

^ Завдання на самостійну роботу



де А0=0; А1=5,3910-3; А2=1,2510-5; А3=-2,2410-8; А4=2,8410-11; А5=-2,2410-14; А6=8,5010-18; B0=-2,9810-1; B1=8,2310-3; B2=1,6410-6.

t[-50;1064,43]; ТПП ПП(S)

2)

де А0=-2,9810-1; А1=8,2310-3; А2=1,6410-6;

B0=1,39101; B1=3,64; B2=-5,0310-3; B3=-4,2410-2;

t[630,74; 1665]; ТПП ПП(S)

3)

де А0=1,39101; А1=3,64; А2=-5,0310-3; А3=-4,2410-2;

B0=1,8110-1; B1=5,6810-1; B2=-1,2110-2; B3=-2,8110-3.

t[1064,43;1767,6]; ТПП ПП(S)
де А0=1,55101; А1=4,24; А2=1,4710-2; А3=-5,2210-2;

B0=2,0410-1; B1=6,6910-1; B2=-1,2310-2; B3=-2,7910-3.

t[1064,43;1767,6]; ТПП ПП(R)

4)

де А0=-2,6410-1; А1=8,0510-3; А2=2,9910-6; А3=-2,6910-10

B0=1,55101; B1=4,24; B2=1,4710-2; B3=-5,2210-2;

t[630,74; 1665]; ТПП ПП(R)

5)

де А0=0; А1=5,2810-3; А2=1,3910-5; А3=-2,4010-8; А4=3,6210-11; А5=-4,4610-14; А6=3,8510-17; А7=-1,5410-20; B0=-2,6410-1; B1=8,0510-3; B2=2,9910-6; B3=-2,6910-10.

t[-50; 1064,43]; ТПП ПП(R)

6)

де А0=0; А1=3,9510-2; А2=2,7510-5; А3=-1,6610-7; А4=-1,5110-9; А5=-2,4910-11; А6=-2,4810-13; А7=-1,5610-15; А8=-5,9710-18; А9=-1,2710-20; А10=-1,1410-23;

B0=-1,8510-2; B1=3,8910-2; B2=1,6610-5; B3=-7,8710-8; B4=2,2810-10; B5=-3,5710-13; B6=2,9910-16; B7=-1,2810-19; B8=2,2210-23;

t[-270; 1372]; ТXA XA(K)

7)

де А0=0; А1=5,0410-2; А2=3,0410-5; А3=-8,5710-8; А4=1,3310-10; А5=-1,7010-13; А6=1,94510-16; А7=-9,6410-20; B0=2,97102; B1=-1,51; B2=3,2110-3; B3=-3,2210-6; B4=1,5910-9; B5=-3,1210-13.

t[-210;1200]; ТЖК ЖК(J)

8)

де А0=0; А1=6,3210-2; А2=5,8910-5; А3=-8,0410-8; А4=1,2010-10; А5=-2,4610-14; А6=-4,8310-16; А7=8,2410-19; А8=-4,0310-22.

B0=0; B1=5,8710-2; B2=4,3110-5; B3=5,7210-8; B4=-5,4010-10; B5=1,5410-12; B6=-2,4910-15; B7=2,3410-18; B8=-1,1910-21; B8=2,5610-25.

t[-270; 1372]; ТXK XK(L)

Рекомендована література

1. Петрович Р.Й., Тумашова О.В. Основи програмування мовою СІ. – Львів: Видавництво НУ «Львівська політехніка», 2005. – 116 с.

2. Щедріна О.І. Алгоритмізація та програмування процедур обробки інформації: Навч. посібник. – К.: КНЕУ, 2001. – 240с.

3. Проценко В.С., Чаленко П.І. Ставровський А.Б. Техніка програмування мовою СІ. - К.: Либідь, 1993. – 224 с.
Порядок виконання роботи

  1. Побудувати блок-схему алгоритму розв'язування завдання з розділу "Завдання на самостійну роботу" згідно з варіантом.

  2. Скласти програму мовою Сі реалізації алгоритму.

  3. Після перевірки викладачем блок-схеми та програми ввести останню в память комп'ютера.

  4. Одержати розв'язок задачі та записати отримані значення в таблицю.

  5. Побудувати графік заданої функції.

Схема оформлення звіту

  1. Дата.

  2. Назва лабораторної роботи.

  3. Завдання до роботи.

  4. Блок-схема алгоритму розв’язування задачі.

  5. Програма алгоритмічною мовою Сі.

  6. Таблиця з результатами виконання програми.

  7. Графічне зображення отриманих результатів табулювання функції.


Додаток

Лабораторна робота

Програмування задач з розгалуженим і циклічним обчислювальним процесом. Побудова статичної характеристики об’єкта

Завдання. Побудувати графік функції a, b - .

Розв’язання

  1. Для побудови графіка функції необхідно мати не менше десяти точок, як правило 10…12. Оскільки задана функція складається із двох різних залежностей, то і точок потрібно вибрати більше приблизно в 2 рази. Вибираємо відповідний крок ∆х табулювання функції .

  2. Значення змінних a, b вибираємо самостійно (або задає викладач), наприклад, a=2; b=1.

3) Блок-схема алгоритму розв’язування задачі має вигляд:



4) Програма мовою С, яка реалізує побудований алгоритм

#include

#include

#include
main()

{clrscr();

float x,f,a=2.0,b=1.0;

for(x=-1; x<=4; x+=0.25)

{if(x<2) f=pow(a,-b*x)+0.5*x;

if(x>=2) f=fabs(sqrt(1+x)+exp(-0.25*x)-2);

printf("\n x=%4.2f f=%5.3f", x,f);

}

getchar();

}

Результати виконання програми

x

-1.0

-0.75

-0.5

-0.25

0.00

0.25

0.5

0.75

1.00

1.25

1.5

f

1.500

1.307

1.164

1.064

1.000

0.966

0.957

0.970

1.000

1.045

1.104

x

1.75

2.00

2.25

2.50

2.75

3.00

3.25

3.50

3.75

4.00




f

1.172

0.339

0.373

0.406

0.439

0.472

0.505

0.538

0.571

0.604

Зауваження. У наведеній вище програмі галуження реалізоване з допомогою двох стягнутих форм оператора if(). Їх можна замінити одним повним оператором - if() оператор_1; else оператор_2;. Наприклад:

if(x<2) f=pow(a,-b*x)+0.5*x;

else f=fabs(sqrt(1+x)+exp(-0.25*x)-2);
5) За отриманими значеннями будуємо графік функції.