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

АЛГОРИТМИ ДЛЯ ВИКОНАННЯ ОПЕРАЦІЙ З ДОВГИМИ ЧИСЛАМИ

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

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

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

Рік:
2013
Тип роботи:
Практична робота
Предмет:
Алгоритми

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» / АЛГОРИТМИ ДЛЯ ВИКОНАННЯ ОПЕРАЦІЙ З ДОВГИМИ ЧИСЛАМИ Практична робота № 1 Варіант № 2 Львів – 2010р. Мета роботи: вивчити способи представлення та алгоритми для виконання операцій введення-виведення, порівняння, підсумовування, віднімання довгих чисел та навчитися розробляти програмне забезпечення для реалізації перерахованих алгоритмів на комп’ютері. Завдання: Вивчити основні способи представлення довгих чисел та алгоритми для реалізації операцій введення, виведення, порівняння, а також арифметичних операцій додавання-віднімання довгих чисел. Скласти блок-схеми алгоритмів та підпрограми для реалізації операцій введення та виведення довгих чисел. Скласти блок-схеми алгоритмів, підпрограми та програми для реалізації адитивних операцій та операцій порівняння для роботи з довгими числами. Ввести в комп’ютер програми згідно з отриманим завданням. Відлагодити програми. При необхідності скоригувати блок-схеми алгоритмів та програми у відповідності з виявленими логічними та синтаксичними помилками. Остаточні версії блок-схем, програм та отримані результати занести у звіт з лабораторної роботи. Список ідентифікаторів констант, змінних і функцій, використаних у головній програмі і підпрограмах та їх пояснення maxDic – константа що вказує на максимальну довжину масиву; a[] – масив, що застосовується проміжним при введенні довгого числа; b[]– масив, що представляє довге число; c[]– масив, що представляє довге число; i, j, q, t, w – цілі змінні, що використовуються в циклі; RezVid[] – масив, в який записується результат віднімання. Блок-схема програми: Головний метод Main: Метод Vvid_A: ні так Метод Vuvid_A: Метод Vvid_B: ні так Метод Vuvid_B: Метод poriv: Метод vidnimannja: Текст Програми: using System; namespace Lab_1_Crupt { class Program { int[] B = new int[10]; int[] C = new int[10]; int[] RezVid = new int[10]; int LicA = 0; int LicB = 0; bool Ah, ElemRiv; static void Main() { Program ob = new Program(); ob.Vvid_A(); ob.Vvid_B(); Console.WriteLine(); ob.Vuvid_A(); Console.WriteLine(); ob.Vuvid_B(); Console.WriteLine(); ob.poriv(); Console.WriteLine(); ob.vidnimannja(); Console.ReadLine(); } public void Vvid_A() { int maxDic = 40; int[] A = new int[maxDic]; Console.WriteLine("Ввeдiть перше число"); for (int i = 0; i < maxDic; i++) { A[i] = int.Parse(Console.ReadLine()); if (A[i] == -1) { while (i < maxDic) { A[i] = -1; i++; } } } for (int t = 0; t < 10; t++) { B[t] = -1; } int j = 9; int q = 0; while (j != -1 && q < maxDic) { if (A[q] == -1) { j = -1; continue; } if (A[q + 1] == -1) { B[j] = A[q]; j = -1; LicA++; continue; } if (A[q + 2] == -1) { B[j] = A[q] * 10 + A[q + 1]; j = -1; LicA++; continue; } if (A[q + 3] == -1) { B[j] = A[q] * 100 + A[q + 1] * 10 + A[q + 2]; j = -1; LicA++; continue; } B[j] = A[q] * 1000 + A[q + 1] * 100 + A[q + 2] * 10 + A[q + 3]; j--; LicA++; q += 4; } } public void Vuvid_A() { Console.Write("перше число:"); for (int i = 9; i >= 0; i--) { if (B[i] > 0) { Console.Write("" + B[i]); } } Console.ReadKey(); } public void Vvid_B() { int maxDic = 40; int[] A = new int[maxDic]; Console.WriteLine("Введiть друге число"); for (int i = 0; i < maxDic; i++) { A[i] = int.Parse(Console.ReadLine()); if (A[i] == -1) { while (i < maxDic) { A[i] = -1; i++; } } } int j = 9; int q = 0; for (int t = 0; t < 10; t++) { C[t] = -1; } while (j != -1 && q < maxDic) { if (A[q] == -1) { j = -1; continue; } if (A[q + 1] == -1) { C[j] = A[q]; j = -1; LicB++; continue; } if (A[q + 2] == -1) { C[j] = A[q] * 10 + A[q + 1]; j = -1; LicB++; continue; } if (A[q + 3] == -1) { C[j] = A[q] * 100 + A[q + 1] * 10 + A[q + 2]; j = -1; LicB++; continue; } C[j] = A[q] * 1000 + A[q + 1] * 100 + A[q + 2] * 10 + A[q + 3]; j--; q += 4; LicB++; } } public void Vuvid_B() { Console.Write("друге число:"); for (int i = 9; i >= 0; i--) { if (C[i] > 0) { Console.Write("" + C[i]); } } Console.ReadKey(); } public void poriv() { if (LicA == LicB) { ElemRiv = true; for (int w = 9; w >= 0; w--) { if (B[w] > C[w]) { Console.WriteLine("Друге число менше"); Ah = true; return; } else if (B[w] < C[w]) { Console.WriteLine("Перше число менше"); Ah = false; return; } else if (B[w] == C[w]) { continue; } } } else { ElemRiv = false; if (LicA > LicB) { Console.WriteLine("Друге число менше"); Ah = true; } else { Console.WriteLine("Перше число менше"); Ah = false; } } } public void vidnimannja() { if (Ah & ElemRiv) { for (int i = 0; i < 10; i++) { RezVid[i] = -1; } for (int i = 0; i < 10; i++) { if (B[i] == -1 || C[i] == -1) { continue; } if (C[i] > B[i]) { if (B[i] < 10000 && B[i] > 1000) { int dop = B[i] + 10000; B[i + 1]--; RezVid[i] = dop - C[i]; } if (B[i] < 1000 && B[i] > 100) { B[i] += 1000; B[i + 1]--; RezVid[i] = B[i] - C[i]; } if (B[i] < 100 && B[i] > 10) { B[i] += 100; B[i + 1]--; RezVid[i] = B[i] - C[i]; } if (B[i] < 10 && B[i] > 0) { B[i] += 10; B[i + 1]--; RezVid[i] = B[i] - C[i]; } } else { RezVid[i] = B[i] - C[i]; } } } if (Ah == false & ElemRiv == true) { for (int i = 0; i < 10; i++) { RezVid[i] = -1; } for (int i = 0; i < 10; i++) { if (B[i] == -1 || C[i] == -1) { continue; } if (B[i] > C[i]) { if (C[i] < 10000 && C[i] > 1000) { int dop = C[i] + 10000; C[i + 1]--; RezVid[i] = dop - B[i]; } if (C[i] < 1000 && C[i] > 100) { C[i] += 1000; C[i + 1]--; RezVid[i] = C[i] - B[i]; } if (C[i] < 100 && C[i] > 10) { C[i] += 100; C[i + 1]--; RezVid[i] = C[i] - B[i]; } if (C[i] < 10 && C[i] > 0) { C[i] += 10; C[i + 1]--; RezVid[i] = C[i] - B[i]; } } else { RezVid[i] = C[i] - B[i]; } } } if (Ah == false) { Console.WriteLine("Результат вiднiмання:"); Console.Write("-"); } else { Console.WriteLine("Результат вiднiмання:"); } if (RezVid[9] > 0) { Console.Write("" + RezVid[9]); } for (int i = 8; i > 1; i--) { if (RezVid[i] == 0) { if (RezVid[i - 1] == -1) { Console.WriteLine("" + RezVid[i]); return; } Console.Write("0000"); continue; } if (RezVid[i] >= 0 && RezVid[i] < 10) { if (RezVid[i - 1] == -1) { Console.WriteLine("" + RezVid[i]); return; } Console.Write("000" + RezVid[i]); continue; } if (RezVid[i] >= 10 && RezVid[i] < 100) { if (RezVid[i - 1] == -1) { Console.WriteLine("" + RezVid[i]); return; } Console.Write("00" + RezVid[i]); continue; } if (RezVid[i] >= 100 && RezVid[i] < 1000) { if (RezVid[i - 1] == -1) { Console.WriteLine("" + RezVid[i]); return; } Console.Write("0" + RezVid[i]); continue; } if (RezVid[i] >= 1000 && RezVid[i] < 10000) { if (RezVid[i - 1] == -1) { Console.WriteLine("" + RezVid[i]); return; } Console.Write("" + RezVid[i]); continue; } } } } } Результат роботи програми: / Висновок: На цій лабораторній роботі я вивчив способи представлення довгих чисел, та алгоритми для виконання операцій введення-виведення, порівняння, віднімання довгих чисел, та навчився розробляти програмне забезпечення для реалізації перерахованих алгоритмів на комп’ютері.
Антиботан аватар за замовчуванням

22.05.2013 21:02

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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