Шпаргалка по "Программированию"

Автор: Пользователь скрыл имя, 17 Января 2013 в 19:54, шпаргалка

Краткое описание

1. Начальные сведения о программах на языке Pascal. Алгоритм и программа. Свойства алгоритма.
10.Типы данных и операции. Арифметические выражения. Порядок вычислений.
...
45. Динамические структуры данных. Очередь. Операции работы с очередью.

Файлы: 1 файл

Otvety_na_voprosy_OAIP.doc

— 88.00 Кб (Скачать)

символ горизонтальной табуляции 

символ перевода строки

символ вертикальной табуляции 

символ возврата каретки

символ конца файла

символ пробела

 

28.Записи. Описание записей. Задание записей константой. запись — это вектор, компоненты которого (поля) могут относиться к разным типам данных. Описание записей - В разделе var переменную типа запись описывают так:

var <имя_записи>: record <имя_поля1>: <тип_поля1>;

                                     [<имя_поля2>: <тип_поля2>;]

                                     [...]

                          end;

Задание записей константой - записи не могут быть заданы неименованной или нетипизированной константой. Для того, чтобы задать запись типизированной константой, следует вначале описать соответствующий тип в разделе type, а затем воспользоваться им в разделе const:

 

29.Записи.  Доступ к  полям. Оперирование несколькими  полями. Вложенные операторы with. Доступ к полям - оператор with, позволяющий обращаться к полям, не указывая каждый раз имя всей записи. Вложенные операторы with - если во внутренней записи есть поле с искомым именем, то поиск заканчивается; Поля отделяются друг от друга точкой с запятой. Доступ к полям записи осуществляется указанием имени переменной (константы) и имени поля

 

30.Запись с вариантной частью. Описание записи с вариантной частью. Механизм использования записи с вариантной частью. В разделе var запись с вариантной частью описывают так:

var <имя_записи>: record <поле1>: <тип1>;

                                     [<поле2>: <тип2>;]

                                     [...]

                            case <поле_переключатель>: <тип> of

                                <варианты1>: (<поле3>: <тип3>;

                                                     <поле4>: <тип4>;

                                                     ...);

                                <варианты2>: (<поле5>: <тип5>;

                                                     <поле6>: <тип6>;

                                                     ...);

                                [...]

                          end; Вариантная часть начинается зарезервированным словом case, после которого указывается то поле записи, которое в дальнейшем будет служить переключателем. Механизм использования записи с вариантной частью – Количество байтов, выделяемых компилятором под запись с вариантной частью, определяется самым «длинным» её вариантом. Более «короткие» наборы полей из других вариантов занимают лишь некоторую часть выделяемой памяти

 

31.Бинарные файлы. Типизированные файлы. Описание, Назначение, Открытие и закрытие типизированного файла. Бинарные файлы хранят информацию в том виде, в каком она представлена в памяти компьютера, и потому неудобны для человека. типизированные файлы — их элементы могут относиться к любому базовому или структурированному типу данных. Единственное ограничение: все элементы должны быть одного и того же типа. Описание типизированных файлов - В разделе var файловые переменные, предназначенные для работы с типизированными файлами, описываются следующим образом:

var <файловая_перем>: file of <тип_элементов_файла>;

Никакая файловая переменная не может  быть задана константой

Reset(f); — открытие файла для считывания из него информации и одновременно для записи в него. Read(f, a, b, c); — читать из файла f три однотипные переменные a, b и c.

 

32.Бинарные файлы . Считывание из типизированного файла. Поиск в типизированном файле. Запись в типизированный файл. Считывание из типизированного файла - Reset(f); — открытие файла для считывания из него информации и одновременно для записи в него Чтение из файла, открытого для считывания, производится с помощью команды Read(). В скобках сначала указывается имя файловой переменной. Write(f, a, b, c); — записать в файл f. Eof(f : File) : Boolean сообщает о достигнутом конце файла.

 

