Засоби вiдлагодження iнтегрованого середовища Visual C++ 2005: точки переривання, покрокове виконання. Розв'язування на С задач, в яких використовуються числовi масиви та визначення i виклик функцiй

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

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

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

Рік:
2015
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Основи алгоритмізації та програмування

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

Міністерство освіти і науки Національний університет „Львівська політехніка” Кафедра EОМ Звіт з лабораторної роботи №5 з дисципліни: “Основи алгоритмізації та програмування ” «Засоби вiдлагодження iнтегрованого середовища Visual C++ 2005: точки переривання, покрокове виконання. Розв'язування на С задач, в яких використовуються числовi масиви та визначення i виклик функцiй» 2015 Мета роботи Познайомитися iз основними засобами вiдлагодження iнтегрованого середовища Visual C++ 2005; Познайомитися iз засобами опису функцiй та виклику їх в мовi програмування С; Познайомитися iз використанням масивiв в мовi програмування С. Завдання лабораторної роботи 4-7. Задані дійсні числа x, y. Отримати: / 5-7. Задані дійсні числа a 1 , b 1 , a 2 , b 2 , . . . , a 24 , b 24 . (a i < b i ). Розглядаючи пари a i і b i як ліві і праві кінці відрізків на тій самій прямій, визначити кінці відрізка, який є перетином всіх цих відрізків. Якщо такого відрізка нема, то повідомити про це. 6-7. Заповнити сектори матрицi, якi лежать влiво i вправо вiд головної та побiчної дiагоналей, значеннями вектора b1, b2, ... , b32, вiд лiвого верхньго кута вниз - вправо. Решта матрицi заповнити нулями. Хід виконання роботи 1.Текст першої програми: #include <stdio.h> #include <math.h> int sign(double x); int main(void) { double x, y, z; // Ввід x i y scanf("%lf", &x); scanf("%lf", &y); // Обчислення умови задачі z = (sign(x) + sign(y)) * (sqrt(x * sign(x)) + sqrt(y * sign(y))); printf("%f\n", z); return 0; } // Обчислення потрібного значення в залежності від переданого параметра int sign(double x) { int a; if (x == 0) a = 0; else { if (x < 0) a = -1; else a = 1; } return (a); } Результат виконання програми: / Рис. 1. Результат виконання програми Моя програма правильно інтерпретувала введені числа і обчислила результат(рис. 1) згідно заданої умови. 2.Текст другої програми: #include <stdio.h> #include <conio.h> #define N 25 int main(void) { int x[N], y[N], k = 0, k1 = 0; int desux = 0, desuy = 0; // Тимчасові змінні для зберігання координат //Цикл для вводу координат x і у while (k <= N) { scanf("%d", x + k); scanf("%d", y + k); // Умова переревання вводу координат if (y[k] == 404 && x[k] == 404) break; k++; } while (k1 <= k - 2) { // Вихід з циклу якщо відрізки не перетинаються if (x[k1] < x[k1 + 1] && x[k1+1] > y[k1] && y[k1] < y[k1 + 1]) break; if (x[k1] > x[k1 + 1] && x[k1] > y[k1+1] && y[k1] > y[k1 + 1]) break; // Перевірка на перетин за різних умов if (x[k1] < x[k1 + 1] && y[k1] > y[k1 + 1]) { desux = x[k1 + 1]; desuy = y[k1 + 1]; } if (x[k1] > x[k1 + 1] && y[k1] < y[k1 + 1]) { desux = x[k1]; desuy = y[k1]; } if (x[k1] > x[k1 + 1] && x[k1] < y[k1 + 1] && y[k1] > y[k1 + 1]) { desux = x[k1]; desuy = y[k1 + 1]; } if (x[k1] < x[k1 + 1] && y[k1] < y[k1 + 1] && y[k1] > x[k+1]) { desux = x[k1 + 1]; desuy = y[k1]; } if (x[k1] == x[k1 + 1] && y[k1] == y[k1 + 1]) { desux = x[k1]; desuy = y[k1]; } k1++; // Координати відрізка який є перетином записуються для наступного циклу x[k1] = desux; y[k1] = desuy; } printf("\tRESULT = %d, %d\n", desux, desuy); getch(); return 0; } Результат виконання програми: / Рис. 2. Перевірка двох відрізків на перетин Програма знайшла перетин відрізків і вивела координати відрізку перетину на екран(рис. 2). 3.Текст третьої програми: #include <stdio.h> #include <conio.h> int FillingZeros(int *a, int array_size); int main(void) { int i, j; int cnt = 0, num = 1; int array_size; printf("Input the size of array: "); scanf("%d", &array_size); // Виділення пам’яті для матриці int **a = (int **)malloc(array_size*sizeof(int *)); for (int i = 0; i < array_size; i++) { a[i] = (int *)malloc(array_size*sizeof(int)); } FillingZeros(a, array_size); for (i = 0; i < (array_size / 2); i++) { cnt++; for (j = cnt; j < array_size - cnt; j++) { a[i][j] = num; num++; } } // Вибір початкової позиції для заповнення другої половини матриці. if (array_size % 2 == 0) cnt = (array_size / 2); else cnt = (array_size / 2) + 1; for (i = ((array_size / 2) + 1); i < array_size; i++) { cnt--; for (j = cnt; j < array_size - cnt; j++) { a[i][j] = num; num++; } } // Вивід матриці for (i = 0; i < array_size; i++) { printf("\t\t"); for (j = 0; j < array_size; j++) { printf("%d ", a[j][i]); if (j == (array_size - 1)) printf("\n"); } } getch(); return 0; } // Функція призначена для заповнення масиву нулями int FillingZeros(int **a, int array_size) { int i, j; for (i = 0; i < array_size; i++) { for (j = 0; j < array_size; j++) { a[i][j] = 0; } } return 0; } Результат виконання програми: / Рис. 3. Консольне вікно з матрицею-результатом Моя програма створила матрицю заданого розміру і підібрала правильну кількість елементів для неї(рис. 3), введені елементи розміщені правильно. Висновки Познайомився iз основними засобами вiдлагодження iнтегрованого середовища Visual C++ 2005; Познайомимився iз засобами опису функцiй та виклику їх в мовi програмування С; Познайомився iз використанням масивiв в мовi програмування С.
Антиботан аватар за замовчуванням

24.11.2018 19:11-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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