|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Кодування програми. #include <iostream>#include <iostream> #include <conio.h> using namespace std;
int const n = 2; // Незмінно, оскільки перша стрічка це дані Х-си, друга Y-ки int const z = 4; // Кількість елементів і одній стрічці
// Перевіряє введені дані int proverka() { int p; while (!(cin >> p)) { cin.clear(); cin.ignore(4046, '\n'); cout << "Try again" << endl;
} return p; } // Шукає найменший елемент у масиві (в нашому випадку окремо для кожної стрічки) int fmin(int mas[z][n], int j) { int min = mas[0][0]; // Спочатку надаємо найменшому значенню перший елемент for (int i = 0; i < z; i++) { if (min > mas[i][j]) // Якщо знайдений менший за найменший, то менший стає найменшим min = mas[i][j]; } return min; // повертаємо це значення в функцію main } // Шукає найбільший елемент у масиві (в нашому випадку окремо для кожної стрічки) int fmax(int mas[z][n], int j) { int max = mas[0][0]; //Спочатку надаємо найбільшому значенню перший елемент for (int i = 0; i < z; i++) { if (max < mas[i][j]) // Якщо знайдений більший за найбільший по умовчанню, то більший стає найбільший max = mas[i][j]; } return max; // повертаємо це значення в функцію main }
int main() { int o; do {
int i, j; // лічильники для циклу int arr[z][n]; // Головний масив int arr1[z][n]; // Другий масив // Введення елементів першого масиву cout << "Enter the values of main array elements" << endl; j = 0; cout << "Enter X elements" << endl; // перша стрічка елементів Х for (i = 0; i < z; i++) { cout << "[" << i+1 << "][" << j+1 << "] = "; // виводимо на консоль, який елементи потрібен програмі arr[i][j] = proverka(); // перевірка } j = 1; cout << "Enter Y elements" << endl; // друга стрічка елементів Y for (i = 0; i < z; i++) { cout << "[" << i+1<< "][" << j+1<< "] = "; // виводимо на консоль, який елементи потрібні программі arr[i][j] = proverka(); // перевірка } cout << "Enter the values of second array " << endl; j = 0; cout << "Enter X elements" << endl; // перша стічка елементів Х другого масиву for (i = 0; i < z; i++) { cout << "[" << i+1 << "][" << j+1 << "] = "; // виводимо на консоль, який елементи потрібні програмі arr1[i][j] = proverka(); // перевірка } j = 1; cout << "Enter Y elements" << endl; // друга стрічка елементів Y другого масиву for (i = 0; i < z; i++) { cout << "[" << i+1 << "][" << j+1 << "] = "; // виводимо на консоль, який елементи потрібні програмі arr1[i][j] = proverka(); // перевірка } int minarrX, minarr1X; // 1-ша змінна - найменший Х у main масиві, 2-га змінна - найменший X у second масиві int minarrY, minarr1Y; // 3-тя змінна - найменший Y у main масиві, 4-а змінна - найменший Y y second масиві for (j = 0; j < n; j++) { if (j == 0) // Тобто, цикл пробігає окремо по перший стрічці { minarrX = fmin(arr, j); // знаходимо найменший елемент з main (перша) minarr1X = fmin(arr1, j); // знаходимо найменший елемент з second (перша) }
if (j == 1) // Тобто, цикл пробігає окремо по першій стрічці { minarrY = fmin(arr, j); // знаходимо найменший елемент з main (друга) minarr1Y = fmin(arr1, j); // знаходимо найменший елемент з second (друга)
} } // Так само шукаємо максимуми на двох стрічках першого масиву та другого int maxarrX, maxarr1X; int maxarrY, maxarr1Y; for (j = 0; j < n; j++) { if (j == 0) { maxarrX = fmax(arr, j); maxarr1X = fmax(arr1, j); } if (j == 1) { maxarrY = fmax(arr, j); maxarr1Y = fmax(arr1, j); } } for (j = 0; j < n; j++) for (i = 0; i < z; i++) { if (j == 0) { if ((arr[i][j] > maxarr1X) && (arr[i][j] < maxarrX)) maxarrX = arr[i][j]; if ((arr[i][j] < minarr1X) && (arr[i][j] > minarrX)) minarrX = arr[i][j]; } if (j == 1) { if ((arr[i][j] > maxarr1Y) && (arr[i][j] < maxarrY)) maxarrY = arr[i][j]; if ((arr[i][j] < minarr1Y) && (arr[i][j] > minarrY)) minarrY = arr[i][j]; } }
cout << "Program chose points for triangle:" << endl; cout << "A(" << maxarrX << "," << maxarrY << ") " << endl; cout << "B(" << minarrX << "," << minarrY << ") " << endl; cout << "C(" << maxarrX << "," << minarrY << ") " << endl;
// Знайшовши усі точки, ми ще раз перевіряємо, щоб у результаті площа трикутника була мінімальна, а тобто сторони були найменшими if ((maxarrX > maxarr1X) && (minarrX < minarr1X) && (maxarrY > maxarr1Y) && (minarrY < minarr1Y)) cout << "Triangle with vertices at these points covering all of second plurality" << endl; else // Якщо неможливо виконати умову, то cout << "A second plurality of points more value. The figure is not built!" << endl; cout << "Press ESC to exit" << endl;; // Щоб вийти або продовжити o = _getch(); // Очікує введення символу, щоб вийти або продовжити } while (o!= 27); // За таблицею ASCII 27 - це ESC }
ТЕСТУВАННЯ При n = 4; 100 50 -50 -100 20 5 -5 -20
1 0 2 -1 3 -3 4 0
Програма зробила все правильно і задали точки вірно. А отже результат: A(50,5) + B(-50,-5) + Трикутник побудовано побудовано рррр: но. ноювильно ы очкам трикунтника! При n = 4; 7 6 5 4 9 5 1 0
0 10 15 20 9 17 6 33
Програма зробила все правильно і видала повідомлення про проблему в побудові! +
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.) |