Типы данных, переменные, операторы

Содержание

Слайд 2

Ключевые слова В языке Java зарезервированы ключевые слова, которые нельзя использовать

Ключевые слова
В языке Java зарезервированы ключевые слова, которые нельзя использовать в

качестве идентификаторов (имен переменных, классов или методов.

Ключевые слова const и goto зарезервированы, но не используются. При попытке их использовать произойдет ошибка на этапе компиляции.

Kolesnikov D.O. SED KNURE

Слайд 3

Замечание. Слово main не относится к ключевым. Замечание. К ключевым словам

Замечание. Слово main не относится к ключевым.
Замечание. К ключевым словам не

относятся литералы: true, false и null, которые также нельзя использовать в качестве идентификаторов.

Kolesnikov D.O. SED KNURE

Слайд 4

Пробельные символы К пробельным символам в Java относятся все символы, которые

Пробельные символы
К пробельным символам в Java относятся все символы, которые отделяют

синтаксические единицы языка (лексемы) друг от друга.

Kolesnikov D.O. SED KNURE

Слайд 5

К пробельным символам в Java относятся символы с десятичными кодами: 32

К пробельным символам в Java относятся символы с десятичными кодами:
32

(SP - пробел);
9 (HT - горизонтальная табуляция);
12 (FF - перевод страницы);
10 (LF - новая строка);
13 (CR - возврат каретки);
упорядоченное сочетание CRLF.
Переводом строки в Java является любой из трех пробельных символов: CR, LF, CRLF

Kolesnikov D.O. SED KNURE

Слайд 6

Замечание. Форматирование, сделанное с помощью пробельных символов, никак не влияет на

Замечание. Форматирование, сделанное с помощью пробельных символов, никак не влияет на

работу компилятора. Следующие три примера кода эквивалентны относительно результата компиляции.
int x = 7;
int
x
=
7;
int x = 7;

Kolesnikov D.O. SED KNURE

Слайд 7

Замечание. Многострочный комментарий также может выполнять функции пробельного символа. Следующий пример

Замечание. Многострочный комментарий также может выполнять функции пробельного символа. Следующий пример

эквивалентен трем предыдущим.
int/**/x = 7;

Kolesnikov D.O. SED KNURE

Слайд 8

Идентификаторы Идентификаторы используются в качестве имен классов, методов и переменных. Идентификатор

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

любой последовательностью букв нижнего и верхнего регистров национальных алфавитов, цифр, символа подчеркивания _ и знака $. Он не должен начинаться с цифры.
Примеры правильных идентификаторов:
count _x $test y5
Примеры неправильных идентификаторов:
#count 2x .test test-4

Kolesnikov D.O. SED KNURE

Слайд 9

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

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

Не рекомендуется для этих целей использовать знак $.
Замечание. Идентификаторы могут состоять из символов, которые не относятся к национальным алфавитам. Класс Character содержит методы
public static boolean isJavaIdentifierPart(int codePoint)
public static boolean isJavaIdentifierStart(int codePoint)
которые позволяют определить может ли быть использован символ с заданным кодом в качестве составной части идентификатора.

Kolesnikov D.O. SED KNURE

Слайд 10

Типы данных Все типы данных Java делятся на две категории -

Типы данных
Все типы данных Java делятся на две категории - примитивные

и ссылочные:
Примитивные типы
числа: char, byte, short, int, long, float, double
логический: boolean
Ссылочные типы
классы
интерфейсы
массивы
null тип

Kolesnikov D.O. SED KNURE

Слайд 11

Существует 8 примитивных (простых) типов данных. Kolesnikov D.O. SED KNURE

Существует 8 примитивных (простых) типов данных.

Kolesnikov D.O. SED KNURE

Слайд 12

Автоматическое преобразование примитивных типов Между примитивными типами Java разрешены следующие преобразования,

Автоматическое преобразование
примитивных типов
Между примитивными типами Java разрешены следующие преобразования, которые выполняются

автоматически.

Kolesnikov D.O. SED KNURE

Слайд 13

Штриховой линией отмечены разрешенные автоматические преобразования, которые при определенных значениях переменной

Штриховой линией отмечены разрешенные автоматические преобразования, которые при определенных значениях переменной

могут выполняться с потерей информации.
int x = 0x7F_FF_FF_AF;
System.out.println(x); // ==> 2147483567
float y = x; x = (int)y;
System.out.println(x); // ==> 2147483520
При преобразованиях, отмеченных сплошными стрелками, потери информации не происходит.

Kolesnikov D.O. SED KNURE

Слайд 14

Замечание. Тип int может содержать максимальное по величине число, которое может

Замечание. Тип int может содержать максимальное по величине число, которое может

быть записано в двоичной форме с помощью 31-го бита.
Тип float для записи последовательности цифр использует мантиссу емкостью в 23 бита, а double – 52 бита.
Поэтому, любое число типа int может поместиться в мантиссу переменной типа double, но существуют такие числа типа int, которые не поместятся в мантиссу переменной типа float.
Аналогично, большие числа типа long, для записи которых применяются 64 бита, могут не поместиться в мантиссу вещественных переменных float (23 бита) и double (52 бита).

Kolesnikov D.O. SED KNURE

Слайд 15

Тип числовой константы по умолчанию По умолчанию (без суффиксов): целочисленные константы

Тип числовой константы по умолчанию
По умолчанию (без суффиксов):
целочисленные константы имеют тип

int;
вещественные константы имеют тип double.
Следующее выражение вызовет ошибку компиляции.
float y = 34.4; // 34.5 имеет тип double

Kolesnikov D.O. SED KNURE

Слайд 16

Преобразования byte short Переменным типа byte и short может быть присвоено

Преобразования
byte <== int
short <== int
Переменным типа byte и short может быть

присвоено значение целочисленной константы (которая по умолчанию имеет тип int) если ее значение не выходит за пределы диапазона соответствующего типа (при этом выполнится автоматическое преобразование типа).
byte x = 120;
short y = -1234;

Kolesnikov D.O. SED KNURE

Слайд 17

Системы счисления записи числовых констант При записи целочисленных констант может быть

Системы счисления записи числовых констант
При записи целочисленных констант может быть использовано

три системы счисления: десятичная, шестнадцатеричная и восьмеричная (начиная с JSE7 четыре – еще бинарная форма).
Шестнадцатеричные константы предваряются комбинацией 0x и состоят из последовательности шестнадцатеричных цифр (0123456789ABCDEF).
int x = 0x1F; // эквивалентно int x = 31;
int y = -0x12; // эквивалентно int y = -18;
Восьмеричные константы предваряются 0 (нулем) и состоят из последовательности восьмеричных цифр (01234567).
int x = 011; // эквивалентно int x = 9;
int y = -002; // эквивалентно int y = -2;

Kolesnikov D.O. SED KNURE

Слайд 18

1.9. Преобразование char Переменной типа char можно присваивать значение целочисленной константы,

1.9. Преобразование
char <== int
Переменной типа char можно присваивать значение целочисленной константы,

если ее значение не выходит за пределы интервала [0, 216-1] (при этом переменна типа char будет содержать символ Unicode с кодом, который соответствует целочисленной константе).
char ch1 = 70; // символ F
char ch2 = 65000; // незаполненная область Unicode

Kolesnikov D.O. SED KNURE

Слайд 19

Замечание. Целочисленная константа должна быть определена в правой части присваивания либо

Замечание. Целочисленная константа должна быть определена в правой части присваивания либо

непосредственно в виде числа, либо через арифметическое выражение, имеющее целый тип и не содержащее переменные (даже целочисленные).
int x = 70;
char ch = 23*3; // ch = 'B'
ch = 70; // ch = 'F'
ch = x; // ошибка компиляции
ch = x/2; // ошибка компиляции

Kolesnikov D.O. SED KNURE

Слайд 20

Тип арифметического выражения Арифметическое выражение, имеет тип результата, который определяют исходя

Тип арифметического выражения
Арифметическое выражение, имеет тип результата, который определяют исходя из

типов входящих в это выражение компонент (переменных и литералов).

Kolesnikov D.O. SED KNURE

Слайд 21

Преобразование int Переменной типа int можно присвоить значение переменной типа char,

Преобразование
int <== char
Переменной типа int можно присвоить значение переменной типа char,

при этом в переменную будет загружен код символа.
char ch = 'F';
int x = ch; // x = 70

Kolesnikov D.O. SED KNURE

Слайд 22

Замечание. Несмотря на то, что целочисленный тип short и тип char

Замечание. Несмотря на то, что целочисленный тип short и тип char

имеют одинаковую физическую емкость в 2 байта, преобразование из char в short автоматически не происходит, т.е. при присваивании необходимо применить явное преобразование типов.
char ch = 'F';
short x = (short)ch; // x = 70
Замечание. Так как тип int может быть преобразован без явного указания оператора преобразования типа в типы long, float и double, то таким же образом значение переменной типа char можно присваивать переменным указанных типов.

Kolesnikov D.O. SED KNURE

Слайд 23

Вещественные константы Десятичная целочисленная константа вместе со сразу следующей за ней

Вещественные константы
Десятичная целочисленная константа вместе со сразу следующей за ней десятичной

точкой является вещественной константой.
int x = 123.; // вызовет ошибку компиляции,
// т.к. 123. имеет тип double
Точка в конце шестнадцатеричных целочисленных констант не допускается.

Kolesnikov D.O. SED KNURE

Слайд 24

Восьмеричная целочисленная константа вместе со сразу за ней следующей десятичной точкой

Восьмеричная целочисленная константа вместе со сразу за ней следующей десятичной точкой

является вещественной константой, при этом восьмеричные цифры интерпретируются как десятичные.
int x = 011; // x = 9 в десятичной сист. счисл.
double y = 011.; // y = 11.0 в десятичной сис. счисл.
float z = 09.; // вызовет ошибку компиляции, т.к. 09.
// вещественная константа типа double
Замечание. Точка в конце десятичных и восьмеричных целочисленных констант эквивалентна символу «d» или «D», т.е. указывает на то, что число относится к типу double.

Kolesnikov D.O. SED KNURE

Слайд 25

Запрет преобразований вида числовой тип boolean Логический тип boolean не может

Запрет преобразований вида
числовой тип <==> boolean
Логический тип boolean не может быть

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

Kolesnikov D.O. SED KNURE

Слайд 26

Escape последовательности Для записи неотображаемых на экране символов Unicode можно использовать

Escape последовательности
Для записи неотображаемых на экране символов Unicode можно использовать escape

последовательности вида \uXXXX, где XXXX – четыре шестнадцатеричных цифры, составляющие код символа (диапазон [0, 216-1]). Escape последовательность представляет собой символ и может быть использована, в том числе, и в коде программы.
Для того, чтобы загрузить в переменную char символ, которому соответствует определенная escape последовательность, при присваивании последнюю следует заключить в одинарные кавычки.
ch\u0061r ch = '\u0061'; // эквивалентно char ch = 'a';

Kolesnikov D.O. SED KNURE

Слайд 27

1.15. Главная функция программы Главная функция программы main должна: иметь уровень

1.15. Главная функция программы
Главная функция программы main должна:
иметь уровень доступа public

(чтобы быть доступной для JVM);
быть принадлежностью главного класса программы, т.е. static;
не возвращать никакого значения, т.е. иметь тип void;
иметь в точности один параметр типа массив строк.
public static void main(String args[])

Kolesnikov D.O. SED KNURE

Слайд 28

В единственный параметр функции main заносятся значения параметров командной строки (если

В единственный параметр функции main заносятся значения параметров командной строки (если

они есть).
Первый элемент массива с номером 0 содержит значение первого параметра, а не имя главного класса программы (как в языке C)
Замечание. Если в программе (отдельном самостоятельном приложении) отсутствует функция main или же эта функция определена с нарушением вышеописанных требований к ней, программа откомпилируется, но при попытке ее выполнить JVM выбросит исключение.
java.lang.NoSuchMethodError: main

Kolesnikov D.O. SED KNURE

Слайд 29

Логические операции по краткой схеме Если первый операнд логической операции OR

Логические операции по краткой схеме
Если первый операнд логической операции OR по

краткой схеме «||» равен true (истина) то и результат равен true без вычисления выражения, которое идет вторым операндом операции.
При вычислении результата операции OR по полной схеме всегда вычисляются оба операнда.
boolean A = true, B;
B = A || (A = false); // B = true, A = true
B = A | (A = false); B = true, A = false

Kolesnikov D.O. SED KNURE

Слайд 30

Если первый операнд логической операции AND по краткой схеме «&&» равен

Если первый операнд логической операции AND по краткой схеме «&&» равен

false (ложь) то и результат равен false без вычисления выражения, которое идет вторым операндом операции.
При вычислении результата операции AND по полной схеме всегда вычисляются оба операнда.
boolean A, B = false;
A = B && (B = true); // А = false, B = false
A = B & (B = true); // А = false, B = true

Kolesnikov D.O. SED KNURE

Слайд 31

Замечание. Применение операций «||» и «&&» позволяет добиться экономии вычислительных ресурсов

Замечание. Применение операций «||» и «&&» позволяет добиться экономии вычислительных ресурсов

и дает возможность реализовать ветвление программы наподобие оператора if.
Операция && очень часто применяется с целью избежать выполнения выражения, составляющего второй операнд, в том случае, когда его выполнение может выбросить исключение при определенном условии; это условие учитывается в первом операнде.
int[] array = … ;
int k = … ;
if (k < array.length && array[k] == 0) {// do something}

Kolesnikov D.O. SED KNURE

Слайд 32

Параметр оператора switch В качестве параметра оператора ветвления switch могут быть

Параметр оператора switch
В качестве параметра оператора ветвления switch могут быть значения

только типа int и любых других, которые к нему могут быть преобразованы автоматически (т.е. byte, short и char), также допускается использование значений перечислимого типа enum, начиная c JSE7 также String.
Таким образом, множество допустимых типов параметра оператора switch исчерпывается множеством {int, char, byte, short}, {enum}, {String}.
Если параметр будет иметь любой другой тип, то такой код не откомпилируется.

Kolesnikov D.O. SED KNURE

Слайд 33

Унарные операции «++» и «--» Унарные операции инкремента и декремента имеют

Унарные операции «++» и «--»
Унарные операции инкремента и декремента имеют две

формы, различающиеся по записи и действию: префиксную и постфиксную. Префиксная форма увеличивает(уменьшает) значение переменной на единицу до того, как это значение будет использовано в выражении, постфиксная – после использования значения переменной.
int x = 1, y = 1, z;
z = ++x; // x = 2, z = 2
z = y++; // y = 2, z = 1

Kolesnikov D.O. SED KNURE

Слайд 34

Замечание. Операции «++» и «--» могут применяться только к переменным. int

Замечание. Операции «++» и «--» могут применяться только к переменным.
int x

= 5;
--(x++); // ошибка компиляции, т.к. выражение (x++)
// не является переменной:

Kolesnikov D.O. SED KNURE

Слайд 35

Арифметические операции побитового сдвига как замена умножению и делению Арифметические операции

Арифметические операции
побитового сдвига как замена
умножению и делению
Арифметические операции побитового

сдвига могут быть использованы в качестве замены умножению и целочисленному делению на числа, которые являются степенями 2-ки.
int x = 15;
x = x >> 2; // эквивалентно x = x/4;
x = x << 3; // если x ≠ 0 эквивалентно x = x*8;

Kolesnikov D.O. SED KNURE

Слайд 36

Логические операции Существует две группы логических операторов: Булевы логические операции применяются

Логические операции
Существует две группы логических операторов:
Булевы логические операции применяются к логическим

(булевым) переменным/константам

Kolesnikov D.O. SED KNURE

Слайд 37

Битовые логические операции применяются к целочисленным переменным/константам побитно. Булевы логические операции

Битовые логические операции применяются к целочисленным переменным/константам побитно.

Булевы логические операции

«!», «||» и «&&» нельзя применять к целочисленным константам/переменным.
Побитовую логическую операцию «~» нельзя применять к логическим константам/переменным.

Kolesnikov D.O. SED KNURE

Слайд 38

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

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

битовых логических операций всегда является целочисленная константа.

Kolesnikov D.O. SED KNURE

Слайд 39

Операторы «break» и «continue» Оператор break может находится внутри тела циклов

Операторы «break» и «continue»
Оператор break может находится внутри тела циклов или

операторов switch. Выполнение этого оператор внутри тела цикла (оператора switch) прерывает выполнение цикла (оператора switch) и выполнение передается следующей за циклом (оператором switch) строке кода.
Оператор continue допускается только внутри тела циклов. Выполнение этого оператора прерывает выполнение текущей итерации и следующей выполняемой строкой будет либо следующая итерация, либо, если прерванная итерация была последней, первая строка после цикла.

Kolesnikov D.O. SED KNURE

Слайд 40

Параметры оператора цикла «for» Оператор цикла for может в качестве первого

Параметры оператора цикла «for»
Оператор цикла for может в качестве первого и

третьего параметров иметь выражения, состоящие из последовательности операторов присваивания (с операцией) или операций инкремента/декремента, разделенных запятыми.
int x, y, z;
for (x = 1, y = 2, z = 3; x+y+z < 100; x++, y++, z++) {
System.out.println(x+" "+y+" "+z);
}

Kolesnikov D.O. SED KNURE

Слайд 41

Операторы цикла В Java существует три оператора цикла: for, while и

Операторы цикла
В Java существует три оператора цикла: for, while и do/while.
По

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

Kolesnikov D.O. SED KNURE

Слайд 42

Объявление массивов При объявлении массивов квадратные скобки могут стоять как перед

Объявление массивов
При объявлении массивов квадратные скобки могут стоять как перед переменной

так и после.
Если перед переменной ставятся хотя бы одна пара квадратных скобок, то запись возможна без пробелов.
// x – трехмерный массив целых чисел, требующий
// дальнейшей инициализации:
int[]x[][] = new int[5][][];

Kolesnikov D.O. SED KNURE

Слайд 43

Замечание. При выделении памяти под массив с помощью оператора new (т.е.

Замечание. При выделении памяти под массив с помощью оператора new (т.е.

при создании массива), элементы массива заполняются нулями только в том случае, когда в правой части от оператора new и типа элемента массива в квадратных скобках указаны все размерности массива.
Допускается указывать только первые размерности, но при этом потребуется дальнейшая процедура по размещению в памяти с помощью оператора new не созданных размерностей. Это позволяет создавать непрямоугольные массивы.

Kolesnikov D.O. SED KNURE

Слайд 44

Пример непрямоугольного массива: int[][]x = new int[5][]; for (int j =

Пример непрямоугольного массива:
int[][]x = new int[5][];
for (int j = 0; j

< 5; j++)
x[j] = new int[j];
Массив x будет иметь «треугольную структуру»:
0
0 0
0 0 0
0 0 0 0
0 0 0 0 0

Kolesnikov D.O. SED KNURE

Слайд 45

Массив – это объект Массивы в Java являются объектами: каждый массив

Массив – это объект
Массивы в Java являются объектами: каждый массив является

наследником базового класса java.lang.Object и содержит методы, которые в нем определены.
Массивы наследовать нельзя.
Замечание. Элементы массива можно рассматривать как поля класса-массива. При создании массива с помощью оператора new (с указанием размерности) эти поля инициализируются значениями по умолчанию для соответствующих типов (для численных типов – 0; для boolean – false; для объектов – null):
boolean[] f = new boolean[2]; // f[0] == f[1] == false

Kolesnikov D.O. SED KNURE

Слайд 46

Инициализация массивов Массивы можно инициализировать при объявлении двумя способами. // правая

Инициализация массивов
Массивы можно инициализировать при объявлении двумя способами.
// правая часть

равенства - массив-константа:
int[][] x = {{1, 2},{3, 4}};
и
// правая часть равенства - анонимный массив:
int[][] x = new int[][] {{1, 2},{3, 4}};

Kolesnikov D.O. SED KNURE

Слайд 47

При передаче объекта-массива в качестве параметра метода может быть использован анонимный

При передаче объекта-массива в качестве параметра метода может быть использован анонимный

массив.
public static void main (String args []) throws Exception {
// new int[] {1, 2, 3, 4, 5} – анонимный массив
print(new int[] {1, 2, 3, 4, 5});
}
public static void print(int[] x) {
for (int j = 0; j < x.length; j++) System.out.println(x[j]);
}

Kolesnikov D.O. SED KNURE

Слайд 48

Оператор «switch» Если в теле оператора switch выполняется блок код, соответствующий

Оператор «switch»
Если в теле оператора switch выполняется блок код, соответствующий некоторому

case выражению и этот код не содержит оператор break, то после выполнения кода управление будет передано следующей case конструкции, даже если значение селектора (выражения, которое прописано в заголовке оператора switch) не совпадает со значением выражения, стоящего в заголовке этой следующей case конструкции.
int x, y = 1;
switch (y) {
case 1: x = 1;
case 2: x = 2;
} // x = 2

Kolesnikov D.O. SED KNURE

Слайд 49

Управление будет передаваться каждой последующей конструкции case вплоть до тех пор,

Управление будет передаваться каждой последующей конструкции case вплоть до тех пор,

пока не встретится оператор break или пока не исчерпаются все case выражения. В последнем случае будет выполнена конструкция default (если она есть) и оператор switch закончит свое выполнение.
Замечание. Конструкцию default обычно ставят после всех case конструкций, хотя ее можно ставить и между case-ами.
int x = 0, y = 3;
switch (y) {
case 1: x = 1; break;
default: x = 100;
case 2: x = 2;
} // x = 2

Kolesnikov D.O. SED KNURE

Слайд 50

В любом случае в конце тела case/default выражений следует ставить оператор

В любом случае в конце тела case/default выражений следует ставить оператор

break. Этот оператор не ставят только в том случае, когда нескольким значениям селектора switch должно соответствовать одно и тоже действие.
int x = 0, y = 3;
switch (y) {
case 1:
case 2: x = 1; break;
case 3:
case 4: x = 4; break;
default: x = 0;
} // x = 4

Kolesnikov D.O. SED KNURE

Слайд 51

Приоритет логических операций Все логические операции упорядочены по приоритету. Kolesnikov D.O. SED KNURE

Приоритет логических операций
Все логические операции упорядочены по приоритету.

Kolesnikov D.O. SED KNURE

Слайд 52

Очередность выполнения булевых логических операций: Kolesnikov D.O. SED KNURE

Очередность выполнения булевых логических операций:

Kolesnikov D.O. SED KNURE

Слайд 53

Очередность выполнения битовых логических операций: Kolesnikov D.O. SED KNURE

Очередность выполнения битовых логических операций:

Kolesnikov D.O. SED KNURE

Слайд 54

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

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

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

Kolesnikov D.O. SED KNURE

Слайд 55

Булева логическая операция «!» Операция «!» предназначена для вычисления отрицания логической

Булева логическая операция «!»
Операция «!» предназначена для вычисления отрицания логической константы.

Операнд и результат операции имеют тип boolean.
Пример правильного использования операции:
boolean x = false, y = !x;
Пример неправильного использования операции:
byte x = 0;
boolean y = !x;

Kolesnikov D.O. SED KNURE

Слайд 56

Операции и операторы, результат которых может иметь логический тип К операциям

Операции и операторы,
результат которых может
иметь логический тип
К операциям и операторам,

которые могут иметь в качестве результата значение логического типа (boolean) относятся следующие.
1) оператор приведения типов: (type)
2) оператор проверки типа: instanceof
3) операции сравнения: < <= > >= == !=
4) булевы логические операции: ! & && | || ^
5) оператор выбора: ?:

