Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра фізики
Лабораторна робота №20
ВИЗНАЧЕННЯ КОЕФІЦІЄНТА ТЕПЛОВОГО РОЗШИРЕННЯ ТВЕРДОГО ТІЛА
Мета роботи
Визначити середній коефіцієнт лінійного розширення твердого тіла.
Прилади та обладнання
Індикатор годинникового типу, електрична піч, хромель-копелева термопара, мілівольтметр, металевий циліндр .
Опис вимірювального пристрою
Вимірювальний пристрій (Рис.1) складається з прикріплених до підставки електричної печі 1 і мілівольтметра 2. У піч поміщують досліджуваний зразок (металевий циліндр) 3. Температуру зразка контролюють термопарою 4 і мілівольтметром 2; абсолютне видовження зразка вимірюють індикатором годинникового типу 5, закріпленого на кронштейні над зразком.
ОАП
Головна сторiнка | Лабораторна робота 4 | Лабораторна робота 6
Лабораторнi роботи з курсу "Основи алгоритмiзацiї та програмування"
Лабораторна робота 5:
Засоби відлагодження інтегрованого середовища Visual C++ 6.0: вікно спостереження Watch, покрокове виконання. Розв'язування на С задач, в яких використовуються числові масиви та визначення і виклик функцій
Мета роботи
Теоретичний вступ
Порядок роботи
Вимоги до звiту
Індивідуальні завдання до лабораторної роботи
Мета роботи
познайомитися із засобами відлагодження Step into, Step over, Step Out, Stop Debugging та Watch інтегрованого середовища Visual C++ 6.0;
познайомитися із засобами опису функцій та виклику їх в мові програмування С.
познайомитися із використанням масивів в мові програмування С.
Теоретичний вступ
Засоби відлагодження Step into, Step over, Step Out, Stop Debugging та Watch
Інтегроване середовище розробки програм Visual C++ має вбудований відлагоджувач призначений для виявлення помилок (їх локалізації) у виконавчій програмі. Процес відлагодження полягає в корекції чи модифікації програми таким чином, щоб програма виконувалася правильно і відповідала поставленій задачі. Для цього відлагоджувач має цілий ряд засобі, які спрощують відслідковування та виявлення помилок в програмі.
У цій і в наступних лабораторних роботах студенти повинні познайомитися з основними засобами вбудованого відлагоджувача.
Найпростішим засобом відлагодження є покрокове виконання. З допомогою нього можна прослідкувати хід виконання програми. Покрокове виконання зручне при прослідковуванні ходу виконання програми із " заплутаною" логікою.
Для запуску покрового виконання в меню Built вибараємо пункт Start Debug, а у ньому підпункт Step Into. Або просто натискаемо на клавішу F11.
Меню Built у вікні інтегрованого середовища змінюєтья на меню Debug відповідно із інишми пунктами - пунктами відлагоджувача. Серед них і ті команди відлагоджувача, з якими потрібно познайомитися. В нижній частині вікна інтегрованого середовища також з'являється два додаткові підвікна.
При натисканні на клавішу F11 (чи вибір команди Step Into із меню Debug) виконуються машинні інструкції тієї частини програми, які відповідають одному рядку вхідного тексту програми на мові С. На поточну позицію трасування програми вказує жовта стрілка зліва від вікна текстового редактора.
Клавішею F11 запускається на виконання команда відлагоджувача Step Into, клавішею F11 - команда Step over. Відмінність між ними полягає у трасуванні операторів у яких є звернення до функції . Команда Step Into входить в фукцію і трасує оператори функції покроково, а команда Step over "переступає" функцію, виконуючи оператори функції за один раз.
Якщо, ввійшовши в трасування операторів функції, ми захочемо вийти із трасування операторів функції та повернутися в точку виклику, то можемо скористатися командою Step Out (комбінація клавіш Shift+F11).
Під час трасування у двох нижніх підвікнах можна спостерігати за значеннями змінних програми. У лівому підвікні (вікні Watch) відображаються імена змінних та їх значення для різних класів пам'яті. У ньому по ходу виконання операторів програми список змінних змінюється.
У правому підвікні (вікні Variables) можна встановити спостереження за значеннями потрібних змінних. Наприклад, як показано на наступному малюнку, в полі Name було набрано ідентифікатор змінної res1 і отримано її значення.
Вікно Variables має декілька закладок і у них можна встановити спостереження за різними групами змінних як, наприклад, на наступному малюнку встановленно спостереження за змінною eps.
Припинити роботу відлагожувача можна натиснувши на комбінацію клавіш Shift+F5 чи вибравши пункт Stop Debuggin меню Debug.
Функції в мові програмування С
Оператори будь-якої програми на мові С розміщені у функціях. Кожна функція виконує певне завдання. Ім'я main( ) є спеціальним іменем тієї функції, з якої починається виконання програми. Інші функції є підпрограмами функції main( ). Кожна функція описується лише один раз. В програмі може бути описано довільна кількість функцій. Кожна описана функція може викликатися стільки раз скільки необхідно.
Опис функції складається із заголовку функції та блоку - тіла функції. В заголоку функції задається ім'я функції та тип результату, який функція повертає, і тип та імена її параметрів (якщо вони потрібні). Оператори тіла функції визначають, які дії виконує функція. Загальний формат опису функції:
тип ім'я ( опис_параметрів ) { оператори_тіла_функції }
Тут ім'я задає ім'я фукції, а тип складається з принаймні одиного специфікатор а формату, який визначає тип результату, який повертає функція. Тип результату, що повертається, може бути типу void чи будь-якого типу об'екта крім масиву. Крім того тип може включати специфікатори класу пам'яті extern і static .
Функція не може повертати, як результат, функцію чи масив, проте вона може повертати вказівник на функцію чи масив.
Опис_параметрів - це список описів параметрів функції розділених комами. Якщо функція не має параметрів, то цей список може бути порожній чи складатися з єдиного слова void.
Розглянемо приклад функції, яка обчислює об'єм циліндра.
// Функція cylinderVolume( ) обчислює об'єм циліндра.
// Аргументи: радіус основи циліндра, висота циліндра.
// Результат: об'єм циліндра.
extern double cylinderVolume( double r, double h )
{
const double pi = 3.1415926536; // Pi є константою
return pi * r * r * h;
}
Функція cylinderVolume має два параметри, r та h, обидва типу double. Вона повертає результат також типу double.
Інструкці для виклику функції складається з імені функції і ( ). Тут круглі дужки означають операцію виклику функції. Виклик функції cylinderVolume можна здійснити таким чином
cylinderVolume( r, h )
чи
cylinderVolume( 2.5, 8.0 )
Програма спочатку виділяє місце для розміщення параметрів, а після цього копіює значення аргументів у відповідні виділені комірки пам'яті. Тоді програма починає виконувати оператори функції, починаючи з першого оператора.
Коли програма дійде до виконання оператора return чи досягне закриваючої дужки } блока функції, виконання функції завершується і управління повертається у точку виклику функції. Коли виконання функції завершується не через оператор return, а через досягнення закриваючої дужки } блока функції, то у цьому випадку значення функції для викликаючого оператора є невизначеним. Тому функція, яке не є типу void, мусить мати оператор return.
Масиви в мові програмування С
Масиви містять об'єкти заданого типу, які послідовно розміщені в неперервному блоці пам'яті. Окремі об'єкти називаються елементами масиву. Тип елементів може бути будь-яким об'єктим типом.
Масиви є об'єктами також; їх тип є типом його елементів. Точніше, тип масиву визначається типом і числом його елементів.
Формат опису масиву є наступним:
тип ім'я [ кількість_елементів ];
Кількість_елементів між квадратними дужками ([ ]) мусить бути цілим виразом, значення якого має бути більшим за нуль. Наприклад,
char buffer[4*512];
Цей рядок описує масив з імем buffer, який містить 2 048 елементів типу char.
Розмір пам'яті, яку займає масив можна визначити з допомогою операції sizeof. Розмір масиву в пам'яті завжди рівний розміру одного елемента помноженого на кількістьелементів масиву. Так для масиву buffer із нашого прикладу вираз sizeof(buffer) рівний величині 2048 * sizeof(char). Іншими словами, масив займає 2048 байт пам'яті, тому що sizeof(char) завжди рівний одиниці.
Доступ до окремих елементів масиву здійснюється з допомогою операції індексації [ ]. Якщо myArray це ім'я масиву, а i - зміна цілого типу, то myArray[i] позначає елемент масиву з індексом i. Елементи масиву індексується починаючи з 0. Таким чином, якщо кількість елементів в масиві рівний len, то останній елемент масиву буде мати індекс len-1.
Наступний фрамен програми домонструє присвоєння значень елементам масиву myArray:
#define A_SIZE 4
long myArray[A_SIZE];
for ( int i = 0; i < A_SIZE; ++i )
myArray[i] = 2 * i;
Індекс масиву може бути будь-яким виразом цілого типу. Операція індексації не виконує жодних перевірок виходу за межі масиву. Відповідальність за вихід за межі масиву покладається на програміста.
Наступний приклад демонструє некоректне присвоєння значення елементові за межами масиву:
long myArray[4];
myArray[4] = 8; // Помилка: індекс не повине перевищувати 3.
Така помилка може привести до краху програми і її не завжди легко виявити (як у цьому простому прикладі).
Іншим способом адресації елементів масиву, альтернативним до операції індексації, є використання арафметичних операцій з вказівниками. Все таки, ім'я масиву явно перетворюється у вказівник на перший елемент масиву у всіх операціях за винятком операції sizeof. Наприклад, вирази *(myArray+i) та myArray[i] є еквівалентними.
Наступний оператор циклу використовує вказівник замість індексу для проходження масиву myArray; він подвоює значення кожного елемента масиву:
for ( long *p = myArray; *p < myArray + A_SIZE; ++p )
*p *= 2;
Порядок роботи
Використовуючи вище приведений опис, познайомитися із засобами відлагодження Step into, Step over, Step Out, Stop Debugging та Watch інтегрованого середовища Visual C++ 6.0.
Навчитися користуватися цими засобами.
Використовуючи вище приведений опис, познайомитися зі засобами опису функцій та виклику функцій в мові програмування С.
Використовуючи вище приведений опис, познайомитися зі засобами опису масивів та операціями доступу до окремих елементів масиву в мові програмування С.
З допомогою вбудованого текстового редактора підготувати тексти програм, у яких використовують засоби опису масивів та індексації масивів, відлагодити їх та отримати результати роботи програм.
Вимоги до звiту
В звiтi до лабораторної роботи необхiдно привести:
Назву лабораторної роботи.
Мету лабораторної роботи.
Короткий опис засобів відлагодження інтегрованого середовища Visual C++ 6.0, з якими познайомилися у цій лабораторній роботі.
Індивідуальні завдання.
Тексти програм та результати їх роботи.
Короткий висновок.
(Примітка. Уточнити у викладача вимоги до звіту.)
Індивідуальні завдання до лабораторної роботи
Індивідуальні завдання 4 Індивідуальні завдання 5 Індивідуальні завдання 6 .
Головна сторiнка | Лабораторна робота 4 | Лабораторна робота 6
© Ю.М.Опир 2006
Послідовність виконання роботи
Увімкнути піч у мережу з напругою 220 В, при цьому загориться
сигнальна лампочка.
2. Поворотом шкали індикатора виставити велику стрілку приладу на нульову позначку.
3. Нагріваючи зразок, через кожні 0,5 мВ вимірювати його абсолютні видовження; отримані числові дані заносити в таблицю.
Температура зразка не повинна перевищувати 200 (С.
4. Використавши таблицю ґрадуювання термопари, (Додаток 3) визначити відповідні температури і побудувати ґрафік залежності
.
5. Використовуючи формулу , визначити середнє значення для всього діапазону зміни температури.
Довжина зразка L подана на підставці вимірювального пристрою.
6. Визначити з ґрафіка кутовий коефіцієнт нахилу прямої .
7. Визначити середнє значення ( за формулою .
8. Порівняти результати, отримані в пунктах 4, 6; зробити висновок про їх точність.
Таблиця результатів вимірювань
V, мВ
t, (С
T, К
, мм
Контрольні запитання
У чому різниця між істинним і середнім коефіцієнтом лінійного
розширення?
Що є причиною теплового розширення твердих тіл?
Що розуміємо під термінами гармонічний і ангармонічний
осцилятор?
Рекомендована література
Курс фізики / За редакцією І.Є.Лопатинського.
– Львів: Вид. «Бескид Біт», 2002.
2. Трофимова Т.И. Курс физики.– М.: Высшая школа, 1990.
3. Савельев И. В. Курс общей физики, т.1 –М.: Наука, 1982.