Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Инструкции Write и WriteLine
Записывает значения элементов списка данных в одну текстовую строку. Элементы в файле разделяются запятыми, строки заключаются в кавычки, после записи последнего элемента списка данных функцией WriteLine заносится символ перевод строки. В качестве десятичного разделителя для числовых данных используется. (точка). Формат: Public Sub Write( ByVal FileNumber As Integer, _ ByVal ParamArray Output() As Object ) Public Sub WriteLine( ByVal FileNumber As Integer, _ ByVal ParamArray Output() As Object ) Здесь FileNumber – дескриптор файла, Output() – список выводимых данных, разделенный запятыми. Пример. WriteLine(5, x+2, i+1) При отсутствии списка данных в файл записывается пустая строка. Инструкцию Write рекомендуется использовать, если файл затем будет читаться инструкцией input, поскольку она обеспечивает четкое разделение элементов данных. Инструкции Print и PrintLine Также записывает значения элементов списка данных в файл. Основное отличие этих инструкций от инструкций Write и WriteLine заключается в разделении выводимых данных пробелами. Формат: Public Sub Print( ByVal FileNumber As Integer, _ ByVal ParamArray Output() As Object ) Public Sub PrintLine( ByVal FileNumber As Integer, _ ByVal ParamArray Output() As Object ) Элементы списка данных выравниваются на установленную позицию табуляции. Список данных может содержать функции Tab ([ n ]) и Spc ( n ). Функция Tab ([ n ]) располагает очередной элемент, начиная с n -й позиции от начала строки. Если n < текущей позиции в файле, то элемент располагается с n -й позиции следующей строки. Функция Tab без аргумента вставляет значение с начала очередной позиции табуляции. Функция Spc ( n ) вставляет между очередными выводимыми значениями n пробелов. Пример. Print(5, " Координаты точки: ", x, Spc(5), y) Дополнительные функции Полезными могут оказаться следующие функции: FileLen(< путь> ) – длина неоткрытого файла в байтах, LOF(< дескриптор> ) – длина открытого файла в байтах, EOF(< дескриптор> ) – возвращает true при достижении конца файла. Функция MsgBox Эта функция не относится к функциям работы с файлами, но, поскольку необходимо, чтобы программа на языке Basic выдавала на экран информацию о ходе выполнения, она приводится в данном разделе. Функция MsgBox выдает на экран сообщение в диалоговом окне, ожидает нажатие пользователя на одну из кнопок окна и возвращает значение типа integer, равное № нажатой кнопки. Поскольку здесь эта функция нужна лишь для индикации хода выполнения программы, приводится упрощенное обращение к функции MsgBox, которое формирует окно сообщения с одной кнопкой " ОК".
Формат: MsgBox(< сообщение>, , < заголовок> ) Пример. MsgBox(" Длина последовательности: " & kol, , " Результат" ) Если заголовок отсутствует, то вместо него выводится название приложения. Так как сообщение представляет собой текстовую строку, то при необходимости вывода нескольких значений (возможно числовых) следует применять оператор сцепления строк &. Вопросы для самопроверки и контроля Вопросы для самопроверки 1. В чем отличие последовательных файлов и файлов с произвольным доступом? 2. Что представляют собой файлы с расширением по умолчанию bak? 3. Что такое дескриптор файла? 4. Что означает запись FILE* в языке C? 5. Что делает инструкция FileClose без параметров? 6. Укажите тип первого параметра функции MsgBox. Контрольные вопросы 1. Чем отличаются текстовые и бинарные файлы? 2. Что представляет собой дескриптор файла в языке Basic? 3. Перечислите и поясните значения параметра способа обработки функции FileOpen? 4. Чем отличается использование инструкций Write и Print в языке Basic? 5. Какой параметр добавляется в функциях работы с файлами по сравнению со стандартными потоками?
СТРУКТУРА ПРОГРАММЫ Любая программа на языке C или Basic состоит из одной или нескольких процедур, одна из которых должна иметь имя main. Она получает управление от операционной системы (ОС) и инициирует выполнение приложения. Ее нельзя вызвать из другой процедуры и параметры она может получать только от ОС. Напомним, что в языке C определен только один вид процедур – функции ( function ), в языке Basic – два: подпрограммы ( sub ) и функции ( function ). Главной процедурой в программе на языке Basic является подпрограмма sub. Некоторые процедуры могут иметь общие данные и их разумно объединить в один фрагмент программы, называемый модулем. Каждый модуль может компилироваться автономно и хранится на диске в виде отдельного файла. Для языка C++ этот файл имеет расширение.cpp, для языка Basic -.vb. В языке Basic каждый модуль выделяется специальными инструкциями вида: Module < имя> Пример. Module prostoe ……………….. End Module Причинами разбиения программы на модули являются: - борьба со сложностью, - возможность подключения к программе ранее разработанных компонентов, - длительность трансляции больших программ, - бригадное программирование. Каждая процедура может иметь дополнительный уровень структуры – блок. В языке С блок – это последовательность инструкций, ограниченная {…} (фигурными скобками) при условии, что эта последовательность включает инструкции объявления объектов программы. В языке Basic это последовательность инструкций, ограниченная любой сложной инструкцией ( sub, for, if и т.п.).Блоки могут быть вложены друг в друга. Таким образом, элементами структуры программы являются: файл (модуль), процедура, блок. Элементы структуры программы. 14.1.1. Язык C++ < программа>: =< файл> [< файл> ]... < файл>: =[< объявления> ][< функция> ][[< объявления> ][< функция> ]]... < объявления>: ={< определения> |< описания> } < функция>: =< заголовок> < блок> < блок>: ={[объявление]… | [< исполняемая_инструкция> ]… | < блок> ]...}… Определение – объявление объекта программы с выделением под него памяти. Описание – любая невыполняемая инструкция языка или директива препроцессора. Замечания. 1. Следует стремиться не располагать объявления вне текста функций. Если же в этом есть необходимость, то нужно располагать их в начале файла перед текстом первой функции. 2. Внутри функций объявления должны находиться перед исполняемыми инструкциями. В языке C все объявления должны в блоке находиться перед первой исполняемой инструкцией, в языке C++ – перед исполняемыми инструкциями, в которых используются объявленные объекты. 3. Исполняемые инструкции не могут находиться вне функций. 4. Следует избегать применения внутренних, и тем более вложенных, блоков в функциях, поскольку в большинстве приложений без них можно обойтись. 5. В состав исходных текстов программ входят, кроме файлов с расширением.c или.cpp, заголовочные файлы с расширением.h, содержащие директивы препроцессора и описания. Эти файлы добавляются к текстам.cpp файлов директивой препроцессора #include. Прототипы всех встроенных функций и некоторые константы хранятся в различных заголовочных файлах, которые надо включать в исходный код тех модулей, где они используются с помощью директивы #include. Так для всех функций стандартного ввода-вывода ( printf, scanf, gets и др.) прототипы хранятся в файле stdio.h, консольного ( clrscr, getch и др.) – в файле coniow.h, математических и некоторые универсальные константы (π – M_PI, π /2 – M_PI_2, e – M_E и др.) – в файле math.h, обработки строк – в файле string.h. Максимальные и минимальные значения для целого типа данных (SHRT_MAX, USHRT_MAX, SHRT_MIN, INT_MAX, UINT_MAX, INT_MIN) находятся в файле limits. h, для данных с плавающей точкой (только большие 0) (FLT_MAX, DBL_MAX, FLT_MIN, DBL_MIN) – в файле float.h. В программах, работающих под управлением ОС Windows, к исходному тексту программы относят также файлы других типов, которые будут рассмотрены в последующих курсах цикла программирования. Замечание. Для использования констант из файла math.h перед директивой #include math.h необходимо поместить директиву #undef __STRICT_ANSI__. Язык Basic < программа>: =< файл> [< файл> ]... < файл>: =[< объявление> ]…< модуль> < модуль>: = Module < имя> [объявление]…[процедура]… End Module < процедура>: =< подпрограмма> |< функция> < подпрограмма>: =< инструкция Sub > {[< объявление> …] | [< исполняемая инструкция> …} End Sub < функция>: =< инструкция Function > {[< объявление> …] | [< исполняемая инструкция> …] End Function Замечания. 1. Объявления не могут располагаться между текстами процедур. 2. Внутри тела процедуры объявления должны предшествовать исполняемой инструкции, в которой используется объявленный объект. Допустимо применение необъявленных объектов, которые по умолчанию получают тип object, однако так делать не рекомендуется. Исполняемые инструкции не могут находиться вне тела процедуры. 3. В состав исходного текста программ на языке Visual Basic также входят файлы других типов. |
Последнее изменение этой страницы: 2017-04-12; Просмотров: 382; Нарушение авторского права страницы