
- •Тема 2. Измерение информации
- •2.1. Подходы к измерению информации
- •2.2. Единицы измерения информации
- •2.3. Вероятностный подход к измерению информации
- •Представление данных в памяти эвм
- •Алгебра логики высказываний Основные понятия
- •Законы алгебры логики
- •Функции алгебры логики
- •Представление произвольной логической функции в виде формулы алгебры логики
- •Дизъюнктивная нормальная форма и совершенная дизъюнктивная нормальная форма
- •Конъюнктивная нормальная форма и совершенная конъюнктивная нормальная форма
- •Решение логических задач средствами алгебры логики
- •3. Жизненный цикл программного продукта.
- •Алгоритм и его свойства. Запись алгоритмов. Виды алгоритмов
- •Свойства алгоритма
- •Типы алгоритмических структур.
Решение логических задач средствами алгебры логики
Суть применения методов алгебры логики к решению логических задач состоит в том, что, имея конкретные условия логической задачи, стараются записать их в виде формулы алгебры логики. В дальнейшем путем построения таблицы истинности или равносильных преобразований упрощают полученную формулу. Наконец, простейший вид формулы, как правило, приводит к ответу на все вопросы задачи.
В качестве примера рассмотрим одну из элементарных логических задач. По подозрению в совершенном преступлении задержали Брауна, Джона и Смита. Один из них был уважаемым в городе стариком, другой был малоизвестным чиновником, третий – известным мошенником. В процессе следствия старик говорил правду, мошенник лгал, а третий задержанный в одном случае говорил правду, а в другом – ложь. Вот, что они утверждали:
Браун: «Я совершил это. Джон не виноват».
Джон: «Браун не виноват. Преступление совершил Смит».
Смит: «Я не виноват, виновен Браун».
Необходимо определить имена старика, мошенника и чиновника и кто из них виноват, если известно, что преступник один.
Решение этой задачи начинается с введения обозначений: буквами Б, Д и С обозначим высказывания: «виноват Браун», «виноват Джон» и «виноват Смит» соответственно. Тогда утверждения, высказанные задержанными, можно записать в виде конъюнкций:
Б Д, Б С, Б С,
из которых, по условию задачи, две ложны, а одна истинна. Поэтому будет истинной формула
L = (Б Д) ( Б С) (Б С).
Таблица истинности этой формулы имеет вид:
Б
|
Д
|
С
|
Б Д |
Б С |
Б С |
L |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
Из таблицы видно, что формула L истинна в пяти из восьми случаев. Случай, представленный в пятой строке, следует исключить из рассмотрения, так как здесь оказываются истинными две конъюнкции, а это противоречит условию задачи. В строках 4, 6 и 7 оказываются истинными по два высказывания: Д и С, Б и С, Б и Д, соответственно, что также противоречит условию задачи. Следовательно, справедлив случай 7, то есть преступник – Смит. Он – известный мошенник, и оба его высказывания ложны: Б С 0. При этом высказывания Б и Д ложны. Значит, истинна пара высказываний Джона, а у Брауна первое высказывание ложно, а второе истинно. Отсюда ясно, что Джон – уважаемый в городе старик, а Браун – Малоизвестный чиновник.
Этапы решения задачи на ЭВМ
Программирование (programming) - теоретическая и практическая деятельность, связанная с созданием программ. Решение задач на компьютере включает в себя следующие основные этапы, часть из которых осуществляется без участия компьютера.
1. Постановка задачи:
• сбор информации о задаче;
• формулировка условия задачи;
• определение конечных целей решения задачи;
• определение формы выдачи результатов;
• описание данных (их типов, диапазонов величин, структуры и т. п.).
2. Анализ и исследование задачи, модели:
• анализ существующих аналогов;
• анализ технических и программных средств;
• разработка математической модели;
• разработка структур данных.
3. Разработка алгоритма:
• выбор метода проектирования алгоритма;
• выбор формы записи алгоритма (блок-схемы, псевдокод и др.);
• выбор тестов и метода тестирования;
• проектирование алгоритма.
4. Программирование:
• выбор языка программирования;
• уточнение способов организации данных;
• запись алгоритма на выбранном языке
программирования.
5. Тестирование и отладка:
• синтаксическая отладка;
• отладка семантики и логической структуры;
• тестовые расчеты и анализ результатов тестирования;
• совершенствование программы.
6. Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5.
7. Сопровождение программы:
• доработка программы для решения конкретных задач;
• составление документации к решенной задаче, к математической модели, к алгоритму, к программе, к набору тестов, к использованию.
2. Категории специалистов, занятых разработкой и эксплуатацией программного обеспечения.
Основная категория специалистов, занятых разработкой программ, — это программисты. Программисты неоднородны по уровню квалификации, а также по характеру своей деятельности.
Системный программист (system/software programmer, toolsmith) - занимается разработкой, эксплуатацией и сопровождением системного программного обеспечения, поддерживающего работоспособность компьютера и создающего среду для выполнения программ.
Прикладной программист (application programmer) — осуществляет разработку и отладку программ для решения функциональных задач (т. е. задач по реализации функций управления в рамках информационной системы — управление деятельностью торгового предприятия, управление перевозкой грузов, планирование выпуска продукции).
Программист-аналитик (programmer-analyst) — программист, анализирующий и проектирующий комплекс взаимосвязанных программ.
Постановщик задач — разработчик формальных постановок задач, требующих реализации на ЭВМ.
Администратор базы данных — человек, который обеспечивает организационную поддержку базы данных.
Администратор сети — человек, который обеспечивает организационную поддержку работы локальной сети.
Основным потребителем программ является конечный пользователь (end user), который, как правило, не является специалистом в области программирования.
Для работы с ЭВМ существует группа специально обученных технических работников — операторов ЭВМ. Они не программируют, а используют готовые программы для обеспечения работы на ЭВМ конечных пользователей: набор текстов, печать документов, копирование информации, запись на внешние носители и др.
Рис. 2.1 Схема взаимодействия специалистов, занятых разработкой и эксплуатацией программного обеспечения.