Kolesnikov D.O. SED KNURE

Слайд 57

Операции и операторы, операндами которых может иметь логический тип К операциям

Операции и операторы,
операндами которых может
иметь логический тип
К операциям и операторам,

которые могут в качестве одного из своих операндов иметь значение логического типа, относятся следующие.
1) оператор приведения типов: (type)
2) операции сравнения: == !=
3) булевы логические операции: ! & && | || ^
4) оператор выбора: ?:

Kolesnikov D.O. SED KNURE

Слайд 58

Операция деления « / » Операция деления «/» в качестве операндов

Операция деления « / »
Операция деления «/» в качестве операндов может

иметь вещественные или целочисленные константы.
Результатом операции является числовая константа, тип которой зависит от типов операндов.
Если оба операнда (делимое и делитель) имеют целочисленный тип, то и результат будет иметь целочисленный тип, т.е. int (будет происходить отбрасывание остатка). Например блок кода
int x = 343; int y = 43; float z = x/y; // z = 7
загрузит в переменную z значение 7, т.к. 343/43 = 7,97...

Kolesnikov D.O. SED KNURE

Слайд 59

Операция определения остатка от деления « % » Операция «%» предназначена

Операция определения остатка
от деления « % »
Операция «%» предназначена для определения

остатка от деления двух числовых значений. Пример правильного использования операции:
int x = 17;
int y = 5;
float z = x % y; // z = 2
В результате выполнения этого блока кода в переменную z будет загружено значение 2, т.к. 17 = 3*5+2.

