Файли і математичні розрахунки функції

Доброго вам дня. Сьогодні ми розберемо досить складну задачу, яка охоплює кілька пройдених з вами тем (Робота з файлами і Робота з математичними функціями)

Сама завдання полягає в тому, щоб написати програму, яка виробляє необхідний розрахунок функції за даними, введеними користувачем, і записує результати в файл зі штампом на початку файлу ( "Функція. Y = e ^ x, кількість точок по х і у і т. д. «). Слід врахувати можливість ввести кілька інтервалів розрахунків.

Також програма повинна виводити звіт про свою роботу в файл Output.dat, де повинна бути вказана функція, з якою проводилися операції, кількість інтервалів введених користувачем і імена файлів, які містять розрахунки з того чи іншого інтервалу. У програмі повинна бути врахована можливість виникнення помилки при розрахунках і висновок цих помилок в файл звіту Output.dat.

Функція від двох змінних в форматі G (x, y) = y * F (x), F (x) = де lg (x-5). У разі у прийняти початкове значення 5, крок = 0,5 і кількість точок 10.

Страшно? Можна сказати, що це вже реальна і практичне завдання, яку вам можуть дати.
Розбір польотів буде відбуватися малими блоками і не по порядку (як в исходнике). Це необхідно для найкращого розуміння. Сам исходник, як і раніше, додається в кінці статті.
Почнемо з того, звідки братимемо дані. Я пропоную такий формат:

Файли і математичні розрахунки функції

Де x1 - початок інтервалу, x2 - кінець і n - кількість точок.

Ще не попадеться порожня клітинка, ми будемо зчитувати дані і записувати їх у відповідні масиви. Нагадаю, що Redim Preserve ... змінює розмір масиву без втрати даних всередині нього.

Тут нескладні дії з розрахунку масиву y.

ChDir () - змінять ваше поточне положення в каталогах. За замовчуванням ви перебуваєте там, де відкритий файл Excel. В даний момент це необхідно тільки для зручності, приємніше тримати розрахункові таблиці окремо. Чи не так?

Також тут створюємо строковий масив, який буде зберігати в собі назви розрахункових файлів. Мінлива i була порахована в раннє описаному блоці.

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

Перед основним блоком напишемо математичні функції.

Мінлива erorka оголошена глобально, то є поза всякими процедур і функцій (sub і Function). У неї записуються помилки, що виникають у функції G (). Також при виникненні помилки, до G прирівнюється «NaN». Це можливо, завдяки типу функції as Variant, який може працює як з рядками, так і з числами.

При небажанні використовувати Variant, раджу прирівняти G самому мінімально можливого в вашому типі числу, а далі зробити вилов цього числа умовою і відповідний висновок у файл.

Тепер головне блюдо:

Тут присутній три цикли: за допомогою першого ми проходимо по всіх інтервалах, другого - записуємо початкові значення X для таблиці (перший стовпець) і третій - уже для запису в рядок отриманих значень в рядок.

Цією командою Open files (t1 - 1) For Output As # t1 ми відкриваємо файл з ім'ям, узятим з масиву files і призначаємо йому ідентифікатор # t1. Рядок If t3 <> YN - 1 Then перевіряє на останній індекс в масиві Y, щоб коректніше заповнити таблицю. Нагадаю, що команда Round () округлює значення до зазначеної кількості чисел після коми.
І останнє, звіт:

Ось вихідні, не забудьте прописати шлях каталогу в Chdir () або зовсім його стерти.
завантажити вихідні

Поділитися посиланням:

Схожі статті