Фрактальна графіка Фрактальна графіка обраховується як векторна, але відрізняється тим, що жодних об'єктів у пам'яті комп'ютера не зберігається. Зображення будується за рівнянням(або за системою рівнянь), тому нічого, крім формули, зберігати не потрібно. Змінивши коефіцієнти у рівнянні, отримують зовсім іншу картину. Найпростішим фрактальним об'єктом є фрактальний трикутник. Фрактальними властивостями володіють багато об'єктів живої і неживої природи. Звичайна сніжинка при збільшенні виявляється фрактальним об'єктом. Фрактальні алгоритми лежать в основі росту кристалів і рослин. Властивість фрактальної графіки моделювати образи живої природи обчисленням часто використовують для автоматичної генерації незвичних ілюстрацій. Фрактал ( лат. Fractus – складений із фрагментів) – це зображення, якескладаеться із подібних між собою елементів. Побудова фрактального малюнка може відбуватися за деяким алгоритмом або шляхом автоматичної генерації зображень за до обчислень за певними формулами. Зміна в алгоритмах або значень коефіцієнтів у формулах приводить до модифікації зображення. Фрактальну графіку часто використовують для графічного представлення даних під час моделювання деяких процесів, для автоматичної генерації абстрактних зображень, у розважальних програмах. Як і кожна графіка чи програма фрактальна графіка має свої переваги та недоліки. Переваги фрактальної графіки 1) Малі обсяги даних. 2) Простота модифікації зображень. 3) Можливість деталізації зображення. Недоліки фрактальної графіки: 1) Абстрактність зображень. 2) Необхідність використання досить складних математичних понять і формул.
magsh99
25.07.2021
Одно из решений, возможно, не самое эффективное #include <iostream> #include <iomanip> int main() { using namespace std;
//исходная последовательность const int N = 8; double Arr[N] = { 14.2, -3.4, 7.8, -3.1, 8.2, 98.22, -7, 12 };
//вывод на экран исходной последовательности for (int i = 0; i < N; ++i) cout << Arr[i] << " "; cout << endl;
//подсчитаем количества отрицательных и неотрицательных элементов int kpos = 0; int kneg = 0; for (int i = 0; i < N; ++i) if (Arr[i] < 0) ++kneg; else ++kpos;
//создадим массивы отрицательных и неотрицательных элементов double * ArrNeg = new double[kneg]; double * ArrPos = new double[kpos];
int kn = 0, kp = 0; for (int i = 0; i < N; i++) if (Arr[i] < 0) ArrNeg[kn++] = Arr[i]; else ArrPos[kp++] = Arr[i];
cout << "Enter a, b, c or d: "; char ch; cin >> ch;
if (ch == 'a' || ch == 'b' || ch == 'c' || ch == 'd') { switch (ch) { //пункт а) case 'a': for (int i = 0; i < kneg; ++i) Arr[i] = ArrNeg[i]; for (int i = 0; i < kpos; ++i) Arr[i + kneg] = ArrPos[i]; break;
//пункт б) case 'b': for (int i = 0; i < kneg; ++i) Arr[i] = ArrNeg[--kn]; for (int i = 0; i < kpos; ++i) Arr[i + kneg] = ArrPos[i]; break;
//пункт в) case 'c': for (int i = 0; i < kneg; ++i) Arr[i] = ArrNeg[i]; for (int i = 0; i < kpos; ++i) Arr[i + kneg] = ArrPos[--kp]; break;
//пункт г) case 'd': for (int i = 0; i < kneg; ++i) Arr[i] = ArrNeg[--kn]; for (int i = 0; i < kpos; ++i) Arr[i + kneg] = ArrPos[--kp]; break; } } else cout << "You entered wrong symbol\n";
for (int i = 0; i < N; ++i) cout << Arr[i] << " "; cout << endl; delete[] ArrNeg; delete[] ArrPos; return 0; }
Aivazyan
25.07.2021
private string fuction(string a,string b) { char[] massa = a.ToCharArray(); char[] massb = b.ToCharArray(); foreach(char itema in massa) { foreach(char itemb in massb) { if(itema == itemb) { break; } else { a += itema.ToString(); break; } } } return a; }