trackler 2.2.1.4 → 2.2.1.5
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/trackler/version.rb +1 -1
- data/tracks/bash/config.json +10 -0
- data/tracks/bash/exercises/error-handling/error_handling_test.sh +31 -0
- data/tracks/bash/exercises/error-handling/example.sh +9 -0
- data/tracks/ceylon/config/maintainers.json +25 -0
- data/tracks/chapel/README.md +1 -1
- data/tracks/chapel/config/exercise_readme.go.tmpl +16 -0
- data/tracks/chapel/config/maintainers.json +5 -0
- data/tracks/chapel/config.json +0 -5
- data/tracks/coffeescript/config/exercise_readme.go.tmpl +16 -0
- data/tracks/coffeescript/config.json +84 -26
- data/tracks/coffeescript/exercises/accumulate/README.md +43 -0
- data/tracks/coffeescript/exercises/anagram/README.md +21 -0
- data/tracks/coffeescript/exercises/atbash-cipher/README.md +42 -0
- data/tracks/coffeescript/exercises/beer-song/README.md +335 -0
- data/tracks/coffeescript/exercises/binary/README.md +43 -0
- data/tracks/coffeescript/exercises/binary-search-tree/README.md +68 -0
- data/tracks/coffeescript/exercises/bob/README.md +26 -0
- data/tracks/coffeescript/exercises/clock/README.md +21 -0
- data/tracks/coffeescript/exercises/hello-world/README.md +29 -0
- data/tracks/coffeescript/exercises/hexadecimal/README.md +22 -0
- data/tracks/coffeescript/exercises/linked-list/README.md +42 -0
- data/tracks/coffeescript/exercises/luhn/README.md +79 -0
- data/tracks/coffeescript/exercises/nth-prime/README.md +23 -0
- data/tracks/coffeescript/exercises/nucleotide-count/README.md +41 -0
- data/tracks/coffeescript/exercises/palindrome-products/README.md +48 -0
- data/tracks/coffeescript/exercises/pascals-triangle/README.md +29 -0
- data/tracks/coffeescript/exercises/queen-attack/README.md +41 -0
- data/tracks/coffeescript/exercises/triangle/README.md +34 -0
- data/tracks/coffeescript/exercises/trinary/README.md +36 -0
- data/tracks/coffeescript/exercises/word-count/README.md +27 -0
- data/tracks/coffeescript/exercises/wordy/README.md +71 -0
- data/tracks/coldfusion/config/exercise_readme.go.tmpl +16 -0
- data/tracks/coldfusion/config.json +4 -6
- data/tracks/coldfusion/exercises/leap/README.md +33 -0
- data/tracks/coq/README.md +19 -32
- data/tracks/coq/config/exercise_readme.go.tmpl +16 -0
- data/tracks/coq/config.json +9 -5
- data/tracks/coq/exercises/hello-world/README.md +45 -0
- data/tracks/coq/exercises/rna-transcription/README.md +49 -0
- data/tracks/coq/exercises/tautology/README.md +33 -0
- data/tracks/cpp/config/exercise_readme.go.tmpl +16 -0
- data/tracks/cpp/config.json +144 -41
- data/tracks/cpp/exercises/allergies/README.md +69 -0
- data/tracks/cpp/exercises/anagram/README.md +45 -0
- data/tracks/cpp/exercises/atbash-cipher/README.md +66 -0
- data/tracks/cpp/exercises/beer-song/README.md +359 -0
- data/tracks/cpp/exercises/binary/README.md +67 -0
- data/tracks/cpp/exercises/bob/README.md +50 -0
- data/tracks/cpp/exercises/clock/README.md +45 -0
- data/tracks/cpp/exercises/crypto-square/README.md +106 -0
- data/tracks/cpp/exercises/difference-of-squares/README.md +51 -0
- data/tracks/cpp/exercises/etl/README.md +83 -0
- data/tracks/cpp/exercises/food-chain/README.md +102 -0
- data/tracks/cpp/exercises/gigasecond/README.md +43 -0
- data/tracks/cpp/exercises/grade-school/README.md +74 -0
- data/tracks/cpp/exercises/grains/README.md +66 -0
- data/tracks/cpp/exercises/hamming/README.md +74 -0
- data/tracks/cpp/exercises/hello-world/README.md +53 -0
- data/tracks/cpp/exercises/hexadecimal/README.md +46 -0
- data/tracks/cpp/exercises/leap/README.md +65 -0
- data/tracks/cpp/exercises/meetup/README.md +62 -0
- data/tracks/cpp/exercises/nth-prime/README.md +47 -0
- data/tracks/cpp/exercises/nucleotide-count/README.md +65 -0
- data/tracks/cpp/exercises/phone-number/README.md +66 -0
- data/tracks/cpp/exercises/prime-factors/README.md +68 -0
- data/tracks/cpp/exercises/queen-attack/README.md +65 -0
- data/tracks/cpp/exercises/raindrops/README.md +56 -0
- data/tracks/cpp/exercises/rna-transcription/README.md +57 -0
- data/tracks/cpp/exercises/robot-name/README.md +54 -0
- data/tracks/cpp/exercises/roman-numerals/README.md +81 -0
- data/tracks/cpp/exercises/say/README.md +101 -0
- data/tracks/cpp/exercises/scrabble-score/README.md +76 -0
- data/tracks/cpp/exercises/series/README.md +59 -0
- data/tracks/cpp/exercises/sieve/README.md +66 -0
- data/tracks/cpp/exercises/space-age/README.md +56 -0
- data/tracks/cpp/exercises/sum-of-multiples/README.md +50 -0
- data/tracks/cpp/exercises/triangle/README.md +58 -0
- data/tracks/cpp/exercises/trinary/README.md +60 -0
- data/tracks/cpp/exercises/word-count/README.md +51 -0
- data/tracks/crystal/config.json +69 -3
- data/tracks/d/config/exercise_readme.go.tmpl +16 -0
- data/tracks/d/config.json +54 -3
- data/tracks/d/exercises/bob/README.md +49 -0
- data/tracks/d/exercises/circular-buffer/README.md +81 -0
- data/tracks/d/exercises/crypto-square/README.md +105 -0
- data/tracks/d/exercises/difference-of-squares/README.md +50 -0
- data/tracks/d/exercises/etl/README.md +82 -0
- data/tracks/d/exercises/gigasecond/README.md +42 -0
- data/tracks/d/exercises/hamming/README.md +73 -0
- data/tracks/d/exercises/hello-world/README.md +52 -0
- data/tracks/d/exercises/leap/README.md +64 -0
- data/tracks/d/exercises/nucleotide-count/README.md +64 -0
- data/tracks/d/exercises/pangram/README.md +46 -0
- data/tracks/d/exercises/raindrops/README.md +55 -0
- data/tracks/d/exercises/react/README.md +50 -0
- data/tracks/d/exercises/rna-transcription/README.md +56 -0
- data/tracks/d/exercises/robot-name/README.md +53 -0
- data/tracks/d/exercises/roman-numerals/README.md +80 -0
- data/tracks/d/exercises/series/README.md +58 -0
- data/tracks/d/exercises/triangle/README.md +57 -0
- data/tracks/delphi/config/maintainers.json +25 -0
- data/tracks/ecmascript/config/maintainers.json +35 -0
- data/tracks/elisp/config/exercise_readme.go.tmpl +16 -0
- data/tracks/elisp/config.json +79 -22
- data/tracks/elisp/exercises/allergies/README.md +37 -0
- data/tracks/elisp/exercises/anagram/README.md +13 -0
- data/tracks/elisp/exercises/atbash-cipher/README.md +34 -0
- data/tracks/elisp/exercises/binary/README.md +35 -0
- data/tracks/elisp/exercises/bob/README.md +18 -0
- data/tracks/elisp/exercises/difference-of-squares/README.md +19 -0
- data/tracks/elisp/exercises/etl/README.md +51 -0
- data/tracks/elisp/exercises/gigasecond/README.md +11 -0
- data/tracks/elisp/exercises/grains/README.md +34 -0
- data/tracks/elisp/exercises/hamming/README.md +42 -0
- data/tracks/elisp/exercises/hello-world/README.md +21 -0
- data/tracks/elisp/exercises/leap/README.md +33 -0
- data/tracks/elisp/exercises/nucleotide-count/README.md +33 -0
- data/tracks/elisp/exercises/perfect-numbers/README.md +24 -0
- data/tracks/elisp/exercises/phone-number/README.md +34 -0
- data/tracks/elisp/exercises/raindrops/README.md +24 -0
- data/tracks/elisp/exercises/rna-transcription/README.md +25 -0
- data/tracks/elisp/exercises/robot-name/README.md +22 -0
- data/tracks/elisp/exercises/roman-numerals/README.md +49 -0
- data/tracks/elisp/exercises/word-count/README.md +19 -0
- data/tracks/elixir/config/maintainers.json +35 -0
- data/tracks/elm/config/exercise_readme.go.tmpl +16 -0
- data/tracks/elm/config.json +96 -5
- data/tracks/elm/exercises/accumulate/README.md +65 -0
- data/tracks/elm/exercises/allergies/README.md +67 -0
- data/tracks/elm/exercises/anagram/README.md +43 -0
- data/tracks/elm/exercises/atbash-cipher/README.md +64 -0
- data/tracks/elm/exercises/bob/README.md +48 -0
- data/tracks/elm/exercises/difference-of-squares/README.md +49 -0
- data/tracks/elm/exercises/etl/README.md +81 -0
- data/tracks/elm/exercises/gigasecond/README.md +41 -0
- data/tracks/elm/exercises/grade-school/README.md +72 -0
- data/tracks/elm/exercises/grains/README.md +64 -0
- data/tracks/elm/exercises/hamming/README.md +72 -0
- data/tracks/elm/exercises/hello-world/README.md +51 -0
- data/tracks/elm/exercises/largest-series-product/README.md +50 -0
- data/tracks/elm/exercises/leap/README.md +63 -0
- data/tracks/elm/exercises/list-ops/README.md +40 -0
- data/tracks/elm/exercises/nucleotide-count/README.md +63 -0
- data/tracks/elm/exercises/pangram/README.md +45 -0
- data/tracks/elm/exercises/phone-number/README.md +64 -0
- data/tracks/elm/exercises/raindrops/README.md +54 -0
- data/tracks/elm/exercises/rna-transcription/README.md +55 -0
- data/tracks/elm/exercises/robot-simulator/README.md +64 -0
- data/tracks/elm/exercises/roman-numerals/README.md +79 -0
- data/tracks/elm/exercises/run-length-encoding/README.md +60 -0
- data/tracks/elm/exercises/say/README.md +99 -0
- data/tracks/elm/exercises/scrabble-score/README.md +74 -0
- data/tracks/elm/exercises/series/README.md +57 -0
- data/tracks/elm/exercises/space-age/README.md +54 -0
- data/tracks/elm/exercises/strain/README.md +70 -0
- data/tracks/elm/exercises/sublist/README.md +51 -0
- data/tracks/elm/exercises/sum-of-multiples/README.md +48 -0
- data/tracks/elm/exercises/triangle/README.md +56 -0
- data/tracks/elm/exercises/word-count/README.md +49 -0
- data/tracks/fortran/config/exercise_readme.go.tmpl +16 -0
- data/tracks/fortran/config.json +21 -5
- data/tracks/fortran/exercises/bob/README.md +18 -0
- data/tracks/fortran/exercises/difference-of-squares/README.md +19 -0
- data/tracks/fortran/exercises/hamming/README.md +42 -0
- data/tracks/fortran/exercises/hello-world/README.md +21 -0
- data/tracks/fortran/exercises/pangram/README.md +15 -0
- data/tracks/fortran/exercises/raindrops/README.md +24 -0
- data/tracks/fortran/exercises/rna-transcription/README.md +25 -0
- data/tracks/go/config/maintainers.json +85 -0
- data/tracks/go/config.json +2 -2
- data/tracks/groovy/config/exercise_readme.go.tmpl +16 -0
- data/tracks/groovy/exercises/difference-of-squares/README.md +33 -0
- data/tracks/groovy/exercises/gigasecond/README.md +25 -0
- data/tracks/groovy/exercises/grains/README.md +48 -0
- data/tracks/groovy/exercises/hamming/README.md +56 -0
- data/tracks/groovy/exercises/hello-world/README.md +35 -0
- data/tracks/groovy/exercises/leap/README.md +47 -0
- data/tracks/groovy/exercises/nth-prime/README.md +29 -0
- data/tracks/groovy/exercises/phone-number/README.md +48 -0
- data/tracks/groovy/exercises/raindrops/README.md +38 -0
- data/tracks/groovy/exercises/rna-transcription/README.md +39 -0
- data/tracks/groovy/exercises/robot-name/README.md +36 -0
- data/tracks/groovy/exercises/roman-numerals/README.md +63 -0
- data/tracks/groovy/exercises/word-count/README.md +33 -0
- data/tracks/haxe/config/exercise_readme.go.tmpl +16 -0
- data/tracks/haxe/config.json +0 -2
- data/tracks/haxe/exercises/bob/README.md +18 -0
- data/tracks/haxe/exercises/hello-world/README.md +21 -0
- data/tracks/idris/config/exercise_readme.go.tmpl +16 -0
- data/tracks/idris/config.json +9 -3
- data/tracks/idris/exercises/hamming/README.md +42 -0
- data/tracks/idris/exercises/hello-world/README.md +21 -0
- data/tracks/idris/exercises/leap/README.md +33 -0
- data/tracks/java/config/maintainers.json +45 -0
- data/tracks/java/exercises/hello-world/TUTORIAL.md +1 -1
- data/tracks/javascript/config/maintainers.json +85 -0
- data/tracks/julia/config/exercise_readme.go.tmpl +16 -0
- data/tracks/julia/config.json +81 -5
- data/tracks/julia/exercises/anagram/README.md +13 -0
- data/tracks/julia/exercises/atbash-cipher/README.md +34 -0
- data/tracks/julia/exercises/bob/README.md +18 -0
- data/tracks/julia/exercises/complex-numbers/README.md +24 -0
- data/tracks/julia/exercises/custom-set/README.md +16 -0
- data/tracks/julia/exercises/difference-of-squares/README.md +19 -0
- data/tracks/julia/exercises/etl/README.md +51 -0
- data/tracks/julia/exercises/gigasecond/README.md +11 -0
- data/tracks/julia/exercises/hamming/README.md +42 -0
- data/tracks/julia/exercises/hello-world/README.md +21 -0
- data/tracks/julia/exercises/isogram/README.md +19 -0
- data/tracks/julia/exercises/leap/README.md +33 -0
- data/tracks/julia/exercises/luhn/README.md +71 -0
- data/tracks/julia/exercises/nucleotide-count/README.md +33 -0
- data/tracks/julia/exercises/pangram/README.md +15 -0
- data/tracks/julia/exercises/pascals-triangle/README.md +21 -0
- data/tracks/julia/exercises/raindrops/README.md +24 -0
- data/tracks/julia/exercises/rna-transcription/README.md +25 -0
- data/tracks/julia/exercises/robot-name/README.md +41 -0
- data/tracks/julia/exercises/roman-numerals/README.md +49 -0
- data/tracks/julia/exercises/rotational-cipher/README.md +59 -0
- data/tracks/julia/exercises/scrabble-score/README.md +44 -0
- data/tracks/julia/exercises/secret-handshake/README.md +35 -0
- data/tracks/julia/exercises/sieve/README.md +34 -0
- data/tracks/julia/exercises/transpose/README.md +65 -0
- data/tracks/julia/exercises/trinary/README.md +28 -0
- data/tracks/julia/exercises/word-count/README.md +19 -0
- data/tracks/lfe/config/exercise_readme.go.tmpl +16 -0
- data/tracks/lfe/config.json +125 -33
- data/tracks/lfe/exercises/accumulate/README.md +51 -0
- data/tracks/lfe/exercises/allergies/README.md +53 -0
- data/tracks/lfe/exercises/anagram/README.md +29 -0
- data/tracks/lfe/exercises/atbash-cipher/README.md +50 -0
- data/tracks/lfe/exercises/bank-account/README.md +46 -0
- data/tracks/lfe/exercises/beer-song/README.md +343 -0
- data/tracks/lfe/exercises/binary/README.md +51 -0
- data/tracks/lfe/exercises/bob/README.md +34 -0
- data/tracks/lfe/exercises/circular-buffer/README.md +66 -0
- data/tracks/lfe/exercises/clock/README.md +29 -0
- data/tracks/lfe/exercises/difference-of-squares/README.md +35 -0
- data/tracks/lfe/exercises/etl/README.md +67 -0
- data/tracks/lfe/exercises/gigasecond/README.md +27 -0
- data/tracks/lfe/exercises/grade-school/README.md +58 -0
- data/tracks/lfe/exercises/grains/README.md +50 -0
- data/tracks/lfe/exercises/hamming/README.md +58 -0
- data/tracks/lfe/exercises/largest-series-product/README.md +36 -0
- data/tracks/lfe/exercises/leap/README.md +49 -0
- data/tracks/lfe/exercises/luhn/README.md +87 -0
- data/tracks/lfe/exercises/meetup/README.md +46 -0
- data/tracks/lfe/exercises/nucleotide-count/README.md +49 -0
- data/tracks/lfe/exercises/parallel-letter-frequency/README.md +27 -0
- data/tracks/lfe/exercises/phone-number/README.md +50 -0
- data/tracks/lfe/exercises/rna-transcription/README.md +41 -0
- data/tracks/lfe/exercises/robot-simulator/README.md +50 -0
- data/tracks/lfe/exercises/series/README.md +43 -0
- data/tracks/lfe/exercises/space-age/README.md +40 -0
- data/tracks/lfe/exercises/strain/README.md +56 -0
- data/tracks/lfe/exercises/sum-of-multiples/README.md +34 -0
- data/tracks/lfe/exercises/trinary/README.md +44 -0
- data/tracks/lfe/exercises/word-count/README.md +35 -0
- data/tracks/lua/config/maintainers.json +35 -0
- data/tracks/lua/config.json +225 -3
- data/tracks/nasm/config/exercise_readme.go.tmpl +16 -0
- data/tracks/nasm/config.json +0 -5
- data/tracks/nim/config/exercise_readme.go.tmpl +16 -0
- data/tracks/nim/config.json +56 -19
- data/tracks/nim/exercises/anagram/README.md +13 -0
- data/tracks/nim/exercises/binary/README.md +35 -0
- data/tracks/nim/exercises/bob/README.md +18 -0
- data/tracks/nim/exercises/difference-of-squares/README.md +19 -0
- data/tracks/nim/exercises/hamming/README.md +42 -0
- data/tracks/nim/exercises/hello-world/README.md +21 -0
- data/tracks/nim/exercises/leap/README.md +33 -0
- data/tracks/nim/exercises/nucleotide-count/README.md +33 -0
- data/tracks/nim/exercises/queen-attack/README.md +33 -0
- data/tracks/nim/exercises/raindrops/README.md +24 -0
- data/tracks/nim/exercises/react/README.md +19 -0
- data/tracks/nim/exercises/rna-transcription/README.md +25 -0
- data/tracks/nim/exercises/triangle/README.md +26 -0
- data/tracks/nim/exercises/word-count/README.md +19 -0
- data/tracks/objective-c/config/exercise_readme.go.tmpl +16 -0
- data/tracks/objective-c/config/maintainers.json +35 -0
- data/tracks/objective-c/config.json +168 -47
- data/tracks/objective-c/exercises/acronym/README.md +32 -0
- data/tracks/objective-c/exercises/all-your-base/README.md +52 -0
- data/tracks/objective-c/exercises/allergies/README.md +54 -0
- data/tracks/objective-c/exercises/anagram/README.md +30 -0
- data/tracks/objective-c/exercises/atbash-cipher/README.md +51 -0
- data/tracks/objective-c/exercises/beer-song/README.md +344 -0
- data/tracks/objective-c/exercises/binary-search/README.md +58 -0
- data/tracks/objective-c/exercises/bob/README.md +35 -0
- data/tracks/objective-c/exercises/bracket-push/README.md +27 -0
- data/tracks/objective-c/exercises/clock/README.md +30 -0
- data/tracks/objective-c/exercises/crypto-square/README.md +91 -0
- data/tracks/objective-c/exercises/difference-of-squares/README.md +36 -0
- data/tracks/objective-c/exercises/etl/README.md +68 -0
- data/tracks/objective-c/exercises/flatten-array/README.md +35 -0
- data/tracks/objective-c/exercises/gigasecond/README.md +28 -0
- data/tracks/objective-c/exercises/grade-school/README.md +59 -0
- data/tracks/objective-c/exercises/hamming/README.md +59 -0
- data/tracks/objective-c/exercises/hello-world/README.md +38 -0
- data/tracks/objective-c/exercises/isogram/README.md +36 -0
- data/tracks/objective-c/exercises/largest-series-product/README.md +37 -0
- data/tracks/objective-c/exercises/leap/README.md +50 -0
- data/tracks/objective-c/exercises/luhn/README.md +88 -0
- data/tracks/objective-c/exercises/meetup/README.md +47 -0
- data/tracks/objective-c/exercises/nucleotide-count/README.md +50 -0
- data/tracks/objective-c/exercises/pangram/README.md +32 -0
- data/tracks/objective-c/exercises/pascals-triangle/README.md +38 -0
- data/tracks/objective-c/exercises/perfect-numbers/README.md +41 -0
- data/tracks/objective-c/exercises/phone-number/README.md +51 -0
- data/tracks/objective-c/exercises/raindrops/README.md +41 -0
- data/tracks/objective-c/exercises/rna-transcription/README.md +42 -0
- data/tracks/objective-c/exercises/robot-name/README.md +39 -0
- data/tracks/objective-c/exercises/roman-numerals/README.md +66 -0
- data/tracks/objective-c/exercises/run-length-encoding/README.md +47 -0
- data/tracks/objective-c/exercises/scrabble-score/README.md +61 -0
- data/tracks/objective-c/exercises/secret-handshake/README.md +52 -0
- data/tracks/objective-c/exercises/sieve/README.md +51 -0
- data/tracks/objective-c/exercises/space-age/README.md +41 -0
- data/tracks/objective-c/exercises/sublist/README.md +38 -0
- data/tracks/objective-c/exercises/sum-of-multiples/README.md +35 -0
- data/tracks/objective-c/exercises/transpose/README.md +82 -0
- data/tracks/objective-c/exercises/triangle/README.md +43 -0
- data/tracks/objective-c/exercises/word-count/README.md +36 -0
- data/tracks/plsql/config/exercise_readme.go.tmpl +16 -0
- data/tracks/plsql/config.json +0 -2
- data/tracks/plsql/exercises/binary/README.md +55 -0
- data/tracks/plsql/exercises/difference-of-squares/README.md +39 -0
- data/tracks/plsql/exercises/gigasecond/README.md +31 -0
- data/tracks/plsql/exercises/grains/README.md +54 -0
- data/tracks/plsql/exercises/hamming/README.md +62 -0
- data/tracks/plsql/exercises/leap/README.md +53 -0
- data/tracks/plsql/exercises/nth-prime/README.md +35 -0
- data/tracks/plsql/exercises/raindrops/README.md +44 -0
- data/tracks/plsql/exercises/rna-transcription/README.md +45 -0
- data/tracks/plsql/exercises/roman-numerals/README.md +69 -0
- data/tracks/powershell/config.json +8 -5
- data/tracks/prolog/config/exercise_readme.go.tmpl +16 -0
- data/tracks/prolog/config.json +33 -5
- data/tracks/prolog/exercises/anagram/README.md +13 -0
- data/tracks/prolog/exercises/binary/README.md +35 -0
- data/tracks/prolog/exercises/grains/README.md +34 -0
- data/tracks/prolog/exercises/hamming/README.md +42 -0
- data/tracks/prolog/exercises/hello-world/README.md +21 -0
- data/tracks/prolog/exercises/leap/README.md +33 -0
- data/tracks/prolog/exercises/nucleotide-count/README.md +33 -0
- data/tracks/prolog/exercises/rna-transcription/README.md +25 -0
- data/tracks/prolog/exercises/space-age/README.md +24 -0
- data/tracks/prolog/exercises/sum-of-multiples/README.md +18 -0
- data/tracks/prolog/exercises/triangle/README.md +26 -0
- data/tracks/python/requirements-travis.txt +1 -1
- data/tracks/r/config/maintainers.json +35 -0
- data/tracks/r/config.json +1 -1
- data/tracks/racket/README.md +1 -1
- data/tracks/racket/config/exercise_readme.go.tmpl +16 -0
- data/tracks/racket/config.json +93 -25
- data/tracks/racket/exercises/accumulate/README.md +60 -0
- data/tracks/racket/exercises/acronym/README.md +40 -0
- data/tracks/racket/exercises/allergies/README.md +62 -0
- data/tracks/racket/exercises/anagram/README.md +38 -0
- data/tracks/racket/exercises/bob/README.md +43 -0
- data/tracks/racket/exercises/difference-of-squares/README.md +44 -0
- data/tracks/racket/exercises/etl/README.md +76 -0
- data/tracks/racket/exercises/gigasecond/README.md +36 -0
- data/tracks/racket/exercises/grains/README.md +59 -0
- data/tracks/racket/exercises/grep/README.md +96 -0
- data/tracks/racket/exercises/hamming/README.md +67 -0
- data/tracks/racket/exercises/hello-world/README.md +46 -0
- data/tracks/racket/exercises/leap/README.md +58 -0
- data/tracks/racket/exercises/list-ops/README.md +35 -0
- data/tracks/racket/exercises/nucleotide-count/README.md +58 -0
- data/tracks/racket/exercises/perfect-numbers/README.md +49 -0
- data/tracks/racket/exercises/phone-number/README.md +59 -0
- data/tracks/racket/exercises/raindrops/README.md +49 -0
- data/tracks/racket/exercises/rna-transcription/README.md +50 -0
- data/tracks/racket/exercises/roman-numerals/README.md +74 -0
- data/tracks/racket/exercises/say/README.md +94 -0
- data/tracks/racket/exercises/scrabble-score/README.md +69 -0
- data/tracks/racket/exercises/word-count/README.md +44 -0
- data/tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb +4 -2
- data/tracks/ruby/exercises/binary-search-tree/binary_search_tree_test.rb +13 -4
- data/tracks/scala/config/maintainers.json +29 -0
- data/tracks/scala/exercises/atbash-cipher/example.scala +4 -1
- data/tracks/scala/exercises/atbash-cipher/src/test/scala/AtbashCipherTest.scala +64 -0
- data/tracks/scala/exercises/roman-numerals/example.scala +2 -2
- data/tracks/scala/exercises/roman-numerals/src/test/scala/RomanNumeralsTest.scala +40 -39
- data/tracks/scala/testgen/src/main/scala/AtbashCipherTestGenerator.scala +16 -0
- data/tracks/scala/testgen/src/main/scala/RomanNumeralsTestGenerator.scala +15 -0
- data/tracks/scheme/config/exercise_readme.go.tmpl +16 -0
- data/tracks/scheme/config.json +42 -3
- data/tracks/scheme/exercises/anagram/README.md +13 -0
- data/tracks/scheme/exercises/bob/README.md +18 -0
- data/tracks/scheme/exercises/difference-of-squares/README.md +19 -0
- data/tracks/scheme/exercises/grains/README.md +34 -0
- data/tracks/scheme/exercises/hamming/README.md +42 -0
- data/tracks/scheme/exercises/hello-world/README.md +21 -0
- data/tracks/scheme/exercises/leap/README.md +33 -0
- data/tracks/scheme/exercises/list-ops/README.md +10 -0
- data/tracks/scheme/exercises/nucleotide-count/README.md +33 -0
- data/tracks/scheme/exercises/phone-number/README.md +34 -0
- data/tracks/scheme/exercises/raindrops/README.md +24 -0
- data/tracks/scheme/exercises/rna-transcription/README.md +25 -0
- data/tracks/scheme/exercises/robot-name/README.md +22 -0
- data/tracks/scheme/exercises/scrabble-score/README.md +44 -0
- data/tracks/sml/config/maintainers.json +25 -0
- data/tracks/typescript/config/exercise_readme.go.tmpl +16 -0
- data/tracks/typescript/config/maintainers.json +25 -0
- data/tracks/typescript/config.json +0 -2
- data/tracks/typescript/exercises/anagram/README.md +39 -0
- data/tracks/typescript/exercises/beer-song/README.md +353 -0
- data/tracks/typescript/exercises/bob/README.md +44 -0
- data/tracks/typescript/exercises/difference-of-squares/README.md +45 -0
- data/tracks/typescript/exercises/etl/README.md +77 -0
- data/tracks/typescript/exercises/food-chain/README.md +96 -0
- data/tracks/typescript/exercises/gigasecond/README.md +37 -0
- data/tracks/typescript/exercises/grade-school/README.md +68 -0
- data/tracks/typescript/exercises/hamming/README.md +68 -0
- data/tracks/typescript/exercises/hello-world/README.md +47 -0
- data/tracks/typescript/exercises/leap/README.md +59 -0
- data/tracks/typescript/exercises/pangram/README.md +41 -0
- data/tracks/typescript/exercises/phone-number/README.md +60 -0
- data/tracks/typescript/exercises/raindrops/README.md +50 -0
- data/tracks/typescript/exercises/rna-transcription/README.md +51 -0
- data/tracks/typescript/exercises/robot-name/README.md +48 -0
- data/tracks/typescript/exercises/say/README.md +95 -0
- data/tracks/typescript/exercises/scrabble-score/README.md +70 -0
- data/tracks/typescript/exercises/space-age/README.md +50 -0
- data/tracks/typescript/exercises/word-count/README.md +45 -0
- data/tracks/typescript/exercises/wordy/README.md +89 -0
- data/tracks/vbnet/config/exercise_readme.go.tmpl +16 -0
- data/tracks/vbnet/config.json +28 -12
- data/tracks/vbnet/exercises/accumulate/README.md +41 -0
- data/tracks/vbnet/exercises/allergies/README.md +43 -0
- data/tracks/vbnet/exercises/anagram/README.md +19 -0
- data/tracks/vbnet/exercises/atbash-cipher/README.md +40 -0
- data/tracks/vbnet/exercises/binary/README.md +41 -0
- data/tracks/vbnet/exercises/bob/README.md +24 -0
- data/tracks/vbnet/exercises/crypto-square/README.md +80 -0
- metadata +401 -4
- data/tracks/scala/exercises/atbash-cipher/src/main/scala/Atbash.scala +0 -3
- data/tracks/scala/exercises/atbash-cipher/src/test/scala/atbash_test.scala +0 -48
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Say
|
|
2
|
+
|
|
3
|
+
Given a number from 0 to 999,999,999,999, spell out that number in English.
|
|
4
|
+
|
|
5
|
+
## Step 1
|
|
6
|
+
|
|
7
|
+
Handle the basic case of 0 through 99.
|
|
8
|
+
|
|
9
|
+
If the input to the program is `22`, then the output should be
|
|
10
|
+
`'twenty-two'`.
|
|
11
|
+
|
|
12
|
+
Your program should complain loudly if given a number outside the
|
|
13
|
+
blessed range.
|
|
14
|
+
|
|
15
|
+
Some good test cases for this program are:
|
|
16
|
+
|
|
17
|
+
- 0
|
|
18
|
+
- 14
|
|
19
|
+
- 50
|
|
20
|
+
- 98
|
|
21
|
+
- -1
|
|
22
|
+
- 100
|
|
23
|
+
|
|
24
|
+
### Extension
|
|
25
|
+
|
|
26
|
+
If you're on a Mac, shell out to Mac OS X's `say` program to talk out
|
|
27
|
+
loud.
|
|
28
|
+
|
|
29
|
+
## Step 2
|
|
30
|
+
|
|
31
|
+
Implement breaking a number up into chunks of thousands.
|
|
32
|
+
|
|
33
|
+
So `1234567890` should yield a list like 1, 234, 567, and 890, while the
|
|
34
|
+
far simpler `1000` should yield just 1 and 0.
|
|
35
|
+
|
|
36
|
+
The program must also report any values that are out of range.
|
|
37
|
+
|
|
38
|
+
## Step 3
|
|
39
|
+
|
|
40
|
+
Now handle inserting the appropriate scale word between those chunks.
|
|
41
|
+
|
|
42
|
+
So `1234567890` should yield `'1 billion 234 million 567 thousand 890'`
|
|
43
|
+
|
|
44
|
+
The program must also report any values that are out of range. It's
|
|
45
|
+
fine to stop at "trillion".
|
|
46
|
+
|
|
47
|
+
## Step 4
|
|
48
|
+
|
|
49
|
+
Put it all together to get nothing but plain English.
|
|
50
|
+
|
|
51
|
+
`12345` should give `twelve thousand three hundred forty-five`.
|
|
52
|
+
|
|
53
|
+
The program must also report any values that are out of range.
|
|
54
|
+
|
|
55
|
+
### Extensions
|
|
56
|
+
|
|
57
|
+
Use _and_ (correctly) when spelling out the number in English:
|
|
58
|
+
|
|
59
|
+
- 14 becomes "fourteen".
|
|
60
|
+
- 100 becomes "one hundred".
|
|
61
|
+
- 120 becomes "one hundred and twenty".
|
|
62
|
+
- 1002 becomes "one thousand and two".
|
|
63
|
+
- 1323 becomes "one thousand three hundred and twenty-three".
|
|
64
|
+
|
|
65
|
+
## Getting Started
|
|
66
|
+
|
|
67
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
|
68
|
+
exercism.io. This covers the basic information on setting up the development
|
|
69
|
+
environment expected by the exercises.
|
|
70
|
+
|
|
71
|
+
## Passing the Tests
|
|
72
|
+
|
|
73
|
+
Get the first test compiling, linking and passing by following the [three
|
|
74
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
|
75
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
|
76
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
|
77
|
+
just enough code to get the test to pass. Once you've done that,
|
|
78
|
+
uncomment the next test by moving the following line past the next test.
|
|
79
|
+
|
|
80
|
+
```C++
|
|
81
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
This may result in compile errors as new constructs may be invoked that
|
|
85
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
|
86
|
+
to get a failing test, then change the code minimally to pass the test,
|
|
87
|
+
refactor your implementation for readability and expressiveness and then
|
|
88
|
+
go on to the next test.
|
|
89
|
+
|
|
90
|
+
Try to use standard C++11 facilities in preference to writing your own
|
|
91
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
|
92
|
+
is a wiki reference to the C++ language and standard library. If you
|
|
93
|
+
are new to C++, but have programmed in C, beware of
|
|
94
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
|
95
|
+
|
|
96
|
+
## Source
|
|
97
|
+
|
|
98
|
+
A variation on JavaRanch CattleDrive, exercise 4a [http://www.javaranch.com/say.jsp](http://www.javaranch.com/say.jsp)
|
|
99
|
+
|
|
100
|
+
## Submitting Incomplete Solutions
|
|
101
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Scrabble Score
|
|
2
|
+
|
|
3
|
+
Given a word, compute the scrabble score for that word.
|
|
4
|
+
|
|
5
|
+
## Letter Values
|
|
6
|
+
|
|
7
|
+
You'll need these:
|
|
8
|
+
|
|
9
|
+
```plain
|
|
10
|
+
Letter Value
|
|
11
|
+
A, E, I, O, U, L, N, R, S, T 1
|
|
12
|
+
D, G 2
|
|
13
|
+
B, C, M, P 3
|
|
14
|
+
F, H, V, W, Y 4
|
|
15
|
+
K 5
|
|
16
|
+
J, X 8
|
|
17
|
+
Q, Z 10
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Examples
|
|
21
|
+
"cabbage" should be scored as worth 14 points:
|
|
22
|
+
|
|
23
|
+
- 3 points for C
|
|
24
|
+
- 1 point for A, twice
|
|
25
|
+
- 3 points for B, twice
|
|
26
|
+
- 2 points for G
|
|
27
|
+
- 1 point for E
|
|
28
|
+
|
|
29
|
+
And to total:
|
|
30
|
+
|
|
31
|
+
- `3 + 2*1 + 2*3 + 2 + 1`
|
|
32
|
+
- = `3 + 2 + 6 + 3`
|
|
33
|
+
- = `5 + 9`
|
|
34
|
+
- = 14
|
|
35
|
+
|
|
36
|
+
## Extensions
|
|
37
|
+
- You can play a double or a triple letter.
|
|
38
|
+
- You can play a double or a triple word.
|
|
39
|
+
|
|
40
|
+
## Getting Started
|
|
41
|
+
|
|
42
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
|
43
|
+
exercism.io. This covers the basic information on setting up the development
|
|
44
|
+
environment expected by the exercises.
|
|
45
|
+
|
|
46
|
+
## Passing the Tests
|
|
47
|
+
|
|
48
|
+
Get the first test compiling, linking and passing by following the [three
|
|
49
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
|
50
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
|
51
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
|
52
|
+
just enough code to get the test to pass. Once you've done that,
|
|
53
|
+
uncomment the next test by moving the following line past the next test.
|
|
54
|
+
|
|
55
|
+
```C++
|
|
56
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
This may result in compile errors as new constructs may be invoked that
|
|
60
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
|
61
|
+
to get a failing test, then change the code minimally to pass the test,
|
|
62
|
+
refactor your implementation for readability and expressiveness and then
|
|
63
|
+
go on to the next test.
|
|
64
|
+
|
|
65
|
+
Try to use standard C++11 facilities in preference to writing your own
|
|
66
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
|
67
|
+
is a wiki reference to the C++ language and standard library. If you
|
|
68
|
+
are new to C++, but have programmed in C, beware of
|
|
69
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
|
70
|
+
|
|
71
|
+
## Source
|
|
72
|
+
|
|
73
|
+
Inspired by the Extreme Startup game [https://github.com/rchatley/extreme_startup](https://github.com/rchatley/extreme_startup)
|
|
74
|
+
|
|
75
|
+
## Submitting Incomplete Solutions
|
|
76
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Series
|
|
2
|
+
|
|
3
|
+
Given a string of digits, output all the contiguous substrings of length `n` in
|
|
4
|
+
that string.
|
|
5
|
+
|
|
6
|
+
For example, the string "49142" has the following 3-digit series:
|
|
7
|
+
|
|
8
|
+
- 491
|
|
9
|
+
- 914
|
|
10
|
+
- 142
|
|
11
|
+
|
|
12
|
+
And the following 4-digit series:
|
|
13
|
+
|
|
14
|
+
- 4914
|
|
15
|
+
- 9142
|
|
16
|
+
|
|
17
|
+
And if you ask for a 6-digit series from a 5-digit string, you deserve
|
|
18
|
+
whatever you get.
|
|
19
|
+
|
|
20
|
+
Note that these series are only required to occupy *adjacent positions*
|
|
21
|
+
in the input; the digits need not be *numerically consecutive*.
|
|
22
|
+
|
|
23
|
+
## Getting Started
|
|
24
|
+
|
|
25
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
|
26
|
+
exercism.io. This covers the basic information on setting up the development
|
|
27
|
+
environment expected by the exercises.
|
|
28
|
+
|
|
29
|
+
## Passing the Tests
|
|
30
|
+
|
|
31
|
+
Get the first test compiling, linking and passing by following the [three
|
|
32
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
|
33
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
|
34
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
|
35
|
+
just enough code to get the test to pass. Once you've done that,
|
|
36
|
+
uncomment the next test by moving the following line past the next test.
|
|
37
|
+
|
|
38
|
+
```C++
|
|
39
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
This may result in compile errors as new constructs may be invoked that
|
|
43
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
|
44
|
+
to get a failing test, then change the code minimally to pass the test,
|
|
45
|
+
refactor your implementation for readability and expressiveness and then
|
|
46
|
+
go on to the next test.
|
|
47
|
+
|
|
48
|
+
Try to use standard C++11 facilities in preference to writing your own
|
|
49
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
|
50
|
+
is a wiki reference to the C++ language and standard library. If you
|
|
51
|
+
are new to C++, but have programmed in C, beware of
|
|
52
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
|
53
|
+
|
|
54
|
+
## Source
|
|
55
|
+
|
|
56
|
+
A subset of the Problem 8 at Project Euler [http://projecteuler.net/problem=8](http://projecteuler.net/problem=8)
|
|
57
|
+
|
|
58
|
+
## Submitting Incomplete Solutions
|
|
59
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Sieve
|
|
2
|
+
|
|
3
|
+
Use the Sieve of Eratosthenes to find all the primes from 2 up to a given
|
|
4
|
+
number.
|
|
5
|
+
|
|
6
|
+
The Sieve of Eratosthenes is a simple, ancient algorithm for finding all
|
|
7
|
+
prime numbers up to any given limit. It does so by iteratively marking as
|
|
8
|
+
composite (i.e. not prime) the multiples of each prime,
|
|
9
|
+
starting with the multiples of 2.
|
|
10
|
+
|
|
11
|
+
Create your range, starting at two and continuing up to and including the given limit. (i.e. [2, limit])
|
|
12
|
+
|
|
13
|
+
The algorithm consists of repeating the following over and over:
|
|
14
|
+
|
|
15
|
+
- take the next available unmarked number in your list (it is prime)
|
|
16
|
+
- mark all the multiples of that number (they are not prime)
|
|
17
|
+
|
|
18
|
+
Repeat until you have processed each number in your range.
|
|
19
|
+
|
|
20
|
+
When the algorithm terminates, all the numbers in the list that have not
|
|
21
|
+
been marked are prime.
|
|
22
|
+
|
|
23
|
+
The wikipedia article has a useful graphic that explains the algorithm:
|
|
24
|
+
https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
|
|
25
|
+
|
|
26
|
+
Notice that this is a very specific algorithm, and the tests don't check
|
|
27
|
+
that you've implemented the algorithm, only that you've come up with the
|
|
28
|
+
correct list of primes.
|
|
29
|
+
|
|
30
|
+
## Getting Started
|
|
31
|
+
|
|
32
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
|
33
|
+
exercism.io. This covers the basic information on setting up the development
|
|
34
|
+
environment expected by the exercises.
|
|
35
|
+
|
|
36
|
+
## Passing the Tests
|
|
37
|
+
|
|
38
|
+
Get the first test compiling, linking and passing by following the [three
|
|
39
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
|
40
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
|
41
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
|
42
|
+
just enough code to get the test to pass. Once you've done that,
|
|
43
|
+
uncomment the next test by moving the following line past the next test.
|
|
44
|
+
|
|
45
|
+
```C++
|
|
46
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
This may result in compile errors as new constructs may be invoked that
|
|
50
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
|
51
|
+
to get a failing test, then change the code minimally to pass the test,
|
|
52
|
+
refactor your implementation for readability and expressiveness and then
|
|
53
|
+
go on to the next test.
|
|
54
|
+
|
|
55
|
+
Try to use standard C++11 facilities in preference to writing your own
|
|
56
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
|
57
|
+
is a wiki reference to the C++ language and standard library. If you
|
|
58
|
+
are new to C++, but have programmed in C, beware of
|
|
59
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
|
60
|
+
|
|
61
|
+
## Source
|
|
62
|
+
|
|
63
|
+
Sieve of Eratosthenes at Wikipedia [http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes](http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes)
|
|
64
|
+
|
|
65
|
+
## Submitting Incomplete Solutions
|
|
66
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Space Age
|
|
2
|
+
|
|
3
|
+
Given an age in seconds, calculate how old someone would be on:
|
|
4
|
+
|
|
5
|
+
- Earth: orbital period 365.25 Earth days, or 31557600 seconds
|
|
6
|
+
- Mercury: orbital period 0.2408467 Earth years
|
|
7
|
+
- Venus: orbital period 0.61519726 Earth years
|
|
8
|
+
- Mars: orbital period 1.8808158 Earth years
|
|
9
|
+
- Jupiter: orbital period 11.862615 Earth years
|
|
10
|
+
- Saturn: orbital period 29.447498 Earth years
|
|
11
|
+
- Uranus: orbital period 84.016846 Earth years
|
|
12
|
+
- Neptune: orbital period 164.79132 Earth years
|
|
13
|
+
|
|
14
|
+
So if you were told someone were 1,000,000,000 seconds old, you should
|
|
15
|
+
be able to say that they're 31 Earth-years old.
|
|
16
|
+
|
|
17
|
+
If you're wondering why Pluto didn't make the cut, go watch [this
|
|
18
|
+
youtube video](http://www.youtube.com/watch?v=Z_2gbGXzFbs).
|
|
19
|
+
|
|
20
|
+
## Getting Started
|
|
21
|
+
|
|
22
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
|
23
|
+
exercism.io. This covers the basic information on setting up the development
|
|
24
|
+
environment expected by the exercises.
|
|
25
|
+
|
|
26
|
+
## Passing the Tests
|
|
27
|
+
|
|
28
|
+
Get the first test compiling, linking and passing by following the [three
|
|
29
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
|
30
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
|
31
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
|
32
|
+
just enough code to get the test to pass. Once you've done that,
|
|
33
|
+
uncomment the next test by moving the following line past the next test.
|
|
34
|
+
|
|
35
|
+
```C++
|
|
36
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
This may result in compile errors as new constructs may be invoked that
|
|
40
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
|
41
|
+
to get a failing test, then change the code minimally to pass the test,
|
|
42
|
+
refactor your implementation for readability and expressiveness and then
|
|
43
|
+
go on to the next test.
|
|
44
|
+
|
|
45
|
+
Try to use standard C++11 facilities in preference to writing your own
|
|
46
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
|
47
|
+
is a wiki reference to the C++ language and standard library. If you
|
|
48
|
+
are new to C++, but have programmed in C, beware of
|
|
49
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
|
50
|
+
|
|
51
|
+
## Source
|
|
52
|
+
|
|
53
|
+
Partially inspired by Chapter 1 in Chris Pine's online Learn to Program tutorial. [http://pine.fm/LearnToProgram/?Chapter=01](http://pine.fm/LearnToProgram/?Chapter=01)
|
|
54
|
+
|
|
55
|
+
## Submitting Incomplete Solutions
|
|
56
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Sum Of Multiples
|
|
2
|
+
|
|
3
|
+
Given a number, find the sum of all the multiples of particular numbers up to
|
|
4
|
+
but not including that number.
|
|
5
|
+
|
|
6
|
+
If we list all the natural numbers up to but not including 20 that are
|
|
7
|
+
multiples of either 3 or 5, we get 3, 5, 6 and 9, 10, 12, 15, and 18.
|
|
8
|
+
|
|
9
|
+
The sum of these multiples is 78.
|
|
10
|
+
|
|
11
|
+
Given a number, find the sum of the multiples of a given set of numbers,
|
|
12
|
+
up to but not including that number.
|
|
13
|
+
|
|
14
|
+
## Getting Started
|
|
15
|
+
|
|
16
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
|
17
|
+
exercism.io. This covers the basic information on setting up the development
|
|
18
|
+
environment expected by the exercises.
|
|
19
|
+
|
|
20
|
+
## Passing the Tests
|
|
21
|
+
|
|
22
|
+
Get the first test compiling, linking and passing by following the [three
|
|
23
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
|
24
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
|
25
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
|
26
|
+
just enough code to get the test to pass. Once you've done that,
|
|
27
|
+
uncomment the next test by moving the following line past the next test.
|
|
28
|
+
|
|
29
|
+
```C++
|
|
30
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
This may result in compile errors as new constructs may be invoked that
|
|
34
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
|
35
|
+
to get a failing test, then change the code minimally to pass the test,
|
|
36
|
+
refactor your implementation for readability and expressiveness and then
|
|
37
|
+
go on to the next test.
|
|
38
|
+
|
|
39
|
+
Try to use standard C++11 facilities in preference to writing your own
|
|
40
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
|
41
|
+
is a wiki reference to the C++ language and standard library. If you
|
|
42
|
+
are new to C++, but have programmed in C, beware of
|
|
43
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
|
44
|
+
|
|
45
|
+
## Source
|
|
46
|
+
|
|
47
|
+
A variation on Problem 1 at Project Euler [http://projecteuler.net/problem=1](http://projecteuler.net/problem=1)
|
|
48
|
+
|
|
49
|
+
## Submitting Incomplete Solutions
|
|
50
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Triangle
|
|
2
|
+
|
|
3
|
+
Determine if a triangle is equilateral, isosceles, or scalene.
|
|
4
|
+
|
|
5
|
+
An _equilateral_ triangle has all three sides the same length.<br/>
|
|
6
|
+
An _isosceles_ triangle has at least two sides the same length. (It is sometimes
|
|
7
|
+
specified as having exactly two sides the same length, but for the purposes of
|
|
8
|
+
this exercise we'll say at least two.)<br/>
|
|
9
|
+
A _scalene_ triangle has all sides of different lengths.
|
|
10
|
+
|
|
11
|
+
## Note
|
|
12
|
+
|
|
13
|
+
For a shape to be a triangle at all, all sides have to be of length > 0, and
|
|
14
|
+
the sum of the lengths of any two sides must be greater than or equal to the
|
|
15
|
+
length of the third side. See [Triangle Inequality](https://en.wikipedia.org/wiki/Triangle_inequality).
|
|
16
|
+
|
|
17
|
+
## Dig Deeper
|
|
18
|
+
|
|
19
|
+
The case where the sum of the lengths of two sides _equals_ that of the
|
|
20
|
+
third is known as a _degenerate_ triangle - it has zero area and looks like
|
|
21
|
+
a single line. Feel free to add your own code/tests to check for degenerate triangles.
|
|
22
|
+
## Getting Started
|
|
23
|
+
|
|
24
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
|
25
|
+
exercism.io. This covers the basic information on setting up the development
|
|
26
|
+
environment expected by the exercises.
|
|
27
|
+
|
|
28
|
+
## Passing the Tests
|
|
29
|
+
|
|
30
|
+
Get the first test compiling, linking and passing by following the [three
|
|
31
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
|
32
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
|
33
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
|
34
|
+
just enough code to get the test to pass. Once you've done that,
|
|
35
|
+
uncomment the next test by moving the following line past the next test.
|
|
36
|
+
|
|
37
|
+
```C++
|
|
38
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
This may result in compile errors as new constructs may be invoked that
|
|
42
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
|
43
|
+
to get a failing test, then change the code minimally to pass the test,
|
|
44
|
+
refactor your implementation for readability and expressiveness and then
|
|
45
|
+
go on to the next test.
|
|
46
|
+
|
|
47
|
+
Try to use standard C++11 facilities in preference to writing your own
|
|
48
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
|
49
|
+
is a wiki reference to the C++ language and standard library. If you
|
|
50
|
+
are new to C++, but have programmed in C, beware of
|
|
51
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
|
52
|
+
|
|
53
|
+
## Source
|
|
54
|
+
|
|
55
|
+
The Ruby Koans triangle project, parts 1 & 2 [http://rubykoans.com](http://rubykoans.com)
|
|
56
|
+
|
|
57
|
+
## Submitting Incomplete Solutions
|
|
58
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Trinary
|
|
2
|
+
|
|
3
|
+
Convert a trinary number, represented as a string (e.g. '102012'), to its
|
|
4
|
+
decimal equivalent using first principles.
|
|
5
|
+
|
|
6
|
+
The program should consider strings specifying an invalid trinary as the
|
|
7
|
+
value 0.
|
|
8
|
+
|
|
9
|
+
Trinary numbers contain three symbols: 0, 1, and 2.
|
|
10
|
+
|
|
11
|
+
The last place in a trinary number is the 1's place. The second to last
|
|
12
|
+
is the 3's place, the third to last is the 9's place, etc.
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# "102012"
|
|
16
|
+
1 0 2 0 1 2 # the number
|
|
17
|
+
1*3^5 + 0*3^4 + 2*3^3 + 0*3^2 + 1*3^1 + 2*3^0 # the value
|
|
18
|
+
243 + 0 + 54 + 0 + 3 + 2 = 302
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
If your language provides a method in the standard library to perform the
|
|
22
|
+
conversion, pretend it doesn't exist and implement it yourself.
|
|
23
|
+
|
|
24
|
+
## Getting Started
|
|
25
|
+
|
|
26
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
|
27
|
+
exercism.io. This covers the basic information on setting up the development
|
|
28
|
+
environment expected by the exercises.
|
|
29
|
+
|
|
30
|
+
## Passing the Tests
|
|
31
|
+
|
|
32
|
+
Get the first test compiling, linking and passing by following the [three
|
|
33
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
|
34
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
|
35
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
|
36
|
+
just enough code to get the test to pass. Once you've done that,
|
|
37
|
+
uncomment the next test by moving the following line past the next test.
|
|
38
|
+
|
|
39
|
+
```C++
|
|
40
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
This may result in compile errors as new constructs may be invoked that
|
|
44
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
|
45
|
+
to get a failing test, then change the code minimally to pass the test,
|
|
46
|
+
refactor your implementation for readability and expressiveness and then
|
|
47
|
+
go on to the next test.
|
|
48
|
+
|
|
49
|
+
Try to use standard C++11 facilities in preference to writing your own
|
|
50
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
|
51
|
+
is a wiki reference to the C++ language and standard library. If you
|
|
52
|
+
are new to C++, but have programmed in C, beware of
|
|
53
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
|
54
|
+
|
|
55
|
+
## Source
|
|
56
|
+
|
|
57
|
+
All of Computer Science [http://www.wolframalpha.com/input/?i=binary&a=*C.binary-_*MathWorld-](http://www.wolframalpha.com/input/?i=binary&a=*C.binary-_*MathWorld-)
|
|
58
|
+
|
|
59
|
+
## Submitting Incomplete Solutions
|
|
60
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Word Count
|
|
2
|
+
|
|
3
|
+
Given a phrase, count the occurrences of each word in that phrase.
|
|
4
|
+
|
|
5
|
+
For example for the input `"olly olly in come free"`
|
|
6
|
+
|
|
7
|
+
```plain
|
|
8
|
+
olly: 2
|
|
9
|
+
in: 1
|
|
10
|
+
come: 1
|
|
11
|
+
free: 1
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
## Getting Started
|
|
16
|
+
|
|
17
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
|
18
|
+
exercism.io. This covers the basic information on setting up the development
|
|
19
|
+
environment expected by the exercises.
|
|
20
|
+
|
|
21
|
+
## Passing the Tests
|
|
22
|
+
|
|
23
|
+
Get the first test compiling, linking and passing by following the [three
|
|
24
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
|
25
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
|
26
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
|
27
|
+
just enough code to get the test to pass. Once you've done that,
|
|
28
|
+
uncomment the next test by moving the following line past the next test.
|
|
29
|
+
|
|
30
|
+
```C++
|
|
31
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
This may result in compile errors as new constructs may be invoked that
|
|
35
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
|
36
|
+
to get a failing test, then change the code minimally to pass the test,
|
|
37
|
+
refactor your implementation for readability and expressiveness and then
|
|
38
|
+
go on to the next test.
|
|
39
|
+
|
|
40
|
+
Try to use standard C++11 facilities in preference to writing your own
|
|
41
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
|
42
|
+
is a wiki reference to the C++ language and standard library. If you
|
|
43
|
+
are new to C++, but have programmed in C, beware of
|
|
44
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
|
45
|
+
|
|
46
|
+
## Source
|
|
47
|
+
|
|
48
|
+
This is a classic toy problem, but we were reminded of it by seeing it in the Go Tour.
|
|
49
|
+
|
|
50
|
+
## Submitting Incomplete Solutions
|
|
51
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|