Этапы развития программирования


Традиционно программированием всегда занимались программисты-профессионалы. В самом развитии программирования можно выделить следующие исторически сложившиеся этапы.

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. Фрагмент программы на Ассемблере

 

Такая форма записи более близка человеческому восприятию, чем машинные коды (особенно, если он знает английский!). Однако язык ассемблер "привязан" к устройству конкретного процессора, а не к алгоритму программируемой задачи. Сколько разновидностей устройств, конструкций процессоров, столько и ассемблеров. То есть это - машинно-ориентированный алгоязык. Такие языки не могли получить большого распространения в среде широкого круга пользователей вычислительной техники. Но, тем не менее, они продолжают использоваться профессионалами для написания специальных программ, обеспечивающих доступ к отдельным регистрам и областям памяти и работу с ними.

3. Алгоритмическое программирование. В 1950-х годах появились языки, в которых для написания программ использовались уже общеупотребительные слова и простые правила синтаксиса. Перевод таких программ на машинные коды производился специальной программой-компилятором, поэтому для программиста стало уже неважным, где, в каких ячейках хранятся результаты расчета и какие регистры процессора используются для выполнения той или иной операции. Программист теперь сосредоточился на записи разработанного им алгоритма в среде алгоритмического языкапрограммирования. Таков, например, язык ФОРТРАН (Fortran — Formula Translator - переводчик формул), разработанный для инженерных расчетов, или КОБОЛ - для экономических расчетов. Во главу угла было поставлено понятие класса алгоритмов.

4. Процедурное программирование. С течением времени было замечено, что в программах встречаются одинаковые группы операторов, отличающиеся только значениями входящих в них параметров.

Повторяющиеся блоки операторов стали стандартизировать, то есть выделять из общей программы в отдельные подпрограммы, процедуры и функции. В результате возникли такие процедурные языки программирования, как Паскаль, С. Это — универсальные языки. Они не были ориентированы на решение конкретного типа задач, т.е., не являлись проблемно-ориентированными, как, например, Фортран.

5. Объектно-ориентированное программирование. Наконец в середине 1980-х годов был введен принцип многократного применения кода (текста) ранее написанных программ. Такие готовые программные блоки назвали объектами. Их стали использовать, как "полуфабрикаты" для создания вполне конкретных конструкций, обладающих заданными характеристиками. Так, при пошиве костюма используют шаблоны (выкройки) "костюма вообще", а потом уже подгоняют его по фигуре и требованиям заказчика.

Таким образом, при создании новой программы объекты просто перенастраиваются в соответствии с требованиями решаемой программистом задачи. Это могут быть встречающиеся в разных программах одинаковые по форме окна,командныекнопки,списки,похожиеменю,одинаковые шрифты и т. д. Все они являются настраиваемыми объектами. Примерами объектно-ориентированных языков являются, например, языки С++ и Object Раsса1.

6. Визуальное программирование. С разработкой в середине 1990-х годов операционной системы Windows человек приобрёл возможность графическогоуправления компьютером. На экране монитора размещаются уже не просто картинки, а графические элементы управления, реагирующие на определенные действия, в частности, на действия со стороны пользователя (на события). Щелчком мыши по графическому элементу можно запустить на выполнение целую программу, не пользуясь при этом клавиатурой.

До перехода к системам визуального программирования создавались весьма объёмные программы на языках высокого уровня Pascal, Fortran, PL/1 и других. Все они описывали и на их основе исполнялись самые разнообразные алгоритмы. Однако, в основном, это были алгоритмы обработки числовой и текстовой информации, не приспособленные к имитации или использованию интерфейса Windows.

Появление графических (визуальных) систем управления сделало и программирование также визуальным. Теперь можно с помощью мыши выбиратьиз библиотек нужные компоненты, размещать их в рабочем окне будущей программы (делая, таким образом, из компонентов объекты), и настраивать объекты с помощью свойств, затем уже добавляя процедуры для обработки событий (создавая таким образом из объектов графические элементы управления).

Так происходит, например, когда строится дом из стандартных блоков, но по индивидуальному проекту. Их назначение фиксировано, но количество и компоновка могут быть различными. Однако, блок-туалет нельзя использовать как блок-спальню. Зато внутри каждого такого блока можно заменить или добавить отдельные части с их собственными характеристиками (свойствамии).

На рис. 6.12 приведена упрощённая схема «превращения» компонента через объект в элемент управления. Можно сказать, что компонент сродни чертежу, по которому изготавливают множество совершенно одинаковых объектов, например, одинаковых квартир. Люди, поселившись в квартире, обустраивают ее в соответствии со своими потребностями и вкусом, превращая квартиру в уникальный элемент своей жизни.

 
 

 


Рис. 6.12. От компонента библиотеки - к элементу управления

 

Первой средой визуального программирования стала широко теперь распространённая среда объектно-ориентированного визуального программирования Visual Basic for Application (Visual Basic для приложений).

Тестовые задания

Ниже приведено несколько тестовых заданий для закрепления изложенного материала. В каждом задании предлагается вопрос и несколько вариантов ответа на него, один (или несколько) из которых является правильным, а остальные — нет. Укажите правильный(е) ответ(ы).

