Краткий курс лекций, страница 2
Описание файла
Документ из архива "Краткий курс лекций", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "информатика" в общих файлах.
Онлайн просмотр документа "Краткий курс лекций"
Текст 2 страницы из документа "Краткий курс лекций"
Под типом понимается множество допустимых значений данных, а также множество допустимых операций, которые применимы к этим данным.
Целые типы:
Название | Длина (байты) |
Byte | 1 |
Shortint | 1 |
Smallint | 2 |
Word | 2 |
Integer | 4 |
Longint | 4 |
Longword | 4 |
Int64 | 8 |
Cardinal | 4 |
Стандартные функции:
Odd(x) – для четного-false, для нечетного-true.
Succ(x) – следующее целое число.
Pred(x) – предыдущее целое число.
Ord(x) – само число Х.
Abs(x) – модуль Х.
Chr(x) – возвращает символ, ASCII-код которого равен Х.
Sqr(x) – квадрат Х
Sqrt(x) – корень из Х
Sin, cos, ln, arctan – результат вещественный.
Язык Object Pascal. Классификация типов данных. Вещественные типы.
Эти типы представляют собой вещественные значения, которые используются в арифметических выражениях.
Название | Длина (байты) | кол-во знач. цифр |
Real | 8 | 15…16 |
Single | 4 | 7…8 |
Double | 8 | 15…16 |
Extended | 10 | 19…20 |
Comp | 8 | 19…20 |
Currency | 8 | 19…20 |
Trunc(x) - отбрасывание дробной части.
Round(x) - округление до ближайшего целого числа.
Язык Object Pascal. Структура программы с подпрограммами. Локальные и глобальные переменные. Формальные и фактические параметры. Пример задачи.
Если переменная используется только одной процедурой или функцией, то они называются локальными. Глобальные переменные описываются в основной программе и доступны внутри основной программы, а также в её функциях и процедурах. Локальные данные создаются при вызове подпрограммы, и существует только во время её выполнения. Выделение памяти для локальных данных происходит автоматически при выполнении подпрограммы. Освобождение памяти происходит сразу после выхода из подпрограммы.
При обращении к подпрограмме используются фактические параметры, в подпрограмме они представляются формальными параметрами, для размещения которых не отводится память.
Локальное описание отменяет действие глобальной переменной.
Язык Object Pascal. Механизм передачи параметров. Параметры – значения. Параметры - переменные. Пример задачи.
Параметры значения (входные параметры) записываются без Var в списке параметров подпрограммы. Параметры переменные (выходные параметры) записываются с ключевым словом Var. При обращении к подпрограмме в качестве фактических параметров могут использоваться выражения, константы, значения функций и т.д.
Язык Object Pascal. Механизм передачи параметров в подпрограммах. Пример задачи.
Передача параметра значения. От программы Q к программе A.
-
Вычисляется значение выражения в основной программе.
-
Сохраняется в памяти.
-
Выделяется область памяти, доступная подпрограмме.
-
В выделенную область памяти копируется значение параметра.
-
После вычисления подпрограммы область памяти освобождается и становится недоступной для основной программы.
Передача параметров переменных.
-
Выделяется область памяти для переменной.
-
В выделенную область памяти заносится адрес переменной, а не самого значения.
-
При обращении к подпрограмме передаётся адрес памяти, где хранится параметр.
Особенности передачи параметров значений:
Достоинства: изменение значений в подпрограмме не отражается на фактических параметрах программы.
Недостатки:
-
Занимаем лишнюю память.
-
Теряем время, если копируем большие массивы.
Особенности передачи параметров переменных:
Достоинства:
-
Не расходуется память.
-
Не теряем время.
Недостаток: Все изменения параметров переменных отображаются в главной программе.
Параметры массивы и параметры строки.
В списках формальных параметров процедуры может быть только стандартный тип или ранее объявленный тип.
Type mas=array [1..100] of real;
Procedure p(var a:mas);
Т.к короткая строка фактически является массивом, нужно делать то же самое:
Type str=string[20];
Procedure p1(st:str);
Язык Object Pascal. Параметры процедурного типа. Пример задачи.
Процедурные типы дают гибкие средства передачи функций и процедур в качестве фактических параметров обращения к другим процедурам и функциям.
Type <имя>=procedure(<список формальных параметров>);
<имя>=function(<список формальных параметров>):<тип>;
<Имя> - процедурного типа.
Описателем процедурного типа подобны заголовкам подпрограммы, но с разностью, что у них нет имён после ключевых слов функция и процедура.
Type proc1=procedure(a,b,c:real);
Proc2=procedure(var a,b:integer);
Proc3=procedure;
Func1=function(var s:string):real;
Func2=function:string;
Язык Object Pascal. Структура модуля пользователя. Пример задачи.
Модуль – это специально образованная оформленная библиотека определений типов, констант, процедур и функций. Автономно компилируется независимо от использующей его программы. Модуль имеет расширение .pas. Для подключения модуля к программе или к другому модуль используют директиву Uses.
Структура модуля.
{I заголовок модуля}
Unit <имя модуля>;
{II интерфейсный раздел}
interface
Uses
Const
Type Объекты видимые пользовательской
Var
заголовок с перечислением параметров
{III раздел реализации}
implementation
Uses
Const
Type
Var
реализация процедур и функций.
{IV инициирующая часть}
Initialization
…
{V завершающая часть}
Finalization
End.
Интерфейсная часть содержит объявления всех глобальных объектов модуля, которые должны стать доступными основной программе и другим модулям. При объявлении подпрограммы в интерфейсной части указывается лишь их заголовок. В исполняемой части создаются описания подпрограмм, описанных в интерфейсной части, а также и локальных для модуля объектов, типов, констант, переменных, подпрограмм. В подпрограммах, описанных в интерфейсной части можно опускать список формальных параметрах (лучше этого не делать). IV и V часть отсутствуют. В IV части располагаются операторы, которые используются для передачи управления основной программе и обычно для подготовки её работы. Пример: инициализация переменных, открытие файлов.
В V части указываются операторы, выполняющиеся после завершения основной программы. Пример: закрывающийся файл.
Если несколько модулей содержат IV части то эти части выполняются последовательно друг за другом в порядке перечисления модулей. В предложении Uses завершающей части вычисляется в обратном порядке, предложении Uses в вызов программы.
Язык Object Pascal. Классификация типов данных. Строковый тип. Процедуры и функции обработки строк. Пример задачи.
Shortstring – последовательность символов из набора символов длиной не более 265 символов.
Тип String похож на одномерный массив символов.
Var st:string[20];
(Array[1..20] of char;)
В строке st[1] – первый символ
St[2] – второй
St[0] – размер строки
St:=’’ – пустая строка
Writeln(st) – ничего не распечатается
Строки можно:
-
Сцеплять знаком «+» (concat)
-
Сравнивать (операции >, <, =) посимвольно, с учётом кодов символов
Если строки различные по длине, недостающие символы короткой строки заменяются символами с самым маленьким символом.
Функции обработки строк.
Concat (s1[, s2, s3, …, sn]):string;
S1, s2, sn – строки для сцепления.
Copy (st, index, count):string – копирует из строки st count элементов, начиная с символа index.
Length (st):integer – определяет длину строки st.
Pos (subst,st):integer – отыскивает в строке st первое вхождение строки subst и возвращает номер позиции с которой она начинается. Если подстрока не найдена, возвращается «0».
Процедуры обработки строк.
Delete (st, index, count) – удаляет count символов из строки st начиная с символа index.
Insert (subst, st, index) – вставляет подстроку subst в строку st начиная с символа index.
Str (x, st) – преобразует число x типа real или integer в строку символов st.
Val (st, x, code) – преобразует строку символов st во внутреннее представление целого или вещественного числа х, параметр code = 0, если преобразование прошло успешно, или принимает значение, равное позиции в строке ошибочного символа.
Язык Object Pascal. Классификация типов данных. Тип данных множество. Пример задачи.
Множество – набор неповторяющихся элементов одного типа. Размер множества не более 256 элементов (0-255).
Описание типа множество имеет вид:
Type <имя типа>= set of <базовый тип> (byte,char)
Элементы множества вводятся оператором присваивания
А:=[‘a’,’b’,’c’].
B:=[] – пустое множество
Вводить и выводить множества нельзя.
Объединение: ‘+’
Разность: ‘-’
Пересечение: ‘and’
Проверка эквивалентности или совпадение.
<> - проверка на неравенство
<=, >= - проверка на вхождение.
In – проверка вхождения элемента или одного множества в другое множество.
Язык Object Pascal. Классификация типов данных. Тип данных записи. Пример задачи.
Записи представляют собой фиксированную совокупность полей, относящихся к различным типам данных.
Структура типа запись
Type t = record
S1:r1;
S2:r2;
Sn:rn;
End;
Var z:t; где t – имя типа запись;
S1–Sn – имена полей.
R1–Rn – типы полей стандартные или ранее определенные.
Z – переменная этого типа
Язык Object Pascal. Классификация типов данных. Тип данных вариантная запись. Пример задачи.
Запись может иметь вариантную часть – это означает, что можно записать в пределах одного типа несколько различных структур. Непосредственный выбор структуры будет определяться контекстом или символьным значением. Его структура:
Type t = array;
A:c1;
B:c2;
…
case f:c of
d1: (v11:c11;v12:c12...);
d2: (v21:c21;v22:c22…);
dk: (vk1:ck1;vk2:ck2…);
var z:t;
f – переменная под переключателем
с – тип переменной
d12, dk1 – метки, каждой из которых соответствует набор полей v11;vk1, которые являются компонентами вариантов.
С11, с12 – типы полей
А, B – общие поля для значений
Язык Object Pascal. Классификация типов данных. Тип данных файл. Классификация файлов по типу и методу доступа. Пример задачи.
Файл – именованная совокупность данных ( обычно 1 тип ), расположенных на внешнем устройстве, компоненты файла могут быть любого типа кроме файл.
Структура файла.
File of byte
Байт | Байт | Байт | ……. | Байт | Eof(end of file) |
0 | 1 | 2 |
File of string[20]
Строка | Строка | Строка | . | строка | Eof |
0 | 1 | 2 |
File of T, где T = record;