Лабораторна робота №5 Програмування

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
СІ
Кафедра:
Кафедра ЕПМС

Інформація про роботу

Рік:
2016
Тип роботи:
Лабораторна робота
Предмет:
Програмування алгоритмів цифрової обробки сигналів та зображень

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет «Львівська політехніка» Кафедра ЕОМ / Звіт до лабораторної роботи № 5 з дисципліни «Основи алгоритмізації та програмування, частина 1» на тему: «Засоби вiдлагодження iнтегрованого середовища Visual C++ 2005: точки переривання, покрокове виконання. Розв'язування на С задач, в яких використовуються числовi масиви та визначення i виклик функцiй» Мета: познайомитися iз основними засобами вiдлагодження iнтегрованого середовища Visual C++ 2005; познайомитися iз засобами опису функцiй та виклику їх в мовi програмування С; познайомитися iз використанням масивiв в мовi програмування С. Хід виконання роботи Iнтегроване середовище розробки програм Visual C++ має вбудований вiдлагоджувач призначений для виявлення помилок (їх локалiзацiї) у виконавчiй програмi. Процес вiдлагодження полягає в корекцiї чи модифiкацiї програми таким чином, щоб програма виконувалася правильно i вiдповiдала поставленiй задачi. У Visual Studio основними можна вважати такi засоби: точки переривання; покрокове виконання програми; вiкно спостереження за змiнними класу auto; вiкно спостереження за локальними змiнними; вiкно спостереження за змiнними чи виразами (вiкно Watch). Точка переривання - це мiсце в програмi, в якiй виконання програми буде призупинине. В програмi можна встановити довiльну кiлькiсть точок переривання. Точку переривання можно створити наступним чином: перемiстити курсор в те мiсце програми, де необхiдно встановити точку переривання ; натиснути на клавiшу F9. / Рис. 1. – приклад встановлення точки переривання Мiсце встановлення точки переривання вiдзначається кружком злiва вiд вiдповiдного рядка програми у вiкнi з текстом програми. Для того, щоб вiдмiнити ("зняти") точку переривання, потрiбно повторно натиснути на клавiшу F9. Основними засобами спостереження за змiнимим вiдлагоджуваної програми є вiкно Autos, вiкно Locals та вiкно Watch. У вiкнi Autos вiдображаються значення змiнних iз класом пам'ятi Auto. Попереднiй малюнок це iлюструє. У вiкнi Locals вiдображаються значення локальних змiнних виконуваної функцiї. У вiкнi Watch можна задати iдентифiкатори змiнних чи вирази значення яких виводяться у цьму вiкнi пiд час виконання програми. Індивідуальне завдання 4.9 Задані дійсні числа, які визначають відрізки a, b, c і d. Для кожної трійки тих відрізків, з яких можна побудувати трикутник, обчислити площу даного трикутника. Обчислення площі трикутника описати з допомогою функції мови С. #include <stdio.h> #include <conio.h> #include <Windows.h> #include <math.h> float f1(float a, float b, float c) { float p = (a + b + c)/2; return sqrt(p*(p - a)*(p - b)*(p - c)); } float f2(float a, float b, float d) { float p = (a + b + d)/2; return sqrt(p*(p - a)*(p - b)*(p - d)); } float f3(float a, float c, float d) { float p = (a + c + d)/2; return sqrt(p*(p - a)*(p - c)*(p - d)); } float f4(float b, float c, float d) { float p = (b + c + d)/2; return sqrt(p*(p - b)*(p - c)*(p - d)); } int main(void) { SetConsoleCP(1251); SetConsoleOutputCP(1251); float a, b, c, d; printf("Введіть сторони трикутника\n"); scanf("%f%f%f%f", &a,&b,&c,&d); if (a > 0 && b > 0 && c > 0) printf("%f ", f1(a, b, c)); if (a > 0 && b > 0 && d > 0 ) printf("%f ", f2(a, b, d)); if (a > 0 && c > 0 && d > 0) printf("%f ", f3(a, c, d)); if (b > 0 && c > 0 && d > 0 ) printf("%f ", f4(b, c, d)); printf("Для продовження нажміть на будь-яку клавішу...."); getch(); return 0; } / Рис. 2. – результат виводу програми, знаходить площу трикутника 5.9 Задані дійсні числа x1, x2, . . . , x25. Визначити, скільки із них приймають найбільше значення. #include <stdio.h> #include <conio.h> int main() { int array[25]; int c, iter, jter, x; int N = sizeof (array) / sizeof (array[0]) ; for(c=0; c<25; c++) { scanf("%d", &array[c]); } for (iter=1; iter<N; iter++) /* зовнішній цикл */ { for (jter=N-1; jter>=iter; jter--) /* внутрішній цикл */ { if (array[jter]<array[jter-1]) /* умова перебору */ { /* міняємо місцями значення масиву*/ /* зберігаємо значення більшого елементу в змінну */ x = array[jter-1] ; /* переміщамо менший елемент на одну позицію вліво */ array[jter-1] = array[jter] ; /* більший елемент переміщаємо на одну позицію вправо */ array[jter] = x ; } } } printf("%d\n", *(array + 24)); getch(); return 0; } / Рис. 3. – результат виводу програми, що знаходить максимальне значення масиву Заповнити матрицю значеннями вектора b1, b2, ... , b81 вiд лiвого верхнього кута по спiралi: вниз - вправо - вверх - влiво. ( Примiтка. На малюнку вказанi iндекси елементiв вектора b.) #include <stdio.h> #include <conio.h> int main() { const int n = 9; int A[9][9]; int b[9 * 9]; for (int i = 0; i < n * n; i++) { b[i] = i + 1; } int a = 0; for (int i = 0; i < n - 2; i++) { for (int j = i; j < n - i; j++) //вниз { A[j][i] = b[a]; a++; } for (int j = i + 1; j < n - i - 1; j++) //вправо { A[n - i - 1][j] = b[a]; a++; } for (int j = n - 1 - i; j > i; j--) //вверх { A[j][n - i - 1] = b[a]; a++; } for (int j = n - 1 - i; j > i; j--) //вліво { A[i][j] = b[a]; a++; } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { printf("%2d", A[i][j]); } printf("\n"); } getch(); } / Рис. 4. – результат виводу програми. Висновок: познайомитися iз основними засобами вiдлагодження iнтегрованого середовища Visual C++ 2015; познайомитися iз засобами опису функцiй та виклику їх в мовi програмування С;познайомитися iз використанням масивiв в мовi програмування С.
Антиботан аватар за замовчуванням

28.05.2019 17:05-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!