- •Содержание
- •Информатика. Предмет и задачи
- •Структура информатики
- •Задачи информатики:
- •Измерение и представление информации
- •Сигналы ДанныеМетодыИнформация
- •Методы воспроизведения и обработки данных
- •Информационный процесс
- •Меры информации
- •Единицы измерения информации
- •Качественные свойства информации
- •Классификация информации
- •Хранение информации
- •Кодирование данных двоичным кодом
- •Системы счисления
- •Двоичная система счисления
- •Перевод из десятичной системы в двоичную
- •Арифметические операции с двоичными числами
- •Восьмеричная и шестнадцатеричная системы счисления
- •Кодирование числовых данных
- •Кодирование текстовых данных
- •Кодирование графических данных
- •Кодирование звуковых данных
- •Послесловие к лекции о кодировании данных в компьютере
- •Хранение данных в компьютере
- •Представление и обработка числовой информации в компьютере
- •История развития вычислительной техники
- •Классификация эвм по принципу действия
- •Поколения цифровых эвм
- •Архитектура эвм
- •Архитектура эвм, построенная на принципах фон Неймана
- •Структура современных эвм
- •Тенденции в развитии структуры современных эвм
- •Упрощенная структурная схема ibm pc совместимого компьютера
- •Структура и виды команд
- •Состав машинных команд
- •Основной цикл работы компьютера
- •Обработка прерываний
- •Состав вычислительной системы
- •Аппаратное обеспечение
- •Программное обеспечение
- •Классификация программных продуктов по сфере использования
- •Системное программное обеспечение
- •Операционная система
- •Ос как расширенная машина
- •Ос как система управления ресурсами
- •Функции ос
- •Понятие многозадачности
- •Установка приложений
- •Удаление приложений
- •Обеспечение взаимодействия с аппаратным обеспечением
- •Обслуживание компьютера
- •Прочие функции операционных систем
- •Особенности файловых систем
- •Файловые системы fat и fat32
- •Файловая система ntfs
- •Физическая структура ntfs
- •Mft и его структура.
- •Основные понятия ос Windows
- •Моделирование как метод решения прикладных задач
- •Моделирование как метод познания
- •Материальные и информационные модели
- •Формализация модели
- •Математическое моделирование
- •Классификация математических моделей по цели моделирования
- •Компьютерное моделирование
- •Этапы и цели компьютерного математического моделирования
- •Понятие алгоритма и его свойства
- •Определение алгоритма на основе рекурсивных функций
- •Определение алгоритма на основе абстрактных автоматов (машины Тьюринга)
- •Способы записи алгоритмов
- •Линейный алгоритм
- •Разветвляющийся алгоритм
- •Циклический алгоритм
- •Объекты алгоритма
- •Языки и системы программирования
- •Классификация языков программирования, их эволюция
- •Алгоритмические (процедурные) языки программирования
- •Декларативные (описательные) языки программирования
- •Объектно-ориентированные языки программирования
- •Языки создания сценариев (программирование для Интернета)
- •Языки программирования баз данных
- •Языки моделирования
- •Поколения языков программирования
- •Системы программирования и их компоненты
- •Архитектура программных систем
- •Технологии программирования
- •Основные этапы развития технологии программирования
- •Модули и их свойства
- •Нисходящая и восходящая разработка программного обеспечения
- •Структурное и «неструктурное» программирование
Понятие алгоритма и его свойства
Понятие алгоритма является одним из основных понятий современной информатики. Термин алгоритм происходит от algorithmi – латинской формы написания имени выдающегося математикаIXвека аль-Хорезми, который сформулировал правила выполнения арифметических операций.
Вплоть до 30-х годов прошлого столетия понятие алгоритма носило сугубо интуитивный характер. Под алгоритмом понимали: конечный набор точных и понятных предписаний (правил, инструкций, команд), позволяющих механически решать конкретную задачу из определенного класса однотипных задач. Основными свойствами такого «интуитивного» понятия алгоритма являются:
Массовость. Означает, что алгоритм применим к целому классу задач, а при решении конкретной задачи из класса исходные данные могут меняться в определенных пределах.
Детерминированность. Процесс применения правил к исходным данным (путь решения задачи) определен однозначно.
Дискретность. Означает, что путь решения задачи определен в виде последовательности шагов – четко разделенных друг от друга предписаний. Только выполнив одно предписание, можно приступить к выполнению следующего.
Результативность. На каждом шаге процесса применения правил известно, что считать результатом этого процесса, а сам процесс должен закончиться за конечное число шагов.
Понятность. Означает, что алгоритм создается в расчете на определенного исполнителя, т.е. необходимо, чтобы он мог понять и выполнить каждый шаг предписания.
Для задач, имеющих положительное решение, этого определения достаточно. Другое дело, когда задача или класс задач не имеют решения. В этом случае требуется строго формализованное понятие алгоритма, чтобы иметь возможность доказать его отсутствие. Определение такого понятия алгоритма стала одной из центральных математических проблем. Решение было получено в середине 30-х годов в работах известных математиков, в двух эквивалентных формулировках: на основе особого класса арифметических функций, называемых рекурсивными(Д. Гильберт, К. Гедель, А. Черч, С. Клини), и на основеабстрактных автоматов(Э. Пост и А. Тьюринг). Появилось целое математическое направление –теория алгоритмов,в которой в основу определения алгоритма было поставленоособое соответствие между словами в том или ином абстрактном алфавите(А. Марков, Л. Калужнин). Теория алгоритмов оказалась тесно связанной не только с теоретической математикой (математической логикой, алгеброй, геометрией, анализом), но и с рядом областей лингвистики, экономики, физиологии мозга, философии, естествознания. Примером задачи этой области может служить описание алгоритмов, реализуемых человеком в процессе умственной деятельности.
С появлением ЭВМ возникла область теории алгоритмов, тесно связанная с информатикой, которая стала теоретической основой таких ее составных частей, как теория программирования, построение алгоритмических языков и ЭВМ, разработка трансляторов, анализа алгоритмов с целью выбора наиболее рационального для решения на ЭВМ и т.д.
Определение алгоритма на основе рекурсивных функций
Рекурсия– процесс определения функции, при котором ее значение для произвольных значений аргументов выражается известным образом через значения функции для меньших значений аргументов.
Функция, для которой существует алгоритм оценки для любого аргумента в области определения функции, называется вычислимой.
Функция, для которой существует эффективная процедура ее вычисления на основе рекурсии, называется рекурсивной.
Класс рекурсивных функций тождественен с классом всюду определенных вычислимых функций – тезис Черча.
Функция, определенная не для всех значений аргументов, а только на некотором подмножестве, называется частичной функцией.
Все частичные функции, вычислимые посредством алгоритмов, являются частично рекурсивными – тезис Клини.
Понятие частично рекурсивных функций используют для доказательства алгоритмической разрешимости или неразрешимости проблемы.