6.4. Этапы развития программирования
Традиционно программированием всегда занимались программисты-профессионалы. В самом развитии программирования можно выделить следующие исторически сложившиеся этапы.
1. Программирование в машинных кодах. Чтобы посмотреть, как выглядит текст программы, записанный в машинных кодах, щелкнем по кнопке Пуск (находясь в какой-либо из операционных систем семейства Windows) и выберем в Главном меню пункт Выполнить. В диалоговом окне Запуск программы (рис. 6.9) введём имя программы debug.ехе, нажмём кнопку ОК и в командной строке появившегося окна наберём команду просмотра содержимого ячеек памяти: d 9876:5432.
Рис. 6.9. Окно "Запуск программы"
После нажатия клавиши Enter нам будет предъявлено содержимое оперативной памяти по указанным адресам, записанное в машинных кодах (рис. 6.10).
Машинные коды записаны в шестнадцатеричной системе счисления. Так выглядят программы, когда они загружены в компьютер.
Рис. 6.10. Фрагмент программы в машинных кодах
Человеку очень трудно воспринимать и уж, тем более, исполнять такое представление программы. В настоящее время машинные коды создают и работают с ними не программисты, а специальные программы-компиляторы.
2. Программирование на Ассемблере (языке низкого уровня). Чтобы посмотреть, как выглядит программа на Ассемблере, проделаем те же действия, что и в предыдущем примере, только в окне программы debug.ехе введём другую команду: u 9876:5432.
Вы увидите результат, в котором команды процессора записаны не цифрами, а буквами. Например, команда Переместить будет записана как MOV (см. строку, выделенную рамкой на рис. 6.11):
Рис. 6.11. Фрагмент программы на Ассемблере
Такая форма записи более близка человеческому восприятию, чем машинные коды (особенно, если он знает английский!). Однако язык ассемблер "привязан" к устройству конкретного процессора, а не к алгоритму программируемой задачи. Сколько разновидностей устройств, конструкций процессоров, столько и ассемблеров. То есть это - машинно-ориентированный алгоязык. Такие языки не могли получить большого распространения в среде широкого круга пользователей вычислительной техники. Но, тем не менее, они продолжают использоваться профессионалами для написания специальных программ, обеспечивающих доступ к отдельным регистрам и областям памяти и работу с ними.
-
Алгоритмическое программирование. В 1950-х годах появились языки, в которых для написания программ использовались уже общеупотребительные слова и простые правила синтаксиса. Перевод таких программ на машинные коды производился специальной программой-компилятором, поэтому для программиста стало уже неважным, где, в каких ячейках хранятся результаты расчета и какие регистры процессора используются для выполнения той или иной операции. Программист теперь сосредоточился на записи разработанного им алгоритма в среде алгоритмического языка программирования. Таков, например, язык ФОРТРАН (Fortran — Formula Translator - переводчик формул), разработанный для инженерных расчетов, или КОБОЛ - для экономических расчетов. Во главу угла было поставлено понятие класса алгоритмов.
-
Процедурное программирование. С течением времени было замечено, что в программах встречаются одинаковые группы операторов, отличающиеся только значениями входящих в них параметров.
Повторяющиеся блоки операторов стали стандартизировать, то есть выделять из общей программы в отдельные подпрограммы, процедуры и функции. В результате возникли такие процедурные языки программирования, как Паскаль, С. Это — универсальные языки. Они не были ориентированы на решение конкретного типа задач, т.е., не являлись проблемно-ориентированными, как, например, Фортран.
-
Объектно-ориентированное программирование. Наконец в середине 1980-х годов был введен принцип многократного применения кода (текста) ранее написанных программ. Такие готовые программные блоки назвали объектами. Их стали использовать, как "полуфабрикаты" для создания вполне конкретных конструкций, обладающих заданными характеристиками. Так, при пошиве костюма используют шаблоны (выкройки) "костюма вообще", а потом уже подгоняют его по фигуре и требованиям заказчика.
Таким образом, при создании новой программы объекты просто перенастраиваются в соответствии с требованиями решаемой программистом задачи. Это могут быть встречающиеся в разных программах одинаковые по форме окна, командные кнопки, списки, похожие меню, одинаковые шрифты и т. д. Все они являются настраиваемыми объектами. Примерами объектно-ориентированных языков являются, например, языки С++ и Object Раsса1.
-
Визуальное программирование. С разработкой в середине 1990-х годов операционной системы Windows человек приобрёл возможность графического управления компьютером. На экране монитора размещаются уже не просто картинки, а графические элементы управления, реагирующие на определенные действия, в частности, на действия со стороны пользователя (на события). Щелчком мыши по графическому элементу можно запустить на выполнение целую программу, не пользуясь при этом клавиатурой.
До перехода к системам визуального программирования создавались весьма объёмные программы на языках высокого уровня Pascal, Fortran, PL/1 и других. Все они описывали и на их основе исполнялись самые разнообразные алгоритмы. Однако, в основном, это были алгоритмы обработки числовой и текстовой информации, не приспособленные к имитации или использованию интерфейса Windows.
Появление графических (визуальных) систем управления сделало и программирование также визуальным. Теперь можно с помощью мыши выбирать из библиотек нужные компоненты, размещать их в рабочем окне будущей программы (делая, таким образом, из компонентов объекты), и настраивать объекты с помощью свойств, затем уже добавляя процедуры для обработки событий (создавая таким образом из объектов графические элементы управления).
Так происходит, например, когда строится дом из стандартных блоков, но по индивидуальному проекту. Их назначение фиксировано, но количество и компоновка могут быть различными. Однако, блок-туалет нельзя использовать как блок-спальню. Зато внутри каждого такого блока можно заменить или добавить отдельные части с их собственными характеристиками (свойствамии).
На рис. 6.12 приведена упрощённая схема «превращения» компонента через объект в элемент управления. Можно сказать, что компонент сродни чертежу, по которому изготавливают множество совершенно одинаковых объектов, например, одинаковых квартир. Люди, поселившись в квартире, обустраивают ее в соответствии со своими потребностями и вкусом, превращая квартиру в уникальный элемент своей жизни.
Библиотека компонентов (выбор компонента) Объекты (выбранные компоненты размещены в форме) Элементы управления (настроены свойства, написаны коды процедур)
Рис. 6.12. От компонента библиотеки - к элементу управления
Первой средой визуального программирования стала широко теперь распространённая среда объектно-ориентированного визуального программирования Visual Basic for Application (Visual Basic для приложений).
Тестовые задания
Ниже приведено несколько тестовых заданий для закрепления изложенного материала. В каждом задании предлагается вопрос и несколько вариантов ответа на него, один (или несколько) из которых является правильным, а остальные — нет. Укажите правильный(е) ответ(ы).
№ вопр. | Вопросы | Предлагаемые ответы | ||
1 | Алгоритм – это…
| а) четкая последовательность слов, б) чёткая инструкция действий для обязательного получения результата, в) выполнение действий в случайном порядке, г) произвольные действия пользователя, не всегда приводящие к результату. | ||
2 | Свойствами алгоритма не являются… | а) полновесность и уникальность, б) массовость и дискретность, в) результативность и определённость, г) дискретность и понятность. | ||
3 | Алгоритм наиболее нагляден и компактен в форме… | а) шестнадцатиричных кодов, б) словесного описания, в) графических фигур (блок-схемы), г) псевдокодовой записи. | ||
4 | Дискретность алгоритма означает, что можно… | а) выполнять его по частям в любом порядке, б) разбивать его на любые произвольные части, в) решать задачи, связанные только с натуральным дискретным рядом чисел, г) дробить и его на отдельные самостоятельные части, решающие более мелкие конкретные задачи. | ||
5 | Массовость алгоритма состоит в том, что… | а) его можно тиражировать сколько угодно раз, б) он популярен и часто используется, в) он пригоден для решения не одно, а многих задач, имеющих общий смысл и порядок действий, г) он пригоден для решения любых задач. | ||
6 | Алгоритм может восприниматься человеком и компьютером в форме | а) словесного описания, б) псевдокода, в) программы, г) блок-схемы. | ||
7 | Описание алгоритма связано с устройством процессора, если он записан… | а) в машинных командах, б) на ассемблере, в) в операторах языка высокого уровня, г) в псевдокодах. | ||
8 | В блок-схеме каждому действию соответствует… | а) порядковый номер, б) фигура заданной формы, в) поясняющий текст, г) любое произвольное обозначение с формулой в нём. | ||
9 | Транслятор переводит … | а) блок-схемы в программы, б) машинные команды в операторы языка высокого уровня, в) программу с алгоязыка на другой алгоязык, г) операторы алгоязыка на язык машинных команд. | ||
10 | Цикл с постусловием может выполняться… | а) один раз, б) ни одного раза, в) бесконечно, г) заданное число раз. | ||
11 | Цикл с предусловием может выполняться… | а) один раз, б) ни одного раза, в) бесконечно, г) заданное число раз. | ||
12 | Цикл со счетчиком может выполняться… | а) один раз, б) ни одного раза, в) бесконечно, г) заданное число раз. | ||
13 | Наиболее приближенной к реальности является… | а) разветвленная структура алгоритма, б) линейная структура алгоритма, в) циклическая структура алгоритма, г) циклическая структура с разветвлениями. | ||
14 | Оператор If <условие> then <опер1> endif соответствует | а) циклическому алгоритму, б) разветвленному с одной ветвью, в) разветвленному с двумя ветвями, г) циклическому разветвленному алгоритму. | ||
15 | Оператор If <условие> then <опер1> else <опер2> endif соответствует | а) циклическому алгоритму, б) разветвленному алгоритму с одной ветвью, в) разветвленному алгоритму с двумя ветвями, г) циклическому разветвленному алгоритму. | ||
16 | Оператор Select Case ключ Case 1 <опер1> Case 2 <опер2> ….. Case N <оперN> End Select соответствует | а) алгоритму с несколькими ветвями, б) разветвленному алгоритму с одной ветвью, в) разветвленному алгоритму с двумя ветвями, г) циклическому разветвленному алгоритму. | ||
17 | Оператор Do While <условие> <тело цикла> Wend соответствует | а) циклу с предусловием, б) циклическому разветвленному алгоритму, в) циклу с постусловием, г) циклу с заданным числом повторов. | ||
18 | Оператор For I=<нач.знач.> to<конеч.знач.> step <шаг> <тело цикла> Next соответствует | а) циклу с предусловием, б) циклическому разветвленному алгоритму, в) циклу с постусловием, г) циклу с заданным числом повторов. | ||
19 | Оператор Do <тело цикла> While <условие> соответствует | а) циклу с предусловием, б) циклическому разветвленному алгоритму, в) циклу с постусловием, г) циклу с заданным числом повторов. | ||
20 | Современное программирование - это программирование… | а) на ассемблере, б) в машинных кодах, в) процедурное, г) объектно-ориентированное. | ||
21 | Какую структуру алгоритма отражает схема
Начало
х = 2
Некоторые действия
результат
Конец | а) разветвленную, б) линейную, в) циклическую с постусловием, г) циклическую с предусловием. | ||
22 | Чему соответствует схема
нет да Некотор. действия
|
а) циклический алгоритм с постусловием б) разветвленный алгоритмм, в) линейный алгоритм, г) циклический алгоритм с предусловием.
| ||
23 | Чему соответствует схема Некотор. действия да условие
нет
|
а) циклический алгоритм с постусловием, б) разветвленный алгоритм, в) циклический алгоритм с предусловием, г) линейный алгоритм.
| ||
24 | Чему соответствует схема i =<нач.знач.>
нет i <> кон. знач. да Некотор. действия
i = i + шаг
|
а) циклический алгоритм с постусловием, б) разветвленный алгоритм с несколькими альтернативными ветвями, в) циклический алгоритм с предусловием, г) цикл с заданным числом повторов.
| ||
25 | Чему соответствует схема ключ = 20 нет да
Опер-р 1 Опер-р 2 Опер-р 10 ключ<>10 …
Опер-р N
|
а) циклический алгоритм с постусловием, б) разветвленный алгоритм с несколькими альтернативными ветвями, в) циклический алгоритм с предусловием, г) цикл с заданным числом повторов.
|
- Теоретические разделы курса “информатика”
- Введение
- Раздел 1. Базовые понятия курса “информатика” Глава 1. Введение в экономическую информатику
- Информационные процессы в экономике. Основные понятия информатики и информатизации
- Информация и данные
- Экономическая информация и ее свойства
- Классификация экономической информации
- Структура экономической информации
- Оценка экономической информации
- Вопросы для самоконтроля
- Контрольные тесты
- Глава 2. Программные средства реализации информационных процессов
- 2.1. Назначение и классификация программного обеспечения
- 2.2.1. Базовое программное обеспечение
- 2.2.2. Классификация операционных систем
- 2.2.3. Сервисное программное обеспечение
- 2.3. Инструментарий технологии программирования
- 2.4. Состав и назначение прикладного программного обеспечения
- 2.4.2. Методо-ориентированные пакеты прикладных программ
- 2.4.3. Пакеты прикладных программ общего назначения
- Вопросы для самоконтроля
- Контрольные тесты
- Глава 3. Технические средства реализации информационных процессов
- 3.1. Техническая основа реализации информационных процессов
- Эволюция компьютерных информационных технологий
- Арифметико-логическое устройство
- Устройство управления и интерфейс
- Процессорная память
- 3.2. Поколения электронных вычислительных машин
- 3.3. Классификация технических средств обработки информации
- 3.4. Персональные компьютеры
- 3.5. Структурная схема персонального компьютера
- Системная шина
- Контроллеры Системная плата
- 3.6. Принципы функционирования персонального компьютера
- Установка адреса начальной команды
- 3.7. Основные архитектурные схемы вычислительных систем
- Память команд
- Память команд
- Память команд
- Память данных
- Память команд
- 3.8. Режимы работы компьютеров
- 3.9. Информация в технических устройствах
- Единицы измерения памяти
- Вопросы для самоконтроля
- Контрольные тесты
- Глав 4. Способы представления информации в компьютерах
- 4.1. Системы счисления
- 4.1.1. Позиционные системы счисления
- Системы счисления
- 4.1.2. Перевод чисел из одной системы счисления в другую
- 4.1.3. Двоичная, восьмеричная и шестнадцатеричная системы счисления
- Представление чисел в двоичной, восьмеричной и шестнадцатеричной системах счисления
- 4.1.4. Выполнение арифметических операций в двоичной, восьмеричной и шестнадцатеричной системах счисления
- Сложение в двоичной системе
- Сложение в восьмеричной системе
- Сложение в шестнадцатеричной системе
- 4.2. Представление числовой информации. Прямой, обратный и дополнительный коды числа
- Диапазон значений целых чисел без знака
- Диапазон значений целых чисел со знаком
- 4.3. Представление символьной информации
- 4.4. Представление графической информации
- Вопросы для самоконтроля
- Контрольные тесты
- Глава 5. Логические основы построения персональных компьютеров
- 5.1. Аппарат алгебры логики
- Базовые логические операции
- 5.2. Основные аксиомы и законы алгебры логики
- 5.3. Логические элементы персональных компьютеров
- 5.4. Логические устройства с памятью
- Вопросы для самоконтроля
- Контрольные тесты
- Раздел 2. Основы алгоритмизации и программирования
- Глава 6. Понятие алгоритма и его основные формы
- 6.1. Алгоритм и его свойства
- 6.2. Формы представления алгоритма
- 1. Начало
- 8. Конец
- 6.3. Базовые алгоритмические структуры
- 6.3.2. Ветвящаяся (разветвлённая) структура
- Опер-р 1
- Опер-р 2
- Опер-р 20
- I нач.Знач.
- 6.4. Этапы развития программирования
- Глава 7. Объектно-ориентированное программирование в среде vba (Visual Basic for Application).
- 7.1. Что такое vba?
- 7.2. Основные понятия и элементы языка vba: объекты, свойства, методы, события, классы объектов
- 1. Объекты
- 3. Классы объектов
- Суперкласс
- Глава 8. Макросы в приложениях ms Office
- 8.1. Понятие макроса
- 8.2. Процесс создания макроса
- 8.3. Запуск макроса на исполнение
- АкБарсБанк
- 8.4. Код (текст) программы макроса и пояснения к нему
- 8.5. Корректировка макросов
- 8.6. Сохранение макросов в виде модулей
- Глава 9. Создание и выполнение vba – программ
- 9.1. Понятие об общем цикле создания vba – программы
- 9.2. Общие принципы построения vba-программы
- 9.3. Написание новых макросов и процедур
- 9.4. Выполнение vba-программы
- 9.5. Обработка ошибок
- Глава 10. Основные элементы языка программирования vba
- 10.1 Типы данных в vba.
- 10.2. Переменные vba.
- 10.3. Объявление переменных
- 10.4. Область действия переменной
- 10.5. Присвоение значения переменной
- 10.6. Константы
- 10.7. Массивы
- 10.7.1. Одномерные массивы
- 10.7.2. Многомерные массивы
- 10.8. Статические и динамические массивы
- 10.9. Структура текста программы и комментарии
- Глава 11. Примеры реализации различных макросов и фрагментов программ
- 11.1. Варианты реализации макросов
- 11.1.1. Порядок создания макросов в Excel
- 11.1.2. Задания на создание макросов в Excel
- 11.2. Варианты реализации разветвляющихся алгоритмов
- 11.3. Варианты реализации циклических алгоритмов
- 11.4. Вариант реализации смешанного алгоритма
- Раздел 3. Основы информационной безопасности
- Глава 12. Введение в информационную безопасность
- 12.1. Понятие информационной безопасности
- 12.2. Угрозы безопасности информации
- 12.3. Объекты и элементы защиты информации в компьютерных системах обработки данных
- Глава 13. Методы и средства защиты информации
- 13.1. Механизмы, методы и средства защиты информации
- 13.2. Средства опознания и разграничения доступа к информации
- 13.3. Криптографические методы защиты информации
- 13.3.1. Основные понятия криптографии
- 13.3.2. Криптографические ключи и методы защитных преобразований
- 13.3.3. Криптографические системы
- 13.4. Электронная цифровая подпись
- Глава 14. Компьютерные вирусы и спам
- 14.1. Понятие вредоносных программ
- 14.2. Понятие компьютерного вируса
- 14.3. Классификация компьютерных вирусов
- 14.4. Программы борьбы с компьютерными вирусами
- 14.5. Меры и средства защиты от компьютерных вирусов
- 14.6. Защита от спама
- Глава 15. Защита информации в корпоративных системах
- 15.1. Цели и задачи корпоративной системы информационной безопасности
- 15.2. Политики информационной безопасности
- 15.2.1. Основные понятия политик безопасности
- 15.2.2. Основные причины создания политик безопасности
- 15.2.3. Разработка политик безопасности
- 15.2.4. Пример постановки задачи разработки политики информационной безопасности предприятия
- 15.2.5. Особенности разработки политик безопасности в России
- 15.3. Аудит безопасности корпоративных систем Интенет/Интранет
- 15.3.1. Понятие аудита безопасности
- 15.3.2. Аудит безопасности для корпоративных пользователей
- 15.3.3. Возможности аудита безопасности
- 15.3.4. Практические шаги аудита безопасности
- 15.4. Проектирование системы обеспечения информационной безопасности предприятия
- Список литературы
- Содержание