МІНІСТЕРСТВО НАУКИ І ОСВІТИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
Розрахунок статичних характеристик об’єктів.
Алгоритмізація та програмування задач з галуженням і повторенням, ч.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 є більше одного оператора, то для визначення тіла циклу обов’язково потрібно взяти оператори у фігурні дужки. За синтаксисом мови С оператор може бути порожнім, у цьому разі тілом циклу буде крапка з комою (;).
EMBED Visio.Drawing.6
Рис. Блок-схема оператора for
Завдання на самостійну роботу
EMBED Equation.3
де А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) EMBED Equation.3
де А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) EMBED Equation.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) EMBED Equation.3
де А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) EMBED Equation.3
де А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) EMBED Equation.3
де А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) EMBED Equation.3
де А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) EMBED Equation.3
де А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 с.
Порядок виконання роботи
Побудувати блок-схему алгоритму розв'язування завдання з розділу "Завдання на самостійну роботу" згідно з варіантом.
Скласти програму мовою Сі реалізації алгоритму.
Після перевірки викладачем блок-схеми та програми ввести останню в пам’ять комп'ютера.
Одержати розв'язок задачі та записати отримані значення в таблицю.
Побудувати графік заданої функції.
Схема оформлення звіту
Дата.
Назва лабораторної роботи.
Завдання до роботи.
Блок-схема алгоритму розв’язування задачі.
Програма алгоритмічною мовою Сі.
Таблиця з результатами виконання програми.
Графічне зображення отриманих результатів табулювання функції.
Додаток
Лабораторна робота
Програмування задач з розгалуженим і циклічним обчислювальним процесом. Побудова статичної характеристики об’єкта
Завдання. Побудувати графік функції EMBED Equation.DSMT4 EMBED Equation.DSMT4 a, b - ?.
Розв’язання
Для побудови графіка функції необхідно мати не менше десяти точок, як правило 10…12. Оскільки задана функція складається із двох різних залежностей, то і точок потрібно вибрати більше приблизно в 2 рази. Вибираємо відповідний крок ?х табулювання функції EMBED Equation.DSMT4 .
Значення змінних a, b вибираємо самостійно (або задає викладач), наприклад, a=2; b=1.
3) Блок-схема алгоритму розв’язування задачі має вигляд:
EMBED Visio.Drawing.6
4) Програма мовою С, яка реалізує побудований алгоритм
#include <stdio.h>
#include <conio.h>
#include <math.h>
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();
}
Результати виконання програми
Зауваження. У наведеній вище програмі галуження реалізоване з допомогою двох стягнутих форм оператора 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) За отриманими значеннями будуємо графік функції.