Kolesnikov D.O. SED KNURE

Слайд 60

Практические задания 1.1. Написать программу, которая находит наибольший общий делитель двух

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

положительных чисел.
1.2. Написать программу, которая находит сумму цифр произвольного целого числа.
1.3. Написать программу проверки того, что заданное число Х – простое (т.е. не делится без остатка ни на какие числа, кроме себя и 1). Число X задавать в коде программы.

Kolesnikov D.O. SED KNURE

Слайд 61

1.4. Сосчитать сумму ряда 1! - 2! + 3! – 4!

1.4. Сосчитать сумму ряда 1! - 2! + 3! – 4!

+ 5! - … + n! для заданного числа n > 0. Чем шире диапазон возможных значений n, тем лучше. Число n задавать в коде программы.
1.5. Подсчитать, сколько шестизначных цифр имеют равную сумму трех первых и трех последних цифр.
1.6. Разместить в памяти массив из 20 элементов и заполнить его рядом Фиббоначчи: 1, 1, 2, 3, 5, 8, 13, 21, … В этом ряду каждое следующее число является суммой двух предыдущих.
1.7. Создать целый массив из 100 элементов и заполнить его простыми числами: 2, 3, 5, 7, 11, 13, 17, …

Kolesnikov D.O. SED KNURE