Глухих Михаил Игоревич mailto:...

65
Глухих Михаил Игоревич mailto: [email protected]

Upload: others

Post on 09-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Глухих Михаил Игоревичmailto: [email protected]

Page 2: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Минимум◦ Скачали Идею и настроили KotlinAsFirst

Оптимум◦ Сделали хотя бы что-то из первого урока и

отправили в Котоед

Пытались сделать, но что-то не получилось?

Ничего всю неделю не делали?◦ Срочно начать! Не откладывать!

2

Page 3: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Суммарно 4 недели на первые 3 урока

Далее по 2 недели на каждый урок

Итого 8 уроков за 14 недель и 1-2 недели в запасе

3

Page 4: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

1. 11 октября. Ориентируйтесь на 3-4 сделанных урока.

2. ~15 ноября. Ориентируйтесь на 5-6сделанных уроков.

3. Конец семестра (~15 декабря). Ориентируйтесь на 7-8 сделанных уроков.

4

Page 5: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Мои лекции

Туториал

Документация Котлина◦ https://kotlinlang.org/docs/reference/

◦ https://kotlinlang.ru/docs/reference

Книги◦ https://www.atomickotlin.com/

◦ Kotlin в действии (Kotlin in Action). Дмитрий Жемеров, Светлана Исакова.

◦ Kotlin for Android Developers. Antonio Leiva.

5

Page 6: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

https://www.coursera.org/learn/vvedenie-v-yazyk-kotlin

Тот же (+-) учебный проект

Видео-лекции по первым 7 урокам (свободный доступ)

Упражнения (платные в норме, бесплатные в приватной сессии Политеха)

Сертификат Coursera по завершении

6

Page 7: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

7

Page 8: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Язык для общения человека с компьютером

8

Page 9: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Язык для общения человека с компьютером

Язык, на котором человек даёт команды компьютеру. Зачем? Чтобы решить определённую задачу

9

Page 10: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

В некотором смысле – «книга» на языке программирования◦ Если говорить точнее – книга-квест

10

Page 11: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

В некотором смысле – «книга» на языке программирования◦ Если говорить точнее – книга-квест

Состоит из команд, сгруппированных определённым образом◦ У книги – предложения, у программы – операторы

(statements)

11

Page 12: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

В некотором смысле – «книга» на языке программирования◦ Если говорить точнее – книга-квест

Состоит из команд, сгруппированных определённым образом◦ У книги – предложения, у программы – операторы

(statements)

◦ У книги – абзацы, у программы –блоки операторов (statement blocks)

12

Page 13: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

В некотором смысле – «книга» на языке программирования◦ Если говорить точнее – книга-квест

Состоит из команд, сгруппированных определённым образом◦ У книги – предложения, у программы – операторы

(statements)

◦ У книги – абзацы, у программы –блоки операторов (statement blocks)

◦ У книги – главы, у программы –функции/методы/процедуры (functions)

13

Page 14: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

В некотором смысле – «книга» на языке программирования◦ Если говорить точнее – книга-квест

Состоит из команд, сгруппированных определённым образом

Программа реализует алгоритм(ы)

14

Page 15: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Часть программы. Выполняет определённую задачу

15

Page 16: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Часть программы. Выполняет определённую задачу

Имеет входы: параметры

Имеет выход: результат

Аналог: функция в математике

16

Page 17: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

17

fun sqr(x: Int) = x * x

fun = ключевое слово

sqr = имя функции

x: Int = параметр функции◦ Int = тип параметра функции

“= x * x” = тело функции◦ x * x = результат функции

* = операция

Page 18: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Программа работает с данными, данные хранятся в памяти компьютера◦ Аналог в математике – переменные

◦ ~ Аналог в книге – имена собственные

18

Page 19: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Программа работает с данными, данные хранятся в памяти компьютера◦ Аналог в математике – переменные

◦ ~ Аналог в книге – имена собственные

Параметр x – вид данных

19

Page 20: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Программа работает с данными, данные хранятся в памяти компьютера◦ Аналог в математике – переменные

◦ ~ Аналог в книге – имена собственные

Параметр x: Int – вид данных

