Лекции. Основные понятия и определения
Скачать 1.94 Mb.
|
Вопросы для самопроверки и контроляВопросы для самопроверки1. В чем отличие последовательных файлов и файлов с произвольным доступом? 2. Что представляют файлы с расширением по умолчанию bak? 3. Что такое дескриптор файла? 4. Что означает запись FILE* в языке C? 5. Что делает инструкция FileClose без параметров? 6. Укажите тип первого параметра функции MsgBox. Контрольные вопросы1. Чем отличаются текстовые и бинарные файлы? 2. Что представляет собой дескриптор файла в языке Basic? 3. Перечислите и поясните значения параметра способа обработки функции FileOpen? 4. Чем отличается использование инструкций Write и Print в языке Basic? 5. Какой параметр добавляется в функциях работы с файлами по сравнению со стандартными потоками? 14. СТРУКТУРА ПРОГРАММЫЛюбая программа на языке 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. Элементы структуры программы.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, для данных с плавающей точкой (FLT_MAX, DBL_MAX, FLT_MIN, DBL_MIN) – в файле float.h. В программах, работающих под управлением ОС Windows, к исходному тексту программы относят также файлы других типов, которые будут рассмотрены в последующих курсах цикла программирования. Замечание. Для использования констант из файла math.h перед директивой #include math.h необходимо поместить директиву #undef __STRICT_ANSI__. 14.1.2. Язык Basic<программа>:=<файл> [<файл>]... <файл>:=[<объявление>]…<модуль> <модуль>:=Module <имя>[объявление]…[процедура]…End Module <процедура>:=<подпрограмма>|<функция> <подпрограмма>:=<инструкция sub>{[<объявление>…] | [<исполняемая инструкция>…}end sub <функция>:=<инструкция function>{[<объявление>…] | [<исполняемая инструкция>…]}end function Замечания. 1. Объявления не могут располагаться между текстами процедур. 2. Внутри тела процедуры объявления должны предшествовать исполняемой инструкции, в которой используется объявленный объект. Допустимо применение необъявленных объектов, которые по умолчанию получают тип object, однако так делать не рекомендуется. Исполняемые инструкции не могут находиться вне тела процедуры. 3. В состав исходного текста программ на языке Visual Basic также входят файлы других типов. |