33.Бинарные файлы. Нетипизированные файлы. Описание, Назначение, Открытие и закрытие нетипизированного файла.     Нетипизированные файлы  - то есть файлы без типа. Главное преимущество нетипизированных файлов — это высокая скорость их обработки. Нетипизированный файл рассматривается в Паскале как совокупность символов или байтов. Выбор char или byte не играет никакой роли, важен лишь объем занимаемых данных. Открытие нетепизированных файлов - rewrite(MyFile, 1) или reset(MyFile, 1). закрываются нетипизированные файлы процедурой Close(f)

 

34.Бинарные файлы. Поиск в нетипизированном файле. Запись и чтение. Eof(f : File) : Boolean сообщает о достигнутом конце файла поиска. Процедура BlockRead(f : File; buf; count : Word [; result : Word]) предназначена для считывания из файла f нескольких элементов разом.  Процедура BlockWrite(f : File; buf; count : Word [; result : Word]) производит запись данных в нетипизированный файл при помощи буфера buf.

 

35.Подпрограммы. Объявление функции. Объявление процедуры. Описание подпрограммы. Подпрограммы - поименованная или иным образом идентифицированная часть компьютерной программы. Процедура ChDir(s : String) сделает текущей директорию, указанную в строке s. Если такой директории нет, произойдёт ошибка.

Подпрограммы объявляются и  описываются в начале Pascal–программы, до ключевого слова begin, означающего  начало тела программы. Процедуры следует объявлять так:

procedure <имя_процедуры>.

подпрограммы должно идти после  её объявления. procedure <имя_процедуры> <описание_процедуры>]

[ function <имя_функции> <описание_функции>

Функции объявляются следующим  образом:

function <имя_функции> [(<список_параметров>)]:<тип_результата>;

Процедуры следует объявлять так:

procedure <имя_процедуры> [(<список_параметров>)];

Описание подпрограммы должно идти после её объявления

function <имя_подпрограммы>; procedure <имя_подпрограммы>;

 

36.Подпрограммы. Список параметров. Возвращаемые значения. Вызов подпрограмм. Способы подстановки аргументов. В заголовке подпрограммы (в её объявлении) указывается список формальных параметров переменных, которые принимают значения, передаваемые в подпрограмму извне во время её вызова. Возвращаемые значения  - это значение возвращаемое в точку вызова функции, после её выполнения :=. Способы подстановки аргументов - при вызове подпрограммы подстановка значений аргументов в параметры производится в соответствии с правилами, указанными в атрибуте <способ_подстановки> <пустой>;

var;

const1.

 

37.Подпрограммы. Области действия имен. Совпадение имен. Области действия имен – Существуют две группы глобальные и локальные. Глобальные объекты — это типы данных, константы и переменные, объявленные в начале программы до объявления любых подпрограмм. Локальные объекты объявляются внутри какой–нибудь подпрограммы и «видны» только этой подпрограмме и тем подпрограммам, которые были объявлены как внутренние для неё. Совпадение имён - Если имеются глобальная и локальная переменные с одинаковым именем, то изнутри подпрограммы к глобальной переменной можно обратиться, приписав к ней спереди имя программы:

<имя_программы>.<имя_глобальной  переменной>

 

38.Подпрограммы. Нетипизированные параметры. Открытые параметры. Процедурный тип данных. Нетипизированные параметры - В объявлении подпрограммы можно не указывать тип параметра–переменной:

procedure proc5(var x); Открытые параметры - array of T это массивы и строки неопределённой длины. Открытым параметром может стать только параметр–переменная. Процедурный тип данных - В разделе type процедурный тип данных задаётся одним из следующих способов:

<имя_типа> = function[(<список_параметров>)]:<тип_результата>;

 

или

<имя_типа> = procedure[(<список_параметров>)];

 

39.Адреса и указатели. Статически выделяемая память. Адреса. Указатели. Адреса - Имя переменной является её своеобразным (буквенным) адресом. Указатели - Для того, чтобы хранить (цифровые) адреса, нужны особые переменные. Их называют указателями и относят к специальному типу данных. Статистика выделения памяти - Такое выделение памяти используется всякий раз при объявлении «обычных» переменных в разделе var. Каждая переменная обладает двумя атрибутами: именем и описанием.

var a : Integer

 

40.Адреса и указатели.  Описание указателей. Операции с указателями. Указатель — это переменная, которая в качестве своего значения содержит адрес байта памяти. В зависимости от значения директивы компилятора, результатом операции будет либо типизированный указатель, тип которого будет определен в соответствии с типом использованной переменной, либо нетипизированный указатель. Для того чтобы воспользоваться значением, хранящимся по некоторому адресу, необходимо его оттуда "извлечь". Унарная операция называется разыменованием. Результатом операции является значение, хранящееся по указанному адресу. Тип этого значения будет определяться типом ( типизированного ) указателя. К нетипизированным указателям операцию разыменования применять нельзя. В операции присваивания могут фигурировать только указатели, адресующие переменные одинаковых типов данных. Для указателей определены две операции сравнения: = и < >.

 

41.Динамически распределяемая память. Динамическое выделение памяти. Динамическое освобождение памяти. Динамичное распределение памяти - способ выделения оперативной памяти компьютера для объектов в программе, при котором выделение памяти под объект осуществляется во время выполнения программы. Динамичное выделение памяти - Для выделения памяти служит стандартная процедура New().  Для уничтожения динамической переменной, то есть для освобождения занимаемой ею памяти, предназначена стандартная процедура

Dispose(<имя_типизир_указателя>)

 

42.Динамические структуры  данных. Список. Виды списков. Описание  списков. Список - списки — специальные динамические структуры. каждый элемент создаваемого списка должен содержать:

полезную информацию, которая может  иметь любой формат: Integer, Real, array, record и т.п.;

специально выделенное поле (и, может  быть, не одно), которое хранит адрес  другого элемента этой же структуры. Виды списков - a) Односвязный (линейный) список: структура, каждый элемент которой «знает» адрес только следующего за ним элемента.

