- •Лекция 1. Понятие информации.
- •1.2. Что такое информация?
- •1.3. В каком виде существует информация?
- •1.4. Как передаётся информация?
- •1.5. Как измеряется количество информации?
- •Подходы к определению количества информации. Формулы Хартли и Шеннона.
- •1.6. Что можно делать с информацией?
- •1.7. Какими свойствами обладает информация?
- •Контрольные вопросы:
- •2.1. Компьютеры первого поколения
- •2.2. Компьютеры второго поколения
- •2.3. Компьютеры третьего поколения
- •Быстродействие машин внутри семейства изменяется от нескольких десятков тысяч до миллионов операций в секунду. Ёмкость оперативной 512 Кбайт (ес эвм).
- •2.4. Компьютеры четвёртого поколения.
- •Вопросы для самоконтроля
- •Лекция 3. Общие принципы организации и работы компьютеров
- •3.2. Как устроен компьютер?
- •3.3. Что такое команда?
- •3.4. Как выполняется команда?
- •3.5. Архитектура и структура компьютера.
- •Контрольные вопросы
- •4.2.Измерение емкости памяти
- •4.3. Какие устройства образуют внутреннюю память
- •3. Специальная память
- •4.4. Какие устройства образуют внешнюю память
- •1. Накопители на гибких магнитных дисках
- •2. Накопители на жестких магнитных дисках
- •3. Накопители на компакт-дисках
- •4. Записывающие оптические и магнитооптические накопители
- •Контрольные вопросы
- •5.2.Как перевести целое число из десятичной системы в любую другую позиционную систему счисления?
- •5.3.Как порождаются целые числа в позиционных системах счисления?
- •5.4.Какие системы счисления используют специалисты для общения с компьютером?
- •Почему люди пользуются десятичной системой, а компьютеры — двоичной?
- •5.5.Как представляются в компьютере целые числа?
- •Целые числа без знака
- •Диапазоны значений целых чисел без знака
- •Диапазоны значений целых чисел со знаком
- •5.6. Как представляются в компьютере вещественные числа?
- •Контрольные вопросы
- •6.2. Что такое логическая формула?
- •6.3. Какая связь между алгеброй логики и двоичным кодированием?
- •6.4. В каком виде записываются в памяти компьютера и в регистрах процессора данные и команды?
- •6.5. Что такое логический элемент компьютера?
- •6.6. Что такое триггер?
- •6.7. Как составить таблицу истинности?
- •6.8. Как решать логические задачи?
- •Решение логических задач табличным способом
- •Решение логических задач с помощью рассуждений
- •Контрольные вопросы
- •Лекция 7. Программное обеспечение компьютеров
- •7.2. Как классифицируется программное обеспечение?
- •7.3. Какие программы называют прикладными?
- •7.4. Какова роль и назначение системных программ?
- •7.5. Что такое операционная система?
- •7.6. Что такое файловая система ос?
- •7.7. Что такое программы-оболочки?
- •7.8. Операционная система Windows.
- •7.9. Что такое транслятор, компилятор, интерпретатор?
- •Контрольные вопросы
- •Лекция 8. Алгоритмы. Алгоритмизация. Алгоритмические языки
- •8.1 Что такое алгоритм?
- •8.2. Основные свойства алгоритма?
- •8.3. В какой форме записываются алгоритмы?
- •8.4. Что такое базовые алгоритмические структуры?
- •8.5. Какие циклы называют итерационными?
- •8.6. Чем отличается программный способ записи алгоритмов от других?
- •Контрольные вопросы
- •9.2. Какие у машинных языков достоинства и недостатки?
- •9.3. В чем преимущества алгоритмических языков перед машинными?
- •9.4. Какие компоненты образуют алгоритмический язык?
- •9.5. Какие понятия используют алгоритмические языки?
- •Контрольные вопросы:
8.4. Что такое базовые алгоритмические структуры?
Алгоритмы можно представлять как некоторые структуры, состоящие из отдельных базовых (т.е. основных) элементов. Естественно, что при таком подходе к алгоритмам изучение основных принципов их конструирования должно начинаться с изучения этих базовых элементов. Для их описания будем использовать язык схем алгоритмов и школьный алгоритмический язык.
Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур: следование, ветвление, цикл.
Характерной особенностью базовых структур является наличие в них одного входа и одного выхода.
1. Базовая структура "следование". Образуется последовательностью действий, следующих одно за другим:
Алгоритмический язык |
Блок-схема |
действие 1 действие 2 . . . . . . . . . действие n |
|
2. Базовая структура "ветвление". Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран. Структура ветвление существует в четырех основных вариантах:
если—то;
если—то—иначе;
выбор;
выбор—иначе.
Алгоритмический язык |
Язык блок-схем |
1. если—то | |
если условие то действия все |
|
2. если—то—иначе | |
если условие то действия 1 иначе действия 2 все |
|
3. выбор | |
выбор при условие 1: действия 1 при условие 2: действия 2 . . . . . . . . . . . . при условие N: действия N все |
|
4. выбор—иначе | |
выбор при условие 1: действия 1 при условие 2: действия 2 . . . . . . . . . . . . при условие N: действия N иначе действия N+1 все |
|
3. Базовая структура "цикл". Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла. Основные разновидности циклов представлены в таблице:
Алгоритмический язык |
Язык блок-схем |
Цикл типа пока (с предусловием). Предписывает выполнять тело цикла до тех пор, пока выполняется условие, записанное после слова пока. | |
нц пока условие тело цикла (последовательность действий) кц |
|
Цикл типа для. Предписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне. | |
нц для i от i1 до i2 тело цикла (последовательность действий) кц |
|
8.5. Какие циклы называют итерационными?
Особенностью итерационного цикла является то, что число повторений операторов тела цикла заранее неизвестно. Для его организации используется цикл типа пока . Выход из итерационного цикла осуществляется в случае выполнения заданного условия.
На каждом шаге вычислений происходит последовательное приближение к искомому результату и проверка условия достижения последнего.
Пример: Составить алгоритм вычисления бесконечной суммы
с заданной точностью (для данной знакочередующейся бесконечной суммы требуемая точность будет достигнута, когда очередное слагаемое станет по абсолютной величине меньше).
Вычисление сумм — типичная циклическая задача. Особенностью же нашей конкретной задачи является то, что число слагаемых (а, следовательно, и число повторений тела цикла) заранее неизвестно. Поэтому выполнение цикла должно завершиться в момент достижения требуемой точности.
При составлении алгоритма нужно учесть, что знаки слагаемых чередуются и степень числа х в числителях слагаемых возрастает.
Решая эту задачу "в лоб" путем вычисления на каждом i-ом шаге частичной суммы
S:=S + ((-1)**(i-1)) * (x**i) / i ,
мы получим очень неэффективный алгоритм, требующий выполнения большого числа операций. Гораздо лучше организовать вычисления следующим образом: если обозначить числитель какого-либо слагаемого буквой р , то у следующего слагаемого числитель будет равен —р*х (знак минус обеспечивает чередование знаков слагаемых), а само слагаемое m будет равно p/i , где i — номер слагаемого.
Алгоритм, в состав которого входит итерационный цикл, называется итеpационным алгоpитмом. Итерационные алгоритмы используются при реализации итерационных численных методов.
В итерационных алгоритмах необходимо обеспечить обязательное достижение условия выхода из цикла (сходимость итерационного процесса). В противном случае произойдет "зацикливание" алгоритма, т.е. не будет выполняться основное свойство алгоритма — результативность.