- •Государственное образовательное учреждение высшего профессионального образования «Тульский государственный университет»
- •Конспект лекций
- •Информатика
- •Содержание
- •Системы счисления. Позиционные и непозиционные системы
- •2.1. Кодирование текста
- •2.2. Растровая и векторная графика
- •2.3. Представление цвета
- •2.4. Представление звука. Ацп. Цап
- •3.1. Принцип фон Неймана
- •3.2. Общая структурная схема процессора
- •3.3. Арифметико-логическое устройство (алу)
- •3.4. Адрес ячейки памяти
- •3.5. Регистры процессора
- •3.6. Как процессор складывает два числа
- •4.1. Эволюция средств вычислений
- •4.2. Эволюция эвм
- •4.3. Поколения эвм
- •5.1. Эволюция персональных эвм
- •5.2. Классификация эвм
- •6.1. Программное обеспечение
- •6.2. Функции ос
- •6.3. Трансляция программ
- •6.5. Декомпозиция
- •6.6. Объектно-ориентированное программирование
- •7.1. Понятие алгоритма. Свойства алгоритма
- •7.2. Способы записи алгоритма: псевдокод, блок-схема
- •7.3. Преобразование программы в машинные коды. Интерпретаторы и компиляторы
- •7.4. Оптимизация кода для повышения эффективности
- •7.5. Структура ide. Отладка программ
- •8.1. Описание структуры проекта
- •8.2. Описание структуры модуля
- •8.3. Описание элементов программ
- •8.4. Алфавит языка программирования
- •8.5. Идентификаторы, константы, выражения
- •9.1. Целая и вещественная арифметика
- •9.2. Приоритет операций
- •9.3. Встроенные функции. Построение сложных выражений
- •10.1. Встроенные типы данных. Целые типы. Представление знака числа. Арифметическое переполнение
- •10.1.1. Встроенные типы данных
- •10.1.2. Целые типы
- •10.1.3. Представление знака числа
- •10.1.4. Арифметическое переполнение
- •10.2. Вещественные типы. Сопроцессор
- •10.3. Текстовые типы
- •10.4. Логический тип
- •10.5. Оператор присваивания. Совместимость типов по присваиванию
- •11.1. Устройства вывода
- •11.2. Объекты, обеспечивающие вывод данных на экран
- •11.2.1. Перечень компонентов ввода и отображения текстовой информации
- •11.2.2. Отображение текста в надписях компонентов Label, StaticText и Panel
- •11.2.3. Окна редактирования Edit и MaskEdit
- •11.2.4. Многострочные окна редактирования Memo и RichEdit
- •11.2.5. Группа радиокнопок – компонент RadioGroup
- •Ввод и отображение целых чисел — компоненты UpDown и SpinEdit
- •11.2.6. Компоненты выбора из списков — ListBox, CheckBox, CheckListBox и ComboBox
- •11.2.7. Таблица строк — компонент StringGrid
- •11.2.8. Функция InputBox
- •11.2.9. Процедура ShowMessage
- •11.3. Вывод в текстовый файл
- •11.3.1. Объявление файла
- •Назначение файла
- •11.3.2. Вывод в файл
- •11.3.3. Открытие файла для вывода
- •11.3.4. Ошибки открытия файла
- •11.3.5. Закрытие файла
- •11.4. Устройства ввода. Ввод с клавиатуры. Реакция на действия пользователя
- •11.4.1. Устройства ввода
- •11.5. Ввод из файла
- •11.5.1. Открытие файла
- •11.5.2. Чтение данных из файла
- •11.5.3. Чтение чисел
- •11.5.4. Чтение строк
- •12.1. Ветвление
- •12.2. Логические (булевские) операции
- •12.3. Составной оператор
- •12.4. Оператор ветвления if
- •12.5. Оператор ветвления case
- •12.6. Исключительные ситуации
- •13.1. Функции цикла в программе. Циклы с пред- и постусловием
- •13.2. Оператор While. Вечные циклы
- •13.3. Вечные циклы
- •13.4. Оператор repeat. Процедуры inc и dec
- •13.5. Цикл с переменной for
- •13.6. Команды break и continue
- •13.7. Вложенные циклы
- •13.8. Примеры задач с циклами
- •14.1. Объявление массива
- •14.2. Операции с массивами
- •14.2.1. Вывод массива
- •14.2.2. Ввод массива
- •14.2.3. Поиск минимального (максимального) элемента массива
- •14.2.4. Поиск в массиве заданного элемента
- •14.3. Ошибки при использовании массивов
- •15.1. Создание пользовательских функций. Передача аргументов
- •15.2. Глобальные и локальные переменные
- •15.3. Примеры написания пользовательских функций
- •15.4. Процедуры
- •15.5. Процедуры программиста
- •15.6. Передача параметров по ссылке и значению
- •15.7. Перегрузка процедур и функций
- •15.8. Упреждающее объявление процедур и функций (forward)
- •16.1. Основные понятия компьютерной графики
- •16.2. Получение сведений о режимах экрана. Эффекты прозрачности
- •16.3. Графические построения
- •16.4. Построение графиков функций
- •16.5. Использование компонента tChart
- •16.6. Обновление изображения
- •17.1. Анимация на основе операции xor
- •17.2. Буферизация фона
- •17.3. Работа с таймером
- •18.1. Виды диалога
- •18.2. Стандарты пользовательского интерфейса
- •18.2.3. Размеры окон
- •18.2.2. Размеры элементов управления
- •Надписи на элементах управления:
- •18.2.4. Схема расположения
- •19.1. Технология mmx
- •19.2. Мультимедийные аппаратные интерфейсы
- •20.1. Тест Тьюринга
- •20.2. Представление знаний и вывод на знаниях
- •20.3. Модели представления знаний
- •20.4. Вывод на знаниях
- •21.1. Основы телекоммуникаций и распределенной обработки информации
- •21.2. Каналы связи
- •21.2.1. Аналоговые и цифровые каналы
- •21.2.2. Коммутируемые и выделенные каналы
- •21.2.3. Двух- и четырехпроводные каналы
- •21.3. Семиуровневая модель osi
- •21.3.1. Физический уровень
- •21.3.2. Канальный уровень
- •21.3.3. Верхние уровни osi
- •21.4. Управление потоком
- •21.5. Технология "клиент-сервер"
- •22.1. Методы защиты информации
- •22.2. Основы криптографии
- •22.3. Симметричные криптосистемы
- •22.3.1.Моно- и многоалфавитные подстановки
- •22.3.2. Перестановки
- •22.3.3. Гамирование и блочные шифры
- •22.4. Алгоритмы цифровой подписи
- •22.5. Сжатие данных
- •22.5.1. Методы сжатия изображений
- •22.6. Понятие об экономических и правовых аспектах информационных технологий
3.6. Как процессор складывает два числа
Предположим, что необходимо сложить два числа 5 и 4. Что же происходит в компьютере, когда поступает подобная команда? Давайте рассмотрим подобную ситуацию. Для начала необходимо перевести 5 и 4 в двоичную систему исчисления (так как компьютер ничего кроме нее не понимает). 5 (в 10-ой)=0101(в 2-ой) и 4 (в 10-ой)=0100(в 2-ой). Эта информация храниться в оперативной памяти до тех пор, пока не поступит команда их сложить. После того, как настало время произвести операцию, система заранее посылает эти два числа и код инструкции которую необходимо произвести (в нашем случае сложение) из оперативной памяти в кэш процессора. Там по истечении некоторого времени они ждут своей очереди поступления на конвейер. Когда очередь наступила, число 0101(5) заносится в один регистр, число 0100(4) во второй и поступает инструкция сложить. Два числа складываются, получается результат 1001(9), который заносится в третий регистр, и затем значение регистра отсылается обратно в оперативную память в определенную ячейку.
Лекция 4. История создания вычислительной техники
Фома Аквинский. Джон Непер (1550-1617). Логарифмы. Шиккард (1592-1636) – первая счетная машина (1623). Паскаль (1623-1663). Машина (1642). Готфрид Лейбниц (1640-1716) – арифмометр (1694). Колесо Однера. Чарльз Бэббидж (1791-1871). Принцип программного управления при помощи перфокарт. Ада Лавлейс. Герман Холлерит, IBM. Электронные лампы. Цузе (1944) – электронный компьютер Z1. ENIAC – 1945. IBM360. Академик Лебедев. БЭСМ-6. Транзисторы. Фирма Intel. Микропроцессор (1971). Машины серии ЕС. Мир-1 – первый ПК. Джобс, Возняк – фирма Apple (1977).
4.1. Эволюция средств вычислений
Появление ЭВМ было подготовлено историческим развитием средств вычислений. Понятие числа возникло задолго до появления письменности. Люди научились считать. В первобытное время первым счетным инструментом у человека была его собственная рука. Пальцевый счет использовался человеком и на более высоких ступенях развития цивилизации – в Древней Греции и Древнем Риме.
Затем человек стал использовать для счета самые примитивные устройства. Сначала это были деревянные палочки с зарубками – бирки. Первое упоминание о них было найдено на барельефе фараона Сети I и относится примерно к 1350 году до нашей эры. Китайцы, персы, индийцы пользовались для представления чисел и счета ремнями и веревками с узлами. Запись чисел с помощью цифр появилась у древних египтян и вавилонян.
С ростом и расширением торговли понадобился более совершенный инструмент для записи чисел и счета. Это был абак, представляющий собой доску с вертикальными желобками, в которых передвигались камешки. По свидетельству древнегреческого историка Геродота египтяне им пользовались уже в V веке до нашей эры. Из Египта и Греции абак пришел в Древний Рим, Китай, Японию. Китайская и японская разновидности абака по конструкции напоминают современные русские торговые счеты. Русские счеты – это отечественная разновидность абака, они появились на рубеже XVI-XVII веков. Главное их отличие от аналогичных устройств – это десятичный принцип счисления. Форма счетов, установленная более 250 лет назад, к настоящему времени почти не изменилась.
Изобретение позиционной десятичной системы счисления, которой мы сейчас пользуемся, стало важным событием в истории вычислительной техники. Эта система счисления появилась, вероятно, в Индии. После изобретения десятичной системы были установлены правила выполнения арифметических действий: сложения, вычитания, умножения "столбиком" и деления "уголком". Появились десятичные дроби. Умение считать стало широко распространяться. В начале Х века в Европе началось распространение арабских цифр, и в начале XVII века арабские цифры, более удобные для ручных и машинных вычислений, окончательно вытеснили римские.
Особую роль в истории вычислительной техники сыграло изобретение логарифмов шотландским математиком Джоном Непером (1550–1617) С помощью логарифмов умножение и деление сводятся к сложению и вычитанию, в связи с чем арифметические операции сильно упрощаются. Поэтому вслед за изобретением логарифмов стали делаться попытки механизировать арифметические вычисления.
В 1617 году Непер предложил устройство умножения многозначных чисел на однозначные, названное палочками Непера. Позднее на основе логарифмической шкалы английского математика Эдмунда Гюнтера была изобретена логарифмическая линейка. Ее изобрели независимо друг от друга английские математики Уильям Отред и Ричард Деламейн. Первые образцы счетных линеек ими были изготовлены в период между 1620 и 1630 годами. В дальнейшем конструкция логарифмической линейки многократно совершенствовалась. Логарифмическую линейку, наиболее похожую на современную, сконструировал в 1850 году французский офицер Амедей Маннхейм.
В начале XVII века на свет появились первые механические суммирующие устройства. В 1623 году профессор математики Тюбенгенского университета Вильгельм Шиккард (1592–1636) сообщил об изобретении им машины, способной складывать числа. Однако изобретение Шиккарда не получило никакого практического применения. Французский математик, физик и философ Блез Паскаль (1623–1662) работал над своей первой арифметической машиной в течение 12 лет, сделал около 50 действующих моделей, первую из них – в 1642 году. Суммирующие устройства машин Шиккарда и Паскаля являлись соединением зубчатых передач.
Арифмометр стал развитием суммирующих устройств. Первым арифмометром стала "арифметическая машина" немецкого математика Готфрида Лейбница (1646–1716), первый вариант которой появился в 1670 году. Главной ее частью был горизонтально расположенный ступенчатый валик. Эта идея Лейбница оказалась весьма плодотворной. Вплоть до конца XIX века конструкция валика совершенствовалась и развивалась различными изобретателями. Арифмометры приводились в действие человеческой рукой и могли выполнять четыре арифметических действия.
На принципе ступенчатого валика был построен в 1820 году и арифмометр Чарльза Томаса, ставший первым в мире серийно изготавливаемым счетным устройством (до 100 штук в год).
Большой вклад в развитие счетной техники внеси и наши соотечественники. В 1878 году академик П. Л. Чебышев (1821–1894) сконструировал арифмометр, который в то время был одной из самых оригинальных вычислительных машин. В 1874 году петербургским механиком Вильгордом Однером была создана новая конструкция ручного арифмометра, которая оказалась настолько совершенной, что сохранилась до наших дней. Главным элементом арифмометра Однера было зубчатое колесо с переменным числом зубьев. В самом конце XIX века Однер организовал производство арифмометров на своем механическом заводе в Санкт-Петербурге, и в первый же год существования завод выпустил примерно 500 машин. Это событие положило начало в России новой отрасли промышленности – производству вычислительных машин.
В конце XIX века произошло коренное изменение в производстве средств вычислений, когда рост промышленности и транспорта, а также расширение коммерческой деятельности банков обусловили создание быстродействующих и надежных счетных машин. Особенно много конструкций счетных машин было создано в США. Удачная конструкция многоразрядной клавишной суммирующей машины была предложена в 1885 году американским механиком Дорром Фельтом, названная им комптометром. Это было первая счетная машина, нашедшая практическое применение в США. В том же 1885 году механик из Сент-Луиса Уильям Барроуз (1857–1898) сделал "бухгалтерскую машину", которая печатала вводимые числа, суммировала их, а затем печатала результат. Машины Барроуза выпускались на протяжении 60 лет начиная с 1887 года. В последних моделях машин ручной привод был заменен электромоторным.
Первая действующая счетно-аналитическая машина, или табулятор, была создана в США Германом Холлеритом (1860–1929) и впервые применена для автоматизации работ по переработке данных переписи населения в США в 1880 году. В качестве носителей информации в табуляторе Холлерита использовались перфокарты. В 1896 году Холлерит стал основателем фирмы по выпуску перфокарт и счетно-перфорационных машин, которая впоследствии стала всемирно известной компьютерной фирмой IBM.
За три столетия в различных странах было создано огромное количество всевозможных счетных машин. Как не блестящ был век механических арифмометров, но и он исчерпал свои возможности. Людям нужны были более производительные средства вычислений. Совершенствование вычислительной техники в XX веке продолжилось на электромеханической основе. Рукоятку арифмометра заменил электродвигатель, появились машины, записывающие результат на бумажной ленте.
Особую роль в развитии вычислительной техники сыграли работы профессора математики Кембриджского университета Чарльза Беббиджа (1791–1871). Главным направлением его научной деятельности стала разработка вычислительных машин, над созданием которых ученый работал около 50 лет. В 1833 году Беббидж предложил проект автоматического счетного устройства, названного "аналитической машиной" и ставшего прообразом современных компьютеров. Машина содержала основные устройства, присущие современным компьютерам: "склад" для хранения чисел, "фабрику" для производства арифметических операций, "контору" – устройство, управляющее последовательностью счетных операций, а также блок ввода исходных данных и печати результатов.
Вычислительная машина Беббиджа, как и предшествующие арифметические машины, задумывалась как чисто механический аппарат. Время на производство арифметических операций оценивалось автором так: сложение и вычитание – 1 с; умножение и деление – 1 мин. Вводить и выводить числовую информацию, управлять вычислительным процессом предлагалось с помощью перфокарт – картонных карточек с пробитыми на них отверстиями. Эту идею Беббидж заимствовал у француза Жозефа Жаккара, который в 1804 году изобрел способ управления ткацким станком с помощью перфокарт. Первым программистом в мире считается Ада Лавлейс, дочь английского поэта Джорджа Байрона, которая в 1843 году написала первую программу для машины Беббиджа. В ее честь получил название язык программирования Ада.
Беббидж составил подробную схему машины, выполнил более 200 чертежей отдельных узлов, воплотил в металле некоторые ее части. Но полностью создать машину он не смог, так как его идеи намного опередили время. К ним обратились только в 40-х годах XX века.