Команда сравнения имеет вид: (compare): CMP op1, op2

Она эквивалентна команде вычитания SUB op1,op2 за одним исключением: вычисленная разность никуда не записывается, поэтому единственный эффект от нее – установка флагов, характеризующих сравниваемые величины.

Команда условного перехода имеет вид: Jxx метка.

На месте символов хх ставится нужная буква, которая показывает исход сравнения, при котором нужно делать переход. Это такие буквы:

E – equal (равно)

N – not (не, отрицание)

G – greater (больше) – для чисел со знаком

L – less (меньше) – для чисел со знаком

A – above (выше, больше) – для чисел без знака

B – below (ниже, меньше) – для чисел без знака

Например, если после команды сравнения CMP op1, op2 указать команду перехода JAE 102, то перейдем на адрес 102 только в случае op1>=op2.

Существует вторая группа команд условного перехода – те, которые реагируют на то или иное значение какого-либо флага. В команде указывается первая буква проверяемого флага, ели переход должен быть выполнен при значении 1 у флага, либо эта буква указывается с буквой N (not), если переход надо сделать при нулевом значении флага.

КОМАНДА УПРАВЛЕНИЯ ЦИКЛОМ

Цикл можно реализовать с помощью команды условного перехода.

Но имеются и специальные команды.

Управление циклом по счетчику: LOOP метка

Действие этой команды можно описать так:

MOV CX, N; N>0

L:…. – тело цеикла;

LOOP L;

Следует учитывать ряд особенностей этой команды:

1) в качестве счетчика цикла обязательно используется CX

2) начальное значение для CX должно быть присвоено до цикла

3) команда LOOP ставится в конце цикла и поэтому тело цикла выполнится обязательно хотя бы один раз.

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

17. Этапы разработки программы на языке высокого уровня. Типы переменных в программе на языке С++. Л.10, С.5-11.

Современные системы программирования на С++ состоят из нескольких составных частей. Это такие части, как сама среда программирования, язык, стандартная библиотека С-функций и различные библиотеки С-классов.Сразу заметим, что C++ является объектно-ориентированным языком. Основное отличие его от прежних, структурных, языков (примером таких является Турбо-Паскаль или С) является то, что он (С++) способен оперировать не только с переменными и структурами (функциями и процедурами), но и с целыми объектами. Объекты есть комплексы переменных и процедур (функций) по их обработке.

Современные системы программирования на С++ состоят из нескольких составных частей. Это такие части, как сама среда программирования, язык, стандартная библиотека С-функций и различные библиотеки С-классов. Как правило, чтобы выполнить программу на С++, необходимо пройти через 6 этапов: редактирование, препроцессорную (то есть предварительную) обработку, компиляцию, компоновку, загрузку и выполнение.

Первый этаппредставляет создание и редактирование файла с исходным текстом программы. Он может выполняться с помощью простейшего редактора текстов программ. Программист набирает в этом редакторе свою С++ программу. При необходимости он снова обращается к ней и вносит с помощью этого редактора изменения в исходный текст программы. Далее программа запоминается на диске. Имена файлов С/C++ программ оканчиваются на "c" или "cpp".

На втором этапекомпилятор начинает препроцессорную обработку текста программы, прежде чем ее компилировать. Компилятор переводит программу в машинный код. То есть в результате получаем объектный код программы. Следует знать, что в системе С++ программирования перед началом этапа самой трансляции всегда выполняется программа предварительной обработки. Что она делает? Она отыскивает так называемые "директивы трансляции" или "директивы препроцессора", которые указывают, какие нужно выполнить преобразования перед трансляцией исходного текста программы. обычно это включение других текстовых файлов в файл, который подлежит компиляции. Препроцессорная обработка нициируется компилятором перед тем, как программа будет преобразована в машинный код. Это позволяет забирать нужные программы-функции в текст компилируемой программы до ачала процесса компоновки.

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

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

Пятый этап - загрузка. Перед выполнением программа должна быть размещена в памяти. Это делается с помощью загрузчика, который забирает загрузочный модуль программы с диска и перемещает его в память.

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

В C++ каждая переменная имеет имя, тип, размер и значение. Основные типы с указанием размеровзанимаемой памяти и областью значений приведены в таблице 1.

Основные типы переменных в C++

Ясно, что всякая программа, так или иначе, обрабатывает данные. Эти данные, как правило, размещаются в переменных. Каждая переменная имеет имя, тип, размер и значение. Основные типы с указанием размеров занимаемой памяти и областью значений приведены в табл. 1.

Команда сравнения имеет вид: (compare): CMP op1, op2 - student2.ru

Объявление типов переменных делается соответствующим служебным словом с последующим перечислением имен переменных: int i,j,k,l,m– перечисленные переменные будут целого типа и т.п. Причем, объявление типов можно совместить с присваиванием. Присваивание значения переменным делается с помощью команды присваивания (в С++ используется знак равенства). Значения для символьных переменных заключаются в одинарные кавычки:

Int i=33; float a=.156;

Char f =’5’, f2=’$’, ff=’1’

