Файл: Вопрос 1 Определение алгоритма.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.12.2023

Просмотров: 182

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Вопрос 1 - Определение алгоритма

Вопрос 2 - языки программирования

Вопрос 3 - Особенности программирования задач

Вопрос 4 - ООП

Вопрос 5 - Инкапсуляция, наследование, полиморфизм

Вопрос 6 - Классификация ОС

Вопрос 7 - Характеристики, функции, структура MS Win

Вопрос 8 - Характеристики UNIX

Вопрос 9 - Понятия программы, программной системы (комплекса), программного продукта (средства, изделия), программного обеспечения.

Вопрос 18 - Файловая организация внешней памяти. Каталог, дескриптор

Файловые системы

КАТАЛОГИ

Вопрос 19 - Загрузка выполняемых файлов в оперативную память. Организация динамического выделения памяти

Вопрос 20 - Программные средства управления внешними устройствами. Драйвер – назначение и структура

Вопрос 21 - Понятие базы данных (БД), системы управления базами данных (СУБД), банка данных (БнД)

Вопрос 22 - Модели данных

Вопрос 23 - Этапы проектирования БД

Вопрос 24 - Методы проектирования БД

Вопрос 25 - Роль нормализации при проектировании БД

, предоставляя таким образом использоваь в С++ ООП(объектно-ориентированное программирование).

Члены класса- данные-члены и функции-члены, они имеют атрибут видимости. Видимость определяется меткой видимости. Данные- члены класса являются точно таими же переменными, как э-ты структуры. Функции- члены класса(это отличие класса от стр-ры) определены в рамках класса и работают с данными- членами класса. Доступ по умолчанию- privat.

Объединение- union, доступ по умолчанию- public.

Вопрос 4 - ООП


Приемы процедурного программирования концентрируются на алгоритмах, используемых для решения задачи. При этом не обращается внимание на структуры данных, задействованные функциями, как на отдельные части организации программы. В противоположность этому, объектно-ориентированное программирование концентрируется на сути задачи, для которой пишется программа: элементы программы разрабатываются в соответствии с объектами в описании задачи. Общий подход ООП состоит в определении набора объектных типов. Объектные типы – это модули, интегрирующие структуры данных, которые представляют эл-ты задачи, с операциями, необходимыми для выработки решения. Как только эти объектные типы определены, создаются образцы объектов для конкретной задачи и вызываются операции для произведения обработки.

В С++ классы служат для представления объектных типов, а функциональные эл-ты предоставляют средства для встраивания операций в тип.

Объектно-ориентированное программирование программ – это расширение использования абстракции данных. Абстрактные типы данных, или объектные типы, не только скрывают структуру данных, но и инкапсулируют и само функционирование как операции над объектами. Суть, объектно-ориентированного программирования состоит в нахождении наиболее подходящих объектных типов.

Хороший способ проектирования объектных типов состоит в поиске существительных (объектов) и глаголов (операций) в описании решаемой задачи. Другой аспект ООП – использование наследования для создания специализированных версий базовых объектных типов. Вместо создания совершенно другого объектного типа для каждой программы можно строить новые типы из общих базовых типов.


Новое в ООП – это рассмотрения программ как реализаций объектных типов, а не как реализаций алгоритмов.

Следующий аспект – состоит в определении родового типа. Допустим, в программе обработки списков есть “списки рабочих”, ”списки телефонов” и ”списки адресов”. Все эти списки с различными типами эл-тов могут быть построены как сущности родового типа список. Родовой тип – вместилище других типов. Хорошее объектно-ориентированное программирование ясно соответствует задаче, которую должна решать программа, упрощая понимание, реализацию и сопровождение программы.

Доступ к полям данных

Определение типа, определяемого пользователем (который в C++ называется class, т.е. класс), специфицирует данные, необходимые для представления объекта этого типа, и множество операций для работы с этими объектами. Определение имеет две части: закрытую (private) часть, содержащую информацию, которой может пользоваться только его разработчик, и открытую (public) часть, представляющую интерфейс типа с пользователем:

class ostream { streambuf* buf; int state; public: void put(char*); void put(long);

void put(double); }

Описания после метки public задают интерфейс: пользователь может обращаться только к трем функциям put(). Описания перед меткой public задают представление объекта класса ostream; имена buf и state могут использоваться только функциями put(), описанными в открытой части.
class определяет тип, а не объект данных, поэтому чтобы использовать ostream, мы должны один такой объект описать (так же, как мы описываем переменные типа int):

ostream my_out;

Считая, что my_out был соответствующим образом проинициализирован его можно использовать например так:

my_out.put("Hello, world\n");

С помощью операции точка выбирается член класса для данного объекта этого класса. Здесь для объекта my_out вызывается член функция put(). Функция может определяться так:

void ostream::put(char* p) { while (*p) buf.sputc(*p++); }

Вопрос 5 - Инкапсуляция, наследование, полиморфизм


Инкапсуляция – объединение в едином объекте данных и кодов, оперирующих с этими данными. В терминологии объектно-ориентированного программирования (ООП) данные называются членами данных, а коды – объектными методами или функциями-членами.

