Last active
March 6, 2017 23:21
-
-
Save mnmkng/5d9669db40c6123c3aa58fd6c394f113 to your computer and use it in GitHub Desktop.
#PES S02 S03
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pole = ["123", "4a5", "Ka", "5,5,1", "0,1", "15,5", "1x", "15.5", "1,"] | |
suma = 0 | |
pole.each do |item| | |
if item =~ /^\d+(,?\d+)$/ | |
nums = item.gsub(",", "") | |
nums.length.times do |i| | |
suma += nums[i].to_i | |
end | |
end | |
end | |
p suma |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
matice = "1,2,3;7,8,9;6,5,4" | |
p pole = matice.split(";") | |
dohromady = 0 | |
pole.length.times do |i| | |
p docas = pole[i].split(",") | |
dohromady += docas[i].to_i | |
end | |
puts dohromady |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
employees = [ | |
{"first_name" => "James", "last_name" => "Smith", "age" => 22, "wage" => 20000}, | |
{"first_name" => "Mary", "last_name" => "Johnson", "age" => 20, "wage" => 19000}, | |
{"first_name" => "John", "last_name" => "Williams", "age" => 25, "wage" => 22000}, | |
{"first_name" => "Patricia", "last_name" => "Brown", "age" => 30, "wage" => 25000}, | |
{"first_name" => "Robert", "last_name" => "Jones", "age" => 27, "wage" => 25000}, | |
{"first_name" => "Linda", "last_name" => "Miller", "age" => 22, "wage" => 21000}, | |
{"first_name" => "Michael", "last_name" => "Davis", "age" => 35, "wage" => 25000}, | |
{"first_name" => "Barbara", "last_name" => "Wilson", "age" => 24, "wage" => 23000}, | |
{"first_name" => "William", "last_name" => "Anderson", "age" => 40, "wage" => 30000}, | |
{"first_name" => "Elizabeth", "last_name" => "Taylor", "age" => 23, "wage" => 20000}, | |
{"first_name" => "Jennifer", "last_name" => "Smith", "age" => 25, "wage" => 23000} | |
] | |
dictionaries = { | |
"EN" => { | |
"CZ" => { | |
"dog" => ["pes"], | |
"elephant" => ["slon"], | |
"tiger" => ["tygr"], | |
"month" => ["mesic"], | |
"moon" => ["mesic"], | |
"will" => ["vule", "zavet"] | |
}, | |
"DE" => { | |
"dog" => ["Hund"], | |
"tiger" => ["Tiger"], | |
"cat" => ["Katze"] | |
} | |
}, | |
"CZ" => { | |
"EN" => { | |
"pes" => ["dog"], | |
"mesic" => ["month", "moon"], | |
"vule" => ["will"], | |
"zavet" => ["will"] | |
}, | |
"SK" => { | |
"pes" => ["pes"], | |
"tygr" => ["tiger"], | |
"velbloud" => ["tava"] | |
}, | |
"DE" => { | |
"pes" => ["Hund"], | |
"hodina" => ["Stunde", "Uhr"] | |
} | |
} | |
} | |
study_results = [ | |
{ | |
"first_name" => "James", | |
"last_name" => "Smith", | |
"age" => 20, | |
"study_results" => { | |
"CAR" => nil, | |
"PR1" => 1, | |
"MA1" => 1, | |
"BEN" => 2, | |
"SDP" => nil | |
} | |
}, | |
{ | |
"first_name" => "Mary", | |
"last_name" => "Johnson", | |
"age" => 19, | |
"study_results" => { | |
"BFM" => 2, | |
"TAX" => nil, | |
"MA1" => 3, | |
"BEN" => 1, | |
"ITA" => 2 | |
} | |
}, | |
{ | |
"first_name" => "John", | |
"last_name" => "Williams", | |
"age" => 19, | |
"study_results" => { | |
"CAR" => 1, | |
"PR1" => 3, | |
"MA1" => 2, | |
"BEN" => nil, | |
"SDP" => 3, | |
"OPT" => nil | |
} | |
}, | |
{ | |
"first_name" => "Patricia", | |
"last_name" => "Brown", | |
"age" => 21, | |
"study_results" => { | |
"CAR" => nil, | |
"PR1" => 2, | |
"MA1" => nil, | |
"BEN" => nil, | |
"SDP" => nil, | |
"GE1" => nil, | |
"RU1" => nil | |
} | |
}, | |
{ | |
"first_name" => "Robert", | |
"last_name" => "Jones", | |
"age" => 20, | |
"study_results" => { | |
"BFM" => nil, | |
"TAX" => nil, | |
"MA1" => 2, | |
"BEN" => 1, | |
"ITA" => 1 | |
} | |
} | |
] | |
a1 = employees.sort_by{|employee| employee["age"]} | |
p "1.1 #{a1}" | |
a2 = employees.sort{|a,b| b["wage"] <=> a["wage"]} | |
p "1.2 #{a2}" | |
a3 = employees.sort_by{|employee| -employee["wage"]} | |
p "1.3 #{a3}" | |
a4 = employees.sort_by{|employee| employee["last_name"]} | |
p "1.4 #{a4}" | |
a5 = employees.sort{|a,b| b["last_name"] <=> a["last_name"]} | |
p "1.5 #{a5}" | |
b = employees.select {|employee| employee["wage"] > 22000} | |
p "2 #{b}" | |
# v zadani je < 25000 a vychazi prazdne pole. | |
c = employees.select{|employee| employee["age"] >= 30}.select{|employee| employee["wage"] < 25000} | |
p "3 #{c}" | |
# v zadani je < 25000 a vychazi prazdne pole. Zmenil jsem zadani aby bylo co radit. | |
d = employees.select{|employee| employee["age"] >= 30}.select{|employee| employee["wage"] <= 25000}.sort_by{|emp| -emp["age"]} | |
p "4 #{d}" | |
e = employees.inject{|min,employee| min["age"] > employee["age"] ? employee : min} | |
p "5 #{e}" | |
f = employees.inject{|max,emp| max["wage"] < emp["wage"] ? emp : max} | |
p "6 #{f}" | |
g = employees.sort_by{|emp| emp["age"]}.collect {|emp| emp["last_name"]} | |
p "7 #{g}" | |
h = employees.sort_by{|emp| emp["age"]}.collect {|emp| emp['last_name']}.join(",") | |
p "8 #{h}" | |
i = employees.sort_by{|e| -e["wage"]}.collect{|e| "#{e['first_name']} #{e['last_name']}"}.join(",") | |
p "9 #{i}" | |
j = employees.find{|e| (e["last_name"].length > 5) and (e["age"] > 27) and (e["wage"] < 30000)} | |
p "10 #{j}" | |
k = dictionaries.keys | |
p "11 #{k}" | |
require "set" | |
l = Set.new | |
dictionaries.each{|k,v| v.keys.each{|key| l << key}} | |
p "12 #{l.to_a}" | |
m = study_results.select{|student| student["study_results"].has_key?("MA1")} | |
p "13 #{m}" | |
n = study_results.select{|s| (s["study_results"]["MA1"] != nil) and (s["study_results"]["MA1"] <= 2)} | |
p "14 #{n}" | |
o = study_results.select{|s| s["study_results"].values.count(1)>= 2} | |
p "15 #{o}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
text = "Spicy jalapeno bacon ipsum dolor amet deserunt irure officia incididunt flank hamburger salami tail magna ut ut. | |
Doner sirloin landjaeger consequat pastrami ut pariatur. Ad pastrami in shankle corned beef pork loin. | |
Pastrami ham ut pork belly nostrud, do frankfurter incididunt beef chuck tri-tip kielbasa non. | |
Officia excepteur pig mollit. | |
Filet mignon incididunt ea consequat magna velit tri-tip corned beef cupim alcatra consectetur ground round. | |
Nostrud ham hock doner capicola turducken tri-tip shank veniam eu." | |
hash = Hash.new(0) | |
text.each_line do |line| | |
line.split(" ").each do |text| | |
text.length.times do |i| | |
hash[text.downcase[i]] += 1 | |
end | |
end | |
end | |
p hash.sort_by{|k,v| v}.reverse[0..2] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
s = "jeLenovi pivo nelej" | |
p (s.gsub!(" ", "").downcase! == s.reverse) ? "palindrom" : "not a palindrom" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
=begin | |
Napište program, který od uživatele načte jeho jméno a regulárním výrazem ověří, zda jméno odpovídá očekávanému formátu. Zkuste promyslet následující situace (nejprve každou zvlášť, pak se případně zamyslete nad některými kombinacemi: | |
Jméno očekáváme v běžném tvaru „Jméno Příjmení“, tedy velké písmeno následované malými, pak mezera a pak znovu velké písmeno následované malými. | |
Dvě jména a pak příjmení. Případně i ještě více křestních jmen a pak teprve příjmení. | |
První křestní jméno, pak iniciála druhého křestního jména a pak příjmení. | |
Jméno, kdy před příjmením mohou (ale nemusí) být slova jako „van“, „von“ (jinak řečeno slova nezačínající velkým písmenem). | |
Jméno, které je zakončeno římským číslem a tečkou (jako Karel IV. nebo Přemysl Otakar II.). | |
=end | |
names = ["Jmeno Prijmeni", "Jmeno Jmeno Jmeno Prijmeni", "Jmeno J. Prijmeni", "Jmeno von Prijmeni", "Premysl Otakar II."] | |
regexps = [/[A-Z][a-z]+\s[A-Z][a-z]+$/, | |
/([A-Z][a-z]+\s)+[A-Z][a-z]+$/, | |
/[A-Z][a-z]+\s[A-Z].\s[A-Z][a-z]+$/, | |
/[A-Z][a-z]+\s([a-z]+\s)?[A-Z][a-z]+$/, | |
/([A-Z][a-z]+\s)+[MCLXVI]+.$/ | |
] | |
ultimate = /([A-Z][a-z]+\s)+([A-Z].\s)?([a-z]+\s)?[A-Z][a-z]+(\s[MCLXVI]+.)?$/ | |
names.length.times do |i| | |
p names[i] =~ regexps[i] | |
p names[i] =~ ultimate | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
num = "MCMXLVII" | |
map = { | |
"M" => 1000, | |
"C" => 100, | |
"L" => 50, | |
"X" => 10, | |
"V" => 5, | |
"I" => 1 | |
} | |
sum = 0 | |
num.length.times do |i| | |
sum += ((i != num.length-1) and (map[num[i]] < map[num[i+1]])) ? -map[num[i]] : map[num[i]] | |
end | |
p sum |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment