Лабораторная работа №7 Программирование с использованием файлов
Цель: Приобрести навыки программирования с использованием файлов.
Теоретические разделы для выполнения лабораторной работы
- Работа с файлами в языке Visual Basic .
Выполнить задание лабораторной работы №5, часть 1 (прил. 5, часть 1, с. 24). Требования к выполнению задания:
-
исходные данные хранятся в файле input.txt в личной папке
- результаты записываются в файл output.txt
Замечание
В программе должна быть предоставлена возможность выбора для ввода исходных данных с клавиатуры или файла. Например, можно воспользоваться стандартным окном вывода MsgBox.
Если источником данных является клавиатура, то после ввода исходных данных выводить запрос о записи данных в файл. Например,
Пример
Дан массив а={a 1,a 2, …, a n}. Найти модуль разности между максимальным и минимальным элементами массива.
Замечание
В файле исходных данных первым значением является размер массива.
Sub lr7()
Dim a(15),min, max, mod_raz, i, n As Integer
Dim s As String, k,m As Integer
K= MsgBox ("Источником является файл? Да - файл, Нет - клавиатура" , _
vbYesNo, "Укажите источник ввода исходных данных")
S=””
if k=6 then
Open “D:\Ek_1\Petrov\input.txt” For Input As #1
Input #1,n
i=1
Do While not EOF(1)
Input #1, a(i)
S=S & A(i) & “ “
i=i+1
Loop
Close #1
Else
N= Val(InputBox(“Размер вектора”))
For i=1 to n
A(i)=Val(InputBox(“Элемент вектора”))
S=S & A(i) & “ “
Next i
M= MsgBox "Записать введенные данные в файл?", _
vbYesNo, "Запись исходных данных"
If m=6 then
Open “D:\Ek_1\Petrov\input.dat” For Output As #1
Write #1, n
For i=1 to n
Write #1, a(i)
Next i
Close #1
End If
End if
MsgBox s , , “Введенный массив”
max=a(1)
min=a(1)
For i=2 to 15
If a(i)<min Then min=a(i)
If a(i)>max Then max=a(i)
Next i
mod_raz=abs(max-min)
Open “D:\Ek_1\Petrov\output.dat” For Output As #1
Write #1, “Min = “ & min & “ Max=” & max & “Модуль разности =” & mod_raz
Close #1
End Sub
Контрольные вопросы
-
Общие принципы работы с файлами.
- Открытие файла.
- Чтение данных из файла.
- Запись данных в файл.
Закрытие файла.
CC-BY-CA Анатольев А.Г., 31.01.2012