Инкапсуляция позволяет в максимальной степени изолировать объект от внешнего окружения. Она существенно повышает надёжность разрабатываемых программ, т.к. локализованные в объекте функции обмениваются с программой сравнительно небольшими объёмами данных, причем количество и тип этих данных тщательно контролируется . В результате замена или модификация функций и данных, инкапсулированных в объект, как правило, не влечёт за собой плохо прослеживаемых последствий для программы в целом (в целях повышения защищённости программ в ООП не используются глобальные переменные).

Другим немаловажным следствием инкапсуляции является лёгкость обмена объектами, переноса их из одной программы в другую.

Наследование – свойство объектов передавать другим родственным объектам свои характеристики и другие свойства.

Заимствованная у природы идея наследования решает проблему модификации поведения объектов и придает ООП исключительную силу и гибкость. Наследование позволяет, практически без ограничений, последовательно строить и расширять классы, созданные программистом. –Производные классы (потомки) наследуют все свойства, методы и события своего базового класса (родителя) и всех его предшественников в иерархии классов.

При наследовании базовый класс обрастает новыми атрибутами и операциями. В производном классе обычно объявляются новые члены данных, свойства и методы.

Слово полиморфизм от греческих слов poly (много) и morphos (форма) означает множественность форм. Полиморфизм – это свойство родственных объектов вести себя по разному в зависимости от ситуации, возникающей в момент выполнения программы. В рамках ООП программист может влиять на поведение объекта только косвенно
, изменяя входящие в него методы и придавая потомкам отсутствующие у родителя специфические свойства.

Благодаря полиморфизму, потомки могут перегружать общие методы родителя с тем, чтобы реагировать специфическим образом на одно и то же событие.

Вопрос 6 - Классификация ОС


Ниже приведена классификация ОС по нескольким наиболее основным признакам.

Особенности алгоритмов управления ресурсами

В зависимости от особенностей использованного алгоритма управления процессором, операционные системы делят на

  • многозадачные и однозадачные,

  • многопользовательские и однопользовательские,

  • на системы, поддерживающие многонитевую обработку и не поддерживающие ее,

  • на многопроцессорные и однопроцессорные системы.

Поддержка многозадачности. По числу одновременно выполняемых задач операционные системы могут быть разделены на два класса:

  • однозадачные (например, MS-ОС, MSX)

  • многозадачные (OC EC, OS/2, UNIX, Windows 95).

Однозадачные ОС в основном выполняют функцию предоставления пользователю виртуальной машины, делая более простым и удобным процесс взаимодействия пользователя с компьютером.

Многозадачные ОС, кроме вышеперечисленных функций, управляют разделением совместно используемых ресурсов, таких как процессор, оперативная память, файлы и внешние устройства.

Поддержка многопользовательского режима.По числу одновременно работающих пользователей ОС делятся на:

  • однопользовательские (MS-ОС, Windows 3.x, ранние версии OS/2);

  • многопользовательские (UNIX, Windows NT).

Главным отличием многопользовательских систем от однопользовательских является наличие средств защиты информации каждого пользователя от несанкционированного доступа других пользователей.

Вытесняющая и невытесняющая многозадачность. Среди множества существующих вариантов реализации многозадачности можно выделить две группы алгоритмов:

  • невытесняющая многозадачность (NetWare, Windows 3.x);

  • вытесняющая многозадачность (Windows NT, OS/2, UNIX).

В первом случае механизм планирования процессов целиком сосредоточен в операционной системе, а во втором - распределен между системой и прикладными программами.

Поддержка многонитевости.
Важным свойством операционных систем является возможность распараллеливания вычислений в рамках одной задачи. Многонитевая ОС разделяет процессорное время не между задачами, а между их отдельными ветвями (нитями).

Многопроцессорная обработка.Другим важным свойством ОС является отсутствие или наличие в ней средств поддержки многопроцессорной обработки - мультипроцессирование. Мультипроцессирование приводит к усложнению всех алгоритмов управлени я ресурсами.

  • асимметричные ОС

  • симметричные ОС.

Асимметричная ОС целиком выполняется только на одном из процессоров системы, распределяя прикладные задачи по остальным процессорам. Симметричная ОС полностью децентрализована и использует весь пул процессоров, разделяя их между системными и прикладными задачами.

Особенности аппаратных платформ

По типу аппаратуры различают операционные системы

  • персональных компьютеров,

  • мини-компьютеров,

  • мейнфреймов,

  • кластеров и сетей ЭВМ.

Среди перечисленных типов компьютеров могут встречаться как однопроцессорные варианты, так и многопроцессорные.

Особенности областей использования

Многозадачные ОС подразделяются на три типа в соответствии с использованными при их разработке критериями эффективности:

  • системы пакетной обработки (например, OC EC),

  • системы разделения времени (UNIX, VMS),

  • системы реального времени (QNX, RT/11).

Системы пакетной обработки предназначались для решения задач в основном вычислительного характера, не требующих быстрого получения результатов. Главной целью и критерием эффективности систем пакетной обработки является максимальная пропускная способность.

Системы разделения времени призваны исправить основной недостаток систем пакетной обработки - изоляцию пользователя-программиста от процесса выполнения его задач. Каждому пользователю системы разделения времени предоставляется терминал, с которого он может вести диалог со своей программой.