Основные операции

Знаки операций в языках программирования обеспечивают формирование и последующие вычисление выражений. Все операции делят на унарные и бинарные. Следует учитывать, что один и тот же символ может обозначать как унарную, так и бинарную операцию в зависимости от контекста. Например, символ “-” может быть унарным или бинарным минусом. Кратко опишем основные операции:

 

+ плюс, унарный и бинарный (+x; x+y);  
- минус, унарный и бинарный (-x; x-y);  
++ увеличение на единицу (инкремент): (x++ - увеличение значения переменной x после ее использования, ++x – увеличение значения переменной x до ее использования);  
-- уменьшение на единицу (декремент): (x-- - уменьшение значения переменной x после ее использования, --x – уменьшение значения переменной x до ее использования);  
& унарная операция получения адреса операнда (&x) ,бинарная поразрядная конъюнкция (И) битовых представлений значений целочисленных операндов, например, 6&5 равно 4, действительно 1102&1012 равно 1002;  
~ унарная операция поразрядного инвертирования внутреннего двоичного кода целочисленного аргумента (~x);    
| бинарная поразрядная дизъюнкция (ИЛИ) битовых представлений значений целочисленных операндов, например, 6|5 равно 7, действительно, 1102|1012 равно 1112;  
^ бинарная операция поразрядного исключающего ИЛИ (сложение по модулю 2) битовых представлений целочисленных операндов, например, 6^5 равно 3, действительно, 1102|1012 равно 0112;  
<< (>>) сдвиг влево (вправо) битового представления значения левого операнда на количество разрядов, равное значению правого операнда, например, 5>>1 равно 2, действительно, 1012 при сдвиге вправо на 1 разряд дает 0102;  
* унарная операция обращения по адресу (операция разыменования), бинарная операция умножения;  
/ бинарная операция деления; при целочисленных операндах абсолютное значение результата округляется до целого, например, 20/3 равно 6;  
% получение остатка от деления целочисленных операндов, например, 20%3 равно 2;  
<(<=) меньше (меньше или равно) Результат операций сравнений целочисленный: 0 (ложь) или 1(истина);  
>(>=) больше (больше или равно)
== равно  
!= не равно  
&& конъюнкция (И) арифметических операндов или отношений; целочисленный результат: 0 (ложь) или 1(истина);  
|| дизъюнкция (ИЛИ) арифметических операндов или отношений; целочисленный результат: 0 (ложь) или 1(истина);  
= присвоение (присвоить значение выражения операнда из правой части операнду из левой части: x=20-2*y);  
·= где · - одни из знаков операций *, /, %, +, - ,&,|,^,<<,>>. Операция x·=у эквивалентна x=x·y, например, x*=2; эквивалентно x=x*2;  
, несколько выражений, разделенных запятой вычисляются слева направо, в качестве результата сохраняется тип и значение самого правого выражения, например, d=4,d*2 равно 8;  
       

 

Кроме того, в языке С++ определена условная операция,которая используется с тремя операндами и имеет формат:

выражение1 ? выражение2 : выражение3

Если выражение1 истинно, то есть не равно 0, то результатом становится значение выражения2, иначе результатом становится значение выражения3.

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

Теперь, когда введены основные типы данных и операции, можно перейти к решению простейших задач.

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

#include <iostream.h>

#include <math.h>

void main ()

{

float a,b,S,d;

cout << "\nEnter a,b ";

cin >>a>>b;

S=a*b;

d=sqrt(a*a+b*b);

cout<< "\nSquare = "<<S<<", diagonal= "<<d;

}

Задания

Каждому студенту рекомендуется выполнить хотя бы одно из упражнений 1–12.

1. Вычислить целую часть среднего арифметического и среднего геометрического трех вещественных чисел.

2. Вычислить длину окружности и площадь круга с заданным радиусом R, а также длину дуги окружности в n°.

3. Вычислить периметр и площадь прямоугольного треугольника по двум заданным катетам.

4. По длинам гипотенузы и катета прямоугольного треугольника определить длину второго катета и площадь треугольника.

5. По длинам двух сторон треугольника и углу (в градусах) между ними найти площадь треугольника и параллелограмма, построенного на этих сторонах, а также по две высоты треугольника и параллелограмма, опущенные на заданные стороны.

6. По заданным координатам (x1,y1), (x2,y2), (x3,y3) вершин треугольника найти его площадь:

.

7. По трем заданным ребрам прямоугольного параллелепипеда найти его объем и диагональ.

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

9. По заданному радиусу найти площадь поверхности и объем шара.

10. По трем заданным сторонам треугольника a ,b, c найти высоту, опущенную на сторону a:

11. По трем заданным сторонам треугольника a ,b, c найти радиус вписанного в него круга:

.

12. По трем заданным сторонам треугольника a ,b, c найти радиус описанного вокруг него круга:

.

Конструкции выбора

К конструкциям выбора в С++ относят условную конструкцию if и переключатель switch.

Синтаксис условной конструкции:

