
- •Лекция 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.2. Основные свойства алгоритма?
Исполнителем алгоритма может быть человек или автоматическое устройство (компьютер), способное воспринять предписание и выполнить указанные в нем действия.
Не всякое предписание является алгоритмом. Например, персонажу известной сказки приказывают: «Поди туда не знаю куда, принеси то, не знаю что». Это задание непонятно, неточно и нерезультативно.
Предписание понятно, если каждое его действие может быть выполнено исполнителем.
Предписание точно, если на каждом шаге его выполнения известно, какое действие надо выполнить.
Предписание результативно, если его завершение всегда означает, что цель достигнута или задача решена, или указано, что цель недостижима или задача не имеет решений.
Поэтому основные свойства алгоритмов следующие:
1. Понятность для исполнителя — исполнитель алгоритма должен понимать, как его выполнять. Иными словами, имея алгоритм и произвольный вариант исходных данных, исполнитель должен знать, как надо действовать для выполнения этого алгоритма.
2. Дискpетность (прерывность, раздельность) — алгоpитм должен пpедставлять пpоцесс pешения задачи как последовательное выполнение пpостых (или pанее опpеделенных) шагов (этапов).
3. Опpеделенность — каждое пpавило алгоpитма должно быть четким, однозначным и не оставлять места для пpоизвола. Благодаpя этому свойству выполнение алгоpитма носит механический хаpактеp и не тpебует никаких дополнительных указаний или сведений о pешаемой задаче.
4. Pезультативность (или конечность) состоит в том, что за конечное число шагов алгоpитм либо должен пpиводить к pешению задачи, либо после конечного числа шагов останавливаться из-за невозможности получить решение с выдачей соответствующего сообщения, либо неограниченно продолжаться в течение времени, отведенного для исполнения алгоритма, с выдачей промежуточных результатов.
5. Массовость означает, что алгоpитм pешения задачи pазpабатывается в общем виде, т.е. он должен быть пpименим для некотоpого класса задач, pазличающихся лишь исходными данными. Пpи этом исходные данные могут выбиpаться из некотоpой области, котоpая называется областью пpименимости алгоpитма.
8.3. В какой форме записываются алгоритмы?
На практике наиболее распространены следующие формы представления алгоритмов:
словесная (запись на естественном языке);
графическая (изображения из графических символов);
псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);
программная (тексты на языках программирования).
Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке.
Например. Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел (алгоритм Эвклида).
Алгоритм может быть следующим:
задать два числа;
если числа равны, то взять любое из них в качестве ответа и остановиться, в противном случае продолжить выполнение алгоритма;
определить большее из чисел;
заменить большее из чисел разностью большего и меньшего из чисел;
повторить алгоритм с шага 2.
Описанный алгоритм применим к любым натуральным числам и должен приводить к решению поставленной задачи. Убедитесь в этом самостоятельно, определив с помощью этого алгоритма наибольший общий делитель чисел 125 и 75.
Словесный способ не имеет широкого распространения, так как такие описания:
строго не формализуемы;
страдают многословностью записей;
допускают неоднозначность толкования отдельных предписаний.
Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным.
При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий.
Такое графическое представление называется схемой алгоритма или блок-схемой. В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блочного символа. Блочные символы соединяются линиями переходов, определяющими очередность выполнения действий. В таблице приведены наиболее часто употребляемые символы.
Название символа |
Обозначение и пример заполнения |
Пояснение |
Процесс |
|
Вычислительное действие или последовательность действий |
Решение |
|
Проверка условий |
Модификация |
|
Начало цикла |
Предопределенный процесс |
|
Вычисления по подпрограмме, стандартной подпрограмме |
Ввод-вывод |
|
Ввод-вывод в общем виде |
Пуск-останов |
|
Начало, конец алгоритма, вход и выход в подпрограмму |
Документ |
|
Вывод результатов на печать |
Блок "процесс" применяется для обозначения действия или последовательности действий, изменяющих значение, форму представления или размещения данных. Для улучшения наглядности схемы несколько отдельных блоков обработки можно объединять в один блок. Представление отдельных операций достаточно свободно.
Блок "решение" используется для обозначения переходов управления по условию. В каждом блоке "решение" должны быть указаны вопрос, условие или сравнение, которые он определяет.
Блок "модификация" используется для организации циклических конструкций. (Слово модификация означает видоизменение, преобразование). Внутри блока записывается параметр цикла, для которого указываются его начальное значение, граничное условие и шаг изменения значения параметра для каждого повторения.
Блок "предопределенный процесс" используется для указания обращений к вспомогательным алгоритмам, существующим автономно в виде некоторых самостоятельных модулей, и для обращений к библиотечным подпрограммам.
Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов.
Псевдокод занимает промежуточное место между естественным и формальным языками. С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой стороны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи.
В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя.
Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. В частности, в псевдокоде, так же, как и в формальных языках, есть служебные слова, смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются.
Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций.