tasks_gem 0.1.9 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +10 -8
- data/lib/conditions.rb +79 -0
- data/lib/tasks.rb +38 -48
- data/lib/tasks/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f9382afb6b2684e0b0403d6d34618d640037d02115d4dca6f39ef65fea7e8e74
|
4
|
+
data.tar.gz: 50854ed34a380f428f68091d80082f7f1454f237e1908993d1f23c020330f306
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 43169e4fee4fa726f8468d6e5f667ed98c3d1b5a92c6bbfed15592417517a7ec1ba3ecd24553fb4a22915a193b06132e0f0d9502d933c428f35ffab5a6cd73e7
|
7
|
+
data.tar.gz: 3de63dbb6217211696faa9d2aef312210fc48caa18439f7f598f8fdbe2bd0690bcc043d1bcf68977eb5618157c617b999f685780dbd13fca7a31995a72f55609
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
50 tasks
|
4
4
|
https://rubygems.org/gems/tasks_gem
|
5
5
|
|
6
|
-
Book with tasks
|
6
|
+
[Book with tasks](http://libgen.io/book/index.php?md5=02CEF7BC8F9FAF75690C1CBE83BE3B70)
|
7
7
|
|
8
8
|
## Installation
|
9
9
|
|
@@ -27,20 +27,22 @@ Example:
|
|
27
27
|
```ruby
|
28
28
|
require 'tasks'
|
29
29
|
|
30
|
-
|
31
|
-
print Tasks::Task.task_1(number_a: 2, number_b: 5), "\n"
|
30
|
+
Tasks::Task.task_1(a: 2, b: 5)
|
32
31
|
```
|
33
|
-
|
34
|
-
|
32
|
+
Return array with numbers of all tasks:
|
33
|
+
```ruby
|
34
|
+
Tasks::Task.all_tasks
|
35
|
+
```
|
36
|
+
Return task condition by number:
|
35
37
|
```ruby
|
36
|
-
|
38
|
+
Tasks::Task.conditions(num: 1)
|
37
39
|
```
|
38
40
|
Example use: https://github.com/marina8915/tasks-rails
|
39
41
|
|
40
42
|
## Dependencies:
|
41
43
|
|
42
|
-
run_tests ~> 0.1.
|
43
|
-
|
44
|
+
[run_tests](https://rubygems.org/gems/run_tests) ~> 0.1.3
|
45
|
+
|
44
46
|
|
45
47
|
## Development
|
46
48
|
|
data/lib/conditions.rb
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
CONDITIONS = {
|
2
|
+
1 => 'Даны два действительных числа a и b. Получить их сумму, разность и произведение.',
|
3
|
+
2 => 'Даны действительные числа x и y. Получить (|x| -|y|)/(1 + xy) ',
|
4
|
+
3 => 'Дана длина ребра куба. Найти объем куба и площадь его боковой поверхности.',
|
5
|
+
6 => 'Даны катеты прямоугольного треугольника. Найти его гипотенузу и площадь.',
|
6
|
+
8 => 'Определить периметр правильного n-угольника, описанного около окружности радиуса r.',
|
7
|
+
9 => 'Три сопротивления R1, R2, R3 соединены параллельно. Найти сопротивление соединения.',
|
8
|
+
10 => 'Определить время падения камня на поверхность земли с высоты h.',
|
9
|
+
12 => 'Дана сторона равностороннего треугольника. Найти площадь этого треугольника.',
|
10
|
+
13 => 'Вычислить период колебания маятника длины l.',
|
11
|
+
15 => 'Даны гипотенуза и катет прямоугольного треугольника. Найти второй катет и радиус
|
12
|
+
вписанной окружности.',
|
13
|
+
16 => 'Известна длина окружности. Найти площадь круга, ограниченного этой окружностью.',
|
14
|
+
24 => 'Вычислить расстояние между двумя точками с координатами x1,y1 и x2,y2.',
|
15
|
+
30 => 'Дано действительное число х. Не пользуясь никакими другими арифметическими операциями,
|
16
|
+
кроме умножения, сложения и вычитания, вычислить: 1−2x +3x^2 −4x^3 и 1+2x +3x^2 +4x^3.
|
17
|
+
Разрешается использовать не более восьми операций.',
|
18
|
+
33 => 'Даны действительные числа х, у. Получить: max (x, y), min (x, y).',
|
19
|
+
34 => 'Даны действительные числа x, y, z. Получить: min (x, y, z), max(x, y, z).',
|
20
|
+
39 => 'Даны два действительных числа. Вывести первое число, если оно больше второго, и оба числа, если это не так.',
|
21
|
+
41 => 'Даны три действительных числа. Выбрать из них те, которые принадлежат интервалу (1, 3).',
|
22
|
+
43 => 'Даны три действительных числа. Возвести в квадрат те из них, значения которых неотрицательны.',
|
23
|
+
62 => 'Определить, является ли данное целое число четным.',
|
24
|
+
64 => 'Дано натуральное число n (n > 99). Определить число сотен в нем.',
|
25
|
+
65 => 'Дано натуральное число n (n>99). Выяснить, верно ли, что n^2 равно кубу суммы цифр числа n.',
|
26
|
+
67 => 'Дано натуральное число n (n ≤ 100):
|
27
|
+
а) Сколько цифр в числе n?
|
28
|
+
б) Чему равна сумма его цифр?
|
29
|
+
в) Найти последнюю цифру числа n.
|
30
|
+
г) Найти первую цифру числа n.
|
31
|
+
д) В предположении, что n ≥ 10, найти предпоследнюю цифру числа n.',
|
32
|
+
182 => 'Дано натуральное число n.В массиве a1, …, an найти количество и сумму тех членов
|
33
|
+
данной последовательности, которые делятся на 5 и не делятся на 7.',
|
34
|
+
185 => 'Дано натуральное число n. Получить удвоенную сумму всех положительных членов последовательности a1, …, an.',
|
35
|
+
191 => 'Дано натуральное число n. Заменить все большие семи члены последовательности a1, …, an числом 7.
|
36
|
+
Вычислить количество таких членов.',
|
37
|
+
205 => 'Дано натуральное число n. Получить max(a1, …, an) и sqrt(a1^2 + ... +an^2).',
|
38
|
+
207 => 'Дано натуральное число n. Выбросить из записи числа n цифры 0 и 5,
|
39
|
+
оставив прежним порядок остальных цифр. Например, из числа 59015509 должно получиться 919.',
|
40
|
+
224 => 'Дано натуральное число n. Получить все его натуральные делители.',
|
41
|
+
225 => 'Дано натуральное число n. Получить все такие натуральные q, что n делится на q^2 и не делится на q^3.',
|
42
|
+
230 => 'Дано натуральное число n. Найти длину наименьшего отрезка числовой оси, содержащего числа
|
43
|
+
a1, …, an.',
|
44
|
+
272 => 'Даны действительные числа а1901, a1902, …,аn – количество осадков (в миллиметрах),
|
45
|
+
выпавших в Москве в течение первых n лет нашего столетия.
|
46
|
+
Надо вычислить среднее количество осадков и отклонение от среднего для каждого года.',
|
47
|
+
279 => 'Дано действительные числа n. Вычислить для a1, …, an, b1, …, bn:
|
48
|
+
(a1+bn)(a2+bn-1)...(an+b1).',
|
49
|
+
302 => 'Дано натуральное число n. Сколько различных цифр встречается в его десятичной записи?',
|
50
|
+
317 => 'Дано натуральное число n, для a1, …, a10 вычислить a1 + a2^2 + ... + a10^10',
|
51
|
+
325 => 'Дано натуральное число n. Получить все простые делители этого числа.',
|
52
|
+
328 => 'Найти 100 первых простых чисел.',
|
53
|
+
536 => 'Дано натуральное число n. Выяснить, имеются ли среди чисел a1, ..., an совпадающие.',
|
54
|
+
555 => 'Дано натуральное n. Получить первые n строк треугольника Паскаля.
|
55
|
+
Треугольником Паскаля называется числовой треугольник в котором по краям стоят единицы,
|
56
|
+
а каждое число внутри равно сумме двух стоящих над ним в ближайшей строке сверху.',
|
57
|
+
561 => 'Дано натуральное число n. Среди чисел 1, ..., n найти все такие,
|
58
|
+
запись которых совпадает с последними цифрами записи их квадрата (как, например, 6^2 = 36, 25^2 = 625 и т. д.).',
|
59
|
+
606 => 'Даны действительные положительные числа a, b, c, d.
|
60
|
+
Выяснить, можно ли построить четырехугольник с такими длинами сторон.',
|
61
|
+
697 => 'Для матриц А и В размера k × m и m × l соответственно найти произведение АВ.',
|
62
|
+
698 => 'Для квадратной матрицы прядка n. Получить матрицуА^2.',
|
63
|
+
699 => 'Для квадратных матриц А и В порядка n. Получить матрицу АВ–ВА.',
|
64
|
+
704 => 'Для квадратных матриц A, B и C порядка n. Получить матрицу (A+B)C.',
|
65
|
+
710 => 'Для матрицы А размера m × n. Получить транспонированную матрицу А* (ее размер – m × n ).',
|
66
|
+
822 => 'Дан номер года. Указать число дней в этом году.',
|
67
|
+
823 => 'Даны натуральные числа n, m (n ≤ m ).
|
68
|
+
Определить, сколько из чисел n, n+1, ..., m являются номерами високосных годов.',
|
69
|
+
831 => 'День учителя ежегодно отмечается в первое воскресенье октября. Дано натуральное число n, означающее номер года.
|
70
|
+
Определить число, на которое в октябре указанного года приходится День учителя.',
|
71
|
+
986 => '«Угадай число». Программа с помощью датчика случайных чисел выбирает число в диапазоне от 0 до 9.
|
72
|
+
Попробуйте угадать это числ.',
|
73
|
+
988 => '«Ипподром». Играющий выбирает одну из трех лошадей, состязающихся на бегах, и выигрывает,
|
74
|
+
если его лошадь приходит первой. Скорость передвижения лошадей на разных этапах выбирается программой
|
75
|
+
с помощью датчика случайных чисел.
|
76
|
+
Введите номер лошади: 1 => Watercolor, 2 => Alpha, 3 => Gallop',
|
77
|
+
1009 => '«100 спичек». Из кучки, первоначально содержащей 100 спичек, двое играющих поочередно берут
|
78
|
+
по несколько спичек: не менее одной и не более десяти. Проигрывает взявший последнюю спичку.'
|
79
|
+
}
|
data/lib/tasks.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'tasks/version'
|
2
|
+
require 'matrix'
|
3
|
+
require 'conditions'
|
3
4
|
|
4
5
|
module Tasks
|
5
6
|
class Error < StandardError; end
|
@@ -27,16 +28,6 @@ module Tasks
|
|
27
28
|
array
|
28
29
|
end
|
29
30
|
|
30
|
-
# if digit not in diapason lower_bound..top_bound enter new n
|
31
|
-
def check_digit(digit:, lower_bound: 1, top_bound: 10)
|
32
|
-
until (lower_bound..top_bound).cover? digit
|
33
|
-
puts 'incorrect value'
|
34
|
-
puts 'take again'
|
35
|
-
digit = gets.to_i
|
36
|
-
end
|
37
|
-
digit
|
38
|
-
end
|
39
|
-
|
40
31
|
# array with random digits in diapason lower_bound..y
|
41
32
|
def new_array(quantity:, lower_bound: -100, top_bound: 100)
|
42
33
|
array = []
|
@@ -59,8 +50,7 @@ module Tasks
|
|
59
50
|
mult = a * b
|
60
51
|
{ sum: sum.round(2),
|
61
52
|
difference: diff.round(2),
|
62
|
-
multiplication: mult.round(2)
|
63
|
-
}
|
53
|
+
multiplication: mult.round(2) }
|
64
54
|
end
|
65
55
|
|
66
56
|
def task_2(x:, y:)
|
@@ -141,6 +131,10 @@ module Tasks
|
|
141
131
|
{ min: array.min, max: array.max }
|
142
132
|
end
|
143
133
|
|
134
|
+
def task_39(digit1:, digit2:)
|
135
|
+
digit1 > digit2 ? digit1 : [digit1, digit2]
|
136
|
+
end
|
137
|
+
|
144
138
|
def task_41(x:, y:, z:)
|
145
139
|
array = [x, y, z]
|
146
140
|
array.select { |x| x <= 3 && x >= 1 }
|
@@ -392,58 +386,54 @@ module Tasks
|
|
392
386
|
|
393
387
|
def task_986(n:)
|
394
388
|
digit = rand(0..9)
|
395
|
-
digit_user =
|
389
|
+
digit_user = n.to_i
|
390
|
+
return 'incorrect value' unless (0..9).cover? digit_user
|
391
|
+
|
396
392
|
digit_user != digit ? hint(digit1: digit_user, digit2: digit) : 'Right you are!'
|
397
393
|
end
|
398
394
|
|
399
395
|
# place of the horse, task 988
|
400
|
-
def
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
puts text
|
410
|
-
run
|
396
|
+
def horse_place(run:, horse_num:)
|
397
|
+
horse_num -= 1
|
398
|
+
if run[horse_num] == run.max
|
399
|
+
'Victory!'
|
400
|
+
elsif run[horse_num] == run.min
|
401
|
+
'Last.'
|
402
|
+
else
|
403
|
+
'Second.'
|
404
|
+
end
|
411
405
|
end
|
412
406
|
|
413
407
|
def task_988(horse_num:)
|
414
408
|
horse_num = horse_num.to_i
|
415
|
-
|
409
|
+
return 'incorrect value' unless (1..3).cover? horse_num
|
410
|
+
|
416
411
|
finish = 500
|
417
412
|
horses_run = []
|
418
413
|
3.times { horses_run.push(rand(1..100)) }
|
419
414
|
while horses_run.max < finish
|
420
|
-
horses_run
|
415
|
+
horses_run.map! { |x| x + rand(1..100) }
|
421
416
|
end
|
422
|
-
horses_run
|
417
|
+
horse_place(run: horses_run, horse_num: horse_num)
|
423
418
|
end
|
424
419
|
|
425
|
-
#
|
426
|
-
def
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
'Second is won'
|
433
|
-
end
|
420
|
+
# return array with numbers of all tasks
|
421
|
+
def all_tasks
|
422
|
+
method_name = 'task_'
|
423
|
+
methods = Task.methods(false)
|
424
|
+
tasks = methods.select { |elem| elem.to_s.include? method_name }
|
425
|
+
tasks.map! { |elem| elem.to_s.delete method_name }
|
426
|
+
tasks.map!(&:to_i).sort!
|
434
427
|
end
|
435
428
|
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
puts 'second player'
|
444
|
-
second_player += check_digit(digit: gets.to_i)
|
429
|
+
# return task condition by number
|
430
|
+
def conditions(num:)
|
431
|
+
num = num.to_i
|
432
|
+
if all_tasks.include? num
|
433
|
+
CONDITIONS[num]
|
434
|
+
else
|
435
|
+
'Task not found.'
|
445
436
|
end
|
446
|
-
puts matches_result(first: first_player, second: second_player)
|
447
437
|
end
|
448
438
|
end
|
449
439
|
end
|
data/lib/tasks/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tasks_gem
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- marina8915
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-11-
|
11
|
+
date: 2018-11-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -82,6 +82,7 @@ files:
|
|
82
82
|
- Rakefile
|
83
83
|
- bin/console
|
84
84
|
- bin/setup
|
85
|
+
- lib/conditions.rb
|
85
86
|
- lib/tasks.rb
|
86
87
|
- lib/tasks/version.rb
|
87
88
|
- tasks.gemspec
|