- •1.Информатика. Основные понятия
- •1.1. Понятие об информации, информационных процессах, информационных системах и информационных технологиях
- •Ошибка! Закладка не определена.. Информационные технологии
- •1.1.1. Информационные системы
- •1.2. Предмет информатики
- •1.3. Информация, сообщения, знаки и символы
- •1.3.1. Сообщения, сигналы
- •1.3.2. Знаки, коды, символы и слова
- •1.4. Алгоритмы. Основные понятия
- •1.4.1. Определение алгоритма. Запись алгоритма. Свойства алгоритмов
- •1.4.2. Примеры алгоритмов. Способы, используемые при записи алгоритмов: рекурсия, итерация, разбор случаев, иерархическое построение
- •1.4.3. Объекты, типы объектов
- •1.4.4. Псевдокод для записи алгоритмов
- •1.4.5. Неструктурированная форма записи алгоритмов
- •1.4.6. Структурированная форма записи алгоритмов
- •1.4.7. Последовательный оператор
- •1.4.8. Условный оператор
- •1.4.9. Оператор цикла
- •1.5. Общая характеристика процессов сбора, передачи, обработки и накопления информации
- •1.6. Подходы к оценке количества информации
- •2.Основные сведения о компьютерах
- •2.1. Системы счисления
- •2.2. Классификация эвм (компьютеров)
- •2.3. Структура и состав персонального компьютера
- •2.4. Микропроцессоры
- •2.6. Устройства ввода информации Клавиатура
- •Другие устройства ввода информации
- •2.7. Устройства вывода информации Дисплеи
- •Принтеры и графопостроители
- •2.8. Эволюция пк
- •3. Программное обеспечение персональных компьютеров
- •3.1. Классификация программного обеспечения
- •3.2. Операционные системы (ос)
- •3.4. Инструментальные системы
- •3.4.1. Языки и системы программирования
- •3.4.2. Системы управления базами данных
- •3.4.3. Инструментарий искусственного интеллекта
- •3.4.4. Текстовые редакторы
- •3.4.5. Интегрированные системы
- •3.5. Прикладное программное обеспечение
- •4. Операционная система. Основные сведения
- •4.1. Операционные системы и файлы
- •4.2.3. Именование каталогов
- •4.2.4. Файловая структура
- •5. Программирование
- •5.1. Компьютерное решение задач. Основные этапы
- •5.1.1. Математическая формулировка и разработка методов решения задачи
- •5.1.2. Разработка алгоритма решения задачи
- •5.1.3. Разработка программы решения задачи. Отладка и тестирование программы
- •5.1.4. Решение поставленных задач на компьютере и анализ результатов
- •5.2. Алгоритмический язык программирования Basic
- •5.2.1. Основные понятия
- •5.2.2. Данные
- •5.2.3. Типы данных
- •5.2.4. Элементарные типы данных
- •5.2.5. Константы
- •5.2.6. Переменная. Оператор объявления переменных
- •5.2.7. Выражения
- •5.2.8. Арифметические выражения
- •5.2.9. Строковые выражения
- •"КазаньÈкгтуÈим.А.Н.Туполева"
- •5.2.10. Логические выражения
- •5.2.11. Оператор присваивания
- •5.2.12. Составные типы данных
- •5.2.13. Структуры. Оператор описания типа данных. Переменные структурного типа
- •5.2.14. Массивы. Переменные типа массива
- •5.2.15. Оператор вывода данных на экран
- •5.2.16. Операторы управления выводом информации на экран
- •5.2.17. Оператор ввода информации с клавиатуры
- •Input ИмяПерем1, ...., ИмяПеремN
- •123,3.1415E-3,"Казань"
- •5.2.18. Составные операторы, задающие последовательность действий
- •If Условие then
- •5.2.20. Оператор выбора
- •Input "введите номер сотрудника", n
- •5.2.21. Оператор цикла
- •5.2.22. Оператор цикла со счетчиком
1.4.2. Примеры алгоритмов. Способы, используемые при записи алгоритмов: рекурсия, итерация, разбор случаев, иерархическое построение
Приведем некоторые примеры алгоритмов, сформулированных весьма неформально (на "разговорном языке").
(А) Запись алгоритма вычисления значения дроби (a+b)/(a-b).
Сначала вычисляем (используя алгоритмы сложения и вычитания) значения выражений a+b и a-b (все равно, последовательно или параллельно), а потом образуем частное от деления полученных результатов (используя алгоритм деления).
Пример выполнения алгоритма для пары чисел 2/3 и 5/7.
Исходные значения: a равно 2/3, b равно 5/7.
Выражение a+b равно 29/21. (Процесс вычисления суммы 2/3 и 5/7 здесь для краткости не показан).
Выражение a-b равно -1/21. (Процесс вычисления разности 2/3 и 5/7 здесь для краткости не показан).
Результат - частное (a+b)/(a-b) равно -29. (Процесс деления 29/21 на ‑1/21 здесь для краткости не показан).
(Б) Запись алгоритма разложения натурального числа на простые множители.
Нужно последовательно пытаться делить нацело без остатка заданное число на натуральные числа 2,3,4,5,6,7,... до тех пор, пока не останется 1. Последовательность получающихся в конечном счете делителей даст требуемое разложение на простые множители.
Пример выполнения алгоритма для числа 105.
Исходное разложение (105).
(105) на 2 без остатка не делится.
(105) на 3 делится. Частное - 35.
(35·3) на 4 без остатка не делится.
(35·3) на 5 делится. Частное - (7·3).
(7·3·5) на 6 без остатка не делится.
(7·3·5) на 7 делится. Частное - (1·3·5).
Выполнение завершено. Результат - разложение (3·5·7).
(В) Запись алгоритма вставки карточки в упорядоченную картотеку.
В случае пустой картотеки вставка карточки тривиальна.
В противном случае раскроем картотеку в произвольном месте и сравним открывшуюся карточку с вставляемой по признаку, который упорядочивает картотеку. После сравнения становится ясным, в какую из частей картотеки нужно вставить карточку: в переднюю стопку или заднюю стопку карточек.
Для вставки карточки в необходимую стопку будем действовать тем же самым способом.
Процесс заканчивается, когда карточку нужно вставлять в пустое множество карт.
В примере (А) мы имеем наиболее простой случай: количество элементарных тактов обработки постоянно и не зависит от чисел a и b. Иначе обстоит дело в других примерах: в случае (Б) это количество зависит от величины разлагаемого на множители числа, в случае (В) - от размера картотеки. Хотя описание алгоритма конечно и постоянно, количество фактически выполняемых тактов - величина переменная: это оказывается возможным благодаря использованию приема, сводящего общую задачу к "более простой" задаче того же класса.
Этот прием называют рекурсией. В примере (В) наличие рекурсии очевидно из самого словесного описания алгоритма. В примере (Б) мы имеем специальный случай рекурсии - повторительную рекурсию (итерацию). При словесном описании ее часто записывают в форме: "Пока выполнено определенное условие, повторяй...".
Наряду с рекурсией и повторением в алгоритмах встречается разбор случаев. Без разбора возможных случаев, в частности, было бы невозможно окончание алгоритмов (Б) и (В).
Помимо рекурсии, итерации и разбора случаев существует еще один общий прием, используемый при записи алгоритмов. Этот прием именуется иерархическим построением алгоритмов и заключается в представлении исходного алгоритма несколькими алгоритмами - основным и вспомогательными. При этом:
1) из исходного алгоритма выделяются некоторые его части - также являющиеся алгоритмами. Они именуются вспомогательными алгоритмами по отношению к исходному алгоритму;
2) каждое из вхождений вспомогательных алгоритмов в исходный заменяется предписанием о необходимости выполнения соответствующего вспомогательного алгоритма. Получаем так называемый основной алгоритм по отношению к вспомогательным алгоритмам.
Тем самым исходный алгоритм трансформируется в основной алгоритм и ряд вспомогательных алгоритмов. Каждый из алгоритмов можно при необходимости использовать в качестве вспомогательного в рамках других алгоритмов.
Так, в примере алгоритм (А) использует как вспомогательные алгоритмы умножения, суммы, деления чисел, хотя их описание и не приводится. Предполагается, что они заданы или будут заданы в другом месте.