Skip to content
This repository was archived by the owner on Sep 6, 2018. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
116 commits
Select commit Hold shift + click to select a range
44f9bc5
IC-2016.2.3 <Александр@Александр-ПК Create IntelliLang.xml, git.xml, …
AlexanderKuptsov Sep 11, 2016
4aa2806
IC-2016.2.3 <Александр@Александр-ПК Update laf.xml Create colors.sche…
AlexanderKuptsov Sep 11, 2016
cbe1e7a
Lesson1_Task1
AlexanderKuptsov Sep 11, 2016
3eb5fc8
Lesson1_Task1
AlexanderKuptsov Sep 11, 2016
7f470e5
Lesson1_Task1
AlexanderKuptsov Sep 11, 2016
35779dc
Lesson1_Task1
AlexanderKuptsov Sep 11, 2016
3384df0
Merge remote-tracking branch 'origin/master'
AlexanderKuptsov Sep 11, 2016
c8fcb64
IC-2016.2.3 <Александр@Александр-ПК Merge branch 'master'
AlexanderKuptsov Sep 11, 2016
796fb0e
IC-2016.2.3 <Александр@Александр-ПК Update diff.xml
AlexanderKuptsov Sep 11, 2016
457f2b5
Deleted redundant files
SidorenkoNikita Sep 15, 2016
0319e2a
smth
SidorenkoNikita Sep 15, 2016
e95dcc4
Lesson1,2_Task1
AlexanderKuptsov Sep 17, 2016
08b0657
Merge remote-tracking branch 'origin/master'
AlexanderKuptsov Sep 17, 2016
8927e6c
Lesson1,2_Task1
AlexanderKuptsov Sep 17, 2016
38e230e
IC-2016.2.3 <Александр@Александр-ПК Update diff.xml
AlexanderKuptsov Sep 17, 2016
abe1b5b
Lesson1,2_Task1
AlexanderKuptsov Sep 17, 2016
b059ac6
Lesson1,2_Task1
AlexanderKuptsov Sep 17, 2016
de78efc
IC-2016.2.3 <Александр@Александр-ПК Merge branch 'master'
AlexanderKuptsov Sep 17, 2016
7000f0d
IC-2016.2.3 <Александр@Александр-ПК Create IntelliLang.xml, web-brows…
AlexanderKuptsov Sep 17, 2016
89ac9eb
IC-2016.2.3 <Александр@Александр-ПК Update git.xml
AlexanderKuptsov Sep 17, 2016
0232594
IC-2016.2.3 <Александр@Александр-ПК Update diff.xml Create gradle.run…
AlexanderKuptsov Sep 18, 2016
cab3135
Lesson2_Task2
AlexanderKuptsov Sep 18, 2016
e4d6f83
Merge remote-tracking branch 'origin/master'
AlexanderKuptsov Sep 18, 2016
6802b1c
Lesson2_Task2
AlexanderKuptsov Sep 18, 2016
734e55b
Lesson2_Task2
AlexanderKuptsov Sep 18, 2016
bd1b46f
IC-2016.2.3 <Александр@Александр-ПК Update diff.xml
AlexanderKuptsov Sep 18, 2016
31ffe5c
IC-2016.2.3 <Александр@Александр-ПК Merge branch 'master'
AlexanderKuptsov Sep 18, 2016
9ec8e6a
Several improvements&fixes
AlexanderKuptsov Sep 19, 2016
8adc830
Lesson1,2
AlexanderKuptsov Sep 21, 2016
b6ad932
Lesson1,2,3
AlexanderKuptsov Sep 28, 2016
01bcdca
Lesson1,2,3
AlexanderKuptsov Sep 28, 2016
84e1d67
Lesson1,2,3(Fixed)
AlexanderKuptsov Sep 28, 2016
0edaab8
Lesson3(Fixed+1test)
AlexanderKuptsov Sep 28, 2016
3bcfd51
Lesson3(Fixed+2test)
AlexanderKuptsov Sep 28, 2016
7c8d720
Lesson3(Fixed+3test)
AlexanderKuptsov Sep 29, 2016
c3bf33c
Lesson3,4(Fixed+tests)
AlexanderKuptsov Sep 29, 2016
908d662
Lesson3,4(Fixed)
AlexanderKuptsov Oct 6, 2016
e214e03
Lesson 4(Fixed+tests)
AlexanderKuptsov Oct 6, 2016
83e69d5
Lessons(Fixed+tests)
AlexanderKuptsov Oct 8, 2016
5957093
Lesson 4(Fixed+test)
AlexanderKuptsov Oct 8, 2016
46278cc
roman, IsCoPrime(Fixed)
AlexanderKuptsov Oct 9, 2016
54f3f4a
Fixed all except roman
AlexanderKuptsov Oct 10, 2016
588d2d0
Fixed all except roman
AlexanderKuptsov Oct 11, 2016
606111e
Fixed
AlexanderKuptsov Oct 12, 2016
c188e61
removed config files
AlexanderKuptsov Oct 13, 2016
e53dbb6
more config files deleted
AlexanderKuptsov Oct 13, 2016
4a6feae
5
AlexanderKuptsov Oct 13, 2016
823b394
5
AlexanderKuptsov Oct 16, 2016
23a300c
5
AlexanderKuptsov Oct 16, 2016
7e85fb0
fixes&improvements
AlexanderKuptsov Oct 20, 2016
aa35eed
Lesson5 (2 more)
AlexanderKuptsov Oct 20, 2016
8baa5e1
fixes
AlexanderKuptsov Oct 20, 2016
bcf2115
fixes
AlexanderKuptsov Oct 20, 2016
c3097c2
fixes
AlexanderKuptsov Oct 22, 2016
9784803
some fixes
AlexanderKuptsov Oct 24, 2016
481ed4c
fixes
AlexanderKuptsov Oct 25, 2016
a257dcd
some fixes
AlexanderKuptsov Oct 25, 2016
d126204
some fixes
AlexanderKuptsov Oct 25, 2016
02ca56b
some fixes
AlexanderKuptsov Oct 25, 2016
58ff99c
+1 from L5
AlexanderKuptsov Oct 26, 2016
d2c51b4
some fixes
AlexanderKuptsov Oct 26, 2016
dd34a0c
one more
AlexanderKuptsov Oct 26, 2016
03c9241
some fixes
AlexanderKuptsov Oct 27, 2016
4f76c74
some fixes
AlexanderKuptsov Oct 27, 2016
c61039f
some fixes
AlexanderKuptsov Oct 27, 2016
fed7262
some fixes
AlexanderKuptsov Oct 27, 2016
06a2864
some fixes
AlexanderKuptsov Oct 27, 2016
abcfbe4
some fixes
AlexanderKuptsov Oct 27, 2016
f3a6ad6
some fixes
AlexanderKuptsov Oct 27, 2016
d76b01e
some fixes
AlexanderKuptsov Oct 28, 2016
6160f5b
some fixes
AlexanderKuptsov Oct 28, 2016
4e31add
some fixes
AlexanderKuptsov Oct 28, 2016
e22b67e
some fixes
AlexanderKuptsov Nov 4, 2016
e8684d5
some fixes
AlexanderKuptsov Nov 10, 2016
c296b9a
6
AlexanderKuptsov Nov 11, 2016
f47c249
fixes
AlexanderKuptsov Nov 11, 2016
25e59d3
fixes
AlexanderKuptsov Nov 11, 2016
7b99edf
fixes
AlexanderKuptsov Nov 20, 2016
c52c2f3
fixes+7
AlexanderKuptsov Nov 20, 2016
550d58f
fixes
AlexanderKuptsov Nov 20, 2016
ff6202b
fixes
AlexanderKuptsov Nov 21, 2016
031dde7
fixes
AlexanderKuptsov Nov 21, 2016
cd63897
old version
AlexanderKuptsov Nov 21, 2016
da0925d
fixes+rus
AlexanderKuptsov Nov 22, 2016
58690c7
fixes
AlexanderKuptsov Nov 22, 2016
4308a60
fixes
AlexanderKuptsov Nov 22, 2016
9b65e1f
fixes((
AlexanderKuptsov Nov 22, 2016
43c8cc3
just formatting
AlexanderKuptsov Nov 22, 2016
bf680dc
fixes
AlexanderKuptsov Nov 23, 2016
22e1aa6
fixes+7
AlexanderKuptsov Nov 23, 2016
3aab577
7:+1
AlexanderKuptsov Nov 24, 2016
45bafd3
fixes
AlexanderKuptsov Nov 25, 2016
709ea9e
fixes
AlexanderKuptsov Nov 25, 2016
26b278e
some tasks and fixes
AlexanderKuptsov Nov 26, 2016
2d9d1c2
fixes
AlexanderKuptsov Nov 27, 2016
c597566
fixes
AlexanderKuptsov Nov 27, 2016
2bdf250
fixes
AlexanderKuptsov Nov 27, 2016
c5df9ab
!!!!
AlexanderKuptsov Nov 27, 2016
caa541b
fixes
AlexanderKuptsov Dec 1, 2016
3d6a9e5
fixes
AlexanderKuptsov Dec 1, 2016
177e402
fixes
AlexanderKuptsov Dec 5, 2016
146b3e3
fixes
AlexanderKuptsov Dec 5, 2016
a1c004b
fixes
AlexanderKuptsov Dec 5, 2016
a335c90
fixes
AlexanderKuptsov Dec 7, 2016
09cba88
fixes
AlexanderKuptsov Dec 7, 2016
0977dab
fixes
AlexanderKuptsov Dec 8, 2016
87a4210
8
AlexanderKuptsov Dec 8, 2016
b927f71
8
AlexanderKuptsov Dec 8, 2016
3dac39f
fixes
AlexanderKuptsov Dec 9, 2016
6d8727c
8
AlexanderKuptsov Dec 13, 2016
1414cd0
fixes
AlexanderKuptsov Dec 13, 2016
6b6db97
fixes
AlexanderKuptsov Dec 13, 2016
adce763
fixes
AlexanderKuptsov Dec 13, 2016
2f08c76
fixes
AlexanderKuptsov Dec 13, 2016
ec92b7d
fixes
AlexanderKuptsov Dec 14, 2016
7d2c778
fixes
AlexanderKuptsov Dec 15, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 18 additions & 8 deletions src/lesson1/task1/Simple.kt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
@file:Suppress("UNUSED_PARAMETER")

package lesson1.task1

import java.lang.Math.*
Expand Down Expand Up @@ -51,7 +52,7 @@ fun main(args: Array<String>) {
* Пользователь задает время в часах, минутах и секундах, например, 8:20:35.
* Рассчитать время в секундах, прошедшее с начала суток (30035 в данном случае).
*/
fun seconds(hours: Int, minutes: Int, seconds: Int): Int = TODO()
fun seconds(hours: Int, minutes: Int, seconds: Int): Int = hours * 3600 + minutes * 60 + seconds

/**
* Тривиальная
Expand All @@ -60,31 +61,35 @@ fun seconds(hours: Int, minutes: Int, seconds: Int): Int = TODO()
* Определить длину того же отрезка в метрах (в данном случае 18.98).
* 1 сажень = 3 аршина = 48 вершков, 1 вершок = 4.445 см.
*/
fun lengthInMeters(sagenes: Int, arshins: Int, vershoks: Int): Double = TODO()
fun lengthInMeters(sagenes: Int, arshins: Int, vershoks: Int): Double =
(sagenes * 48 + arshins * 16 + vershoks) * 0.04445


/**
* Тривиальная
*
* Пользователь задает угол в градусах, минутах и секундах (например, 36 градусов 14 минут 35 секунд).
* Вывести значение того же угла в радианах (например, 0.63256).
*/
fun angleInRadian(grad: Int, min: Int, sec: Int): Double = TODO()
fun angleInRadian(grad: Int, min: Int, sec: Int): Double = (grad + (min + sec / 60.0) / 60.0) * Math.PI / 180.0


/**
* Тривиальная
*
* Найти длину отрезка, соединяющего точки на плоскости с координатами (x1, y1) и (x2, y2).
* Например, расстояние между (3, 0) и (0, 4) равно 5
*/
fun trackLength(x1: Double, y1: Double, x2: Double, y2: Double): Double = TODO()
fun trackLength(x1: Double, y1: Double, x2: Double, y2: Double): Double = sqrt(sqr(x1 - x2) + sqr(y1 - y2))

/**
* Простая
*
* Пользователь задает целое число, большее 100 (например, 3801).
* Определить третью цифру справа в этом числе (в данном случае 8).
*/
fun thirdDigit(number: Int): Int = TODO()
fun thirdDigit(number: Int): Int = (number / 100) % 10


/**
* Простая
Expand All @@ -93,7 +98,9 @@ fun thirdDigit(number: Int): Int = TODO()
* прибыл на станцию назначения в h2 часов m2 минут того же дня (например в 13:01).
* Определите время поезда в пути в минутах (в данном случае 216).
*/
fun travelMinutes(hoursDepart: Int, minutesDepart: Int, hoursArrive: Int, minutesArrive: Int): Int = TODO()
fun travelMinutes(hoursDepart: Int, minutesDepart: Int, hoursArrive: Int, minutesArrive: Int): Int =
(hoursArrive - hoursDepart) * 60 + minutesArrive - minutesDepart


/**
* Простая
Expand All @@ -102,12 +109,15 @@ fun travelMinutes(hoursDepart: Int, minutesDepart: Int, hoursArrive: Int, minute
* Сколько денег будет на счету через 3 года (с учётом сложных процентов)?
* Например, 100 рублей под 10% годовых превратятся в 133.1 рубля
*/
fun accountInThreeYears(initial: Int, percent: Int): Double = TODO()
fun accountInThreeYears(initial: Int, percent: Int): Double {
val p = percent / 100.0 + 1
return initial * p * p * p
}

/**
* Простая
*
* Пользователь задает целое трехзначное число (например, 478).
*Необходимо вывести число, полученное из заданного перестановкой цифр в обратном порядке (например, 874).
*/
fun numberRevert(number: Int): Int = TODO()
fun numberRevert(number: Int): Int = number % 10 * 100 + (number / 10 % 10) * 10 + number / 100
63 changes: 57 additions & 6 deletions src/lesson2/task1/IfElse.kt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
@file:Suppress("UNUSED_PARAMETER")

package lesson2.task1

import lesson1.task1.discriminant
Expand Down Expand Up @@ -33,7 +34,13 @@ fun minBiRoot(a: Double, b: Double, c: Double): Double {
* Мой возраст. Для заданного 0 < n < 200, рассматриваемого как возраст человека,
* вернуть строку вида: «21 год», «32 года», «12 лет».
*/
fun ageDescription(age: Int): String = TODO()
fun ageDescription(age: Int): String =
when {
age % 10 == 1 && age % 100 != 11 -> "$age год"
age % 10 in 1..4 && age % 100 !in 10..19 -> "$age года"
else -> "$age лет"
}


/**
* Простая
Expand All @@ -44,7 +51,17 @@ fun ageDescription(age: Int): String = TODO()
*/
fun timeForHalfWay(t1: Double, v1: Double,
t2: Double, v2: Double,
t3: Double, v3: Double): Double = TODO()
t3: Double, v3: Double): Double {
val s1 = v1 * t1
val s2 = v2 * t2
val s3 = v3 * t3
val s = (s1 + s2 + s3) / 2.0
return when {
s <= s1 -> s / v1
s <= s1 + s2 -> t1 + (s - s1) / v2
else -> t1 + t2 + (s - s1 - s2) / v3
}
}

/**
* Простая
Expand All @@ -56,7 +73,13 @@ fun timeForHalfWay(t1: Double, v1: Double,
*/
fun whichRookThreatens(kingX: Int, kingY: Int,
rookX1: Int, rookY1: Int,
rookX2: Int, rookY2: Int): Int = TODO()
rookX2: Int, rookY2: Int): Int {
var danger1 = 0
var danger2 = 0
if ((kingX == rookX1) || (kingY == rookY1)) danger1 = 1
if ((kingX == rookX2) || (kingY == rookY2)) danger2 = 2
return danger1 + danger2
}

/**
* Простая
Expand All @@ -69,7 +92,13 @@ fun whichRookThreatens(kingX: Int, kingY: Int,
*/
fun rookOrBishopThreatens(kingX: Int, kingY: Int,
rookX: Int, rookY: Int,
bishopX: Int, bishopY: Int): Int = TODO()
bishopX: Int, bishopY: Int): Int {
var dangerRook = 0
var dangerBishop = 0
if ((kingX == rookX) || (kingY == rookY)) dangerRook = 1
if (Math.abs(kingX - bishopX) == Math.abs(kingY - bishopY)) dangerBishop = 2
return dangerRook + dangerBishop
}

/**
* Простая
Expand All @@ -79,7 +108,26 @@ fun rookOrBishopThreatens(kingX: Int, kingY: Int,
* прямоугольным (вернуть 1) или тупоугольным (вернуть 2).
* Если такой треугольник не существует, вернуть -1.
*/
fun triangleKind(a: Double, b: Double, c: Double): Int = TODO()
fun triangleKind(a: Double, b: Double, c: Double): Int {
var max = a
var side1 = b
var side2 = c
if (b >= a && b >= c) {
max = b
side1 = a
side2 = c
} else if (c >= a && c >= b) {
max = c
side1 = a
side2 = b
}
return when {
(max > side1 + side2) -> -1
(side1 * side1 + side2 * side2 == max * max) -> 1
(side1 * side1 + side2 * side2 <= max * max) -> 2
else -> 0
}
}

/**
* Средняя
Expand All @@ -89,4 +137,7 @@ fun triangleKind(a: Double, b: Double, c: Double): Int = TODO()
* Найти длину пересечения отрезков AB и CD.
* Если пересечения нет, вернуть -1.
*/
fun segmentLength(a: Int, b: Int, c: Int, d: Int): Int = TODO()
fun segmentLength(a: Int, b: Int, c: Int, d: Int): Int {
val res = Math.min(b, d) - Math.max(a, c)
return if (res >= 0) res else -1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

}
20 changes: 16 additions & 4 deletions src/lesson2/task2/Logical.kt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
@file:Suppress("UNUSED_PARAMETER")

package lesson2.task2

import lesson1.task1.sqr
Expand All @@ -17,15 +18,19 @@ fun pointInsideCircle(x: Double, y: Double, x0: Double, y0: Double, r: Double) =
* Четырехзначное число назовем счастливым, если сумма первых двух ее цифр равна сумме двух последних.
* Определить, счастливое ли заданное число, вернуть true, если это так.
*/
fun isNumberHappy(number: Int): Boolean = TODO()
fun isNumberHappy(number: Int): Boolean =
(number / 1000) + ((number / 100) % 10) == (number % 10 + (number % 100) / 10)


/**
* Простая
*
* На шахматной доске стоят два ферзя (ферзь бьет по вертикали, горизонтали и диагоналям).
* Определить, угрожают ли они друг другу. Вернуть true, если угрожают.
*/
fun queenThreatens(x1: Int, y1: Int, x2: Int, y2: Int): Boolean = TODO()
fun queenThreatens(x1: Int, y1: Int, x2: Int, y2: Int): Boolean =
x1 == x2 || y1 == y2 || Math.abs(x1 - x2) == Math.abs(y1 - y2)


/**
* Средняя
Expand All @@ -35,7 +40,7 @@ fun queenThreatens(x1: Int, y1: Int, x2: Int, y2: Int): Boolean = TODO()
* Вернуть true, если утверждение верно
*/
fun circleInside(x1: Double, y1: Double, r1: Double,
x2: Double, y2: Double, r2: Double): Boolean = TODO()
x2: Double, y2: Double, r2: Double): Boolean = Math.sqrt(sqr(x1 - x2) + sqr(y1 - y2)) + r1 <= r2

/**
* Средняя
Expand All @@ -46,4 +51,11 @@ fun circleInside(x1: Double, y1: Double, r1: Double,
* кирпич 4 х 4 х 4 пройдёт через отверстие 4 х 4.
* Вернуть true, если кирпич пройдёт
*/
fun brickPasses(a: Int, b: Int, c: Int, r: Int, s: Int): Boolean = TODO()
fun brickPasses(a: Int, b: Int, c: Int, r: Int, s: Int): Boolean {
var min1 = a
var min2 = b
if (a >= b && a >= c) min1 = c
else if (b >= a && b >= c) min2 = c
return (r >= min1 && s >= min2) || (r >= min2 && s >= min1)
}

Loading