
- •Отображение графической информации: основы теории цвета, цветовые системы rgb.
- •Cmyk, vhs, методы формирования цвета.
- •Аппаратные средства компьютерной графики: устройства графического ввода/вывода информации.
- •Алгоритмы растровой графики: понятие связности, основные растровые алгоритмы, отрисовка отрезка алгоритмом Брезенхема, отрисовка окружности.
- •Алгоритмы растровой графики: алгоритмы заливки замкнутых фигур с границей заданного цвета, заливка многоугольников.
- •Реляционный подход к организации баз данных: фундаментальные свойства отношений, реляционная модель данных.
- •Журнализация изменений бд: журнал, журнализация и буферизация.
- •Восстановление базы данных: индивидуальный откат транзакции, восстановление после мягкого сбоя, восстановление после жесткого сбоя.
- •1. Индивидуальный откат транзакции
- •2. Восстановление после мягкого сбоя
- •4. Восстановление после жесткого сбоя
- •Реляционный подход к организации баз данных: проектирование реляционных баз данных с использованием нормализации.
- •Семантическое моделирование. Er-диаграммы.
- •Язык sql: функции и основные возможности, типы данных, средства определения схемы.
- •Средства определения схемы
- •Язык sql: структура запросов набор операторов манипулирования данными.
- •Архитектура клиент-сервер, различные реализации архитектуры клиент-сервер, понятие 2-х , 3-х звенных моделей.
- •Виртуальная память: страничная, сегментная, сегментно-страничная организация памяти, коллективное использование и защита информации; файлы, отображаемые в память.
- •Файловая система ос: состав, управление, типы файловых систем; логическая и физическая организация файла, методы доступа, операции над файлами, отображаемые файлы.
- •Класс и атд
- •Классификация методов
- •Действия над объектами
- •Область видимости класса
- •Указатель this
- •Функции-члены типа static и const
- •26. Параметрический полиморфизм: шаблонные классы и шаблонные функции - назначение, параметризованные типы данных, синтаксис и семантика.
- •Перегрузка операторов
- •Доступные и недоступные для перегрузки операторы:
- •Перегрузка обычными функция, как компонентными
- •Примеры перегрузки операторов:
- •26. Параметрический полиморфизм: шаблонные классы и шаблонные функции - назначение, параметризованные типы данных, синтаксис и семантика.
- •35. Современные web-технологии.
- •36. Инструментальные средства веб-дизайна.
- •37. Жизненный цикл информационной системы . Модели жизненного цикла информационных систем.
- •Модели жизненного цикла информационных систем.
- •38. Проектирование информационных систем. Средства проектирования информационных систем (case-средства).
- •Средства проектирования информационных систем (case-средства).
- •41 .Особенности моделей, использующих имитационный подход. Моделирование марковских случайных процессов. Имитатор системы массового обслуживания.
- •Самоподобные множества с необычными свойствами в математике
- •Стохастические фракталы
- •43. Передача дискретных данных: линии связи, методы передачи дискретных данных на физическом уровне, методы передачи данных канального уровня, методы коммутации.
- •Средства анализа и управления сетями: функции и архитектура систем управления сетями, стандарты систем управления, мониторинг и анализ локальных сетей.
- •Понятие информации. Виды, свойства и способы измерения информации.
- •Кодирование информации. Способы представления информации в эвм
- •Графы, способы представления графов в памяти компьютера, обход графов в ширину и глубину.
- •Поиск пути минимальной длины в графе. Алгоритм Дейкстры.
- •Сортировка массивов. Методы прямого выбора, включения и обмена.
- •Сортировка массивов. Быстрая сортировка.
- •Задача поиска. Дерево поиска.
Файловая система ос: состав, управление, типы файловых систем; логическая и физическая организация файла, методы доступа, операции над файлами, отображаемые файлы.
Файловая система - это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися на диске, и обеспечить совместное использование файлов несколькими пользователями и процессами.
Файловая система включает:
совокупность всех файлов на диске,
наборы структур данных, используемых для управления файлами, такие, например, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске,
комплекс системных программных средств, реализующих управление файлами, в частности: создание, уничтожение, чтение, запись, именование, поиск и другие операции над файлами.
Управление
Файловая система имеет многоуровневую структуру, на верхнем уровне которой располагается так называемый переключатель файловых систем . Он обеспечивает интерфейс между запросами приложения и конкретной файловой системой, к которой обращается это приложение,- преобразует запросы в формат, воспринимаемый следующим уровнем - уровнем файловых систем.
Каждый компонент уровня файловых систем выполнен в виде драйвера соответствующей файловой системы и поддерживает определенную организацию файловой системы. Переключатель является единственным модулем, который может обращаться к драйверу файловой системы. Для выполнения своих функций драйверы файловых систем обращаются к подсистеме ввода-вывода, образующей следующий слой файловой системы новой архитектуры. Подсистема ввода вывода - это составная часть файловой системы, которая отвечает за загрузку, инициализацию и управление всеми модулями низших уровней файловой системы. Обычно эти модули представляют собой драйверы портов, которые непосредственно занимаются работой с аппаратными средствами. Кроме этого подсистема ввода-вывода обеспечивает некоторый сервис драйверам файловой системы, что позволяет им осуществлять запросы к конкретным устройствам. Подсистема ввода-вывода должна постоянно присутствовать в памяти и организовывать совместную работу иерархии драйверов устройств.
Типы файловых систем:
FAT-16,FAT-32, NTFS, HPFS,NFS и др.
Файловая система FAT-16 – старая файловая система MS-DOS. В ней используются 16-разрядные дисковые адреса, что ограничивает размер дискового раздела двумя Гигабайтами.
Файловая система FAT-32 – используются 32-разрядные дисковые адреса и поддерживаются дисковые разделы размером до 2 Тбайт.
Файловая система NTFS- используются 64-разрядные дисковые адреса и теоретически может поддерживать дисковые разделы размером до 264 байт (по техническим причинам их размер ограничен меньшими размерами).
Файловая система NFS – сетевая файловая система, использующаяся на всех современных системах UNIX для объединения на логическом уровне файловых систем отдельных компьютеров в единое целое.
Логическая организация файла
Программист имеет дело с логической организацией файла, представляя файл в виде определенным образом организованных логических записей. Логическая запись - это наименьший элемент данных, которым может оперировать программист при обмене с внешним устройством. Записи могут быть фиксированной длины или переменной длины. Записи могут быть расположены в файле последовательно (последовательная организация) или в более сложном порядке, с использованием так называемых индексных таблиц, позволяющих обеспечить быстрый доступ к отдельной логической записи (индексно-последовательная организация). Для идентификации записи может быть использовано специальное поле записи, называемое ключом.
Физическая организация .Физическая организация файла описывает правила расположения файла на устройстве внешней памяти, в частности на диске. Файл состоит из физических записей - блоков. Блок - наименьшая единица данных, которой внешнее устройство обменивается с оперативной памятью.
Непрерывное размещение - простейший вариант физической организации, при котором файлу предоставляется последовательность блоков диска, образующих единый сплошной участок дисковой памяти. Для задания адреса файла в этом случае достаточно указать только номер начального блока.
«-» - во время создания файла заранее не известна его длина, а значит не известно, сколько памяти надо зарезервировать для этого файла;
«-» - при таком порядке размещения неизбежно возникает фрагментация, и пространство на диске используется не эффективно, так как отдельные участки маленького размера (минимально 1 блок) могут остаться не используемыми.
Размещение в виде связанного списка блоков дисковой памяти - в начале каждого блока содержится указатель на следующий блок. В этом случае адрес файла также может быть задан одним числом - номером первого блока. В отличие от предыдущего способа, каждый блок может быть присоединен в цепочку какого-либо файла, следовательно фрагментация отсутствует. Файл может изменяться во время своего существования, наращивая число блоков.
«-» - сложность реализации доступа к произвольно заданному месту файла: для того, чтобы прочитать пятый по порядку блок файла, необходимо последовательно прочитать четыре первых блока, прослеживая цепочку номеров блоков;
«-» - количество данных файла, содержащихся в одном блоке, не равно степени двойки (одно слово израсходовано на номер следующего блока), а многие программы читают данные блоками, размер которых равен степени двойки.
Связанный списка индексов -с каждым блоком связывается некоторый элемент - индекс. Индексы располагаются в отдельной области диска . Если некоторый блок распределен некоторому файлу, то индекс этого блока содержит номер следующего блока данного файла.-> для доступа к произвольному месту файла достаточно прочитать только блок индексов, отсчитать нужное количество блоков файла по цепочке и определить номер нужного блока; данные файла занимают блок целиком, а значит имеют объем, равный степени двойки.
Методы доступа и операции над файлами
В разных файловых системах может быть определен свой список дифференцируемых операций доступа. Этот список может включать следующие операции: создание файла, уничтожение файла, открытие файла, закрытие файла, чтение файла, запись в файл, дополнение файла, поиск в файле, получение атрибутов файла, установление новых значений атрибутов, переименование,
выполнение файла, чтение каталога.
Различают два основных подхода к определению прав доступа:
избирательный доступ, когда для каждого файла и каждого пользователя сам владелец может определить допустимые операции;
мандатный подход, когда система наделяет пользователя определенными правами по отношению к каждому разделяемому ресурсу (в данном случае файлу) в зависимости от того, к какой группе пользователь отнесен.
Отображаемые в память файлы
По сравнению с доступом к памяти, традиционный доступ к файлам выглядит запутанным и неудобным. Некоторые ОС обеспечивают отображение файлов в адресное пространство выполняемого процесса. Это выражается в появлении двух новых системных вызовов: MAP (отобразить) и UNMAP (отменить отображение). Первый вызов передает операционной системе в качестве параметров имя файла и виртуальный адрес, и операционная система отображает указанный файл в виртуальное адресное пространство по указанному адресу.
Отображение файлов лучше всего работает в системе, которая поддерживает сегментацию. В такой системе каждый файл может быть отображен в свой собственный сегмент, так что k-ый байт в файле является k-ым байтом сегмента.
Хотя отображение файлов исключает потребность в выполнении ввода-вывода и тем самым облегчает программирование, этот способ порождает и некоторые новые проблемы.
«-» -для системы сложно узнать точную длину выходного файла
«-» - если один процесс отображает файл, а другой процесс открывает его для обычного файлового доступа и первый процесс изменяет страницу, то это изменение не будет отражено в файле на диске до тех пор, пока страница не будет вытеснена на диск.
«-» - файл может быть больше, чем сегмент, и даже больше, чем все виртуальное адресное пространство. Единственный способ ее решения состоит в реализации вызова MAP таким образом, чтобы он мог отображать не весь файл, а его часть. Хотя такая работа, очевидно, менее удобна, чем отображение целого файла.
Основные идеи и сущность ООП: использование объекта в качестве основной компоненты программы и децентрализация управления, реализуемая представлением программы совокупностью взаимодействующих объектов, моделирование поведения объектов реального мира, наглядное представление объектов, создание и использование АТД, производные АТД.
ООП — это стиль программирования, который фиксирует поведение реального мира так, что детали разработки скрыты, а это позволяет тому, кто решает задачу, мыслить в терминах, присущих этой задаче, а не программированию.
ООП — это программирование, сфокусированное на данных, причем данные и поведение неразрывно связаны. Вместе данные и поведение представляют собой класс, а объекты являются экземплярами класса. ООП рассматривает вычисления как моделирование поведения. То, что моделируется, является объектами, представленными вычислительной абстракцией.
Программы - это совокупность взаимодействующих объектов. Каждый объект отвечает за конкретную задачу. Вычисление осуществляется посредством взаимодействия объектов. Объект получается в результате инкапсуляции состояния (данных) и поведения (операций). Поведение объекта диктуется классом. Данные и поведение представлены в виде классов, экземпляры которых - объекты. Все экземпляры одного класса будут вести себя одинаковым образом в ответ на одинаковые запросы.
Для удобства создания нового типа из уже существующих типов, определенных пользователем используется механизм наследования. Классы могут быть организованы в виде иерархического дерева наследования. С помощью уменьшения взаимозависимости ООП позволяет разрабатывать системы, пригодные для многократного использования. ООП - это взгляд на программирование, сосредоточенный на данных, в котором данные и поведение жестко связаны. Для этого необходимо, чтобы объекты определялись вместе с сообщениями, на которые они могут реагировать.
Принципы ООП:
Абстракция - расширяемость типов - способность добавлять типы, определяемые пользователем для того, чтобы дополнить ими встроенные типы. Один из принципов ООП заключается в том, чтобы типы, определяемые пользователем, должны обладать теми же привилегиями, что и встроенные типы;
Инкапсуляция - свойство языка программирования, позволяющее пользователю не задумываться о сложности реализации используемого программного компонента, а взаимодействовать с ним посредством предоставляемого интерфейса, а также объединить и защитить жизненно важные для компонента данные. При этом пользователю предоставляется только интерфейс — спецификация объекта.
Наследование. Классы могут быть организованы в иерархическую структуру с наследованием свойств. Дочерний класс наследует атрибуты родительского класса.
Полиморфизм. Объекты реагируют на одно и тоже сообщение строго специфичным для них образом.
Центральным элементом ООП является инкапсуляция совокупности данных и соответствующих им операций. Понятие класса с его функциями-членами и членами данных предоставляет программисту подходящий для реализации инкапсуляции инструмент. Переменные класса являются объектами, которыми можно управлять.
Кроме того, классы обеспечивают сокрытие данных. Права доступа могут устанавливаться или ограничиваться для любой группы функций, которым необходим доступ к деталям реализации. Тем самым обеспечивается модульность и надежность.
Еще одной важной концепцией ООП является поощрение повторного использования кода с помощью механизма наследования. Суть этого механизма — получение нового производного класса из существующего, называемого базовым. При создания производного класса базовый класс может быть дополнен или изменен. Таким путем могут создаваться иерархии родственных типов данных, которые используют общий код.
ООП зачастую более сложно, чем обычное процедурное программирование, как оно выглядит на С. Существует по крайней мере один дополнительный шаг на этапе проектирования, перед алгоритмизацией и кодированием. Он состоит в разработке таких типов данных, которые соответствовали бы поставленной проблеме. Зачастую проблема решается «обобщеннее», чем это действительно необходимо.
Есть уверенность, что использование ООП принесет дивиденды в нескольких отношениях. Решение будет более модульным, следовательно, более понятным и простым для модификации и обслуживания. Кроме того, такое решение будет более пригодно для повторного использования. Например, если в программе нужен стек, то он легко заимствуется из существующего кода. В обычном процедурном языке программирования такие структуры данных часто «вмонтированы» в алгоритм и не могут экспортироваться.
Абстрактный тип данных – определяемые пользователем расширения исходных типов языка. АТД состоит из набора значений и операций, которые могут влиять на эти значения. Значения описываются полями класса, а операции – методами.
22. Основные концепции ООП: инкапсуляция и расширяемость типов, семантика объекта - данные как отражение состояния объекта и методы как средства обеспечения взаимодействия объектов; представление данных, классификация методов - конструкторы, деструкторы, селекторы, модификаторы; классы и абстрактные типы данных, наглядное представление классов, объекты как экземпляры классов, основные действия с объектами - создание, инициализация, обработка, разрушение.
Свойства ООП:.
Моделирование действий из реального мира;
Инкапсуляция - способность отличать внутреннее состояние объекта и поведение от его внешнего состояния и поведения;
Абстракция (расширяемость типов) способность добавлять типы, определяемые пользователем для того, чтобы дополнить ими встроенные типы. (типы, определяемые пользователем, должны обладать теми же привилегиями, что и встроенные типы);
Наследование - способность создавать новые типы, повторно исп-я, описание существующих типов;
Полиморфизм с динамическим связыванием - способность объектов быть ответственными за интерпретацию вызова функции.
ООП — это сбалансированный подход к написанию программного обеспечения. Данные и поведение упакованы вместе. Такая инкапсуляция создает определяемые пользователем типы данных, расширяющие собственные типы языка и взаимодействующие с ними. Расширяемость типов — это возможность добавлять к языку определяемые пользователем типы данных, которые так же легко использовать, как и собственные типы.
Класс состоит из данных и методов, работающих с данными. Объект является конкретным экземпляром класса. Доступ к членам объекта (переменным и методам) осуществляется с помощью оператора (.), размещаемого между именем объекта и именем переменной.