- •Курс лекций
- •Лекция 1. Технология программирования - основа разработки качественных программных средств
- •1.1. Программа как формализованное описание процесса обработки данных. Понятие «программное средство».
- •Определение требований к программному средству.
- •1.3. Спецификация качества программного средства.
- •Технология программирования как технология разработки качественных программных средств.
- •. Этапы развития технологии программирования.
- •2.1. Специфика разработки программных средств.
- •Виды программных продуктов и специализация программистов
- •Лекция 2. Общие принципы разработки программных средств
- •2.2. Основные этапы решения задач на эвм и их характеристика.
- •Основные этапы решения задач на эвм и их характеристика
- •Постановка задачи.
- •Формализация задачи.
- •Построения алгоритма
- •Составление программы на языке программирования.
- •Отладка и тестирование программы
- •Разработка документации.
- •Сопровождение опытной эксплуатации.
- •2.3. .Источники ошибок в программных средствах
- •2.3.1. Интеллектуальные возможности человека
- •2.3.2. Неправильный перевод как причина ошибок в программных средствах.
- •Модель перевода.
- •Основные пути борьбы с ошибками.
- •Лекция 3. Разработка структуры программы и модульное программирование.
- •3.1. Основные классы архитектур программных средств.
- •Структура программы. Методы разработки структуры программы. Блок - схема программы
- •Модульное программирование. Основные характеристики модуля.
- •Основные характеристики программного модуля.
- •Спецификация программного модуля содержит,
- •Порядок разработки программного модуля.
- •Контроль структуры программы.
- •Лекция 5. Представление основных структур программы в языках высокого уровня
- •Основные языки программирования и их характеристика.
- •Структура данных в языках программирования высокого уровня
- •Типы данных
- •6. Лекция 6. Стандартные типы данных в языках программирования Visual Basic.
- •Простые целые и вещественные типы переменных. И операции с ними
- •Логические типы данных и операции с ними.
- •7. Лекция 7. Представление строковых типов данных, типы данных Date и Variant.
- •Строковые типы данных и функции работы сними.
- •7.1.1. Операции со строковым типом данных.
- •Переменные типа Data и стандартные функции работы с ними.
- •Лекция 8. Структуры ветвления (операторы условного перехода) и повторения ( циклы) и особенности их использования в программах.
- •Операторы ветвления
- •8.2. Структуры повторения (Циклы).
- •Лекция 9. Структурированные типы данных. Массивы и пользовательские типы данных, их использование в программах
- •Типы данных, определяемые пользователем.
- •9.1. Массивы. Статические массивы.
- •9.2. Динамические массивы
- •9.3. Функции, предназначенные для работы с массивами.
- •9.4. Типы данных, определяемые пользователем.
- •Лекция 10. Основные строительные блоки программы, процедуры и функции.
- •Процедуры, назначение, написание, размещение.
- •10.2. Процедуры обработки событий.
- •Процедуры общего назначения.
- •Вызов процедуры.
- •Выход из процедуры до ее завершения.
- •Лекция 11. Функции . Области видимости переменных, функций и процедур
- •Функции. Стандартные функции
- •Функции, создаваемые пользователем
- •Модульная конструкция программы. Модули, формы. Стандартные модули, модули класса.
- •Области видимости переменных, процедур и функций
- •Лекция 12. Хранение информации в файлах.
- •12.1. Файлы с последовательным доступом.
- •12.1. Открытие файла с последовательным доступом.
- •12.3. Чтение данных из файла с последовательным доступом.
- •12.3. Запись информации в файл с последовательным доступом.
- •12.4. Работа с файлами произвольного доступа.
- •12.5. Ввод и вывод информации записями
- •Лекция 13. Операции с файлами.
- •13.1. Операции работы с файлами
- •13.2. Установка атрибутов файлов
- •Стандартные объекты для работы с файлами.
- •13.4. Вывод информации на печать
- •Лекция 14. Методы структурного программирования. Методы доказательства и отладки программ. Вопросы:
- •Методы структурного программирования
- •14.2. Пошаговая детализация и понятие о псевдокоде.
- •Пример пошагового составления программы
- •Доказательство свойств программы.
- •14.3.1. Обоснования программ. Формализация свойств программ.
- •Свойства простых операторов.
- •Свойства основных конструкций структурного программирования.
- •14.4.4. Завершимость выполнения программы.
- •Пример доказательства свойства программы.
- •Лекция 15 Отладка программы
- •15.1. Типы ошибок в программе
- •15.2. Программные средства для обнаружения ошибок.
- •Ошибки в структуре программы.
- •Перехват и устранение ошибок
- •15.5. Инструменты отладки
- •6. Отображение значений переменных и функций.
- •Лекция 16. Обьекто - ориентированное программирование.
- •16.1. Основные понятия объекто – ориентированного программирования.
- •16.2. Стандартные объекты управления, свойства, методы, события
- •16.3. . Пользовательские элементы управления
- •Лекция 17. Применение технологии ole в программировании и завершение проекта.
- •17.1.. Применение технологии ole в программировании на языках высокого уровня
- •Объект управления ole Container
- •Технология ole Automation.
- •17.4. Состав проекта
- •Создание дистрибутива программного средства
- •Документирование программных средств
- •Аттестация программного средства.
12.5. Ввод и вывод информации записями
После определения типа данных, который используется при работе с информацией файла с произвольным доступом, можно приступить к вводу и выводу данных из файла (в файл). Для подготовки к выводу данных в файл с произвольным доступом следует выполнить три операции.
Определить тип данных для вывода.
Открыть файл как файл с произвольным доступом.
Присвоить переменной информацию, которая должна быть записана в файл.
Первые две операции уже обсуждались в начале лекции. Присваивание переменной информации, используемой для файла с произвольным доступом, аналогично присваиванию значения обычной переменной, выполняемому с помощью оператора присваивания. Однако в данном случае непосредственное присваивание значений переменной в данном случае невозможно. Необходимо присваивать значение каждому элементу переменной, которую вы хотите записать. Присваивание значения элементу переменной пользовательского типа выполняется с помощью операции точка следующим образом.
varname. elementname1 = value
где
varname - имя переменной , которая объявлена как переменная пользовательского типа. Это то же имя, которое использовалось в опраторе Dim.
elementname1 - имя элемента переменной пользовательского типа, которое объявлено в ператоре Type/
value – информация, которую вы хотите поместить в элемент. Это должна быть переменная того же типа, что и тип элемента, объявленного в операторе Type. Value может представлять собой литерал, переменную, выражение или функцию, содержащие операции.
После того как вы определили тип переменной, открыли файл и записали информацию в переменную все готово для вывода информации в файл. Для вывода информации в файл с произвольным доступом используется оператор Put.
Оператор не только указывает в какой файл и какую информацию записывать, но и определяет место в файле, куда будет записана информация.
Синтаксис оператора имеет вид:
Put # filenum, recnum, varname
# filenum – это номер файла, назначенный файлув операторе Open;
varname – Это переменная содержащая информацию для записи в файл;
recnum – Определяет номер записи, в которую будет помещена информация. Этот номер должен быть целым числом больше нуля.
Значение аргумента recnum в основном определяется с помощью программы. Обычно при написании программ, в которых предполагается использовать файлы с произвольным доступом, использует упорядоченный список. содержащий ключевое значение и номер записи. Этот список можно впоследствии использовать для определения номера записи с соответствующей информацией.
Для вывода (чтения) информации из файла с произвольным доступом используется оператор Get, имеющий почти такой же синтаксис, что и для ввода информации в файл. Этой информацией могут быть данные только что записанные в файл, либо любые данные, записанные в него ранее. Синтаксис оператора имеет вид.
Get # filenum, recnum, varname
Примеры:
Put #intFH, 7. Adress ‘ сохраняет 7 –ю запись
Get #intFH, 2, Adress ‘считывает 2 –ю запись из файла.
Для того чтобы в одной записи сохранить несколько значений различных типов следует использовать пользовательские типы данных.
Пример:
<General> <Declaration>
Следует учесть, что описания с помощью оператора Type немогут содержать строк переменной длины. Таким образом, любая строка в операторе Type должна записываться с помощью синаксической формы, включающей указание длины строки.
Type Person
FirstName As String*20
SecondName As String*25
CustomerN As Integer
End Type
Private Customer As Person
‘процедура
Private Sub Command_Click()
intFH = FreeFile
Open “C:\LORE.DAT” For Random As intFH Lan = Lan(Customer)
Get #intFH , 2, Customer
Close #intFH
End If
После завершения работы с файлом его следует закрыть с помощью оператора Close. Это позволит программе очистить буферы данных и освободить дискриптор файла. Синтаксис оператора имеет вид:
Close [filelist], где filelist – перечень номеров файлов. подлежащих закрытию. Это те же номера, что были определены при открытии файлов с помощью опратора Open. Если список содержит более одного номера, их следует разделить запятыми. Если опустить необязательный аргумент filelist], будут закрыты все файлы.
Двоичный формат
Двоичный доступ незначительно отличается от произвольного доступа. Разница состоит в том, что двоичный доступ возможен не к определенному набору данных, а к отдельноьу байту внутри любого файла. Кроме того, вместо ключевого слова Random указывается Binary, и отсутствует параметр Len, так как записи имеют определенную длину - 1 байт.
Синтаксис оператора открытия файла имеет вид:
Open Имя файла For Binary As intFH
Для считывания и записи в файл используются также операторы Get и Put.
Синтаксис их такой же, как и при произвольном доступ, только вместо номера записи указываетсч номер байта.
Пример:
strOutput$ = String(14, “ “)
Get #intFH, 26, strOutput$
В данном примере в строку
