Лабораторная работа по VBA. Ввод-вывод информации с использованием файлов
Сегодня рассмотрим простое задание из лабораторной работы по Visual Basic for Application. В задание применяется ввод-вывод информации с использованием файлов и форматированием значений данных.
Описание задания
Составить процедуру для вычисления и печати значений функции из таблицы. Вычислить 8 значений функции на заданном интервале. Исходные данные задать в файле Dat2.txt. Результат поместить в файл вывода с именем Res2.txt в заданной форме).
Функция | Контрольное значение | Интервал x | Вариант формы вывода | ||
---|---|---|---|---|---|
x* | y* | xmin | xmax | ||
y=1/e+π·|x|1/2 | 0.8 | 3.2 | -2 | 2 | Получено: для заданной функции Y(…)= … для заданной функции Y(…)= …Составил: < Ф.И.О. > |
Итак, приступим к работе. Для начало нам необходимо создать документ Microsoft Word (я использовал MS Word 2016). Далее необходимо перейти в среду разработки кода. Напоминаю, сделать это легко, нажав ALT+F11 (откроется среда для отображение кода Microsoft Visual Basic).
Кстати, где расположен файл необходимо создать текстовый файл с именем dat2.txt. Его мы заполним содержимым из нашего задания.
-2 -1.5 -1 0 0.5 1 1.5 2
А вот и сам код нашей программы:
Sub lab2() Dim x, y As Single Open ThisDocument.Path & "\dat2.txt" For Input As #1 'Открытие файла для чтения Open ThisDocument.Path & "\res2.txt" For Output As #2 'Открытие файла для записи Print #2, Tab(25); "Получено: " Do While Not EOF(1) 'Пока не конец файла Input #1, x 'Получение построчно значений из каждой строки для переменной X y = 1 / Exp(1) + Pi * Abs(x) ^ 1 / 2 'Функция для расчета Print #2, Tab(5); "для заданной функции Y(1/e+pi*|" & CStr(x) & "|1/2)="; Format(y, "#.##0E+") Loop 'Конец файла достигнут Print #2, vbLf 'Обрыв строки Print #2, Tab(40); "Составил: Васильев А." Close #2 'Закрытие файла Close #1 'Закрытие файла End Sub
Весь код содержит комментарии. В конце будет создан файл res2.txt с рассчитанными данными. Если возникнут вопросы, то пишите.