У параметра есть имя x и тип Int

20

Page 21: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Чтобы нельзя было везде хранить что угодно – слишком большая свобода вредит в программировании

Тип определяет те значения (множество значений), которые параметр может иметь

21

Page 22: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Как в языке C (также Java, C#, …)◦ int x

Как в языке Pascal (также Swift, Kotlin, …)◦ x: Int

Как в языке Python◦ x

22

Page 23: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Int = целое число -231 … 231 - 1

23

Page 24: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Int = целое число -231 … 231 – 1

Double = вещественное число (примерно) -1.7 * 10308 … 1.7 * 10308

24

Page 25: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Int = целое число -231 … 231 – 1

Double = вещественное число (примерно) -1.7 * 10308 … 1.7 * 10308

Boolean = true или false, истина или ложь

25

Page 26: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Int = целое число -231 … 231 – 1

Double = вещественное число (примерно) -1.7 * 10308 … 1.7 * 10308

Boolean = true или false, истина или ложь

Char = символ (из таблицы Unicode), с кодом 0 … 216 - 1

26

Page 27: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Int = целое число -231 … 231 – 1

Double = вещественное число (примерно) -1.7 * 10308 … 1.7 * 10308

Boolean = true или false, истина или ложь

Char = символ (из таблицы Unicode), с кодом 0 … 216 - 1

27

Page 28: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Int = целое число -231 … 231 – 1

Double = вещественное число (примерно) -1.7 * 10308 … 1.7 * 10308

Boolean = true или false, истина или ложь

Char = символ (из таблицы Unicode), с кодом 0 … 216 – 1

String = строка = любое количество Char

28

Page 29: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Int : точный тип, Double : приближённый

29

Page 30: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Int : точный тип, Double : приближённый

Диапазон значений Double гораздо шире

30

Page 31: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Int : точный тип, Double : приближённый

Диапазон значений Double гораздо шире

Операции над целыми числами дают целый результат: 5 / 2 = 2

Операции над вещественными числами дают вещественный результат: 5.0 / 2.0 = 2.5, 5 / 2.0 = 2.5

31

Page 32: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Int : точный тип, Double : приближённый

Диапазон значений Double гораздо шире

Операции над целыми числами дают целый результат: 5 / 2 = 2

Операции над вещественными числами дают вещественный результат: 5.0 / 2.0 = 2.5, 5 / 2.0 = 2.5

Преобразования: n.toDouble(), x.toInt()

32

Page 33: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Тоже разновидность данных, но без имени

Имеют, однако, тип и значение

Варианты◦ Int : 42, -256

◦ Double : 1.0, 3.1415, 6.67e-11

◦ Boolean : true, false

◦ Char : 'a', 'z'

◦ String : "Hello", ""

33

Page 34: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Элементарные арифметические, логические и прочие действия, обозначаемые знаком операции = оператором (operator, не путать со statement)

34

Page 35: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Сложение a + b

Вычитание a – b

Умножение a * b

Деление a / b

Остаток от деления a % b

Скобки ( … )

35

Page 36: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Используются, чтобы различать различные элементы программы

Есть у функций, параметров, переменных, типов, …

36

Page 37: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Обязаны начинаться с буквы (или с символа _ что не рекомендуется)

Состоят из букв, цифр, символа _

Прописные и строчные буквы различаются◦ Как и в большинстве распространённых языков –

но не в Паскале

37

Page 38: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Только латинские буквы, никаких моё_имя_123

Нет транслитерации, никаких dlinaOtrezka

38

Page 39: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Только латинские буквы, никаких моё_имя_123

Нет транслитерации, никаких dlinaOtrezka

Имена функций, параметров, переменных начинаются со строчной буквы: segmentLength или calculateArea

Имена типов начинаются с прописной: Rectangle

39

Page 40: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

https://kotlinlang.org/docs/reference/coding-conventions.html

https://kotlinlang.ru/docs/reference/coding-conventions.html

40

Page 41: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Параметр – это объект, существительное

Функция – это действие, глагол

41

Page 42: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Пакет (package) kotlin.math◦ abs(x: Int), abs(x: Double) – модуль◦ sqrt(x: Double) – квадратный корень◦ x.pow(y: Double) – x в степени y◦ sin/cos (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…

42

Page 43: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

// Комментарий: дискриминант

fun discriminant(a: Double, b: Double, c: Double) = sqr(b) - 4 * a * c

// sqr(b) = вызов функции sqr

// b = аргумент функции sqr

43

Page 44: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

// Комментарий: дискриминант

fun discriminant(a: Double, b: Double, c: Double) = sqr(b) - 4 * a * c

// Комментарий: корень квадратного уравнения

fun sqRoot(a: Double, b: Double, c: Double) = (-b + sqrt(discriminant(a, b, c))) / (2 * a)

// sqrt(…) – вызов функции sqrt из пакета kotlin.math

// discriminant(a, b, c) – вызов функции discriminant

// и одновременно аргумент функции sqrt

44

Page 45: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

То, что в определении функции – параметр

То, что в вызове функции - аргумент

45

Page 46: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

kotlin.math.sqrt = полное имя (с указанием пакета)◦ В IDEA можно сократить автоматически: Alt+Enter

sqrt = короткое имя

// Директива импорта – в верхней части файлаimport kotlin.math.sqrt

// …

fun sqRoot(a: Double, b: Double, c: Double) = (-b + sqrt(discriminant(a, b, c))) / (2 * a)

46

Page 47: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

fun quadraticRootProduct(a: Double, b: Double, c: Double

): Double /* тип результата */ {

// Тело в виде блока

}

47

Page 48: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

fun quadraticRootProduct(a: Double, b: Double, c: Double

): Double /* тип результата */ {

// Тело в виде блока

// val = переменная

val sd = sqrt(discriminant(a, b, c))

}

48

Page 49: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

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)

}

