Hello Again World Programmering for gøy
Innhold Installasjon av Ruby Oppvarming: Binærsøk Oppgave: Finn anagrammer For de interesserte: Gjenta i C For de interesserte: Gjenta i C/Ruby
Installasjon av Ruby Ruby installer på \\bastian\public\install\ruby\\bastian\public\install\ruby Her finner du også: –Syntax definition filer for TextPad og EditPlus –EditPlus for de som trenger en editor Installerer Ruby, samt dokumentasjon
Hello Ruby C:\>irb irb(main):001:0> puts "Hello world" Hello world => nil irb(main):002:0> irb(main):001:0> class A irb(main):002:1> def test irb(main):003:2> puts "hello world" irb(main):004:2> end irb(main):005:1> end => nil irb(main):006:0> a = A.new => # irb(main):007:0> a.test hello world => nil irb(main):008:0>
Innhold Installasjon av Ruby Oppvarming: Binærsøk Oppgave: Finn anagrammer For de interesserte: Gjenta i C For de interesserte: Gjenta i C/Ruby
Binærsøk (”chop”) ? ? ?
Skriv en test require 'slice_chop' require 'test/unit' require 'test/unit/ui/console' class TestChop < Test::Unit::TestCase def testEmpty assert_equal(-1, chop(3, [])) end def testSingle assert_equal(-1, chop(3, [1])) assert_equal(0, chop(1, [1])) end def testThree assert_equal(0, chop(1, [1, 3, 5])) assert_equal(1, chop(3, [1, 3, 5])) assert_equal(2, chop(5, [1, 3, 5])) assert_equal(-1, chop(0, [1, 3, 5])) assert_equal(-1, chop(2, [1, 3, 5])) assert_equal(-1, chop(4, [1, 3, 5])) assert_equal(-1, chop(6, [1, 3, 5])) end def TestChop.run Test::Unit::UI::Console::TestRunner.run(TestChop) end
Arrays i Ruby irb(main):007:0> a = Array.new => [] irb(main):009:0> a = [0, 3, 4, 6, 10, 11, 17 ] => [0, 3, 4, 6, 10, 11, 17] irb(main):010:0> a[3] => 6 irb(main):011:0> a[4..6] => [10, 11, 17] irb(main):013:0> a[3,2] => [6, 10]
Vær så god! Last inn testen i IRB med: irb(main):001:0> load 'TestChop.rb’ irb(main):002:0> TestChop.run (Min beste løsning er på 14 linjer) Beregnet tid: 5 minutter + 5 minutter + 10 minutter
Innhold Installasjon av Ruby Oppvarming: Binærsøk Oppgave: Finn anagrammer For de interesserte: Gjenta i C For de interesserte: Gjenta i C/Ruby
Anagram Eksempler: –Ante, neat –Blue, lube –Chin, inch –Door, odor, rood –Ever, veer –Post, spot
Hashmaps i Ruby irb(main):001:0> m = Hash.new => {} irb(main):002:0> m = { 'a' => 'b', 'r' => [1,2,3] } => {"a"=>"b", "r"=>[1, 2, 3]} irb(main):003:0> m['a'] => "b" irb(main):004:0> m['b'] => nil irb(main):005:0> m['r'] => [1, 2, 3] irb(main):006:0> m['c'] = 15 => 15 irb(main):007:0> m => {"a"=>"b", "c"=>15, "r"=>[1, 2, 3]} irb(main):008:0> m['a'] = "hello world" => "hello world" irb(main):009:0> m => {"a"=>"hello world", "c"=>15, "r"=>[1, 2, 3]} irb(main):010:0> m.delete("r") => [1, 2, 3] irb(main):011:0> m => {"a"=>"hello world", "c"=>15} irb(main):012:0>
Skriv en test require ’anagram' require 'test/unit' class TestAnagram < Test::Unit::TestCase def testAnagrams assert(anagrams?(”door”, ”odor”)) assert(not anagrams?(”door”, ”deer”)) end def testAnagramClass anagramCollection = collect_anagrams(”door”, ”odor”, ”rood”, ”ever”, ”veer”)) assert(contains_anagrams([”door”, ”odor”, ”rood”], anagramCollection)) assert(contains_anagrams([”ever”, ”veer”], anagramCollection)) end
Vær så god! Last inn testen i IRB med: irb(main):001:0> load 'TestAnagram.rb’ NB: Min beste løsning er på 7 linjer! Beregnet tid: 5 minutter + 15 minutter diskusjon + 15 minutter
Innhold Installasjon av Ruby Oppvarming: Binærsøk Oppgave: Finn anagrammer For de interesserte: Gjenta i C For de interesserte: Gjenta i C/Ruby
Installasjon av Cygwin GCC \\bastian\public\install\cygwin\setup.exe Filene ligger lokalt på –\\bastian\public\install\cygwin\packages\\bastian\public\install\cygwin\packages Start gcc med kommandoen gcc
Links gIRuby/ gIRuby/