4. Основы программирования
Процесс подготовки и решения задачи на ЭВМ складывается из разработки алгоритма решения задачи и программирования.
Алгоритмом называется точная инструкция, определяющая последовательность элементарных операций над исходными данными, выполнение которых обеспечивает решение поставленной задачи.
Существуют две формы описания алгоритма: описание на естественном языке и представление в структурной схеме.
Описание на естественном языке представляет собой развернутую форму записи всех операций. Поясним представление алгоритма в такой форме на примере вычисления Y = (4Х2 – 6)/(3Х + 6) при X = 3.
На естественном языке алгоритм будет выглядеть следующим образом:
1. Возвести X в степень 2.
2. Результат действия 1 (X2) умножить на 4.
3. От результата действия 2 (4Х2) отнять число 6.
4. Умножить X на число 3.
5. К результату действия 4 (3Х) прибавить число 6.
6. Результат действия 3 разделить на результат действия 5.
В практике программирования вместо развернутой записи используют его описание в виде структурной схемы, которая записывается графическими обозначениями (рис. 152).
Поясним представление алгоритма в форме структурной схемы на примере составления программы вычисления корней квадратного уравнения Х2 + bХ + с = 0. Корни этого уравнения находят по формуле
Порядок вычислений зависит от знака подкоренного выражения D.
Рис. 152. Графическое обозначение блоков программы:
1 – вычислительный блок (обработка числового материала команд и т. д.); 2 – подготовительный блок (операции ввода и вывода информации); 3 – указание последовательности выполнения операций; 4 – логический блок (организация разветвления программ); 5 – стандартный блок (выполнение подпрограмм); 6 – конвектор (связь блоков); 7 – операция начала и конца программы
Процесс решения задачи можно расчленить на четыре этапа:
1. Вычисление D = (b2/4) – с.
2. Проверка условий D ≥ 0 или D < 0.
3. Вычисление действительных корней, если D ≥ 0.
4. Вычисление мнимых корней, если D < 0.
В рассмотренном примере возникает необходимость вести вычисления по различным формулам в зависимости от получающихся промежуточных результатов. Такие вычислительные процессы называют разветвляющимися. При их описании используются понятия условного и безусловного переходов.
Условный переход – изменение порядка выполнения программы в зависимости от результата проверки логического условия. В алгоритме, проведенном на рис. 153, переход от логического блока к арифметическим блокам является условным, а переход от одного блока к другому без проверки каких-либо условий – безусловным.
Следующий шаг подготовки – перевод разработанного алгоритма на язык машины. Для достижения взаимодействия между ЭВМ и пользователем (оператором) и решения поставленных задач требуется знание обеими сторонами общего для них языка:
Первые вычислительные машины располагали только машинными языками. Они были удобны для ЭВМ, но требовали специальной подготовки программистов (составителей программ). В настоящее время наблюдается тенденция приближения языков программирования и обычной человеческой речи, что объясняется бурным развитием вычислительной техники.
Все известные языки программирования условно можно разделить на четыре уровня.
Первый уровень – машинные коды. Это внутренний язык команд конкретной ЭВМ. Он содержит полный перечень операций, выполняемых ЭВМ с их числовыми кодами.
Второй уровень – автокоды и мнемокоды. В них некоторые простейшие часто используемые последовательности машинных команд объединяются в микрокоманды. Основное отличие автокодов и мнемокодов от машинных языков состоит в том, что вместо двоичного кода операции пишется его мнемоническое обозначение, а вместо двоичного представления адреса ячейки употребляется буквенное (символьное) имя (идентификатор). Языки этого уровня называют также языками ассемблера.
Рис. 153. Структурная схема вычисления корней квадратного уравнения
При использовании мнемокода не требуется распределять память машин для конкретной задачи. Для задания формата вводимых и выводимых данных в языках второго уровня имеются специальные средства. Все это облегчает работу программистов и позволяет записывать решение задач в сокращенной форме.
Третий уровень – алгоритмические языки. Эти языки ориентированы не на типы ЭВМ, а на определенные процессы задач. Программы, составленные на таком языке, могут решаться на любой машине, для которой имеется специальная программа перевода текста на язык этой машины.
Чтобы алгоритмический язык был удобен для практического применения, он должен быть единым для широкого круга специалистов, достаточно гибким (чтобы запись команды на этом языке была компактна и наглядна), простым и удобным для публикаций.
Перевод программы на язык машины осуществляется с помощью специальной программы – транслятора, которая привязана к конкретной машине. Трансляция заключается в замене символов и синтаксиса исходного языка символами и синтаксисом входного языка с сохранением содержания переводимых выражений.
Четвертый уровень – языки, максимально приближенные к человеческому языку. Эти языки дают возможность непосредственного общения человека с ЭВМ без какой-либо специальной подготовки. Они очень удобны, но программы, составленные на них, неэкономично используют память ЭВМ и возможности самих машин.
При разработке систем математического обеспечения автоматическая система управления производством (технологическими процессами) часто используются международные алгоритмические и проблемно-ориентировочные языки АЛГОЛ-60, КОБОЛ, ФОРТРАН, PL/1 и др.
АЛГОЛ-60 – алгоритмический язык предназначен для описания вычислительных процессов в форме, используемой в научно-технических расчетах. АЛГОЛ-60 характеризуется значительным сходством с математическим языком.
КОБОЛ – проблемно-оперативный язык, разработанный в США как средство программирования для обработки данных в коммерческих задачах, связанных с обработкой больших массивов и информации, а также для обработки информации при последовательно повторяющихся операциях. В словарном запасе этого языка много слов, собственно бесполезных для программирования, но облегчающих чтение программы.
ФОРТРАН – один из наиболее простых и широко применяемых алгоритмических языков. Язык разработан для использования в области научных и технических исследований. Он успешно применяется и для решения информационно-логических и экономических задач. ФОРТРАН используется во многих типах машин.
PL/1 – универсальный язык программирования научно-технических, коммерческих задач и задач управления производством. PL/1 объединяет возможности языков высшего уровня, таких как АЛГОЛ, КОБОЛ, ФОРТРАН, причем возможности этих языков еще больше расширены. Язык построен по блочной структуре, поэтому для различных применений могут быть образованы его подмножества. Он является многоцелевым и достаточно сложным. Однако программисту не обязательно все знать о нем, т. е. для программирования отдельных задач используется только часть средств языка.
Программное обеспечение микроЭВМ по многим характеристикам напоминает программное обеспечение обычных ЭВМ и мини-ЭВМ, но имеет специфические особенности, которые обусловлены их архитектурой.
Программирование можно осуществить на машинном языке, языке ассемблера и языке высокого уровня.
Для небольших задач используется ручное программирование в машинных командах.
Программирование на языке ассемблера применяется для программирования на уровне команд. К достоинствам программирования на языке ассемблера можно отнести то, что символические коды легче воспринимаются и в них легко вносить изменения, а к недостаткам – то, что требуется специальная аппаратура проектирования, терминал и знание языка ассемблера.
Программирование на языке высокого уровня применяется для крупных программ. Такой язык легко адаптируется к различным ЭВМ.
На базе языка PL/1 для микроЭВМ разработан специальный язык PL/М, представляющий собой проблемно-ориентированный язык для описания прикладных задач и программирования микропроцессоров.
Контрольные вопросы и задания
1. Чем отличаются позиционные системы счисления от непозициоиных?
2. Дайте сравнительную оценку систем счисления, применяемых в ЭВМ.
3. Какие достоинства и недостатки характерны для двоичной системы счисления?
4. Перечислите общие правила перевода чисел из одной системы счисления в другую.
5. Преобразуйте число 13510 по схеме (135)10 → (135)2 → (135)8 → (135)18 → (135)10.
6. Дайте сравнительную оценку естественной и нормальной формам представления чисел.
7. Как производится нормализация числа?
8. Представьте десятично число 99 в двоичной системе счисления в прямом, обратном и дополнительном кодах.
9. Что называется алгоритмом решения задачи? Расскажите о формах записи алгоритмов.
10. Дайте сравнительную оценку уровней различия языков программирования.
11. Перечислите основные современные проблемно-ориентированные языки и дайте им характеристики.
12. На каких языках осуществляется программирование микроЭВМ?
13. Какие языки используют для программирования управляющих ЭВМ?
- А.Г. Староверов основы автоматизации производства
- Глава 1. Общие сведения о системах автоматики и составляющих ее элементах
- 1. Основные понятия и определения
- 2. Классификация систем автоматического управления
- 3. Элементы автоматических систем
- Глава 2. Первичные преобразователи
- 1. Общие сведения и классификация первичных преобразователей
- 2. Потенциометрические первичные преобразователи
- 3. Индуктивные первичные преобразователи
- 4. Емкостные первичные преобразователи
- 5. Тензометрические первичные преобразователи
- 6. Фотоэлектрические первичные преобразователи
- Глава 3. Усилители и стабилизаторы
- 2. Электромеханические и магнитные усилители
- 3. Электронные усилители
- 5. Стабилизаторы
- Глава 4. Переключающие устройства и распределители
- 1. Электрические реле
- 2. Реле времени
- 3. Контактные аппараты управления
- 4. Бесконтактные устройства управления
- Наименование н обозначение логических функций н элементов
- 5. Вспомогательные устройства
- Глава 5. Задающие и исполнительные устройства
- 1. Классификация задающих и исполнительных устройств
- 2. Задающие устройства
- 3. Электрические исполнительные механизмы
- Раздел II. Контрольно-измерительные приборы и техника измерения параметров технологических процессов
- Глава 6. Общие сведения об измерении и контроле
- 1. Основные метрологические понятия техники измерения и контроля
- 2. Погрешности измерений
- 3. Методы измерения и классификация. Контрольно-измерительных приборов
- Глава 7. Контроль температуры
- 1. Температурные шкалы. Классификация технических приборов и устройств измерения температуры
- 2. Термометры расширения
- Технические характеристики стеклинных ртутных, термометров типа тт
- Технические характеристики дилатометрических гермометров
- 3. Манометрические термометры
- Характеристики манометрических термометров
- 4. Термоэлектрические термометры
- Основные характеристики термоэлектрических термометров
- Технические характеристики милливольтметров
- 5. Термометры сопротивления и термисторы
- Технические характеристики термометров сопротивления
- 6. Бесконтактное измерение температуры
- 7. Техника безопасности при контроле температуры
- Глава 8. Контроль давления и разрежения
- 1. Общие сведения и классификация приборов
- 2. Манометры
- Технические характеристики показывающих и сигнализирующих манометров
- 3. Тягонапоромеры
- Технические характеристики тягомеров, напоромеров и тягонапоромеров
- 4. Вакуумметры
- Технические характеристики промышленных вакуумметров
- 5. Техника безопасности при контроле давления
- Глава 9. Контроль расхода, количества и уровня
- 1. Общие сведения и классификация приборов
- 2. Расходомеры
- Технические характеристики ротаметров
- Технические характеристики шариковых расходомеров
- 3. Счетчики жидкостей и газов
- Технические характеристики счетчиков жидкостей и газов
- 4. Счетчики и весы твердых и сыпучих материалов
- 5. Уровнемеры жидкостей и сыпучих материалов
- Технические характеристики поплавковых уровнемеров с пружинным уравновешиванием
- Технические характеристики буйковых уровнемеров
- 6. Техника безопасности при контроле расхода, количества и уровня
- Глава 10. Контроль специальных параметров
- 1. Контроль состава газа
- 2. Контроль влажности и запыленности газа
- 3. Контроь влажности сыпучих материалов
- 4. Контроль плотности жидкости
- 5. Техника безопасности при контроле специальных параметров
- Раздел III. Автоматическое управление, контроль и регулирование
- Глава 11. Системы автоматики с программным управлением
- 1. Общие принципы построения систем
- 2. Интуитивный метод разработки схем управления
- 3. Аналитический метод разработки схем управления
- Глава 12. Автоматическая блокировка и защита в системах управления
- 1. Системы автоматической блокировки
- 2. Системы автоматической защиты
- Глава 13. Системы автоматического контроля и сигнализации
- 1. Структура и виды систем
- 2. Измерительные системы с цифровым отсчетом
- 3. Системы централизованного контроля
- 4. Системы автоматической сигнализации
- Глава 14. Системы автоматического регулирования
- 1. Основные понятия и определения
- 2. Обыкновенные системы регулирования
- 3. Самонастраивающиеся системы регулирования
- 4. Качественные показатели автоматического регулирования
- Глава 15. Объекты регулирования и их свойства
- 1. Общие сведения
- 2. Параметры объектов регулирования
- 3. Определение основных свойств объектов
- Глава 16. Типы регуляторов
- 1. Классификация автоматических регуляторов
- 2. Регуляторы прерывистого (дискретного) действия
- 3. Регуляторы непрерівного действия
- 4. Выбор типа регуляторов и параметров его настройки
- Формулы для определения параметров настройки регуляторов
- Глава 17. Конструкции и характеристики регуляторов
- 1. Регуляторы прямого действия
- 2. Электрические регуляторы косвенного действия
- 3. Гидравлические регуляторы косвенного действия
- 4. Пневматические регуляторы косвенного действия
- 5. Техника безопасности при эксплуатации регуляторов
- Раздел IV. Микропроцессорные системы
- Глава 18. Общая характеристика микропроцессорных систем
- 1. Основные понятия и определения
- 2. Организация работы вычислительной машины
- 3. Производство эвм
- 4. Структура эвм
- Глава 19. Математическое и программное обеспечение микроЭвм
- 1. Системы счисления
- 2. Правила перевода одной системы счисления в другую
- 3. Формы представления чисел в эвм. Машинные коды
- 4. Основы программирования
- Глава 20. Внешние устройства микроЭвм
- 1. Классификация внешних устройств
- 2. Внешние запоминающие устройства
- 3. Устройства для связи эвм – оператор
- 4. Внешние устройства связи эвм с объектом
- Глава 21. Применение микропроцессорных систем
- 1. Состав систем автоматики с применением микроЭвм
- 2. Управление производственными процессами
- Раздел V. Промышленные роботы и роботизированные системы
- Глава 22. Общие сведения о промышленных роботах
- 1. Основные определения и классификация промышленных роботов
- 2. Структура промышленных роботов
- 3. Основные технические показатели роботов
- Глава 23. Конструкции промышленных роботов
- 1. Промышленные роботы агрегатно-модульного типа
- Технические данные агрегатной гаммы промышленных роботов лм40ц.00.00 [9]
- Технические характеристики и области обслуживания типового ряда промышленных роботов [9]
- Технические данные модулей агрегатной гаммы рпм-25 [9]
- 2. Интерактивные промышленные роботы
- 3. Адаптивные промышленные роботы
- 4. Захватные устройства
- 5. Приводы промышленных роботов
- Глава 24. Системы управления промышленными роботами
- 1. Назначение и классификация систем управления
- 2. Унифицированные системы управления
- Технические данные унифицированных систем управления уцм [9]
- Технические данные унифицированных систем управления упм [9]
- Технические данные контурных систем управления укм [9]
- 3. Информационные системы
- Глава 25. Роботизация промышленного производства
- 1. Основные типы роботизированных систем
- 2. Гибкие производственные системы с применением промышленных роботов
- 3. Техника безопасности при эксплуатации роботов
- Приложение Буквенные обозначения элементов электрических схем
- Список литературы