Глухих Михаил Игоревич mailto:...
TRANSCRIPT
![Page 2: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/2.jpg)
Последовательность действий (обычно записанная формально), необходимая для решения определённой задачи
2
![Page 3: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/3.jpg)
Запись алгоритма на языке программирования (или в машинных кодах)
3
![Page 4: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/4.jpg)
Запись алгоритма на языке программирования (или в машинных кодах)
В более широком смысле – инструкция для компьютера, позволяющая ему решить определённую задачу
4
![Page 5: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/5.jpg)
Участок программы, также решающий определённую задачу (часть или всю задачу, решаемую программой)
5
![Page 6: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/6.jpg)
Участок программы, также решающий определённую задачу (часть или всю задачу, решаемую программой)
Имеет входы (параметры) и выход (результат)
6
![Page 7: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/7.jpg)
Участок программы, также решающий определённую задачу (часть или всю задачу, решаемую программой)
Имеет входы (параметры) и выход (результат)
Похожа на функцию в математике (но не полностью)
7
![Page 8: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/8.jpg)
8
fun sqr(x: Int) = x * x
fun = ключевое слово
sqr = имя функции
x: Int = параметр функции◦ Int = тип параметра функции
“= x * x” = тело функции◦ x * x = результат функции
* = операция
![Page 9: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/9.jpg)
Элементарные арифметические, логические и прочие действия, обозначаемые знаком операции = оператором
9
![Page 10: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/10.jpg)
Сложение a + b
Вычитание a – b
Умножение a * b
Деление a / b
Остаток от деления a % b
Скобки ( … )
10
![Page 11: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/11.jpg)
Тип подобен области допустимых значений в математике
11
![Page 12: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/12.jpg)
Тип подобен области допустимых значений в математике
Например, множеству целых чисел в математике соответствует целый тип в программировании
12
![Page 13: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/13.jpg)
Тип подобен области допустимых значений в математике
Например, множеству целых чисел в математике соответствует целый тип в программировании
Тип есть у параметра функции, результата функции, переменной, …
13
![Page 14: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/14.jpg)
Int = целое число -231 … 231 - 1
14
![Page 15: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/15.jpg)
Int = целое число -231 … 231 – 1
Double = вещественное число (примерно) -1.7 * 10308 … 1.7 * 10308
15
![Page 16: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/16.jpg)
Int = целое число -231 … 231 – 1
Double = вещественное число (примерно) -1.7 * 10308 … 1.7 * 10308
Boolean = true или false, истина или ложь
16
![Page 17: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/17.jpg)
Int = целое число -231 … 231 – 1
Double = вещественное число (примерно) -1.7 * 10308 … 1.7 * 10308
Boolean = true или false, истина или ложь
Char = символ (из таблицы Unicode), с кодом 0 … 216 - 1
17
![Page 18: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/18.jpg)
Int = целое число -231 … 231 – 1
Double = вещественное число (примерно) -1.7 * 10308 … 1.7 * 10308
Boolean = true или false, истина или ложь
Char = символ (из таблицы Unicode), с кодом 0 … 216 - 1
18
![Page 19: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/19.jpg)
Int = целое число -231 … 231 – 1
Double = вещественное число (примерно) -1.7 * 10308 … 1.7 * 10308
Boolean = true или false, истина или ложь
Char = символ (из таблицы Unicode), с кодом 0 … 216 – 1
String = строка = любое количество Char
19
![Page 20: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/20.jpg)
Int : 42, -256
Double : 1.0, 3.1415, 6.67e-11
Boolean : true, false
Char : 'a', 'z'
String : "Hello", ""
20
![Page 21: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/21.jpg)
Int : точный тип, Double : приближённый
21
![Page 22: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/22.jpg)
Int : точный тип, Double : приближённый
Диапазон значений Double гораздо шире
22
![Page 23: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/23.jpg)
Int : точный тип, Double : приближённый
Диапазон значений Double гораздо шире
Операции над целыми числами дают целый результат: 5 / 2 = 2
Операции над вещественными числами дают вещественный результат: 5.0 / 2.0 = 2.5, 5 / 2.0 = 2.5
23
![Page 24: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/24.jpg)
Int : точный тип, Double : приближённый
Диапазон значений Double гораздо шире
Операции над целыми числами дают целый результат: 5 / 2 = 2
Операции над вещественными числами дают вещественный результат: 5.0 / 2.0 = 2.5, 5 / 2.0 = 2.5
Преобразования: n.toDouble(), x.toInt()
24
![Page 25: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/25.jpg)
Используются, чтобы различать различные элементы программы
Есть у функций, параметров, переменных, типов, …
25
![Page 26: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/26.jpg)
Обязаны начинаться с буквы (или с символа _ что не рекомендуется)
Состоят из букв, цифр, символа _
Прописные и строчные буквы различаются
26
![Page 27: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/27.jpg)
Только латинские буквы, никаких моё_имя_123
Нет транслитерации, никаких dlinaOtrezka
27
![Page 28: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/28.jpg)
Только латинские буквы, никаких моё_имя_123
Нет транслитерации, никаких dlinaOtrezka
Имена функций, параметров, переменных начинаются со строчной буквы: segmentLength или calculateArea
Имена типов начинаются с прописной: Rectangle
28
![Page 29: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/29.jpg)
Параметр – это объект, существительное
Функция – это действие, глагол
29
![Page 30: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/30.jpg)
Пакет (package) Math◦ abs(x: Int), abs(x: Double) – модуль◦ sqrt(x: Double) – квадратный корень◦ pow(x: Double, y: Double) – x в степени y◦ sin/cos/tan(x: Double) – синус / косинус / тангенс,
аргумент задаётся в радианах◦ exp(x: Double) – e в степени x◦ log / log10(x: Double) – натуральный и
десятичный логарифмы◦ min / max(x: Int, y: Int) или (x: Double, y: Double) –
минимум и максимум из двух чисел◦ PI = 3.14…, E = 2.72…
30
![Page 31: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/31.jpg)
// Комментарий: дискриминант
fun discriminant(a: Double, b: Double, c: Double) = sqr(b) - 4 * a * c
// sqr(b) = вызов функции sqr
// b = аргумент функции sqr
31
![Page 32: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/32.jpg)
// Комментарий: дискриминант
fun discriminant(a: Double, b: Double, c: Double) = sqr(b) - 4 * a * c
// Комментарий: корень квадратного уравнения
fun sqRoot(a: Double, b: Double, c: Double) = (-b + Math.sqrt(discriminant(a, b, c))) / (2 * a)
// Math.sqrt(…) – вызов функции sqrt из пакета Math
// discriminant(a, b, c) – вызов функции discriminant
// и одновременно аргумент функции sqrt
32
![Page 33: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/33.jpg)
Math.sqrt = полное имя (с указанием пакета)◦ В IDEA можно сократить автоматически: Alt+Enter
sqrt = короткое имя
// Директива импорта – в верхней части файлаimport java.lang.Math.sqrt
// …
fun sqRoot(a: Double, b: Double, c: Double) = (-b + sqrt(discriminant(a, b, c))) / (2 * a)
33
![Page 34: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/34.jpg)
fun quadraticRootProduct(a: Double, b: Double, c: Double
): Double /* тип результата */ {
// Тело в виде блока
}
34
![Page 35: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/35.jpg)
fun quadraticRootProduct(a: Double, b: Double, c: Double
): Double /* тип результата */ {
// Тело в виде блока
// val = промежуточная переменная
val sd = sqrt(discriminant(a, b, c))
}
35
![Page 36: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/36.jpg)
fun quadraticRootProduct(a: Double, b: Double, c: Double
): Double /* тип результата */ {
// Тело в виде блока
// val = промежуточная переменная
val sd = sqrt(discriminant(a, b, c))
// Ещё две переменных
val x1 = (-b + sd) / (2 * a)
val x2 = (-b - sd) / (2 * a)
}
36
![Page 37: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/37.jpg)
fun quadraticRootProduct(a: Double, b: Double, c: Double
): Double /* тип результата */ {
// Тело в виде блока
// val = промежуточная переменная
val sd = sqrt(discriminant(a, b, c))
// Ещё две переменных
val x1 = (-b + sd) / (2 * a)
val x2 = (-b - sd) / (2 * a)
// Чему равен результат?
return x1 * x2
}
37
![Page 38: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/38.jpg)
val = определение промежуточной переменной
return = оператор возврата (вычисления результата)
38
![Page 39: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/39.jpg)
fun solveQuadraticEquation(a: Double, b: Double, c: Double
) /* no result */ {
val sd = sqrt(discriminant(a, b, c))
val x1 = (-b + sd) / (2 * a)
val x2 = (-b - sd) / (2 * a)
}
39
![Page 40: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/40.jpg)
fun solveQuadraticEquation(a: Double, b: Double, c: Double
) /* no result */ {
val sd = sqrt(discriminant(a, b, c))
val x1 = (-b + sd) / (2 * a)
val x2 = (-b - sd) / (2 * a)
// Вывод на экран значений x1 и x2
println(x1)
println(x2)
}
40
![Page 41: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/41.jpg)
fun solveQuadraticEquation(a: Double, b: Double, c: Double
) /* no result */ {
val sd = sqrt(discriminant(a, b, c))
val x1 = (-b + sd) / (2 * a)
val x2 = (-b - sd) / (2 * a)
// Вывод на экран значений x1 и x2
println(x1)
println(x2)
// Вывод на экран строки вида x1 = 3.0 x2 = 2.0
println("x1 = $x1 x2 = $x2")
}
41
![Page 42: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/42.jpg)
fun solveQuadraticEquation(a: Double, b: Double, c: Double
) /* no result */ {
val sd = sqrt(discriminant(a, b, c))
val x1 = (-b + sd) / (2 * a)
val x2 = (-b - sd) / (2 * a)
// Вывод на экран значений x1 и x2
println(x1)
println(x2)
// Вывод на экран строки вида x1 = 3.0 x2 = 2.0
println("x1 = $x1 x2 = $x2")
// Вывод на экран произведения корней
println("x1 * x2 = ${x1 * x2}")
}
42
![Page 43: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/43.jpg)
Особый вид функций
Контролируют правильность работы других функций
Обычно реализуются на основе специальных тестирующих библиотек (пример = JUnit)
43
![Page 44: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/44.jpg)
// Test = аннотация@Test
fun testSqr() {// Проверить, что квадрат нуля это 0assertEquals(0, sqr(0))// Проверить, что квадрат двух это 4assertEquals(4, sqr(2))// Проверить, что квадрат -3 это 9assertEquals(9, sqr(-3))
}
44
![Page 45: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/45.jpg)
Проверка на равенство◦ Ничего не делает, если аргументы равны
◦ Прекращает тест с ошибкой, если аргументы не равны
45
![Page 46: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/46.jpg)
«Точка входа» в программу = отсюда программа начинает свою работу
Во многих языках называется main
46
![Page 47: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/47.jpg)
fun main(args: Array<String>) {
// Решаем x^2 - 3*x + 2 = 0
val x1x2 = quadraticRootProduct(1.0, -3.0, 2.0)
println("Root product: $x1x2")
}
47
![Page 48: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2017/kaf/Kotlin01.pdf · abs(x: Int), abs(x: Double) –модуль sqrt(x: Double)](https://reader033.vdocuments.mx/reader033/viewer/2022050106/5f44af510011c94ed1518d27/html5/thumbnails/48.jpg)
См. lesson1/task1 в обучающем проекте
Решите хотя бы одну из задач
Протестируйте решение
Добавьте коммит в свой репозиторий
Создайте Kotoed Submission и убедитесь в правильности решения
Попробуйте написать главную функцию, использующую функцию, написанную вами
48