№ вопр. Вопросы Предлагаемые ответы
Алгоритм – это… а) четкая последовательность слов, б) чёткая инструкция действий для обязательного получения результата, в) выполнение действий в случайном порядке, г) произвольные действия пользователя, не всегда приводящие к результату.
Свойствами алгоритма не являются… а) полновесность и уникальность, б) массовость и дискретность, в) результативность и определённость, г) дискретность и понятность.
Алгоритм наиболее нагляден и компактен в форме… а) шестнадцатиричных кодов, б) словесного описания, в) графических фигур (блок-схемы), г) псевдокодовой записи.
Дискретность алгоритма означает, что можно… а) выполнять его по частям в любом порядке, б) разбивать его на любые произвольные части, в) решать задачи, связанные только с натуральным дискретным рядом чисел, г) дробить и его на отдельные самостоятельные части, решающие более мелкие конкретные задачи.
Массовость алгоритма состоит в том, что… а) его можно тиражировать сколько угодно раз, б) он популярен и часто используется, в) он пригоден для решения не одно, а многих задач, имеющих общий смысл и порядок действий, г) он пригоден для решения любых задач.
Алгоритм может восприниматься человеком и компьютером в форме а) словесного описания, б) псевдокода, в) программы, г) блок-схемы.
Описание алгоритма связано с устройством процессора, если он записан… а) в машинных командах, б) на ассемблере, в) в операторах языка высокого уровня, г) в псевдокодах.
В блок-схеме каждому действию соответствует… а) порядковый номер, б) фигура заданной формы, в) поясняющий текст, г) любое произвольное обозначение с формулой в нём.
Транслятор переводит … а) блок-схемы в программы, б) машинные команды в операторы языка высокого уровня, в) программу с алгоязыка на другой алгоязык, г) операторы алгоязыка на язык машинных команд.
Цикл с постусловием может выполняться… а) один раз, б) ни одного раза, в) бесконечно, г) заданное число раз.
Цикл с предусловием может выполняться… а) один раз, б) ни одного раза, в) бесконечно, г) заданное число раз.
Цикл со счетчиком может выполняться… а) один раз, б) ни одного раза, в) бесконечно, г) заданное число раз.
Наиболее приближенной к реальности является… а) разветвленная структура алгоритма, б) линейная структура алгоритма, в) циклическая структура алгоритма, г) циклическая структура с разветвлениями.
Оператор If <условие> then <опер1> endif соответствует а) циклическому алгоритму, б) разветвленному с одной ветвью, в) разветвленному с двумя ветвями, г) циклическому разветвленному алгоритму.
Оператор If <условие> then <опер1> else <опер2> endif соответствует а) циклическому алгоритму, б) разветвленному алгоритму с одной ветвью, в) разветвленному алгоритму с двумя ветвями, г) циклическому разветвленному алгоритму.
Оператор Select Case ключ Case 1 <опер1> Case 2 <опер2> ….. Case N <оперN> End Select соответствует а) алгоритму с несколькими ветвями, б) разветвленному алгоритму с одной ветвью, в) разветвленному алгоритму с двумя ветвями, г) циклическому разветвленному алгоритму.
Оператор Do While <условие> <тело цикла> Wend соответствует а) циклу с предусловием, б) циклическому разветвленному алгоритму, в) циклу с постусловием, г) циклу с заданным числом повторов.
Оператор For I=<нач.знач.> to<конеч.знач.> step <шаг> <тело цикла> Next соответствует а) циклу с предусловием, б) циклическому разветвленному алгоритму, в) циклу с постусловием, г) циклу с заданным числом повторов.
Оператор Do <тело цикла> While <условие> соответствует а) циклу с предусловием, б) циклическому разветвленному алгоритму, в) циклу с постусловием, г) циклу с заданным числом повторов.
Современное программирование - это программирование… а) на ассемблере, б) в машинных кодах, в) процедурное, г) объектно-ориентированное.
Какую структуру алгоритма отражает схема
 
 


Начало

 
 

 


результат

 
 


Конец

а) разветвленную, б) линейную, в) циклическую с постусловием, г) циклическую с предусловием.
Чему соответствует схема
 
 


нет
условие

       
 
 
   

 

  а) циклический алгоритм с постусловием б) разветвленный алгоритмм, в) линейный алгоритм, г) циклический алгоритм с предусловием.    
Чему соответствует схема     а) циклический алгоритм с постусловием, б) разветвленный алгоритм, в) циклический алгоритм с предусловием, г) линейный алгоритм.    
Чему соответствует схема
 
 

 

 


i <> кон. знач.

 
 

 


i = i + шаг

       
   
 
 

 

 

  а) циклический алгоритм с постусловием, б) разветвленный алгоритм с несколькими альтернативными ветвями, в) циклический алгоритм с предусловием, г) цикл с заданным числом повторов.    
Чему соответствует схема
           
   
нет
 
 
 
   
ключ = 20


да
ключ=1,2,..10

       
 
   
ключ<>10
 

 


 
 

 

  а) циклический алгоритм с постусловием, б) разветвленный алгоритм с несколькими альтернативными ветвями, в) циклический алгоритм с предусловием, г) цикл с заданным числом повторов.  
         

 









Последнее изменение этой страницы: 2016-04-20; Нарушение авторского права страницы

infopedia.su не принадлежат авторские права, размещенных материалов. Все права принадлежать их авторам. Обратная связь