b) Двусвязный линейный список: структура,  каждый элемент которой «помнит»  адрес не только следующего, но  и предыдущего элемента списка

) Бинарное дерево может быть  представлено двусвязным нелинейным  списком d) Для представления ориентированного  графа (см. лекцию 11) можно использовать  иерархические списки — комбинацию  из двух различных линейных  списков. Описание списков - Односвязный список,  Двусвязный линейный список, Бинарное дерево (иерархический список, Ориентированный граф

 

43.Динамические структуры данных. Список. Оперирование элементами списка. - списки — специальные динамические структуры. каждый элемент создаваемого списка должен содержать:

полезную информацию, которая может  иметь любой формат: Integer, Real, array, record и т.п.; Оперирование элементами списка. – Элементы списка можно  удалять, редактировать, добавлять, создавать,  просматривать, перестраивать списки.

 

44.Динамические структуры данных. Стек. Операции работы со стеком. Динамические структуры данных служат полезным дополнением к стандартным структурам, уже определённым в языке Pascal. Динамическими они называются потому, что их элементы создаются и уничтожаются «на ходу» — в процессе работы программы. Стеком Стек – это линейный список, в котором добавление новых элементов и удаление существующих производится только с одного конца, называемого вершиной стека. Для стека должны быть определены следующие операции:  empty: Boolean — проверка стека на пустоту;

add — добавление элемента в стек;

take     — считывание значения верхнего элемента;

del            удаление верхнего элемента из стека.

 

45. Динамические структуры данных. Очередь. Операции работы с очередью. Очередью называется динамическая структура, у которой в каждый момент времени доступны два элемента: первый и последний. Из начала очереди элементы можно удалять, а к концу — добавлять. Для очереди должны быть определены следующие операции

empty: Boolean — проверка очереди на пустоту;

add — добавление элемента в конец очереди;

take_beg: — считывание значения первого элемента;

take_end — считывание значения последнего элемента;

del — удаление элемента из начала очереди.

 

46. Динамические структуры данных. Дек.  Операции работы с деком. Дек - Procedure Dec(Var X[ ; N : Longint]); Уменьшает значение на 1.


Информация о работе Шпаргалка по "Программированию"