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

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

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

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

Добавлен: 12.12.2023

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

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

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

СОДЕРЖАНИЕ

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

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

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

Вопрос 4 - ООП

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

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

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

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

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

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

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

КАТАЛОГИ

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

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

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

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

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

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

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

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


    1. Определение алгоритма

Обычно под алгоритмом понимают комплекс (совокупность) действий, которое ведет к решению задачи.

Варианты определения:

Алгоритм- система формальных правил, однозначно приводящая к решению задачи;

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

    1. Способы описания алгоритмов

Все способы задания алгоритмов применительно к математике можно разделить на три группы:

  1. аналитические (формульные) способы

Аналитически алгоритм можно задать на основе операций над алгоритмами. Например, запись АЛГС=АЛГ(А\В есть новый ) алгоритм С, получающийся при вычитании из алгоритма А алгоритма В.

  1. графические

а) Схема алгоритма - такое графическое изображение алгоритма , в котором шаги алгоритма(этапы решения задачи) изображаются в виде различных геометрических фигур: прямоугольников, многоугльников и др. Внутри этих фигур указывается содержание соответствующих шагов. Блоки в СА соединяются связями, показывающими направление алгоритмического процесса.

б) Граф- схема алгоритма отличается от СА большой формализацией, несколько другим изображением блока начала и конца. Поскольку ГСА предложена применительно к к алгоритмам операций ЭВМ, то в ГСА нет средств для отражения ввода-вывода. Исходные данные, промежуточные и конечные результаты носят двоичный характер. Вместо блоков схемы алгоритма в ГСА используются вершины: начальная, конечная, операторные, условные.

  1. Табличные

Матричная схема алгортма представляет собой матрицу.Строки матрицы соответствуют операторным вершинам ГСА, из которых есть выход, столбцы- операторным вершинам, в которые есть заходы. В матрице К строк и К столбцов. МСА можно соствлять ипо ЗГСА, и по ЛСА.

  1. развернутые.

Наиболее широко применяются развернутые способы, при которых описание алгоритма похоже на естественный для исполнителя язык, может записываться и читаться почти как обычный текст.К таким способам можно отнести словесное описание алгоритма, задание алгоритма в виде программы на алгоритмическом языке (ФМП и т.д.), ЛСА, операторная запись.


    1. Правила оформления СА

За блоком начала размещается блок ввода. В настоящее время начинает широко использоваться ввод с клавиатура дисплея.(нужен лишь при решении задач, разбиваемых на последовательность ариметических и логических операций). Внутри блока- данные в символической форме. В основной части СА исп-ся блоки преоразования, попроцессора, проверки условий, начала цикла. Завершается СА блоком КОНЕЦ.

  1. в СА д.б. только один блок НАЧАЛО и один КОНЕЦ;

  2. Выходы блоков провеки логических условий должны д-ны быть помечены.;

  3. Из блока НАЧАЛО д.б. путь к каждому блоку, и из каждого блока д.б. путь к блоку КОНЕЦ.

Также нужно соблюдать соотношение геометрических эл-тов символов.

1.4 Разновидности структур алгоритмов

Бескомпьютерные алгоритмы и компьютерные алгоритмы(понятные ЭВМ). Можно выделить паралленльные, последовательные, линейные, циклические, разветвленные, эквивалентные алгоритмы.

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


1. Машинно – ориентированные языки

Машинно – ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.).

Особенности машинно – зависимых языков:

  • высокое качество создаваемых программ (компактность и скорость выполнения);

  • возможность использования конкретных аппаратных ресурсов;

  • предсказуемость объектного кода и заказов памяти;

  • для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ;

  • трудоемкость процесса составления программ (особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок;

  • низкая скорость программирования;

  • невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.

Машинно-ориентированные языки по степени автоматического программирования подразделяются на классы.

1.1 Машинный язык(Ассемблер)

Машинному языку (МЯ) предписывают выполнение указываемых операций над определяемыми ими операндами, поэтому МЯ является командным. Однако, некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый МЯ для ЭВМ разной мощности. В команде любого из них сообщается информация о местонахождении операндов и типе выполняемой операции.



1.2 Языки Символического Кодирования

Языки Символического Кодирования (ЯСК) являются командными. Однако коды операций и адреса в машинных командах, представляющие собой последовательность двоичных (во внутреннем коде) или восьмеричных (часто используемых при написании программ) цифр, в ЯСК заменены на символы (идентификаторы), форма написания которых помогает программисту легче запоминать смысловое содержание операции. Это обеспечивает существенное уменьшение числа ошибок при составлении программ.

1.3 Автокоды

Есть также языки, включающие в себя все возможности ЯСК, посредством расширенного введения макрокоманд - они называются Автокоды.

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

1.4 Макрос

Язык, являющийся средством для замены последовательности символов описывающих выполнение требуемых действий ЭВМ на более сжатую форму - называется Макрос (средство замены).

Макрос предназначен для того, чтобы сократить запись исходной программы. Компонент программного обеспечения, обеспечивающий функционирование макросов, называется макропроцессором. На макропроцессор поступает макроопределяющий и исходный текст. Реакция макропроцессора на вызов-выдача выходного текста.

2. Машинно – независимые языки

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

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


2.1 Проблемно – ориентированные языки

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

Проблемных языков очень много, например:

Фортран, Алгол – языки, созданные для решения математических задач;

Simula, Слэнг - для моделирования;

Лисп, Снобол – для работы со списочными структурами.

2.2 Универсальные языки

Универсальные языки были созданы для широкого круга задач: коммерческих, научных, моделирования и т.д. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы. Предусмотрена возможность параллельного выполнение участков программ.

Он допускает не только динамическое, но и управляемое и статистическое распределения памяти.

2.3 Диалоговые языки

Появление новых технических возможностей поставило задачу перед системными программистами – создать программные средства, обеспечивающие оперативное взаимодействие человека с ЭВМ их назвали диалоговыми языками.

Одним из примеров диалоговых языков является Бэйсик.

Бэйсик использует обозначения подобные обычным математическим выражениям. Многие операторы являются упрощенными вариантами операторов языка Фортран. Поэтому этот язык позволяет решать достаточно широкий круг задач.

2.4 Непроцедурные языки

Непроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами.

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


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


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

Структура представляет собой множество, состоящее из нескольких значений, каждое из которых может иметь свой тип данных. Элементы структуры могут иметь разные типы данных. Каждая определяемая структуры может иметь имя, так называемый тег.Тег структуры не является именем переменной, это всего лишь метка для формата структуры. Для определения структуры используется оператор struct . Он определяет новый тип данных. Доступ по умолчанию-public.

Struct [тег структуры]

{

определение члена;

определение члена;

….

определение члена;

} [одна или более переменных- структур]

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

Struct

{



} disk;

disk.price=11$;

disk.num_songs=12;

C++позволяет определять одну структуру в рамках другой. Нужно определить такую структуру только один раз , а затем использовать ее как элемент какой либо другой структуры.

Класс –определенный пользователем тип данных, который используется для описания абстрактного объекта