if (выражение) оператор1;

if (выражение) оператор1; else оператор2;

Выражение должно быть скалярным и иметь арифметический тип или тип указателя. В операторе if оператор1 выполняется в том случае, если выражение ненулевое, иначе выполняется оператор2или не выполняются никакие действия, если оператор2не задан, то есть отсутствует else. В частности, если a целое, то if (a) эквивалентно if (a != 0).

Часто используются в условиях логические операции &&, ||, !. Операции && и || не будут вычислять второй аргумент, если это не нужно. Например, if (p && r) … вначале проверяет, является ли p не нулем, и только, если это так, то проверяет r.

Некоторые простые операторы if могут быть с удобством заменены выражениями арифметического if. Например,

if (a <= b) max = b;

else max = a;

лучше выражается так: max = (a<=b) ? b : a;

В качестве операторов нельзя использовать описания, но можно использовать блоки, в которых, в частности, могут быть включены описания.

Пример 1. Напишите программу, которая вычисляет и выводит на экран значение

y= .

#include <iostream.h>

void main()

{

double x,y;

cout<< "\nEnter x: ";

cin >> x;

if ((x>0)||(x<-1)) y=1/x;

else y=x;

cout << "\ny="<<y;

}

Операторы в конструкции if в свою очередь могут быть условными, что позволяет организовывать цепочку проверок условий любой вложенности. Синтаксис языка предполагает, что при вложенных условиях операторов каждое else соответствует ближайшему к нему предшествующему if.

Пример 2. Используя вложенные уловные операторы, найти максимум из трех целых чисел.

#include <iostream.h>

void main()

{

int x,y,z, max;

cout << "Enter x,y,z: ";

cin >>x>>y>>z;

if (x<y)

if (y<z) max=z;

else max=y;

else

if (x<z) max=z;

else max=x;

cout <<"Max= "<< max;

}

В тексте соответствие if и else показано с помощью отступов.

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

switch (перключающее_выражение)

{case константное_выражение1: оператор1;

case константное_выражение2: оператор2;

. . .

case константное_выражениеn: операторn;

default:оператор;

}

Управляющая конструкция switchпередает управление к тому из помеченных с помощью case операторов, для которого значение константного выражения совпадает со значением переключающего выражения. Переключающее_выражение должно быть целочисленным или его значение должно приводится к целочисленному. В одном переключателе все константные_выражения должны иметь различные значения, но быть одного типа. Любой из операторов может быть помечен одной или несколькими метками вида case константное_выражение: , например, может использовать конструкция вида

case константное_выражение1: case константное_выражение2: оператор;

Если значение переключающего_выражения не совпадает ни с одним из константных_выражений, то выполняется переход к оператору, отмеченному меткой default, которая может и отсутствовать (при этом не выполняются никакие действия). Если не предусмотрены переходы и выходы из переключателя, то в нем последовательно выполняются все операторы, начиная с той метки, на которую передано управление. Для выхода из переключателя обычно используют оператор break.

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

#include <iostream.h>

void main()

{

char i;

cout<< "Enter number: ";

cin>>i;

cout<<'\n';

switch (i)

{

case '0': case '1': cout<<"one, ";

case '2': case '3': cout <<"three, ";

case '4': case '5': cout <<"five, ";

case '6': case '7': cout <<"seven, ";

case '8': case '9': cout <<"nine, "; break;//производим выход

// из переключателя

default: cout <<"It's not number";

}

}

Если, например, на клавиатуре будет введена цифра 4, то в результате выполнения программы на экран выведется: five, seven, nine.

 

Каждому студенту рекомендуется выполнить хотя бы одно из упражнений 1–12 заданий 1,2,3,4.

Задание 1. Обработка введенного символа

1. Считать символ и определить, является ли он цифрой.

2. Считать символ и определить, является ли он латинской буквой.

3. Считать символ и определить, является ли он русской буквой.

4. Считать символ и определить, является ли он прописной буквой русского или латинского алфавита.

5. Считать символ и определить, является ли он строчной буквой русского или латинского алфавита.

6. Считать символ и определить, является ли он гласной буквой русского алфавита.

7. Считать символ и определить, является ли он гласной буквой латинского алфавита.

8. Считать символ и определить, является его ASCII-код четным.

9. Считать два символа и выдавать на экран сообщение, код какого из них больше.

10. Считать два символа строчных латинских букв и определить, расположены ли они по алфавиту.

11. Считать два символа цифр и определить какая из них больше.

12. Считать скобку и определить, открывающая она или закрывающая. Возможны скобки (), {}, [], <>.

Задание 2. Вычисление значения функции

1. 2.

3. 4.

. 6.

  1. Если , то в противном случае z=0.
  2. Если x<0 или x>10, то z=x, в противном случае
  3. Если , то в противном случае y=a3.
  4. Если или , то в противном случае .
  5. Если x=y2 или y=x2, то z=0, в противном случае







Дата добавления: 2015-10-09; просмотров: 1037;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.036 сек.