- •Предисловие Цели и задачи изучения дисциплины
- •Краткая характеристика дисциплины, её место вучебном процессе
- •Лекция1. Понятие «информация». Количество информации
- •1.1. Понятие «информация» и свойства информации
- •1.2. Количество информации как мера уменьшения неопределенности знаний
- •1.3. Алфавитный подход к определению количества информации
- •1.4. Формула Шеннона
- •Контрольные вопросы
- •Лекция2. Системы счисления
- •2.1. Представление числовой информации с помощью систем счисления
- •2.2. Перевод чисел в позиционных системах счисления
- •2.3. Арифметические операции в позиционных системах счисления
- •Контрольные вопросы
- •Лекция3. Кодирование информации
- •3.1. Представление и кодирование информации
- •3.2. Двоичное кодирование информации в компьютере
- •3.3.Кодирование текстовой информации
- •3.4.Кодирование графической информации
- •3.5.Кодирование звуковой информации
- •Контрольные вопросы
- •Лекция4. Основы логики. Логические выражения
- •4.1. Формы мышления
- •4.2. Алгебра высказываний
- •4.3. Логические выражения и таблицы истинности
- •Контрольные вопросы
- •Лекция5. Логические основы компьютера
- •5.1. Логические функции
- •5.2. Логические законы и правила преобразования логических выражений
- •5.3. Логические основы компьютера
- •Контрольные вопросы
- •Лекция6. Основы алгоритмизации
- •6.1. Алгоритмы и их свойства
- •6.2. Основные алгоритмические конструкции
- •Контрольные вопросы
- •Лекция7. Основы программирования
- •7.1. Этапы решения прикладных задач с использованием компьютеров
- •7.2. Программа. Язык программирования
- •7.3. Основы программирования в системеTurboPascal
- •7.4. Структура программы на языке Паскаль
- •Контрольные вопросы
- •Лекция8. Моделирование и формализация
- •8.1. Исследование математических моделей
- •8.2. Геометрические модели
- •8.3. Геоинформационные модели
- •8.4. Оптимизационное моделирование
- •8.5. Логические модели
- •Контрольные вопросы
- •Список рекомендуемой литературы:
Контрольные вопросы
Какое количество логических функций двух аргументов существует и почему?
Какие логические функции двух аргументов имеют свои названия?
Какое существует количество логических функций трех аргументов?
Какие логические выражения называются равносильными?
Найдите X, если ⌐(A v X) v ⌐(⌐A v X) = B.
Постройте таблицу истинности одноразрядного двоичного сумматора, воспользовавшись таблицей сложения двоичных чисел.
Построить таблицу, описывающую состояние входов и выходов RS-триггера.
Существует 16 логических функций от двух переменных (смотри таблицу 5.1). Постройте их логические схемы с помощью базовых логических элементов: конъюнктора, дизъюнктора, инвертора.
Лекция6. Основы алгоритмизации
6.1. Алгоритмы и их свойства
Алгоритмы - заранее заданное точное предписание возможному исполнителю совершить определённую последовательность действий для получения решения задачи за конечное число шагов.
Вы постоянно сталкиваетесь с этим понятием в различных сферах деятельности человека (кулинарные книги, инструкции по использованию различных приборов, правила решения математических задач...). Обычно мы выполняем привычные действия не задумываясь, механически. Например, вы хорошо знаете, как открывать ключом дверь. Однако, чтобы научить этому малыша, придется четко разъяснить и сами эти действия и порядок их выполнения:
Достать ключ из кармана
Вставить ключ в замочную скважину
Повернуть ключ два раза против часовой стрелки
Вынуть ключ
Если вы внимательно оглянитесь вокруг, то обнаружите множество алгоритмов, которые мы с вами постоянно выполняем. Мир алгоритмов очень разнообразен. Несмотря на это, удается выделить общие свойства, которыми обладает любой алгоритм.
Свойства алгоритмов:
Дискретность (алгоритм должен состоять из конкретных действий, следующих в определенном порядке)
Детерминированность (любое действие должно быть строго и недвусмысленно определено в каждом случае)
Конечность (каждое действие и алгоритм в целом должны иметь возможность завершения)
Массовость (один и тот же алгоритм можно использовать с разными исходными данными)
Результативность (отсутствие ошибок, алгоритм должен приводить к правильному результату для всех допустимых входных значениях)
Виды алгоритмов:
Линейный алгоритм (описание действий, которые выполняются однократно в заданном порядке)
Циклический алгоритм (описание действий, которые должны повторятся указанное число раз или пока не выполнено задание)
Разветвляющий алгоритм (алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий)
Вспомогательный алгоритм (алгоритм, который можно использовать в других алгоритмах, указав только его имя)
Для более наглядного представления алгоритма широко используется графическая форма - блок-схема, которая составляется из стандартных графических объектов.
Вид стандартного графического объекта |
Назначение |
Начало алгоритма | |
Конец алгоритма | |
Выполняемое действие записывается внутри прямоугольника | |
Условие выполнения действий записывается внутри ромба | |
Счетчик количество повторов | |
Последовательность выполнения действий. |
Способы задания алгоритма:
словесный,
графический (блок-схемы),
псевдокоды.
Стадии создания алгоритма:
Алгоритм должен быть представлен в форме, понятной человеку, который его разрабатывает.
Алгоритм должен быть представлен в форме, понятной тому объекту (в том числе и человеку), который будет выполнять описанные в алгоритме действия.
Объект, который будет выполнять алгоритм, обычно называют исполнителем.
Исполнитель - объект, который выполняет алгоритм.
Идеальными исполнителями являются машины, роботы, компьютеры...
Компьютер – автоматический исполнитель алгоритмов.
Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой.
Псевдокод. Псевдокод - компактный (зачастую неформальный) язык описания алгоритмов, использующий ключевые слова императивных языков программирования, но опускающий несущественные подробности и специфический синтаксис. Псевдокод обычно опускает детали, несущественные для понимания алгоритма человеком. Такими несущественными деталями могут быть описания переменных, системно-зависимый код и подпрограммы. Главная цель использования псевдокода — обеспечить понимание алгоритма человеком, сделать описание более воспринимаемым, чем исходный код на языке программирования. Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам. В псевдокоде есть служебные слова, смысл которых однозначно определён. Например, алгоритмы на алгоритмическом языке записываются с помощью служебных слов, представленных в таблице ниже.
Служебные слова алгоритмического языка | ||||
алг(алгоритм) |
сим(символьный) |
дано |
да |
нет |
арг(аргумент) |
лит(литерный) |
надо |
для |
при |
рез(результат) |
лог(логический) |
если |
от |
до |
нач(начало) |
таб(таблица) |
то |
знач |
выбор |
кон(конец) |
нц(начало цикла) |
иначе |
и |
или |
цел(целый) |
кц(конец цикла) |
всё |
ввод |
вывод |
вещ(вещественный) |
длин(длина) |
пока |
утв |
не |
Общий вид алгоритма:
алг название алгоритма (аргументы и результаты)
дано условия применимости алгоритма
надо цель выполнения алгоритма
нач описание промежуточных величин
последовательность команд (тело алгоритма)
кон
Часть алгоритма от слова алг до слова нач называется заголовком, а часть, заключённая между словами нач и кон - телом алгоритма.