C++ — Операторы
Уважаемый пользователь! Реклама помогает поддерживать и развивать наш проект, делая его простым и удобным специально для Вас. Если проект интересный и важный для Вас, то отключите на нем блокировщик рекламы. Спасибо, что читаете сайт!
Оператор — это символ, который сообщает компилятору выполнить определенные математические или логические манипуляции. C ++ богат встроенными операторами и предоставляет следующие типы операторов:
- Арифметические операторы
- Реляционные операторы
- Логические операторы
- Побитовые операторы
- Операторы присваивания
- Другие операторы
Арифметические операторы
Существуют следующие арифметические операторы, поддерживаемые языком C ++:
Оператор | Описание | Пример |
---|---|---|
+ | Добавляет два операнда | A + B даст 30 |
— | Вычитает второй операнд с первого | A — B даст -10 |
* | Умножает оба операнда | A * B даст 200 |
/ | Делит числитель на де-числитель | B / A даст 2 |
% | Оператор модуля и остаток после целочисленного деления | B% A даст 0 |
++ | Оператор приращения увеличивает целочисленное значение на единицу | A ++ даст 11 |
— | Уменьшает целочисленное значение на единицу | A— даст 9 |
Реляционные операторы
Существуют следующие реляционные операторы, поддерживаемые языком C ++:
Оператор | Описание | Пример |
---|---|---|
== | Проверяет, равны ли значения двух операндов или нет, если да, то условие становится истинным. | (A == B) не соответствует действительности. |
знак равно | Проверяет, равны ли значения двух операндов или нет, если значения не равны, условие становится истинным. | (A! = B) истинно. |
> | Проверяет, превышает ли значение левого операнда значение правого операнда, если да, тогда условие становится истинным. | (A> B) неверно. |
< | Проверяет, является ли значение левого операнда меньше значения правильного операнда, если да, тогда условие становится истинным. | (A <B) истинно. |
> = | Проверяет, превышает ли значение левого операнда значение правого операнда, если да, тогда условие становится истинным. | (A> = B) неверно. |
<= | Проверяет, является ли значение левого операнда меньше или равно значению правильного операнда, если да, тогда условие становится истинным. | (A <= B) истинно. |
Логические операторы
Существуют следующие логические операторы, поддерживаемые языком C ++:
Оператор | Описание | Пример |
---|---|---|
&& | Вызывается логическим оператором AND. Если оба операнда отличны от нуля, условие становится истинным. | (A && B) является ложным. |
|| | Вызывается логическим оператором ИЛИ. Если любой из двух операндов отличен от нуля, тогда условие становится истинным. | (A || B) истинно. |
! | Вызывается логическим оператором NOT. Используется для изменения логического состояния операнда. Если условие истинно, то логический оператор NOT сделает ложным. | ! (A && B) истинно. |
Побитовые операторы
Побитовый оператор работает с битами и выполняет побитовую операцию. Таблицы истинности для &, |, и ^ заключаются в следующем:
p | q | p & q | p | q | p ^ q |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
Побитовые операторы, поддерживаемые языком C ++, перечислены в следующей таблице:
Оператор | Описание | Пример |
---|---|---|
& | Двоичный оператор AND копирует бит в результат, если он существует в обоих операндах. | (A & B) даст 12, что составляет 0000 1100 |
| | Двоичный оператор OR копирует бит, если он существует в любом из операндов. | (A | B) даст 61, который равен 0011 1101 |
^ | Оператор двоичного XOR копирует бит, если он установлен в один операнд, но не тот и другой. | (A ^ B) даст 49, который равен 0011 0001 |
~ | Binary Ones Оператор дополнения является унарным и имеет эффект «flipping» бит. | (~ A) даст -61, что составляет 1100 0011 в форме дополнения 2 из-за подписанного двоичного числа. |
<< | Двойной левый оператор сдвига.Значение левых операндов перемещается влево на количество бит, заданных правым операндом. | A << 2 даст 240, что составляет 1111 0000 |
>> | Двоичный оператор правого сдвига. Значение левых операндов перемещается вправо на количество бит, заданных правым операндом. | A >> 2 даст 15, что составляет 0000 1111 |
Операторы присваивания
Существуют следующие операторы присваивания, поддерживаемые языком C ++:
Оператор | Описание | Пример |
---|---|---|
знак равно | Простой оператор присваивания, присваивает значения из правых операндов в левый операнд. | C = A + B присваивает значение A + B в C |
+ = | Оператор Add AND присваивания, Он добавляет правый операнд в левый операнд и присваивает результат левому операнду. | C + = A эквивалентно C = C + A |
знак равно | Subtract AND assign operator, вычитает правый операнд из левого операнда и присваивает результат левому операнду. | C — = A эквивалентно C = C — A |
знак равно | Оператор умножения и присваивания, Он умножает правый операнд на левый операнд и присваивает результат левому операнду. | C * = A эквивалентно C = C * A |
знак равно | Оператор Divide AND assign. Он делит левый операнд на правый операнд и присваивает результат левому операнду. | C / = A эквивалентно C = C / A |
знак равно | Модуль и оператор присваивания, он принимает модуль с использованием двух операндов и присваивает результат левому операнду. | C% = A эквивалентно C = C% A |
<< = | Оператор сдвига слева и. | C << = 2 совпадает с C = C << 2 |
>> = | Оператор правой смещения и назначения. | C >> = 2 совпадает с C = C >> 2 |
знак равно | Побитовый И оператор присваивания. | C & = 2 является таким же, как C = C & 2 |
^ = | Побитовое исключающее ИЛИ и оператор присваивания. | C ^ = 2 является таким же, как C = C ^ 2 |
| = | Побитовое включение оператора OR и присваивания. | C | = 2 совпадает с C = C |2 |
Другие операторы
В следующей таблице перечислены некоторые другие операторы, поддерживаемые C ++:
Оператор | Описание |
---|---|
sizeof | Возвращает размер переменной. Например, sizeof (a), где ‘a’ является целым числом и будет возвращать 4. |
Condition ? X : Y | Если Условие истинно, то оно возвращает значение X, иначе возвращает значение Y. |
, | Вызывает последовательность операций. Значение всего выражения запятой — это значение последнего выражения списка, разделенного запятыми. |
. (dot) and -> (arrow) | Используются для ссылки на отдельных членов классов, структур и союзов. |
Cast | Преобразуют один тип данных в другой. Например, int (2.2000) вернет 2. |
& | Возвращает адрес переменной. Например, & a; даст фактический адрес переменной. |
* | Является указателем на переменную. Например * var; будет указывать на переменную var. |
Приоритеты операторов в C ++
Приоритет оператора определяет группировку терминов в выражении. Это влияет на оценку выражения. Некоторые операторы имеют более высокий приоритет, чем другие; например, оператор умножения имеет более высокий приоритет, чем оператор сложения —
Например, x = 7 + 3 * 2; здесь x назначается 13, а не 20, потому что оператор * имеет более высокий приоритет, чем +, поэтому он сначала умножается на 3 * 2, а затем добавляется в 7.
Здесь операторы с наивысшим приоритетом появляются в верхней части таблицы, а нижние — внизу. Внутри выражения сначала будут оцениваться операторы с более высоким приоритетом.
Категория | Оператор | Ассоциативность |
---|---|---|
постфикс | () [] ->. ++ — — | Слева направо |
Одинарный | + -! ~ ++ — — (тип) * & sizeof | Справа налево |
Multiplicative | * /% | Слева направо |
присадка | + — | Слева направо |
сдвиг | << >> | Слева направо |
реляционный | <<=>> = | Слева направо |
равенство | ==! = | Слева направо |
Побитовое AND | & | Слева направо |
Побитовое XOR | ^ | Слева направо |
Побитовое OR | | | Слева направо |
Логические AND | && | Слева направо |
Логический OR | || | Слева направо |
условный | ?: | Справа налево |
присваивание | = + = — = * = / =% = >> = << = & = ^ = | = | Справа налево |
запятая | , | Слева направо |
Уважаемый пользователь! Реклама помогает поддерживать и развивать наш проект, делая его простым и удобным специально для Вас. Если проект интересный и важный для Вас, то отключите на нем блокировщик рекламы. Спасибо, что читаете сайт!
unetway.com
Операторы языка
ОСНОВЫ
ПРОГРАММИРОВАНИЯ
Синтаксис языка
Программа в VB формируется из элементов –
лексем, минимально значимых единиц программы. В их число входят: ключевые (зарезервированные)
слова (Dim, Const, While, For, Sub, Case, If…),
специальные символы (+, –, /, *) и идентификаторы. Код программы состоит из последовательности операторов, состоящих из ключевых слов языка и выражений. Выражения – это объединение идентификаторов и спецсимволов, например, «А+В».
Идентификаторы – это имена констант, переменных, программных меток, объектов со свойствами и методами, имена процедур и функций, модулей, полей в записях, имена пользовательских типов данных, имена формальных параметров в процедурах и функциях. При описании идентификаторов придерживаются следующих правил.
Имена должны начинаться с буквы (латинской или русской), иметь длину не более 255 символов.
Имя не должно содержать пробел, точку или следующие символы: %, !, @, &, $, #.
Имя не должно совпадать с зарезервированными словами, именами функций и процедур, стандартными типами, инструкциями и методами языка VB.
Не допускается использование повторяющихся имен на одном уровне области определения. Однако допускается совпадение описания локального имени (переменной) внутри процедуры или функции и такого же имени за их пределами внутри одного модуля.
Регистр букв в имени для компилятора значения не
имеет.
Правильные идентификаторы: Октава,
Площадь_Треугольника, Private15, Date1, mod_1, Err.Number, Debug.Assert – обращения к стандартным объектам Err и Debug.
Неправильные идентификаторы: _ввв
(подчеркивание), date, mod, private, Integer
(использование зарезервированных слов), a.sys (если объект а с методом или свойством sys не существует), Площадь Треугольника (пробел между словами). Ошибку сразу покажет компилятор в окне программного кода.
Программные метки используются в операторах перехода GOTO <метка> для передачи управления на оператор, помеченный меткой. В качестве метки могут использоваться числа от 0 до 2099999999 или правильный идентификатор.
Константы могут быть обычными (целые,
вещественные, логические, строковые) и именованные. Пример обычных констант: 7, -9, 12.54, 16.2е-3, False, True, ″строка символов″;
шестнадцатеричные константы, например, &h300, которая представляет собой десятичное число
512.
Водной строке можно записать несколько операторов, разделяя их двоеточием. Иногда операторы получаются слишком длинными и не входят в одну строку. В таких случаях используется символ переноса строки (символ подчеркивания), которому должен предшествовать пробел. Строковые константы так переносить нельзя.
Программно можно менять значения свойств формы и элементов, размещенных на ней, с помощью оператора присваивания. Например,
Form1.WindowState = 2
‘Распахнуть форму во весь экран
Label1.Caption = «Привет студент!« ‘Изменить надпись Label1
Label2 = «Привет в ответ»
‘Изменить надпись Label2 Shape1.Shape = Circle
‘Изменить вид фигуры 1 на окружность
Shape2 = Rnd*5
‘Изменить вид фигуры 2 случайно
Text1.Text = “Visual Basic”
‘Изменить поле Text1
Text2 = Rnd*5
‘Изменить поле Text2 случайным числом
Для всех объектов на форме существует
единственное свойство, определяемое по умолчанию, которое можно не записывать после имени объекта. Например, это свойство Text у объекта Text1, свойство Caption у объекта Label1, свойство Shape у объекта Shape1 и т.д.
Текст после знака апострофа ( ‘ ) представляет собой комментарий
Выражения
Выражение состоит из операнд (констант, переменных, имен функций), объединенных знаками операций и скобками. В частном случае выражение может состоять и из одного операнда. В общем случае тип выражения определяется типами входящих в него операнд и знаками операций. В VB существуют следующие группы операций.
•Арифметические: ^,+,─,*,/, \ (целочисленное
деление, остается только целая часть), mod (деление по модулю, остается остаток от деления).
•Логические: Not (логическое отрицание), And (логическое умножение), Or (логическое сложение), Xor (логическое исключающее сложение), Eqv (логическая эквивалентность), Imp (логическая импликация).
•Строковые: + (только со строками), & (в выражении могут встречаться строки и числа, которые преобразуются в строку). Обе эти операции предназначены для объединения строк.
•Операции сравнения: =, <,>,<=,>=,<>, Like
(удовлетворение маске), is (принадлежность к типу).
Логические операции имеют наименьший приоритет, а арифметические – наибольший. Порядок выполнения операций равного приоритета осуществляется всегда слева направо. Скобки и вызов функции имеют наивысший приоритет. Например,
A = 123 \ 4 | : | Print A |
‘РезультатÆA=30 |
| |
B = 22 mod 5 | : | Print B |
‘РезультатÆB=2 |
| |
С = 14 Mod 5 + 4 | : | Print C |
‘РезультатÆC= 8 |
| |
D = 14 Mod 5 * 4 | : | Print D |
‘РезультатÆD=14 |
| |
F = 14 Mod 8 \ 4 | : | Print F |
‘РезультатÆF=0 |
| |
E = 5 + 2 * Atn(0.761) : | Print E | |
‘РезультатÆE=6.3 |
|
Следует соблюдать осторожность при использовании в одном выражении переменных различных типов. Прежде чем выполнить операцию над ними, VB преобразует их к одному из типов. Например,
Dim A, B, C, D | ‘Объявление переменных типа Variant | |||
A = 3 | & 9^2 | : | Print A | ‘РезультатÆA=”381” |
B = 3 | + 9^2 | : | Print B | ‘РезультатÆB = 84 |
C =“3” + 9^2 : | Print C | ‘РезультатÆC = 84 | ||
D = “3” + “9” | : | Print D | ‘РезультатÆD = “39” |
Операция & предназначена только для работы со строками. В первом выражении происходит возведение второго числа в
квадрат, преобразование каждого из чисел в строку и
объединение этих строк. Во втором выражении
встречаются два целых числа (3 и 81), разделенных знаком плюс. Знак плюс имеет больший приоритет, чем знак &, поэтому числа складываются. В третьем выражении
необ-ходимо сложить строку и число (81). Так как их разделяет оператор +, то компилятор считает данную операцию числовой и превращает строку ″3″ в число, и
затем складывает его со вторым числом. В четвертом выражении компилятор видит две строки, и так как они имеют один тип, то происходит объединение их в одну строку.
Чтобы быть уверенным в типе результата операции над переменными различных типов, используйте функции CInt, CLng, CStr, CSng, CCur, CDec,
CBool, CByte.
Если необходимо проанализировать данные, требуется операция сравнения. Она выполняется с целью выяснить истинность отношения между данными. Например, выражение А>В имеет результат True (Истина), если А больше В, в противном случае результат будет False (Ложь). True и False – это логические (булевы) значения выражения. Выражение, в котором используются операции сравнения, является примером простого логического выражения (условия). Можно сравнивать не только числа, но и строки.
Логические операции And, Or, Not, Xor, Eqv, Imp
используются при создании сложных логических выражений. Операндами этих операций являются булевы переменные либо простые логические выражения, либо целые числа (или выражения целого типа).
Выражение типа А>В And A>C имеет значение True, если справедливы оба отношения — А больше В и А больше С, то есть оба простых выражения имеют значение True. Если же хотя бы одно из них имеет значение False, то все выражение также будет иметь значение False. Выражение типа А>В Or A>C имеет значение True, если справедливо хотя бы одно отношение.
Выражение Not A>B имеет значение True, если условие A>B имеет значение False. Приведем фрагмент программы вычисления сложных логических выражений:
Dim А, В, С, Mk
‘Объявление переменных типа Variant
А =10 : В =8 : С =6 |
|
|
Mk = А > В And В > С : Print Mk | ‘ Значение True | |
Mk = В > A And В > С : Print Mk | ‘ Значение False | |
Mk=A>B Or B>C : | Print Mk | ‘ Значение True |
Mk=B>A Or B>C : | Print Mk | ‘ Значение True |
Mk = Not(A > В) : | Print Mk | ‘ Значение False |
Mk = Not(B > A) : | Print Mk | ‘ Значение True |
Mk = A > B Eqv B > C : Print Mk | ‘ Значение True. | |
Mk = B > A Eqv B > C : Print Mk | ‘ Значение False | |
Mk = A > B Imp B > C | : Print Mk | ‘ Значение True |
Mk = A > B Imp C > B | : Print Mk | ‘ Значение False |
Если операндами логического выражения являются числа, то результат будет целое число, полученное в результате поразрядной операции над двоичными разрядами двух операндов.
Например, |
|
|
| |
f = 11 | And 6 | : | Print f | ‘Результат 2 |
f = 11 | Or 6 | : | Print f | ‘Результат 15 |
f = 13 | Xor 9 | : | Print f | ‘Результат 4 |
f = 10 | Eqv 8 | : | Print f | ‘Результат -3 |
f = 8 Imp 10 | : | Print f | ‘Результат -1 | |
f = Not 5 * 4 | : | Print f | ‘Результат -21 |
Операция Not выполняет инверсию разрядов операнда. Так, число 20 в двоичной форме есть 00010100, тогда как Not(20) – есть двоичное 11101011 или десятичное –21.
f = 11 Or –6 : Print f ‘Результат -5
Здесь два числа в двоичной форме 00001011 и 11111010 объединяются операцией Or. В результате получится число 11111011, которое будет отрицательным, так как содержит 1 в 7- весовом разряде (восьмом по порядку справа). Чтобы получить десятичное число, используем операцию «двойного» отрицания, то есть Not(11111011)=100, а это десятичное число 4. Инвертируем его еще раз: Not(4)= -5. Результат всего выражения будет число -5.
f = 11 And –6 : Print f ‘Результат 10
Основываясь на результате предыдущего решения, можно запи-сать, что -6=Not(5), а это двоичное число 11111010. Десятичное число 11 в двоичной форме есть число 00001011. Следовательно, результат поразрядной операции And будет двоичное число 1010 или десятичное 10.
Операторы предназначены для управления процессом выполнения алгоритма решения задачи и образуют основную часть кода программы. Они могут быть простыми и составными. Простой оператор не содержит внутри себя никаких других операторов. Это оператор присваивания, оператор вызова процедуры и оператор перехода.
Оператором присваивания Вы уже научились пользоваться. Так, например, чтобы поменять местами значения в ячейках А и В, можно воспользоваться одним из трех способов (убедитесь в этом сами):
1. Tmp = A | 2. A = A + B | 3. A = A Xor B | |
A | = B | B = A – B | B = A Xor B |
B | = Tmp | A = A – B | A = A Xor B |
Оператор вызова процедуры инициализирует
работу процедуры, посылая в нее фактические параметры (аргументы), а после завершения своей работы будет выполняться оператор, следующий за оператором вызова процедуры. Вызов процедуры может иметь функциональный (скобочный) или операторный (бесскобочный) синтаксис.
Безусловная передача управления осуществляется оператором перехода GOTO <метка>. Область действия метки локализована только той процедурой или функцией, где она используется. Нельзя передавать управление между функциями или процедурами. Перед оператором, на который передается управление, ставится метка. Если метка – целое число, то двоеточие после метки может не ставится. Если метка – правильный идентификатор, то двоеточие после метки ставится всегда.
Составные операторы содержат в своем теле некоторую последовательность дополнительных операторов, которые должны выполняться последовательно (один или заданное число раз) либо согласно условию в определенном порядке.
К числу составных операторов относят:
•условный оператор IF и оператор выбора
Select Case;
•операторы цикла: For, Do, While;
•оператор присоединения With.
Условный оператор IF
Алгоритмы большинства решаемых Вами задач не являются последовательными. Часто действия (вычисления), которые необходимо выполнить, зависят от определенных условий, содержащих входные данные, промежуточные результаты.
Условие – это выражение логического типа Boolean, которое может принимать одно из двух значений True или False. Вы уже познакомились с простыми и сложными условиями.
Впрограмме выбор действия в зависимости от выполнения или не выполнения условия определяется операторами IF и Select Case.
Условный оператор IF имеет два формата: однострочный синтаксис и многострочный.
Однострочный синтаксис оператора IF:
IF <условие> Then <Операторы1>[Else < Операторы2>].
Например,
IF Сумма>150000 Then Процент=0.08 Else Процент=0.05
IF x>0 And x<10 Then y=x^3 : Text1=y Else y=Abs(x) : Text2=y
Во многих реальных ситуациях требуется выполнить
несколько операторов, в зависимости от условия. Для этого
удобно использовать многострочный синтаксис оператора: IF <условие1> Then
<Операторы1>
[ElseIF <условие2> Then <Операторы2>
………………]
[Else <ОператорыN>]
End IF
Здесь, если условие1 истинно, то выполнятся Операторы1, после чего произойдет завершение работы оператора IF. Иначе будет проверяться условие2 и, если оно будет истинным, то выполнятся Операторы2, и т.д. В противном случае, если ни одно из условий не будет истинным, то выполнятся ОператорыN. В этом структуре необязательная часть ElseIF используется для задания дополнительных условий, а необязательная часть Else – для полной альтернативы.
Например,
IFСумма >=100000 And Срок>=1 Then
Процент = 0.07 | : | Rating1 = Rating1 +1 | |
ElseIF | Сумма >= 500000 And Срок>=2 Then | ||
Процент = 0.1 | : | Rating2 = Rating2 +1 | |
ElseIF | Сумма >= 1000000 And Срок>=3 Then | ||
Процент = 0.18 | : | Rating3 = Rating3 +1 | |
Else |
|
|
|
Процент = 0.05 | : | Rating4 = Rating4 +1 | |
End IF |
|
|
|
Для принятия более сложных решений с большим количеством вариантов можно использовать вложенные конструкции. При этом каждый многострочный оператор IF всегда заканчивается словами End IF. В однострочном варианте такого окончания нет.
Пример. Вычислить выражение
z = sin(ax2 −bx −c) +cos(−ax2 +bx +c) ln(ax2 −bx −c)
Переменные a,b,c,x,z опишем типом Double, и будем вводить и выводить их значения в текстовых полях
Text1, Text2, Text3, Text4, Text5. На форме разместим элементы Метки с именами переменных и кнопку для получения результата. Процедура обработки события Click будет выглядеть следующим образом.
Private Sub Command1_Click()
Dim a As Double, b As Double, x As Double, _
z As Double, c As Double
a = Text1
b = Text2
c = Text3
x = Text4
z = a * x ^ 2 — b * x — c If z > 0 Then
z = (Sin(z) + Cos(-z)) / Log(z) Text5 = z
Else
MsgBox «Значение z<=0, введите новые значения», _ vbOKOnly + vbQuestion
Debug.Print «Знаменатель= «; z End If
End Sub
‘Результат будет равен нулю
Встроенный диалог MsgBox покажет окно сообщения. Оператор Debug.Print «Знаменатель= «; z откроет окно Immediate отладчика с распечаткой значения переменной z. Оператор If…Then…Else…End If проверяет истинность условия z>0.
Если Вы ввели переменную в программу без описания или неверно записали переменную, то компилятор присвоит новой переменной тип Variant. Например,
Sub Command1_Click()
Dim Ancker as Double Ancker =0.15
Ancker = Anker * sin(1/Ancker)
MsgBox Ancker
End Sub
VB рассматривает переменную Anker как
переменную типа Variant, которая определяется в середине процедуры, и присваивает ей значение 0 (для строковых переменных – пустая строка). В результате обновленная переменная Ancker также примет значение, равное нулю, при этом ошибка не будет сгенерирована. Если же после добавления буквы с в слово Anker Вы опять не получили желаемого результата, то это означает только одно: Вы ввели русскую букву, а не
английскую, так как они имеют различные машинные кода.
Явно описывая переменные можно исключить возникновение подобных ошибок. Оператор Option Explicit, записанный в области GD модуля формы, запретит использование необъявленных переменных, констант и префиксов при определении переменных.
Пример 5. Определить y по заданному значению x. Зависимость y=f(x) представлена графически и состоит из трех парабол.
В общем случае уравнение параболы записывается в виде: y=ax^2+bx+c. Для определения коэффициентов a, b, c необходимо построить систему из трех уравнений для каждой параболы. Например для y1 по известным из графика трем точкам можно записать: 0 =36a − 6b + c
8 = 25a −5b + c0 =16a − 4b + c
Решая ее получаем, что y1=-8(x+5)^2+8. Аналогично получают уравнения для y2 и y3.
DefSng y, x
Private Sub Command1_Click()
x = InputBox(«Введите значение аргумента»)
Y1 = -8 * (x + 5) ^ 2 + 8 |
| ‘Зависимость y1=f(x) | ||
Y2 = -x ^ 2 + 16 |
|
| ‘Зависимость y2=f(x) | |
Y3 = -13 / 4 * (x — 6) ^ 2 + 13 |
| ‘Зависимость y3=f(x) | ||
IF x >= -6 And x <= -4 Then |
|
| ||
y = Y1 |
|
|
|
|
Else |
|
|
|
|
IF x > -4 And x <= 4 Then |
|
| ||
y = Y2 |
|
|
|
|
Else |
|
|
|
|
IF x > 4 And x <= 8 Then |
|
| ||
y = Y3 |
|
|
|
|
Else |
|
|
|
|
y = 0 |
|
|
|
|
End If | : | End If | : | End If |
Print y |
|
|
|
|
End Sub |
|
|
|
|
Вместо вложенных конструкций IF можно
использовать четыре однострочных оператора:
IF x >= -6 And x <= -4 | Then y = Y1 |
IF x > -4 And x <= 4 | Then y = Y2 |
IF x > 4 And x <= 8 | Then y = Y3 |
IF x <-6 Or x > 8 | Then y = 0 |
или один многострочный оператор с частью ElseIF: IFx <-6 Or x > 8 Then
y = 0 |
|
ElseIF | x<= -4 Then |
y = Y1 |
|
ElseIF | x<= 4 Then |
y = Y2 |
|
Else |
|
y = Y3 |
|
End IF |
|
Пример. Определить принадлежность точки (x, y) заштрихованной области, представленной графически.
Private Sub Command1_Click()
Dim x As Single, y As Single, a As Boolean, _
b As Boolean
x= InputBox(«Введите X-координату точки»)
y= InputBox(«Введите Y-координату точки»)
a= x ^ 2 / 25 + y ^ 2 / 4 <= 1
‘a — область внутри эллипса
b= x ^ 2 + y ^ 2 >= 4
‘b — область за пределами окружности
‘And – логическая операция для определения пересекающейся области
‘Xor – логическая операция для исключения пересекающейся области
If a And b Then
Print «Точка (» & x & «,» & y & «) принадлежит области»
Else
Print «Точка (» & x & «,» & y & «) не принадлежит области»
End If
End Sub
Тот же результат можно получить, если использовать логическую операцию Xor вместо логической операции And, но тогда b должна определять область в пределах окружности:
…………………………..
a = x ^ 2 / 25 + y ^ 2 / 4 <= 1 b = x ^ 2 + y ^ 2 <= 4
If a Xor b Then ……………
studfile.net
Структура программы и операторы языка программирования c | Это госы! Wiki
FANDOM
Games Movies TV Video Wikis- Explore Wikis
- Community Central
- Start a Wiki
- Sign In
Don’t have an account?
Register
47 Pages
Add new page- Popular pages
- Most visited articles
- Основные принципы ООП: инкапсуляция, наследование, полиморфизм
- Транслятор языка программирования
- Требования к программному обеспечению
- Сетевые архитектуры
- Технологии баз данных
- Алфавит, синтаксис, семантика языка программирования
- Архитектурное проектирование ПО: структурирование системы, модели управления и модульная декомпозиция
- Organization
- Site administration
- Community
- Copyright
- Forums
- Help
- Site maintenance
- Policy
- Основы программирования
- Блочная структура программы, область видимости деклараций, побочный эффект подпрограммы
- Рекурсия
- Последовательные и связные списки
- Бинарные деревья. Обходы бинарного дерева
- Что нужно знать из Паскаля
- Языки программирования
- Most visited articles
- Community
gos-it.fandom.com
Возникновение и назначение языка Паскаль
Главная | Информатика и информационно-коммуникационные технологии | Планирование уроков и материалы к урокам | 9 классы | Планирование уроков на учебный год | Возникновение и назначение языка Паскаль
Содержание урока
Знакомство с языком Паскаль
Вопросы и задания
Компьютерный практикум ЦОР. Знакомство с языком Паскаль
Компьютерный практикум ЦОР. Возникновение и назначение языка Паскаль
Знакомство с языком Паскаль
Возникновение и назначение Паскаля
После того как построен алгоритм решения задачи, составляется программа на определенном языке программирования.
Среди современных языков программирования одним из самых популярных является язык Паскаль. Этот язык разработан в 1971 году и назван в честь Влеза Паскаля — французского ученого, изобретателя механической вычислительной машины. Автор языка Паскаль — швейцарский профессор Никлаус Вирт.
Паскаль — это универсальный язык программирования, позволяющий решать самые разнообразные задачи обработки информации.
Команду алгоритма, записанную на языке программирования, принято называть оператором.
Программа на Паскале близка по своему виду к описанию алгоритма на АЯ. Сравните алгоритм решения уже знакомой вам задачи деления простых дробей с соответствующей программой на Паскале:
Структура программы на Паскале
Даже не заглядывая в учебник по Паскалю, в этой программе можно все понять (особенно помогает знание английского языка).
Заголовок программы начинается со слова Program (программа), за которым следует произвольное имя, придуманное программистом:
Program <имя программы>;
Раздел описания переменных начинается со слова Var (variables — переменные), за которым идет список имен переменных через запятую. Тип указывается после двоеточия. В стандарте языка Паскаль существуют два типа числовых величин: вещественный и целый. Слово integer обозначает целый тип (является идентификатором целого типа). Вещественный тип обозначается словом real. Например, раздел описания переменных может быть таким:
var a, b: integer; с, d: real;
Идентификаторы переменных составляются из латинских букв и цифр; первым символом обязательно должна быть буква.
Раздел операторов — основная часть программы. Начало и конец раздела операторов программы отмечаются служебными словами begin (начало) и end (конец). В самом конце программы ставится точка:
begin
<операторы>
end.
Операторы ввода, вывода, присваивания
Ввод исходных данных с клавиатуры происходит по оператору read (read — читать) или readln (read line — читать строку):
read(<список переменных>)
или readln(<список переменных>)
При выполнении команды ввода компьютер ожидает действий пользователя. Пользователь набирает на клавиатуре значения переменных в том порядке, в каком переменные указаны в списке, отделяя их друг от друга пробелами. Одновременно с набором данных на клавиатуре они появляются на экране. В конце нажимается клавиша <ВВОД> (<Enter>). Разница в выполнении операторов readln и read состоит в том, что после выполнения ввода по оператору readln экранный курсор перемещается в начало новой строки, а по оператору read этого не происходит.
Вывод результатов происходит по оператору write (write — писать) или writeln (write line — писать в строку):
write(<список вывода>)
или writeln(<список вывода>)
Результаты выводятся на экран компьютера в порядке их перечисления в списке. Элементами списка вывода могут быть константы, переменные, выражения.
Разница в выполнении операторов writeln и write состоит в том, что после выполнения вывода по оператору writeln экранный курсор перемещается в начало новой строки, а по оператору write этого не происходит.
Арифметический оператор присваивания на Паскале имеет следующий формат:
<числовая переменная>:=<арифметическое выражение>
Арифметическое выражение может содержать числовые константы и переменные, знаки арифметических операций, круглые скобки. Кроме того, в арифметических выражениях могут присутствовать функции.
Знаки основных арифметических операций записываются так:
+ сложение, - вычитание, * умножение, / деление.
Правила записи арифметических выражений
Запись арифметических выражений на Паскале похожа на обычную математическую запись. В отличие от математики, где часто пропускается знак умножения (например, пишут 2А), в Паскале этот знак пишется обязательно: 2*А. Например, математическое выражение
А2 + В2 — 12С
на Паскале записывается так:
А*А + В*В — 12*С
Это же выражение можно записать иначе:
SQR(А) + SQR(В) — 12*C
Здесь использована функция возведения в квадрат — SQR. Аргументы функций всегда пишутся в круглых скобках.
Последовательность выполнения операций определяется по их приоритетам (старшинству). К старшим операциям относятся умножение (*) и деление (/). Операции сложения и вычитания — младшие. В первую очередь выполняются старшие операции. Несколько операций одинакового старшинства, записанные подряд, выполняются в порядке их записи слева направо. Приведенное выше арифметическое выражение будет вычисляться в следующем порядке (порядок вычислений указан цифрами сверху):
Круглые скобки в арифметических выражениях влияют на порядок выполнения операций. Как и в математике, в первую очередь выполняются операции в скобках. Если имеется несколько пар вложенных скобок, то сначала выполняются операции в самых внутренних скобках. Например:
Пунктуация Паскаля
Необходимо строгое соблюдение правописания (синтаксиса) программы. В частности, в Паскале однозначно определено назначение знаков пунктуации.
Точка с запятой (;) ставится в конце заголовка программы, в конце раздела описания переменных, является разделителем описания переменных в разделе переменных и разделителем операторов. Перед словом end точку с запятой можно не ставить.
Запятая (,) является разделителем элементов во всевозможных списках: списке переменных в разделе описания, списках вводимых и выводимых величин.
Текст программы заканчивается точкой.
Строгий синтаксис в языке программирования необходим потому, что компьютер является формальным исполнителем программы. Если, допустим, разделителем в списке переменных должна быть запятая, то любой другой знак будет восприниматься как ошибка. Если точка с запятой является разделителем операторов, то в качестве оператора компьютер воспринимает всю часть текста программы от одной точки с запятой до другой. Если программист забыл поставить «;» между какими-то двумя операторами, то компьютер будет принимать их за один с неизбежной ошибкой.
В программу на Паскале можно вставлять комментарии. Комментарий — это пояснение к программе, которое записывается в фигурных скобках. В комментариях можно использовать русские буквы. На исполнение программы комментарий никак не влияет.
Заметим, что в Паскале нет различия между строчными и прописными буквами. Например, для Паскаля тождественны следующие варианты записи: begin, Begin, BEGIN, BeGiN. Использование строчных или прописных букв — дело вкуса программиста.
xn—-7sbbfb7a7aej.xn--p1ai