Шпаргалка по дисциплине "Информатика"
Шпаргалка, 03 Июня 2015, автор: пользователь скрыл имя
Краткое описание
Работа содержит ответы на вопросы для экзамена по дисциплине "Информатика".
Вложенные файлы: 1 файл
билеты к информатике.docx
— 101.47 Кб (Скачать файл)
Билет 26
Модули Турбо паскаля. Их назначение. Структура модуля. Использование готовых модулей.
Модуль - это автономно компилируемая программная единица, включающая в себя различные разделы описаний (типов, констант, переменных, процедур и функций) и, возможно, некоторые исполняемые операторы (например, присваивание переменным начальных значений или установление связи между программными и физическими именами файлов).
- Модуль - это автономно компилируемая программная единица.
- Модуль может быть подключен к любой паскаль-программе или к другому модулю (программной единице).
- Модуль включает в себя различные разделы описаний (типов, констант, переменных, процедур и функций).
- Модуль делится на две основные части: интерфейсную (interface) и исполняемую (implementation). В интерфейсной части даются описания, которые могут использоваться в программной единице, к которой подключен модуль. В исполняемой части приводятся описания, доступные только внутри модуля.
- Кроме описаний, модуль может содержать некоторые операторы, подготавливающие условия для использования модуля (например, присваивание переменным начальных значений или установление связи между программными и физическими именами файлов). Такие операторы содержатся в части модуля, которая называется инициализирующей. Эта часть не является обязательной.
- В Объектном Паскале модуль также может иметь завершительную часть (finalization), состоящую из операторов, обеспечивающих грамотное завершение программной единицы, использующей модуль.
Структура модуля (ТП, ОП):
UNIT имя_модуля;
INTERFACE
интерфейсная_часть
IMPLEMENTATION
исполняемая_часть
[BEGIN
инициирующая_часть]
END.
Структура модуля (ОП):
UNIT имя_модуля;
INTERFACE
интерфейсная_часть
IMPLEMENTATION
исполняемая_часть
[INITIALIZATION
инициирующая_часть]
[FINALIZATION
завершающая_часть]
END.
Имя файла, содержащего модуль:
- Имя_модуля.pas
- При компиляции
ТП: Имя_модуля.pas => Имя_модуля.tpu
ОП: Имя_модуля.pas => Имя_модуля.dcu
Использование модулей:
- Если модуль использует другие модули, то предложение USES может стоять либо после слова INTERFACE, либо после слова IMPLEMENTATION. Модули, подключенные в интерфейсной части, доступны в любой точке рассматриваемого модуля; модули, подключенные в исполняемой части, доступны в любом месте модуля, за исключением интерфейсной части. Примеры использования модулем других модулей будут рассмотрены позже.
Билет 27
Символьная информация в Паскале.
СИМВОЛЬНЫЕ ДАННЫЕ ПРИНИМАЮТ ЗНАЧЕНИЯ НА МНОЖЕСТВЕ ВСЕХ СИМВОЛОВ, КОТОРЫЕ МОЖНО ВВЕСТИ С КЛАВИАТУРЫ КОМПЬЮТЕРА
Объявление символьных переменных в Объектном Паскале:
Var a:char; b: widechar;
Символьный тип – порядковый:
- Все значения упорядочены, так как имеют номер (код) в таблице кодирования.
- К символьным
данным (как к данным любого порядкового
типа) применимы встроенные функции:
ORD(сh) – возвращает код символа сh;
CHR(x) – возвращает символ с кодом x; SUCC(сh) – определение следующего за сh символа по кодовой таблице;
PRED(сh) –определение предшествующего символа).
Строковые типы Объектного Паскаля:
- Тип ShortString эквивалентен типу string Турбо Паскаля.
- Данные типа AnsiString (могут содержать до 231 символов типа char.
- Тип WideString соответствует строкам максимальной длины до 230 символов типа widechar.
- Тип String: при {$H+} - AnsiString (по умолчанию), при {$H+} – ShortString.
- Типы AnsiString и WideString - ссылочные, динамические, типы; они имеют 8 служебных байтов (вместо одного нулевого у ShortString): служебные байты содержат длину строки и ссылку на строку в динамической памяти (куче).
- Объектный
Паскаль разрешает для определения длины
строки использовать только функцию LENGTH, а для установления нового значения длины
только процедуру
SetLength(строка, новая_длина_строки) - Если для обработки строк используются встроенные подпрограммы, то длина строки отслеживается автоматически, иначе программист должен использовать SetLength.
Функции, работающие со строками:
- CONCAT(S1 ,S2,...,SN)-функция типа STRING; возвращает строку, представляющую собой сцепление (конкатенацию) строк-параметров S1,S2,...,SN. Конкатенацию строк можно также получить с помощью операции +.
- COPY(ST,INDEX,COUNT)-функция типа STRING; копирует из строки ST COUNT символов, начиная с символа с номером INDEX.
- LENGTH(ST)-функция типа INTEGER; возвращает длину строки ST.
- POS(SUBST,ST)-функция типа INTEGER; отыскивает в строке ST первое вхождение подстроки SUBST и возвращает номер позиции, с которой она начинается; если подстрока не найдена, возвращает нуль.
Процедуры, работающие со строками :
- DELETE(ST,INDEX,COUNT)-удалени
е COUNT символов из строки ST, начиная с символа с номером INDEX. - INSERT(SUBST, ST, INDEX) - вставка подстроки SUBST в строку ST, начиная с символа с номером INDEX.
- STR(X[:WIDTH[:DECIMALS]],ST) -преобразование значения типа REAL или INTEGER в строку символов ST так, как это делает процедура WRITELN перед выводом; параметры WIDTH и DECIMALS, если они присутствуют, задают формат преобразования (WIDTH - длину числа, DECIMALS - длину дробной части; параметр DECIMAL имеет смысл указывать только для вещественных чисел).
- VAL(ST, X, CODE) - преобразование строки ST во внутреннее представление целого или вещественного числа Х; параметр CODE содержит нуль, если преобразование прошло успешно, в противном случае он содержит номер символа в строке ST, где обнаружен ошибочный символ; пробелы перед числом в строке ST должны отсутствовать.
Шаги обработки строки таблицы:
- выделение смысловых полей -подстрок (с помощью функции COPY);
- преобразование некоторых полей из символьного представления в числовое (с помощью процедуры VAL);
- анализ символьных полей с помощью функции POS;
- подготовка строки выходных данных с помощью STR и CONCAT.
Билет 28
Переменные сложной структуры. Тип Запись.
Тип Запись:
- Запись - это переменная, состоящая из фиксированного числа компонент, вообще говоря, разного типа, причем каждая компонента имеет свое имя.
- Компоненты записи также называются полями записи.
- Записи используются для работы с данными, содержащими в себе информацию разного типа (числовую, символьную и т. д.); примеры таких документов: платежные ведомости (фамилии и имена - символьная информация, денежные суммы - числовая), карточки больных в поликлинике, библиотечная информация.
Сравнение двух типов: массив и запись:
- Компоненты массива имеют одинаковый тип; компоненты записи могут иметь разный тип (хотя могут быть и однотипны).
- Для обращения к элементу массива надо указать его номер (индекс), при обращении к полю записи указывается его имя.
Описание типа запись:
TYPE имя_типа = RECORD
список_1_имен_полей: тип_1;
список_2_имен_полей : тип_2;
. . .
список_N_имен_полей: тип_N;
END;
Память, занимаемая записью, равна сумме объемов памяти полей (если исключить из рассмотрения особенности, связанные с выравниванием). В любом случае для определения размера памяти записи можно использовать функцию sizeof(переменная_или_тип).
Обращение к полю записи:
Имя_записи.Имя_поля
Пример.
VAR C:COMPLEX; D,D1:DATE; B:BOOK;
BEGIN . . . C.Re:=5; D.Month:=January; B.Author:='Smith';
{*} D1.Day:=6; D1.Month:=June; D1.Year:=1799;{*} . .
Билет 29
Задача обработки данных, предоставленных в табличной форме. Два варианта решения с использованием строк и записей. Сравнение этих вариантов.
- Программа, использующая запись, алгоритмически проще, чем программа со строками.
- Платой за упрощение является разрушение структуры таблицы при вводе: строка таблицы распределяется по нескольким строкам экрана монитора компьютера.
Вариант 30
Файлы в программировании:
- Файл - это последовательность однотипных компонент. Число компонент файла не ограничено. После последней компоненты файла стоит специальный код, называемый признаком конца файла; этот код обычно ставится автоматически, без участия программиста.
- В классическом понимании файл рассматривается как абстрактное обобщение данных на устройстве с последовательным доступом, типичным представителем которого является магнитная лента. В библиотеках современных языков программирования, конечно, имеются средства и для работы с файлами прямого доступа.
Программное и физическое имена файлов:
- Программное имя - это имя переменной файлового типа.
- Физическое имя - это имя устройства или файла на диске.
- Существуют специальные операторы, устанавливающие соответствие (связывающие) программное и физическое имена файла.
Текстовые и двоичные файлы:
- Текстовые файлы хранят информацию во внешнем представлении. Они имеют два основных признака: во-первых, их компонентами являются строки символов; во-вторых, эта символьная информация интерпретируется в соответствии с типом вводимых или выводимых переменных. Эти файлы являются обобщением данных на устройстве CON (т.е. вводимых с клавиатуры или выводимых на экран компьютера). Умение работать с текстовыми файлами необходимо даже начинающим программистам, так как на устройстве CON данные существуют малый промежуток времени, а обычно имеется потребность в их длительном хранении.
- Двоичный файл - это последовательность байтов; обмен информации между двоичным файлом и переменными программы происходит без преобразования. В Турбо Паскале рассматривается два вида двоичных файлов: типизированные и нетипизированные. В случае типизированных файлов байты файла разбиваются на ячейки в соответствии с типом компонент файла; например, для файла с базовым типом integer каждая пара байтов (для 32-разрядных компьютеров – четверка) рассматривается как целое значение; типизированные файлы хранят данные во внутреннем представлении. Для нетипизированных файлов представление информации безразлично, файл рассматривается как последовательность нулей и единиц.
Классический подход к работе с файлами – основные шаги:
- Объявление файловой переменной – программного имени файла – различно для разных видов файлов
- Текстовый файл:
Var ИмяФайла: textfile; {ТП:text }
- Типизированный файл:
Var ИмяФайла: file of БазовыйТип;
- Нетипизированный файл:
Var ИмяФайла: file;
- Связывание программного и физического имен файлов
AssignFile (ПрограммноеИмя, ФизическоеИмя);{в ТП Assign}
ПрограммноеИмя – переменная, описанная как файл;
ФизическоеИмя – имя файла на диске (полное) или имя устройства.
После оператора AssignFile в программе используется только программное имя файла.
Пример:
Var f: text; …
Begin …
Assign( f, ‘d:\student\a.txt‘ );
{Далее используется только f}
- Открытие файла (для чтения или для записи)
Reset (ИмяФайла); {открытие файла для чтения}
Rewrite (ИмяФайла); {открытие файла для записи}
Пример:
Var f: text; …
Begin …
Assign( f, ‘d:\student\a.txt‘ );
Reset(f); {или для записи Rewrite(f)}…
- Чтение из файла или запись в файл – различно для разных видов файлов
Пока для примера рассмотрим чтение/запись для текстовых файлов:
Read (ИмяФайла, СписокВвода);
Write (ИмяФайла, СписокВывода);
Пример: Read(n,a,b); Write(‘s=‘, s);{полная аналогия консольному вводу-выводу}
Также можно использовать Readln и Writeln.
Замечание. При работе с файлами используется функция EOF(ИмяФайла). EOF возвращает значение True, если считан признак конца файла, и значение False в противном случае.
EOF – сокр. от End Of File
- Закрытие файла
CloseFile(ИмяФайла); {для ТП - Close }
Закрытие файла предполагает следующие действия:
- Сохранение изменений в файле.
- Перерегистрация файла в каталоге.
- Разрушение связи между программным и физическим именами файлов.
Открытие файла для чтения:
- Поиск файла с заданным физическим именем; если не найден, то сообщение об ошибке.
- Указатель файла устанавливается на первую компоненту.
- Компонента, на которой стоит указатель, считывается в буфер.
- Если считан признак конца файла, то функция EOF устанавливается в значение True, иначе – в значение False.
Открытие файла для записи:
- Поиск файла с заданным физическим именем; если файл не найден, то создается новый файл
- Содержимое файла очищается.
- Указатель файла устанавливается на конец файла (после последней компоненты).
- Функция EOF устанавливается в значение True.
Открытие файла для дополнения:
- Поиск файла с заданным физическим именем; если не найден, то сообщение об ошибке.
- Указатель файла устанавливается на конец файла (после последней компоненты).
- Функция EOF устанавливается в значение True.
Билет 31
Динамические данные.
Динамические данные:
- описываются не данные, а их адреса (указатели);
- распределяются и уничтожаются в памяти на этапе выполнения программы по специальным командам;
- место в памяти – динамическая память (англ. куча – heap);
- время жизни и область действия указателей определяется как для обычных (локальных или глобальных) переменных