49

Page 50: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

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

}

50

Page 51: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Тоже вид данных, есть имя, тип и значение◦ Каков тип у sd?

◦ val sd = sqrt(discriminant(a, b, c))

51

Page 52: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Тоже вид данных, есть имя, тип и значение◦ Каков тип у sd?

◦ val sd = sqrt(discriminant(a, b, c))

Вывод типа → Double

Бывают двух видов – val и var (позже)◦ val ~ переменная-значение, значение постоянно

Как в математике

◦ var (позже) ~ “настоящая” переменная

52

Page 53: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

оператор возврата =определяет результат и завершает функцию

53

Page 54: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

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)

}

54

Page 55: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

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)

}

55

Page 56: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

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")

}

56

Page 57: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

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}")

}

57

Page 58: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Особый вид функций

Контролируют правильность работы других функций

Обычно реализуются на основе специальных тестирующих библиотек (пример = JUnit)

58

Page 59: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

// Test = аннотация@Test

fun testSqr() {// Проверить, что квадрат нуля это 0assertEquals(0, sqr(0))// Проверить, что квадрат двух это 4assertEquals(4, sqr(2))// Проверить, что квадрат -3 это 9assertEquals(9, sqr(-3))

}

59

Page 60: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Проверка на равенство◦ Ничего не делает, если аргументы равны

◦ Прекращает тест с ошибкой, если аргументы не равны

60

Page 61: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

«Точка входа» в программу = отсюда программа начинает свою работу

Во многих языках называется main (C, C++, C#, Java, Kotlin)

~ первая глава книги (хотя в программе она не обязана находиться вначале!)

61

Page 62: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

fun main() {

// Решаем x^2 - 3*x + 2 = 0

val x1x2 = quadraticRootProduct(1.0, -3.0, 2.0)

println("Root product: $x1x2")

}

62

Page 63: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

lesson1/task1 в обучающем проекте

63

Page 64: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Прочитать chapter02 в tutorial и/или послушать лекции второго урока на Coursera

Задачи второго урока

64

Page 65: Глухих Михаил Игоревич mailto: glukhikh@mailkspt.icc.spbstu.ru/media/files/2020/kaf/Kotlin01.pdf · Суммарно 4 недели на первые 3 урока

Если что-то осталось непонятным –обязательно спросите или напишите мне!

65