- •Информатика
- •Введение
- •1. Особенности вычислительного процесса в компьютере
- •1.1. Двоичная система счисления
- •1.2. Кодирование информации
- •2. Основы построения алгоритмов
- •2.1. Принципы описания алгоритмов
- •2.2. Примеры построения алгоритмов типовых задач
- •3. Вывод значений X и y
- •Конец цикла 2
- •3. Алгоритмический язык Visual Basic – основные сведения
- •3.1. Историческая справка
- •3.2. Среда программирования Visual Basic 6.0
- •3.3. Основные конструкции языка
- •3.3.1. Алфавит
- •3.3.2. Переменные
- •3.3.3. Константы
- •3.4. Типы переменных
- •3.4.1. Характеристики переменных
- •3.4.2. Способы задания типа
- •3.5. Основные функциональные операторы
- •3.5.1. Оператор присваивания.
- •3.5.2. Оператор условного перехода.
- •3.5.3. Операторы цикла.
- •3.6. Операторы ввода и вывода информации
- •3.6.1. Операторы ввода значений переменных с клавиатуры.
- •3.6.2. Операторы вывода значений переменных на экран.
- •3.7. Примеры типовых программ
- •4. Алгоритмический язык Visual Basic – более сложные структуры
- •4.1. Файловый ввод и вывод - общие сведения
- •4.2. Организация работы с файлом.
- •4.3. Подпрограммы и их использование для написания сложных программ
- •4.3.1. Назначение подпрограмм
- •4.3.2. Типы подпрограмм
- •4.3.3. Локальные переменные формы
- •5. Операторы и функции, работающие с символьными данными
- •5.1. Ввод символов с целью управления действиями
- •5.2. Функции, работающие с таблицей ascii-кодов
- •5.3. Функции, работающие со строкой символов
- •6. Графика
- •6.1. Воспроизведение цвета
- •6.2. Операторы (Методы) изображения стандартных фигур
- •6.3. Программирование движения фигур на экране.
- •9. Математические вычисления и встроенные функции.
4. Алгоритмический язык Visual Basic – более сложные структуры
4.1. Файловый ввод и вывод - общие сведения
При работе со сложными программами может потребоваться ввод и вывод большого количества информации, которая может не поместиться на экране монитора. Это причиняет явное неудобство. Кроме того, сложная программа может быть построена в виде последовательности нескольких программ, каждая из которых должна после своей работы передавать результаты другой программе. Для организации ввода и вывода информации в этих случая используются файлы данных. Файлом называется блок информации, имеющий определенное имя и размещенный в памяти компьютера. Файлы бывают текстовые и кодовые (их называют также бинарными). Текст программы после его сохранения в памяти также является файлом. Файлы различаются по типу операции (ввод или вывод).
4.2. Организация работы с файлом.
Для начала работы с файлом нужно указать его полное имя, тип и кодовое имя, называемое номером файла. Соответствующая строка программы называется открытием файла. Номер файла вводится для удобства обращения к файлу после его открытия, так как полное имя может быть очень длинным. После работы с файлом – ввода (чтения) или вывода (записи) информации – файл необходимо закрыть.
Строка открытия имеет следующий вид:
Open [полное имя файла] for [ввод или вывод] as #[номер файла]
Полное имя файла это строка символов, указывающая путь к файлу, начиная с имени диска и заканчивая собственным именем файла. Ввод или вывод указывается словами InputилиOutput. СловоAppend, употребленное на том же месте, означает вывод с добавлением информации в имеющийся файл. Номер файла – целое число от 1 до 255.
Пример 4.1
Пусть требуется ввести из файла матрицу размером 3 на 4, умножить ее элементы на число 3 и вывести в другой файл. Назовем вводной файл inp4_1.txt(имя произвольно), запишем в него матрицу и поместим его в личную папку. Файлinp4_1.txtимеет следующий вид:
23, 45, 57, 189
12, 451. 573, 3
33, 44, 555, 8
Все файлы сохраняются автоматически в текстовом формате.
Программа, решающая указанную выше задачу, приведена ниже. Обратите внимание на знак апострофа “ ’ ”, поставленный перед комментарием. Строка, начинающаяся с апострофа, не исполняется (не является оператором) и служит для пояснений в тексте программы.
Private Sub Command1_Click()
'Ex 4_1
' Описание двумерных массивов matr и m1
Dim matr(3, 4) As Integer ' Описание двумерных массивов matr и m1
Dim m1(3, 4) As Integer
' Открытие файла inp4_1.txt для чтения (ввода)
Open "F:\Tout_le_VB6\My_files\inp\inp4_1.txt" For Input As #1
For i = 1 To 3
For j = 1 To 4
Input #1, matr(i, j) ' Ввод элементов матрицы из файла
Next j
Next i
Close #1
For i = 1 To 3
For j = 1 To 4
matr(i, j) = 3 * matr(i, j) ' Умножение матрицы на число 3
m1(i, j) = matr(i, j)
Next j
Next I
' Открытие файла out4_1.txt для записи (вывода)
Open "F:\Tout_le_VB6\My_files\out\out4_1.txt" For Output As #2
For i = 1 To 3
For j = 1 To 4
Print #2, m1(i, j); ' Вывод в файл новых элементов матрицы
Next j
'Write #2,
Print #2,
Next i
Close #2
End Sub
Выводной файл out4_1.txt(имя произвольно) записан по указанному пути. Файлout4_1.txtимеет следующий вид:
69 135 171 567
36 1353 1719 9
99 132 1665 24
После считывания информации из файла или после ее записи в файл, открытый оператором Open, файл нужно закрыть оператором Close #n (n – номер файла).
При записи файла в среде Visual Basic 6.0 в конце его автоматически добавляется специальный код - признак конца записи End of file (сокращенно EOF). Если программа считывания запрашивает больше строк, чем их имеется в файле – возникает сообщение об ошибке: “Input past end of file”. Чтобы этого избежать, можно использовать функцию EOF(n), аргумент которой n есть номер файла. Значение этой функции равно -1, если конец файла обнаружен и нулю в противном случае.
Предположим, что в примере 4.1 программа должна обеспечить ввод различных матриц, отличающихся числом строк. Тогда ввод очередной матрицы следует сделать так, как показано в примере 4.2 (предполагается, что максимальное число строк равно 10).
Пример 4.2
Private Sub Command1_Click()
' Ex4_2
Dim matr(10, 4) As Integer
Open "F:\Tout_le_VB6\My_files\inp\inp4_1.txt" For Input As #1
For i = 1 To 10
If EOF(1) Then Exit For ' Выход из цикла i
For j = 1 To 4
Input #1, matr(i, j)
Next j
Next i
Close #1
Print "Файл прочитан"
For i = 1 To 10
For j = 1 To 4
Print matr(i, j);
Next j
Next i
End Sub
Если в файле окажется больше 10-и строк, то будут прочтены первые десять.
