Федеральное агентство связи ФГОБУ ВПО «СибГУТИ» Кафедра вычислительных систем Дисциплина «Основы программирования» Cеместр 1 2013/2014 учебный год Преподаватель: Доцент Кафедры ВС – Поляков Артём Юрьевич Теоретические вопросы к экзамену 1. История вычислительной техники 1.1. Домеханический этап. Пальцевый счет. Простейшие приспособления для счета. Китайские палочки, палочки Непера, пример их применения. 1.2. Механический этап. Переполнение разряда. Счетная машина Леонардо да Винчи, паскалина, вычисляющие часы, калькулятор Лейбница, арифмометр Полени, перфокарты Жаккара, аналитическая машина Бэббиджа. Алгоритм работы оператора Паскалины при сложении и вычитании. Алгоритм работы оператора Вычисляющих часов при сложении, вычитании, умножении и делении*. 1.3. Предшественники ЭВМ первого поколения. Табулятор Холлерита, компьютер Z3. 1.4. Первое поколение электронно-вычислительных машин (ЭВМ). Электронные лампы, принцип их работы. Характеристики ЭВМ первого поколения, ЭВМ ENIAC и EDVAC. 1.5. Второе поколение ЭВМ. Проводимость материалов, полупроводники. Примесная проводимость полупроводников: p- и n- проводимость. Транзистор и принцип его работы, пример схемы включения транзистора. Операция ИЛИ-НЕ (стрелка Пирса), принцип работы триггера. Характеристики ЭВМ второго поколения. 1.6. Третье, четвертое и пятое поколение ЭВМ. 2. Системы счисления (СС). Основные понятия. Непозиционные, позиционные и смешанные системы счисления и примеры их использования. Алгоритмы перевода между позиционными системами счисления. Двоичная система счисления и причины ее использования в вычислительной технике. Действия над двоичными числами. Связь двоичной, восьмеричной и шестнадцатеричной СС. 3. Внутреннее представление чисел. Особенности представления чисел в ЭВМ. 3.1. Представление целых беззнаковых чисел и действия над ними. Представление знаковых чисел: прямой, обратный и дополнительный код. Сложение и вычитание в обратном и дополнительном коде. Сравнение способов представления знаковых чисел. 3.2. Представление вещественных чисел. Вещественные числа с фиксированной и плавающей точкой. p-разрядные нормализованные числа. Стандарт IEEE 754-2008 (Single precision), примеры представления конкретных чисел. Ошибки и способы округления, погрешности измерения. Машинный ноль и эпсилон, программное вычисление эпсилона. Пример влияния точности вычислений на результат. Сложение и нормализация чисел с плавающей точкой. 4. Анализ алгоритмов. Эффективность алгоритмов. Особенности анализа алгоритмов. Классы входных данных. Математический аппарат анализа алгоритмов. Инвариант цикла, доказательство корректности метода сортировки вставками, его вычислительная (временная) сложность в лучшем и худшем случаях. Формулы суммирования. Асимптотические обозначения. Асимптотический анализ и пределы. 5. Задача поиска в структурах данных. Алгоритмы последовательного поиска, поиска с барьером (в произвольной и упорядоченной последовательностях) и бинарного поиска. Анализ вычислительной сложности этих алгоритмов в худшем и среднем случаях. 6. Случайные числа. Области применения случайных чисел. Методы генерации случайных чисел. Генератор псевдо-случайных чисел (ГСПЧ). Линейный конгруэнтный генератор. Период ГСПЧ. ГСПЧ, предуспотренный в стандарте языка С (С11). ГСПЧ, реализованные в библиотеке GLibC, выбор одного из доступных ГСПЧ, алгоритм вычисления периода ГСПЧ, алгоритм ГСПЧ типа 1 – 4. 7. Тестирование ГСПЧ. Статистические тесты ГСПЧ. Тесты NIST. Частотный побитовый тест, частотный блочный тест, тест на последовательность одинаковых битов.