DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

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

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

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

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

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

Міністерство освіти і науки Національний університет „Львівська політехніка” Кафедра 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:50

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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