- •Определение аис, структура, характеристика, классификация.
- •2 Жизненный цикл аис: понятие, структура, стадии и процессы жизненного цикла
- •3 Модели жц аис. Каскадная и спиральнаясхемы проектирования аис. Положительные стороны и недостатки.
- •4 Требования к технологии проектирования, разработки и сопровождения аис
- •Требования к сопровождению
- •5 Структурный и обьектно-ориентированный подход к проектирования аис
- •6 Разработка технического задания
- •7 Методология проектирования аис rad
- •Преимущества:
- •8 Методология проектирования аис sadt
- •Недостатки
- •Основные функции субд
- •13 Основные типы моделей данных.
- •14 Основные этапы проектирования Баз Данных
- •Dhcp-сервер
- •Управление dhcp из командной строки
- •Виды dns-запросов:
- •База данных wins
- •Сжатие базы данных
- •Архивирование базы данных wins
- •Файлы базы данных wins
- •Языки описания архитектуры - используются для описания архитектуры программного обеспечения.
- •Файловый сервер -выделенный сервер, оптимизированный для выполненияфайловых операций ввода-вывода. Предназначен для хранения файлов любого типа. Обладает большим объемом дискового пространства.
- •Архитектура «файл-сервер»
- •Преимущества серверов приложений:
- •27 Технология «клиент сервер»
- •Преимущества
- •Недостатки
- •28 Основные технологии построения рапределенных систем (сом, dcom, corba).
- •Принципы работы com
- •Технологии, основанные на стандарте com dcoMпозволяет com-компонентам взаимодействовать друг с другом по сети. Главным конкурентом dcom является другая известная распределённая технология — corba.
- •1 Основные характеристики эвм, порядок их определения
- •2 Основная память. Состав, организация и принципы работы.
- •Функции памяти
- •Классификация типов памяти
- •Доступные операции с данными
- •Метод доступа
- •Назначение
- •Организация адресного пространства
- •Удалённость и доступность для процессора
- •Управление процессором
- •3 Система счисления
- •Позиционные системы счисления
- •4 Система прерываний эвм
- •Система прерываний эвм
- •5 Принципы управления внешним устройством
- •1)Узлы устройств
- •2)Классы устройств
- •3)База данных конфигурации устройств
- •Состояние устройств
- •6 Виды интерфейса в аппаратном комплексе.
- •Примеры
- •7 Прямой доступ к памяти
- •8 Способы организации совместной работы периферийных устройств и центральных устройств
- •9 Видеоподсистема эвм. Состав, виды и назначение устройств.
- •10 Архитектура вычислительной системы
- •Современную архитектуру компьютера определяют принципы:
- •Классификация по назначению
- •МиниЭвм
- •МикроЭвм
- •Классификация по уровню специализации
- •Классификация по размеру
- •Классификация по совместимости
- •11 Дисковая подсистема эвм
- •Интерфейс esdi
- •Интерфейс scsi
- •Интерфейс scsi-II
- •Интерфейс ide
- •12 Устройства вывода информации на печать.
- •13 Сканер. Принцип действия, основные характеристики.
- •В культуре
- •Интерфейс
- •1 Архитектура и топология локальных вычислительных сетей Архитектура лвс
- •Шинная топология
- •Древовидная структура лвс
- •Еthernet-кабель
- •Сheapernеt-кабель
- •Оптоволоконные линии
- •Сетевая карта
- •Репитер
- •Локальная сеть Token Ring
- •Локальная сеть Ethernet
- •2 Проводные и беспроводные технологии компьютерных сетей
- •Отличия проводных и беспроводных технологий передачи данных
- •3.Физическая среда передачи данных Основные типы кабельных и беспроводных сред передачи данных
- •Оптоволоконный кабель
- •Кодирование сигналов
- •Плата сетевого адаптера (са)
- •Типы и компоненты беспроводных сетей
- •Передача "точка-точка"
- •4 Сетевое передающие оборудование
- •Параметры сетевого адаптера
- •Функции и характеристики сетевых адаптеров
- •Активное сетевое оборудование
- •Пассивное сетевое оборудование
- •5 Эталонная модель взаимодействия открытых систем osi
- •6 Протоколы локальных сетей
- •Распространенные протоколы
- •Набор протоколов osi
- •7 Архитектура стека протоколов tcp/ip
- •[Править]Физический уровень
- •[Править]Канальный уровень
- •[Править]Сетевой уровень
- •Транспортный уровень
- •Прикладной уровень
- •8 Методы доступа в сети
- •1. Метод Ethernet
- •2. Метод Archnet
- •3. Метод TokenRing
- •Способы коммутации и передачи данных
- •Характеристики способов передачи данных.
- •Адресация и маршрутизация пакетов данных. Способы адресации в сетях
- •Маршрутизация пакетов данных
- •К лассификация алгоритмов маршрутизации.
- •9 Адресация в компьютерных сетях
- •10 Сетевые ос
- •Основное назначение
- •11 Защита информации
- •1 Алгоритмы: определение алгоритма, свойства, формы записи.
- •Свойства алгоритма.
- •2 Способы описания алгоритмов. Описание алгоритмов с помощью языка блок схем. Правила составления блок схем
- •Язык блок-схем
- •Язык блок-схем прост (хотя существуют его расширенные варианты):
- •Основные элементы схем алгоритма:
- •3 Алгоритм базовые структуры
- •4 Данные. Понятие типа Данных
- •5 Языки программирования: эволюция, классификация
- •Начало развития
- •Структурное программирование
- •6 Языки программирования и системы программирования. Назначение и состав системы программирования.
- •Условный оператор if
- •Оператор варианта case
- •Цикл с предусловием while
- •Цикл с постусловием repeat
- •Цикл с параметром for
- •Рекомендации по использованию циклов
- •Виды циклов:
- •1)Безусловные циклы
- •4)Цикл с выходом из середины
- •Циклы pascal
- •Арифметические циклы
- •Итерационные циклы с предусловием
- •Итерационные циклы с постусловием
- •Операторы завершения цикла
- •Конструкторы и деструкторы
- •10 Основные понятия структурного программирования.
- •11 Методы построения алгоритмов.
- •12 Массивы: понятие, виды, описание.
- •Динамические библиотеки
- •Статические библиотеки
12 Массивы: понятие, виды, описание.
Массивы (arrays) - это упорядоченные наборы данных, представляющие собой список однотипных элементов.
Массив-- ряд (последовательность, набор) величин одного типа (например, real,integer или char), имеющих одно имя (один идентификатор).
С точки зрения компьютера речь идет о массиве однотипных ячеек его памяти:
Отдельные ячейки называются элементами массива. Номер ячейки называется индексом соответствующего элемента массива. В предыдущем примере 4-ая ячейка (на иллюстрации в нее записано число -2) обозначается m[4].
Базовый тип массива - это тип ячеек, из которых состоит массив (подчеркнем еще раз, что все элементы массива одного типа).
С точки зрения программиста массив удобнее представлять в виде таблицы (отсюда и другое название: табличная величина):
Каждый элемент массива - отдельная величина (переменная). Чтобы "обратиться" к ней надо указать:
имя массива (общее имя всего набора величин);
индекс (номер) элемента.
С элементами массивов можно оперировать так же, как и с переменными базового типа. Например (прежде чем выполнить первую команду, обратите внимание на последние),
Однако, использование элементов массива в качестве обычных переменных не дает никакой выгоды. Массивы ценны тем, что индексы в свою очередь могут быть переменными или выражениями, обеспечивая доступ к последовательным элементам. Достаточно вспомнить многострадальный цикл из предыдущего урока, присваивающий значение 5 всем элементам массива a:
for i := 1 to 100 do a[i] := 5; |
|
|
Этот цикл не только заставляет ЭВМ выполнить большое количество действий (это нам уже встречалось), но и изменить при этом массу информации - содержимое 100 ячеек.
Итак, подведем итоги:
Массив-упорядоченный набор фиксированного количества перенумерованных величин. Сами эти величины называются его элементами, а их номера- индексами. Причем все элементы должны быть одного и того же типа, который называется базовым типом или типом компонент.
Как обычно, каждому используемому в программе массиву должно быть дано свое имя, которое является общим для всего набора величин. Элементы массива "отдельных" имен не имеют. Каждый элемент массива может быть явно обозначен путем указания имени массива, за которым следует взятый в квадратные скобки индекс. Для обозначения, например, 73-го элемента массива k используется запись k[73].
В общем случае в качестве индекса может использоваться выражение, в которое могут входить переменные. При изменении значений этих переменных меняется и значение индекса элемента массива. Таким образом, одна и та же переменная с индексом в процессе выполнения программы может обозначать различные элементы массива.
Тип-массив- фиксированное количество упорядоченных однотипных компонент, снабженных индексами. Он может быть, одномерным и многомерным. Чтобы задать тип-массив, используется зарезервированное слово array, после которого следует указать тип индекса (индексов) компонент (в квадратных скобках) и далее после слова of - тип самих компонент.
type <имя типа> = аггау[<тип индекса(индексов)>] of <тип компонент>;
Пример.
type Arr = array[1..3] of Real; {тип-массив из 3 вещественных чисел} Matrix = array[1..3, 1..2] of Integer; {тип - двумерный массив целых чисел, состоящий из 3 строк и 2 столбцов}
Введя тип-массив, можно затем задать переменные или типизированные константы этого типа.
Размерность массива может быть любой, компоненты массива могут быть любого, в том числе и структурированного, типа, индекс (индексы) может быть любого порядкового типа, кроме типа Longint.
При задании значений константе-массиву компоненты указываются в круглых скобках и разделяются запятыми, причем, если массив многомерный, внешние круглые скобки соответствуют левому индексу, вложенные в них круглые скобки - следующему индексу и т. д.
Так, для введенных выше типов можно задать, например, следующие переменные и константы:
var M1, M2: Arr; Matr: Matrix; const М3: Arr = (1 , 2, 3) ; Mat: Matrix = ((1, 2), (3, 4), (5, 6));
Последняя константа соответствует следующей структуре:
1 |
2 |
3 |
4 |
5 |
6 |
Примечание. Тип-массив можно вводить непосредственно и при определении соответствующих переменных или типизированных констант. Например:
var Ml, M2: array[1..3] of Real; Matr: array[1..3, 1..2] of Integer;
Здесь определены те же массивы, что и в предыдущем примере.
При таком объявлении массивов следует помнить, что их типы не будут идентичными никаким другим типам, даже если они имеют одинаковую структуру. Поэтому передавать их как параметры в подпрограмму нельзя (см. п. 10.3), нельзя также присваивать им значения других массивов (и наоборот), даже если их структуры совпадают.
Доступ к компонентам массива осуществляется указанием имени массива, за которым в квадратных скобках помещается значение индекса (индексов) компоненты. В общем случае каждый индекс компоненты может быть задан выражением соответствующего типа, например:
М1[2] , Matr[X, Y], M2[Succ(I) ]ит. д.
Одному массиву можно присвоить значение другого массива, но только идентичного типа. Так, если заданы следующие массивы:
varА, В: array[1..5] ofInteger; С: array[1..5] ofInteger;
то допустим следующий оператор:
A := В;
С другой стороны, оператор
С := А;
недопустим, т. к. массивы А и С - не идентичных типов.
Имеются некоторые отличия в.работе с одномерными массивами символов (не путать с величинами типа string - см. п. 6.2). Так, типизированным константам этого вида можно присвоить значение как обычным строковым константам, указав строку символов в апострофах, например
const A: array[1..5] of Char='aaaaa'; В: array[1..3] of Char='bbb';
Для таких массивов, как и для строк, можно использовать операции сравнения (даже если они не идентичных типов и даже если имеют различный размер) и конкатенации (объединения) - см. п. 6.2. Их можно использовать в операторах вывода Write и WriteLn. Например, для введенных выше массивов можно написать
if A >В then WriteLn(A) else WriteLn(B);
13 Модули и библиотеки стандартных программ в универсальных языках программирования. Основные виды библиотечных функций по назначению (на примере языка программирования Паскаль или С++)
Структура модулей
Модуль имеет следующую структуру: Unit < имя >; Interface < интерфейсная часть > Implementation < исполняемая часть > [ Begin < инициирующая часть > ] End.
Здесь: Unit - кодовое слово (англ. модуль); начинающее заголовок модуля; <имя> - имя модуля (правильный идентификатор); Interface - кодовое слово, начинающее интерфейсную часть модуля; Implementation - кодовое слово (англ. реализация); начинает исполняемую часть; Begin - кодовое слово, начинающее инициирующую часть; (часть модуля Begin < инициирующая часть > необязательна); End. - признак конца модуля.
Таким образом, модуль состоит из заголовка и трех составных частей, любая из которых может быть пустой.
Заголовок модуля и связь модулей друг с другом
Заголовок модуля состоит из кодового слова Unit и следующего за ним имени модуля. Для правильной работы среды Турбо-Паскаля и возможности подключения средств, облегчающих разработку крупных программ, это имя должно совпадать, с именем дискового файла, в который помещается исходный текст модуля.
Если, например, имеем заголовок Unit Global, то исходный текст соответствующего модуля должен размещаться в дисковом файле GLOBAL.PAS. Имя модуля служит для его связи с другими модулями и основной программой. Эта связь устанавливается специальным предложением Uses <список модулей> Здесь: Uses - кодовое слово (англ. использует); <список модулей> - список модулей, с которыми устанавливается связь; элементами списка являются имена модулей, отделяемые друг от друга запятыми, например: Uses Crt, Graph, Global;
Если предложение Uses... используется, оно должно открывать раздел описаний основной программы или следовать сразу за кодовым словом Interface в модуле.
Интерфейсная часть
Интерфейсная часть открывается кодовым словом Interface. В этой части содержатся объявления всех глобальных объектов модуля (типов, констант, переменных и подпрограмм), которые должны стать доступными основной программе и/или другим модулям.
При объявлении глобальных блоков в интерфейсной части пишется только их заголовок, например: Unit Cmplx; Interface Type Complex = Record Re: Real; Im: Real; End; Procedure AddC (X, У: Complex; Var R: Complex); Procedure MulC (X, У: Complex; Var Z :Complex);
Если теперь в основной программе написать предложение Uses Cmplx; то в программе станут доступными тип Complex и две процедуры - Addc и Mulc из модуля Cmplx.
Следует учесть, что все константы и переменные, объявленные в интерфейсной части модуля, равно как и глобальные объекты основной программы, помещаются компилятором Турбо-Паскаля в обилии сегмент данных (максимальная длина сегмента 65521 байт).
Порядок появления различных разделов объявлений и их количество могут быть произвольными.
Если в интерфейсной части объявляются внешние блоки или блоки в машинных кодах, их тела (т.е. зарезервированное слово External в первом случае и машинные коды вместе со словом Inline во втором) должны следовать сразу за их заголовками.
В интерфейсной части модулей нельзя использовать опережающее описание.
Исполняемая часть
Исполняемая часть начинается кодовым словом Implementation и содержит тела процедур и функций, объявленных в интерфейсной части. В этой части могут также объявляться локальные для модуля объекты: вспомогательные типы, константы, переменные и блоки, а также метки, если они используются в инициирующей части. Ранее объявленные в интерфейсной части глобальные процедуры и функции должны описываться в той же последовательности, в какой появляются их заголовки в интерфейсной части. Описанию глобального блока в исполняемой части должен предшествовать заголовок, в котором разрешается опускать список формальных переменных (и тип результата для функции), так как они уже описаны в интерфейсной части.
Но если заголовок блока приводится в полном виде, т.е. со списком формальных параметров и объявлением результата, он должен совпадать с заголовком, объявленным в интерфейсной части, например:
Unit Cmplx; Interface Type Complex = Record Re: Real; Im: Real; End; Procedure AddC (X, У: Complex; Var Z : Complex); Implementation Procedure AddC; Begin Z.Re:= Х.Rе + Y.Re; Z.Im:= X.Im + Y.Im; End; End.
Локальные переменные и константы, а также все программные коды, порожденные при компиляции модуля, помещаются в общий сегмент памяти.
Инициирующая часть
Инициирующая часть завершает модуль. Она может отсутствовать вместе с начинающим ее словом Begin или быть пустой - тогда за Begin сразу следует признак конца модуля (кодовое слово End и следующая за ним точка). В инициирующей части помещаются исполняемые операторы, содержащие некоторый фрагмент программы. Эти операторы исполняются до передачи управления основной программе и обычно используются для подготовки ее работы. Например, в них могут инициироваться переменные, открываться нужные файлы, устанавливаться связь с другими ПЭВМ по коммуникационным каналам и т.п.:
Unit FileText; Interface Procedure Print(S: String); Implementation Var F: Text; Const Name = 'output.txt’; Procedure Print; Begin WriteLn(F, S); End; { Началоинициирующейчасти } Begin Assign(F, Name); Rewrite(F); { Конецинициирующейчасти } End.
Стандартные модули
В Турбо-Паскале имеется восемь стандартных модулей, в которых содержится большое число разнообразных типов, констант, процедур и функций. Этимимодулямиявляются: System, Dos, Crt, Printer, Graph, Overlay, Turbo3 и Graph3.
Модули Graph, Turbo3 и Graph3 содержатся в одноименных TPU-файлах, остальные входят в состав библиотечного файла TURBO.TPL. Лишь один модуль System подключается к любой Турбо-Паскалевой программе автоматически, все остальные становятся доступны только после указания их имен в списке, следующем за кодовым словом Uses.
Ниже приводится краткая характеристика стандартных модулей.
В модуль System входят все процедуры и функции стандартного Паскаля, а также встроенные процедуры и функции Турбо-Паскаля, которые не вошли в другие стандартные модули (например, Inc, Dec, Getdir и т.п.). Как уже говорилось, модуль System подключается к любой Турбо-Паскалевой программе независимо от, того, объявлен ли он в предложении Uses или нет.
Модуль Printer упрощает вывод текстов на матричный принтер. В нем определяется файловая переменная Lst типа Text, которая связывается с логическим устройством Prn. После подключения модуля может быть выполнена, например, такая программа: USES Printer; Begin WriteLn (Lst, ‘TEST’); {Выводит строку на принтер} End.
В модуле Crt сосредоточены процедуры и функции, обеспечивающие управление текстовым режимом работы экрана. С помощью входящих в модуль блоков можно перемещать курсор в произвольную позицию экрана, менять цвет выводимых символов и окружающего их фона, создавать окна. Кроме того, в модуль включены также процедуры "сле пого" чтения клавиатуры и управления звуком.
Модуль Graph содержит обширный набор типов, констант, процедур и функций для управления графическим режимом работы экрана. С помощью блоков, входящих в модуль Graph, можно создавать самые разнообразные графические изображения и выводить на экран текстовые надписи стандартными или разработанными программистом шрифтами. Программы модуля Graph после соответствующей настройки могут поддержать любой тип аппаратных графических средств (CGA, EGA, VGA). Настройка на имеющиеся в распоряжении программиста технические средства графики осуществляется специальными программами-драйверами, которые не входят в библиотечный файл TURBO.TPL, но поставляются вместе с ним.
В модуле Dos собраны процедуры и функции, открывающие доступ Турбо-Паскалевым программам ко всем средствам дисковой операционной системы PC DOS (MS DOS).
Блоки модуля Overlay понадобятся при разработке громоздких программ с перекрытиями (позволяет хранить в памяти только нужные части программы, а не требующиеся на данный момент удалять из памяти, сохраняя на диск, либо возвращать в память при необходимости). Как уже говорилось, Турбо-Паскаль обеспечивает создание программ, длина которых ограничивается лишь доступной памятью. Для большинства отечественных IBM-совместимых ПЭВМ доступная программе память составляет около 550 Кбайт (без инстру ментальных оболочек типа Norton Commander и без самой системы Турбо-Паскаль). Память такого размера достаточна для большинства прикладных задач, тем не менее, использование программ с перекрытиями снимает и это ограничение.
Два библиотечных модуля Turbo3 и Graph3 введены для совместимости с ранней версией 3.0 системы Турбо-Паскаль.
Стандартная библиотека языка программирования — набор модулей, классов, объектов, констант, глобальных переменных, шаблонов, макросов, функций и процедур, доступных для вызова из любой программы, написанной на этом языке и присутствующих во всех реализациях языка.
Библиотека в программировании (от англ. library) — сборник подпрограмм или объектов, используемых для разработки программного обеспечения (ПО).
В некоторых языках программирования то же, что модуль, в некоторых — несколько модулей. С точки зрения операционной системы (ОС) и прикладного ПО библиотеки разделяются на динамические и статические.
Библиотека в программировании (от англ. library) — сборник подпрограмм или объектов, используемых для разработки программного обеспечения (ПО).
В некоторых языках программирования то же, что модуль, в некоторых — несколько модулей. С точки зрения операционной системы (ОС) и прикладного ПО библиотеки разделяютсяна динамические и статические.