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

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

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

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

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

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

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

Міністерство освіти і науки України Національний університет «Львівська політехніка» Кафедра ЕОМ / Звіт до лабораторної роботи № 7 з дисципліни «Основи алгоритмізації та програмування, частина 1» на тему: «Розв'язування на С задач, які використовують файли для вводу та виводу даних» Варіант № 23 2016 Мета: познайомитися iз засобами файлового вводу та виводу в мовi програмування С. Завдання: 1) / 2) / 3) /. Небхідно написати два варіанти програми: • програма у якій ввід здійснюється з текстового файлу і вивід виконується в текстовий файл; • програма у якій ввід здійснюється з бінарного файлу і вивід відбувається в бінарний файл. У бінарному файлі дані зберігаються у внутрішньому представлені. Для варіанту, який використовує бінарні файли, необхідно написати дві допоміжні програми: • допоміжну програму яка формує бінарний файл із вхідними даними; • допоміжну програму яка читає вихідний бінарний файл і виводить на екран монітори вихідні дані. Хід виконання роботи Познайомитися зі засобами вводу з файлів та виводу у файл в мові програмування С. Підготувати тексти програм, у яких використовуються функції роботи з файлами, відлагодити їх та отримати результати роботи програм. Виконати індивідуальне завдання: 1) а) Код програми #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <locale.h> #include <math.h> #include <conio.h> int sign(int a) { if (a < 0) { return -1; } else if (a == 0) { return 0; } else { return 1; } } int main() { int x, y; float z = 0; FILE *input; FILE *output; input = fopen("input.txt", "rt"); if (input == NULL) { printf ("Error"); } fscanf_s(input, "%d %d", &x, &y); fclose(input); output = fopen("output.txt", "wt"); z = z+ (sign(x) + sign(y) * sqrt(x*sign(x)) + sqrt(y*sign(y) ) ); fprintf(output, "z=%5.2f\n", z); fclose(output); return 0; } / Рис.1. - Результат виконання програми. б) Код програми #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <locale.h> #include <math.h> #include <conio.h> int sign(int a) { if (a < 0) { return -1; } else if (a == 0) { return 0; } else { return 1; } } int main() { int x, y, z; FILE *input; FILE *output; input = fopen("input.bin", "rt"); if (input == NULL) { printf("Error\n"); return 0; } fscanf_s(input, "%d %d", &x, &y); int v = 0, q = 0; do { v = (int)v + (((int)x % (int)10)*((int)pow(2, (int)q))); x = (x / 10); q++; } while (x != 0); x = v; int p = 0, g = 0; do { p = (int)p + (((int)y % (int)10)*((int)pow(2, (int)g))); y = (y / 10); g++; } while (y != 0); y = p; fclose(input); output = fopen("output.bin", "wt"); z = (sign(x) + sign(y) * sqrt(x*sign(x)) + sqrt(y*sign(y))); int u, s[64]; for (u = 0; u < 64; u++) { s[u] = 0; } u = 0; while (z != 0) { if (z % 2 == 0) { s[u] = 0; z = z / 2; } else { s[u] = 1; z = z / 2; } u++; } u = u - 1; fprintf(output, "z="); for (; u >= 0; u--) fprintf(output, "%d", s[u]); fclose(output); return 0; } / Рис.2. - Результат виконання програми. 2) а) Код програми #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <locale.h> #include <math.h> #include <conio.h> #include <stdlib.h> int main() { int left, right, newLeft, newRight; int i; FILE *input; FILE *output; input = fopen("input.txt", "rb"); if (input == NULL) { printf("Error\n"); return 0; } fscanf_s(input, "%d\n %d\n", &left, &right); fscanf_s(input, "%d\n %d\n", &newLeft, &newRight); fclose(input); output = fopen("output.txt", "wb"); for (int i = 0; i < 1; i++) {left = max(left, newLeft); right = min(right, newRight); } if (left >= right) { printf(" No intersection"); } else printf("left%d right %d", left, right); return 0; } / Рис.3. - Результат виконання програми. б) Код програми #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <locale.h> #include <math.h> #include <conio.h> #include <stdlib.h> int main() { int left, right, newLeft, newRight; int i; FILE *input; FILE *output; input = fopen("input.bin", "rb"); if (input == NULL) { printf("Error\n"); return 0; } fscanf_s(input, "%d\n %d\n", &left, &right); fscanf_s(input, "%d\n %d\n", &newLeft, &newRight); int v = 0, q = 0; do { v = (int)v + (((int)left % (int)10)*((int)pow(2, (int)q))); left = (left / 10); q++; } while (left != 0); left = v; int p = 0, g = 0; do { p = (int)p + (((int)right % (int)10)*((int)pow(2, (int)g))); right = (right / 10); g++; } while (right != 0); right = p; int v1 = 0, q1 = 0; do { v1 = (int)v1 + (((int)newLeft % (int)10)*((int)pow(2, (int)q1))); newLeft = (newLeft / 10); q1++; } while (newLeft != 0); newLeft = v1; int p1 = 0, g1 = 0; do { p1 = (int)p1 + (((int)newRight % (int)10)*((int)pow(2, (int)g1))); newRight = (newRight / 10); g1++; } while (newRight != 0); newRight = p1; for (i = 0; i < 1; i++); fclose(input); output = fopen("output.bin", "wb"); left = max(left, newLeft); right = min(right, newRight); if (left > right) { fprintf(output, " No intersection"); } else { int u, y[10]; for (u = 0; u < 10; u++) { y[u] = 0; } u = 0; while (left != 0) { if (left % 2 == 0) { y[u] = 0; left = left / 2; } else { y[u] = 1; left = left / 2; } u++; } u = u - 1; fprintf(output, "left="); for (; u >= 0; u--) fprintf(output, "%d", y[u]); int u2, y2[10]; for (u2 = 0; u2 < 10; u2++) { y2[u2] = 0; } u2 = 0; while (right != 0) { if (right % 2 == 0) { y2[u2] = 0; right = right / 2; } else { y2[u2] = 1; right = right / 2; } u2++; } u2 = u2 - 1; fprintf(output, "right="); for (; u2 >= 0; u2--) fprintf(output, "%d", y2[u2]); } fclose(output); return 0; } / Рис.4. - Результат виконання програми. 3) а) Код програми #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <locale.h> #include <malloc.h> #include <stdlib.h> int main() { int i, j; //для циклів int size; //розмір масива int **a; //резервування пам"яті для масива FILE *input; FILE *output; input = fopen("input.txt", "rt"); fscanf_s(input, "%d", &size); //виділення пам"яті під динамічний масив a = (int **)malloc(size * sizeof(int *)); for (i = 0; i<size; i++) a[i] = (int *)malloc(size * sizeof(int)); //заповнення матриці нулями for (i = 0; i < size; i++) { for (j = 0; j < size; j++) { a[i][j] = 0; } } for (i = 0; i < size; i++) //для усіх рядків { //верхня частина for (j = i + 1; j < size - i - 1; j++) {//заповнення випадковими числами усіх стовпців між головною і побічною діагоналями до перетину, тобто галочкою (V) a[i][j] = 0 + rand() % 15; } //нижня частина for (j = size - i; j < i; j++) {//заповнення випадковими числами усіх стовпців між головною і побічною діагоналями до перетину, тобто перевернутою галочкою (^) a[i][j] = 0 + rand() % 15; } } fclose(input); output = fopen("output.txt", "wt"); //виведення масива fprintf(output, "Matrix:\n"); for (i = 0; i < size; i++) { for (j = 0; j < size; j++) { fprintf(output, "%d\t", a[i][j]); } fprintf(output, "\n"); } fclose(output); return 0; } / Рис.5. Результат виконання програми. б)Код програми #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <locale.h> #include <malloc.h> #include<conio.h> #include <stdlib.h> #include <math.h> int main() { int i, j, v = 0, h = 0; int size; //розмір масива int **a; //резервування пам"яті для масива FILE *input; FILE *output; input = fopen("input.bin", "rt"); fscanf_s(input, "%d", &size); do { v = (int)v + (((int)size % (int)10)*((int)pow(2, (int)h))); size = (size / 10); h++; } while (size != 0); size = v; input = fopen("input.bin", "rb"); if (size == NULL) { printf("Error\n"); return 0; } //виділення пам"яті під динамічний масив a = (int **)malloc(size * sizeof(int *)); for (i = 0; i < size; i++) a[i] = (int *)malloc(size * sizeof(int)); //заповнення матриці нулями for (i = 0; i < size; i++) { for (j = 0; j < size; j++) { a[i][j] = 0; } } for (i = 0; i < size; i++) //для усіх рядків { //верхня частина for (j = i + 1; j < size - i - 1; j++) {//заповнення випадковими числами усіх стовпців між головною і побічною діагоналями до перетину, тобто галочкою (V) a[i][j] = 1 + rand() % 15; } //нижня частина for (j = size - i; j < i; j++) {//заповнення випадковими числами усіх стовпців між головною і побічною діагоналями до перетину, тобто перевернутою галочкою (^) a[i][j] = 1 + rand() % 15; } } fclose(input); output = fopen("output.bin", "wt"); //виведення масива for (i = 0; i < size; i++) { for (j = 0; j < size; j++) { if (a[i][j] == 0) { fprintf(output, "%d", 0); } int u, y[10]; for (u = 0; u < 10; u++) { y[u] = 0; } u = 0; while (a[i][j] != 0) { if (a[i][j] % 2 == 0) { y[u] = 0; a[i][j] = a[i][j] / 2; } else { y[u] = 1; a[i][j] = a[i][j] / 2; } u++; } u = u - 1; for (; u >= 0; u--) fprintf(output, "%d", y[u]); fprintf(output, "\t"); } fprintf(output, "\n"); } return 0; } / Рис.6. - Результат виконання програми. Висновок: на даній лабораторній роботі я познайомився із засобами файлового вводу та виводу в мовi програмування С.
Антиботан аватар за замовчуванням

28.05.2019 17:35

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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