geekhub_tasks 1.0.0 → 1.1.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/lib/geekhub_tasks.rb +447 -3
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0459718112773aa2b58adbab89ad52333bba7744b8ed74804fdc9313980fe6ed'
|
4
|
+
data.tar.gz: 53d91e9b829096401bc4422c1a144dbeb4a60e4c8168c4ecfb0e391704561358
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b691b9d47a3361bbefa146b0f614c459a2cc413770fe45f5d0f8b8b4e9b5a417f9cca67f22bcf27be38fae127ff18199d2dbe6822cf4a89e64bb72edd73bce1
|
7
|
+
data.tar.gz: 04e49217b223fb601921a320ac0fb2e387f146934a35e976b06b2f636b435f29182e9fcbfcc69a3fd577a3e91d170a54d9cfa87ceb50547fe7b9898dc4d49028
|
data/lib/geekhub_tasks.rb
CHANGED
@@ -1,5 +1,449 @@
|
|
1
1
|
class GeekHubTasks
|
2
|
-
|
3
|
-
|
2
|
+
|
3
|
+
def self.triangle(a, b)
|
4
|
+
hypotenuse = Math.sqrt( ( a**2 ) + ( b**2 ) ).round(2)
|
5
|
+
area = ( a * b )/2
|
6
|
+
{ hypotenuse: hypotenuse, area: area }
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.average(a, b)
|
10
|
+
average_ariphmetic = ( a + b )/2
|
11
|
+
average_geometric = Math.sqrt( a * b ).round(1)
|
12
|
+
{ average_ariphmetic: average_ariphmetic, average_geometric: average_geometric }
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.time(h)
|
16
|
+
t = Math.sqrt( 2 * ( h/9.8) )
|
17
|
+
{ t: t }
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.period(l)
|
21
|
+
t = ( 2 * Math::PI * (l / 9.8 ) ).round(2)
|
22
|
+
{ t: t }
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.area_circle(l)
|
26
|
+
s = ( (l ** 2) / 4 * Math::PI ).round(2)
|
27
|
+
{ s: s }
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.sides_triangle(a_1, b_1, r)
|
31
|
+
c_1 = ( 180 - ( a_1 + b_1 ) )
|
32
|
+
a = 2 * r * Math.sin(a_1 * ( Math::PI/180 ) ).round(2)
|
33
|
+
b = 2 * r * Math.sin(b_1 * ( Math::PI/180 ) ).round(2)
|
34
|
+
c = 2 * r * Math.sin(c_1.to_i * ( Math::PI/180 ) ).round(2)
|
35
|
+
{ a: a, b: b, c:c }
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.arithmetic_progression(a, d, n)
|
39
|
+
s = ( 2 * a + ( n - 1 ) * d ) * n/2
|
40
|
+
{ s: s }
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.distance_between_two_points(x_1, x_2, y_1, y_2)
|
44
|
+
point_1 = (x_2 - x_1)
|
45
|
+
point_2 = (y_2 - y_1)
|
46
|
+
s = Math.sqrt(point_1.to_i**2 + point_2.to_i**2).round(2)
|
47
|
+
{ s: s }
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.mix(v_1, t_1, v_2, t_2)
|
51
|
+
z = v_1 + v_2
|
52
|
+
t = ( ( v_1 * t_1 ) + ( v_2 * t_2 ) )/z.to_i
|
53
|
+
{ v: z,
|
54
|
+
t: t }
|
55
|
+
end
|
56
|
+
|
57
|
+
def self.triangle_area(a)
|
58
|
+
s = ( a**2 ) * (Math.sqrt(3)/4).round(2)
|
59
|
+
{ s: s }
|
60
|
+
end
|
61
|
+
|
62
|
+
def self.trapezium(a, b, c)
|
63
|
+
if a < b
|
64
|
+
puts "Mistake..b can't be greater than a"
|
65
|
+
end
|
66
|
+
x = ( ( ( a - b )/2 ) * Math.tan(c) ).round(2)
|
67
|
+
s = ( ( a + b ) * x.to_i)/2
|
68
|
+
{ h: x,
|
69
|
+
s: s }
|
70
|
+
end
|
71
|
+
|
72
|
+
def self.equality(a, b, c)
|
73
|
+
if a < b && b < c
|
74
|
+
p = "Equality is fulfilled"
|
75
|
+
else
|
76
|
+
p = "We have trouble with equality"
|
77
|
+
end
|
78
|
+
{ :p => p }
|
79
|
+
end
|
80
|
+
|
81
|
+
def self.x_or_y(x, y)
|
82
|
+
if x > y
|
83
|
+
z = x - y
|
84
|
+
else
|
85
|
+
z = y - x + 1
|
86
|
+
end
|
87
|
+
{ z: z }
|
88
|
+
end
|
89
|
+
|
90
|
+
def self.a_or_both(a, b)
|
91
|
+
if a > b
|
92
|
+
p = "First item"
|
93
|
+
else
|
94
|
+
p = "Both items"
|
95
|
+
end
|
96
|
+
{ :p => p }
|
97
|
+
end
|
98
|
+
|
99
|
+
def self.even_number(n)
|
100
|
+
if n % 2 == 0
|
101
|
+
p = "Number is even"
|
102
|
+
else
|
103
|
+
p = "Sorry,number isn't even"
|
104
|
+
end
|
105
|
+
{ :p => p}
|
106
|
+
end
|
107
|
+
|
108
|
+
def self.check(a, b, r, z)
|
109
|
+
ab = a % b
|
110
|
+
if ab == r || ab == z
|
111
|
+
s = "Really,the remainder is set to the given numbers"
|
112
|
+
else
|
113
|
+
s = "No,the remainder is no set to the given numbers"
|
114
|
+
end
|
115
|
+
{ :s => s }
|
116
|
+
end
|
117
|
+
|
118
|
+
def self.number_of_hundreds(n)
|
119
|
+
num = n / 100
|
120
|
+
if n > 99
|
121
|
+
s = 1
|
122
|
+
else
|
123
|
+
s = 2
|
124
|
+
end
|
125
|
+
{s: s}
|
126
|
+
end
|
127
|
+
|
128
|
+
def self.sixty_seven(n)
|
129
|
+
x = n.to_s.length # number of digits in number
|
130
|
+
z = n.to_s.chars.map { |sum,n| sum = sum.to_i + n.to_i} # display sum
|
131
|
+
x = n.to_s.split('')
|
132
|
+
y = x.to_a
|
133
|
+
f = "Display the first digit " + y[0].to_s # display first digit
|
134
|
+
s = "Display the last digit " + y[-1].to_s # display the last digit
|
135
|
+
t = "Display the penultimate digit " + y[-2].to_s # dispaly penultimate digit
|
136
|
+
{ :f => f, :s => s, :t => t}
|
137
|
+
end
|
138
|
+
|
139
|
+
def self.sixty_eight_a(n)
|
140
|
+
if n.to_s.reverse == n.to_s
|
141
|
+
p = "This number is palindrome"
|
142
|
+
else
|
143
|
+
p = "This number is'nt palindrome"
|
144
|
+
end
|
145
|
+
{ :p => p }
|
146
|
+
end
|
147
|
+
|
148
|
+
def self.fourty(a, b)
|
149
|
+
if a <= b
|
150
|
+
p = ("a = 0")
|
151
|
+
a = 0
|
152
|
+
else
|
153
|
+
p = "a > b"
|
154
|
+
end
|
155
|
+
{ :p => p }
|
156
|
+
end
|
157
|
+
|
158
|
+
def self.age(n)
|
159
|
+
if n % 10 == 1 && n != 11
|
160
|
+
p = " Год "
|
161
|
+
elsif n >= 5 && n <= 20
|
162
|
+
p = " Лет "
|
163
|
+
elsif n % 10 <= 4 && n % 10 > 0
|
164
|
+
p = " Годa "
|
165
|
+
else
|
166
|
+
p = " Лет "
|
167
|
+
end
|
168
|
+
{:p => p }
|
169
|
+
end
|
170
|
+
|
171
|
+
def self.power(n)
|
172
|
+
x = n**2
|
173
|
+
{ x: x }
|
174
|
+
end
|
175
|
+
|
176
|
+
def self.factor(n)
|
177
|
+
x = Math.gamma(n+1)
|
178
|
+
{ f: x }
|
179
|
+
end
|
180
|
+
|
181
|
+
def self.chs(k, l)
|
182
|
+
if k != l
|
183
|
+
sol = "k != l"
|
184
|
+
#k = ( k + l) && l = ( k + l )
|
185
|
+
else
|
186
|
+
sol = "k && l = 0"
|
187
|
+
#k = 0 && l = 0
|
188
|
+
end
|
189
|
+
{ :sol => sol }
|
190
|
+
end
|
191
|
+
|
192
|
+
def self.sixty_five(n)
|
193
|
+
a = n/10
|
194
|
+
b = n - a.to_i * 10
|
195
|
+
if a**2 == ( a + b )**3
|
196
|
+
z = "Yes, n**2 = n(digital**3)"
|
197
|
+
else
|
198
|
+
z = "No, n**2 != n(digital**3)"
|
199
|
+
end
|
200
|
+
{ :z => z }
|
201
|
+
end
|
202
|
+
|
203
|
+
def self.math1(x, y)
|
204
|
+
sum = x + y
|
205
|
+
diff = x - y
|
206
|
+
comp = x * y
|
207
|
+
{ sum: sum, diff: diff, comp: comp}
|
208
|
+
end
|
209
|
+
|
210
|
+
def self.powers(m1, m2, r)
|
211
|
+
x = (m1 * m2)/(r**2)
|
212
|
+
{ sol: x }
|
213
|
+
end
|
214
|
+
|
215
|
+
def self.fou_one(a, b, c)
|
216
|
+
if a >= 1 && a <= 3
|
217
|
+
a = "belong to the gap"
|
218
|
+
else
|
219
|
+
a = "do not belong to the gap"
|
220
|
+
end
|
221
|
+
|
222
|
+
if b >= 1 && b <= 3
|
223
|
+
b = "belong to the gap"
|
224
|
+
else
|
225
|
+
b = "do not belong to the gap"
|
226
|
+
end
|
227
|
+
|
228
|
+
if c >= 1 && c <= 3
|
229
|
+
c = "belong to the gap"
|
230
|
+
else
|
231
|
+
c = "do not belong to the gap"
|
232
|
+
end
|
233
|
+
{ a: a, b:b, c:c}
|
234
|
+
end
|
235
|
+
|
236
|
+
def self.half_or_double(x, y)
|
237
|
+
if x < y
|
238
|
+
x = ( x + y ) / 2
|
239
|
+
y = ( x + y ) * 2
|
240
|
+
else
|
241
|
+
y = ( x + y ) / 2
|
242
|
+
x = ( x + y ) * 2
|
243
|
+
end
|
244
|
+
{ sol1: x,
|
245
|
+
sol2: y }
|
246
|
+
end
|
247
|
+
|
248
|
+
def self.dano(a, b)
|
249
|
+
c = ( Math.sqrt( ( b**2 ) - ( a ** 2 ) ) ).round(0)
|
250
|
+
r = ( ( a + c - b)/2 ).round(0)
|
251
|
+
{ c: c,
|
252
|
+
r: r }
|
253
|
+
end
|
254
|
+
|
255
|
+
def self.two_tasks(x)
|
256
|
+
result_1 = ( 1 - 2 * x + ( 3 * (x**2 ) ) - ( 4 * ( x**3 ) ) )
|
257
|
+
result_2 = ( 1 + 2 * x + ( 3 * (x**2 ) ) + ( 4 * ( x**3 ) ) )
|
258
|
+
{ result_1: result_1, result_2: result_2 }
|
259
|
+
end
|
260
|
+
|
261
|
+
def self.cube(a)
|
262
|
+
v = ( a**3 )
|
263
|
+
s = ( 6 * ( a**2 ) )
|
264
|
+
{ v: v, s:s }
|
265
|
+
end
|
266
|
+
|
267
|
+
def self.quadratic_equation(a, b, c)
|
268
|
+
d = b * b - 4 * a * c
|
269
|
+
|
270
|
+
if (d == 0)
|
271
|
+
x1 = ( -b/2/a ) && x2 = ( -b/2/a )
|
272
|
+
else
|
273
|
+
end
|
274
|
+
|
275
|
+
if (d > 0)
|
276
|
+
x1 = ( (-b-Math.sqrt(d))/2/a).round(2)
|
277
|
+
x2 = ( (-b+Math.sqrt(d))/2/a).round(2)
|
278
|
+
else
|
279
|
+
x1 = (-b/2/a) +(Math.sqrt(-d)/2/a).round(2)
|
280
|
+
x2 = (-b/2/a) +(-Math.sqrt(-d)/2/a).round(2)
|
281
|
+
end
|
282
|
+
{ x1: x1, x2: x2 }
|
283
|
+
end
|
284
|
+
|
285
|
+
def self.gsub(n)
|
286
|
+
n.downcase!
|
287
|
+
if n.to_s.gsub!(/!/, ".")
|
288
|
+
s = "Your redacted string is #{n}"
|
289
|
+
else
|
290
|
+
puts "Nothing to do here!"
|
291
|
+
end
|
292
|
+
puts "Your string is: #{n}"
|
293
|
+
{ :s => s }
|
294
|
+
end
|
295
|
+
|
296
|
+
def self.string(n)
|
297
|
+
puts "Your string before readected: " + "#{n}"
|
298
|
+
n.delete! "*"
|
299
|
+
str1 = "Your string after readected: #{n}"
|
300
|
+
{ :str1 => str1 }
|
301
|
+
end
|
302
|
+
|
303
|
+
def self.include_scan(n)
|
304
|
+
if n.include? "eeeee"
|
305
|
+
s = "Yes, string include 'eeeee' "
|
306
|
+
else
|
307
|
+
s = "No, string includen't 'eeeee' "
|
308
|
+
end
|
309
|
+
{ :s => s }
|
310
|
+
end
|
311
|
+
|
312
|
+
def self.gsub_include(n)
|
313
|
+
if n.to_s.include? "*"
|
314
|
+
x = n.gsub(/!/, "-")
|
315
|
+
end
|
316
|
+
puts "Text before redacted: #{n}"
|
317
|
+
z = "Text after redacted: #{x}"
|
318
|
+
{ :z => z }
|
319
|
+
end
|
320
|
+
|
321
|
+
def self.real(a, b, c, d)
|
322
|
+
z = [a ** 2, b ** 2, c ** 2, d ** 2 ]
|
323
|
+
if a <= b && b <= c && c <= d
|
324
|
+
norm = "Highest number "
|
325
|
+
elsif a > b && b > c && c > d
|
326
|
+
norm = "Digital in normal"
|
327
|
+
else
|
328
|
+
norm = "Squares of numbers #{z}"
|
329
|
+
end
|
330
|
+
{ :norm => norm }
|
331
|
+
end
|
332
|
+
|
333
|
+
def self.put(a)
|
334
|
+
arr = []
|
335
|
+
x = ( 1..a ).select{ |x| arr << x if a % x == 0 }
|
336
|
+
{ res: arr}
|
337
|
+
end
|
338
|
+
|
339
|
+
def self.fact(m, n)
|
340
|
+
n_1 = Math.gamma(n+1)
|
341
|
+
m_1 = Math.gamma(m+1)
|
342
|
+
m_n = Math.gamma( ( m + n ) + 1 )
|
343
|
+
{ result: ( n_1 + m_1 )/m_n }
|
344
|
+
end
|
345
|
+
|
346
|
+
def self.positive_power_two(a, b, c)
|
347
|
+
if a > 0
|
348
|
+
a = a ** 2
|
349
|
+
end
|
350
|
+
if b > 0
|
351
|
+
b = b ** 2
|
352
|
+
end
|
353
|
+
if c > 0
|
354
|
+
c = c ** 2
|
355
|
+
end
|
356
|
+
{ c: c }
|
357
|
+
end
|
358
|
+
|
359
|
+
def self.mosn(x, y)
|
360
|
+
max = [x, y].max
|
361
|
+
min = [x, y].min
|
362
|
+
minmax = [x, y].minmax
|
363
|
+
{max: max, min: min, minmax: minmax}
|
364
|
+
end
|
365
|
+
|
366
|
+
def self.temp(b)
|
367
|
+
|
368
|
+
to_f = ( ( 0..b ).each { |t| return ( t * 1.8 + 32 ).round(2) } )
|
369
|
+
{ to_f: to_f }
|
370
|
+
end
|
371
|
+
|
372
|
+
def self.rad(r1, r2)
|
373
|
+
if r1 < r2
|
374
|
+
r = ( Math::PI * ( r1 ** 2) - ( r2 ** 2) ).round(2)
|
375
|
+
else
|
376
|
+
r = "das"
|
377
|
+
end
|
378
|
+
{ r: r }
|
379
|
+
end
|
380
|
+
|
381
|
+
def self.new(v1, v2, a1, a2, s)
|
382
|
+
result = ( (-(v1+v2)+Math.sqrt( ( (v1+v2) ** 2 )+ 2 * ( a1 + a2 ) * s ) )/( a1 + a2 ) ).round(0)
|
383
|
+
{ result: result }
|
384
|
+
end
|
385
|
+
|
386
|
+
def self.test(n)
|
387
|
+
if n.to_s.include?("3")
|
388
|
+
p = "Yes,include"
|
389
|
+
else
|
390
|
+
p = "No"
|
391
|
+
end
|
392
|
+
{ :p => p}
|
393
|
+
end
|
394
|
+
|
395
|
+
def self.children(n)
|
396
|
+
z = n.gsub!(/child/, "children")
|
397
|
+
{ :p => "#{z}" }
|
398
|
+
end
|
399
|
+
|
400
|
+
def self.average2(a, b)
|
401
|
+
average_ariphmetic = ( a.abs + b.abs ) / 2
|
402
|
+
average_geometric = Math.sqrt( a.abs * b.abs ).round(1)
|
403
|
+
{ average_ariphmetic: average_ariphmetic, average_geometric: average_geometric }
|
404
|
+
end
|
405
|
+
|
406
|
+
def self.does_it_exist(x, y, z)
|
407
|
+
if x + y >= z || x + z >= y || y + z >= x
|
408
|
+
s1 = "Triangle exist"
|
409
|
+
else
|
410
|
+
s2 = "This is not triangle"
|
411
|
+
end
|
412
|
+
|
413
|
+
if x < y
|
414
|
+
k = x;
|
415
|
+
m = y;
|
416
|
+
else
|
417
|
+
k = y;
|
418
|
+
m = x;
|
419
|
+
end
|
420
|
+
|
421
|
+
if
|
422
|
+
m < z
|
423
|
+
h = z
|
424
|
+
else
|
425
|
+
h = m;
|
426
|
+
m = z;
|
427
|
+
end
|
428
|
+
|
429
|
+
t1 = h * h
|
430
|
+
t2 = k * k + m * m
|
431
|
+
|
432
|
+
if t1 < t2
|
433
|
+
t1 = "This is an angular triangle"
|
434
|
+
else
|
435
|
+
t2 = "This isn't an angular triangle"
|
436
|
+
end
|
437
|
+
{ rez1: s1, rez2: t2 }
|
438
|
+
end
|
439
|
+
|
440
|
+
def self.defs(a, b)
|
441
|
+
x = a.to_i.gcdlcm b.to_i
|
442
|
+
if a.to_i == 0 || b.to_i == 0
|
443
|
+
p = "Danger!You try division on 0"
|
444
|
+
else
|
445
|
+
p = "Greatest common divisor"
|
446
|
+
end
|
447
|
+
{ :p => p }
|
448
|
+
end
|
4
449
|
end
|
5
|
-
end
|