18. Описать структуру линейной программы и программы с ветвлением на языке С++. Основные директивы и команды для таких программ.

Программа, исполняющаяся прямолинейно от начала и до конца – линейная программа.

· программы с линейной структурой являются простейшими и используются, как правило, для реализации обычных вычислений по формулам;

· в программах с линейной структурой инструкции выполняются последовательно, одна за другой

Основные директивы и команды для линейной программы: Программа на С++ состоит из одной или более функций. Причем, начинается выполнение программы с функции main(), которая, по сути, есть главный элемент программы. Каждая функция, вообще говоря, должна возвращать какой-либо результат. Поэтому и функция main() должна заканчивать командой возврата return 0;, показывающей, что программа завершена. Причем у функции (как и у переменных) указывается тип. Функция main() имеет тип int. Собственно алгоритм (исполняемая часть программы) заключается в фигурные скобки {} после выражения int main(). Каждая фраза алгоритма заканчивается точкой с запятой ;. Обычно перед функцией main дают так называемые директивы препроцессору. Такие директивы начинаются со знака # (произносится «хаш»). Например, директива

# include <iostream>

подключает встроенные в C++ функции, которые обеспечивают ввод/вывод. Для вывода на экран служит команда cout << (читается «си-аут»). В ней для вывода текстовых сообщений помещают их в кавычки. Также там можно разместить управляющие последовательности для разделения строк вывода:

«\n» – дает команду начать вывод с новой строки

‘ ‘ (пробел в одинарных кавычках) – разделяет пробелом выводимые знаки или строки. Иначе – весь вывод сливается в одну строку.

«\t» – табуляция;

Для ввода в программу (в процессе ее выполнения) служит команда:cin>> (читается «си-ин»). В ней указывается переменная, которой и будет присвоено значение, введенное с экрана.

В программе можно размещать комментарии, которым предшествует // (двойная дробная черта). Важной в начале исходного текста программы является директива объявления пространства имен:using namespace std;

Эффект от ее применения состоит в том, что вы можете свободно применять, в частности, вышеупомянутые команды ввода-вывода cout и cin. И процессор при этом будет четко понимать, что это команды, а не переменные.

Программа с ветвлением:

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

Структура выбора на С++ имеет вид:

if ( условие ) оператор 1; else оператор 2

Обратим внимание, что в отличие, например, от Паскаля в таком операторе отсутствует служебное слово then и условие обязательно заключается в скобки. Оператор 1 исполняется в случае истинности условия. Оператор 2 – в случае ложности условия. В С++ для использования математических функций необходимо подключать специальную библиотеку math.h.

В тех случаях, когда требуется выполнить несколько действий (в случае истинности или в случае ложности условия), то применяют фигурные скобки: if (условие) {оператор 1_1; оператор 1_2} else {оператор 2_1; оператор 2_2}

Конъюнкция условий (одновременное выполнение условий) – условия связываются при помощи &&, дизъюнкция условий (альтернативное выполнение условий) – обозначается | | и инверсия условий (обозначается знаком ! ).
19. Описать структуру циклической программы на языке С++. Команды организации цикла ПОКА и цикла со счетчиком С++.

На языке C++ циклы с параметром организуются с помощью структуры повторения For (парам=нач.знач; парам<кон.знач; парам++) тело цикла

Параметр может изменяться на (целое) число. Тогда вместо парам++следует писать, например, парам+=2(если параметр приращается на 2). Разумеется, внутри цикла можно организовывать и вложенные циклы, причем число вложений, в принципе, не ограничено.

В С++ имеется также структура повторения While, которая служит для организации цикла-ПОКА: While (условие) тело цикла

Тело цикла повторяется, пока заданное условие остается истинным. Для изменения порядка работы в цикле в языке С++ применяются два оператора: break(для досрочного прерывания цикла) и continue– для пропуска следующих за ним операций к переходу в конец цикла, но из цикла выхода не производится.

20. Работа с одномерными и двумерными массивами на языке С++, организация их ввода и вывода.

В С++ массив, как и любая переменная, должен быть объявлен. Делается это с помощью служебного слова указывающего тип, затем указывается имя массива и в квадратных скобках его длина. Заметим, что индексы массива ведут счет с нуля, поэтому запись вида: double b[14] означает, что резервируется память для 14чисел типа doubleс именем bи порядковыми номерами от 0до 13. Отдельный элемент массива записывается с указанием имени и индекса в квадратных скобках.

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

Массивы могут быть и многомерными, например, двумерными. В этом случае размерности записываются в двух квадратных скобках: int d[5][4]– описан целочисленный массив из 5 строк и 4 столбцов. Напомним, что в математике двумерный массив принято называть матрицей, при этом матрица, у которой число строк и столбцов равно называется квадратной. Если у квадратной матрицы элементы симметрично относительно главной диагонали равны (а21 =а12 и т.д.), то ее называют симметричной. Напомним, что главная диагональ матрицы содержит элементы с одинаковыми индексами: а11 , а22 и т.д.

ЭЛЕКТРОТЕХНИКА

Наши рекомендации