##Planering ##
| Aspekt | E | C | A |
|---|---|---|---|
| Design | Med viss säkerhet analyserar du uppgiften och designar ditt program | Som för E, men med säkerhet, och du motiverar dessutom utförligt dina val | |
| Klassdiagram | Du planerar uppgiften med enkla klassdiagram |
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <link rel="stylesheet" href="css/mq.css"> | |
| <title>Document</title> | |
| </head> | |
| <body> | |
| <div class="container"> |
| #med överflödig else (sämre): | |
| def binary_search(list:,search_value:) | |
| lower_bound = 0 | |
| upper_bound = list.length - 1 | |
| if list[lower_bound] > search_value list[upper_bound] < search_value | |
| return false | |
| #om ovanstående villkor varit sant, skulle följande else-sats aldrig nås. | |
| #Alltså är den onödig (och koden blir svårare att förstå). | |
| else | |
| while lower_bound <= upper_bound |
| # Två separata if-satser (sämre): | |
| def do_something_strange(input) | |
| smallest_allowed_value = 0 | |
| largest_allowed_value = 100 | |
| if input < smallest_allowed_value | |
| error_message = "input too small" | |
| end | |
| #Följande villkor kommer utvärderas, oavsett om villkoret ovan är falskt. | |
| #Eftersom input aldrig kan vara större än largest_allowed_value, samtidigt som det är mindre än smallest_allowed_value, |
| require 'benchmark' | |
| def bubble_sort_1(array:) | |
| array = array.dup | |
| comparisons = 0 | |
| array.length.times do | |
| i = 0 | |
| while i < array.length - 1 | |
| if array[i] > array[i + 1] | |
| tmp = array[i + 1] |
| require 'benchmark' | |
| def slowsort(array:) | |
| senap = array.dup #Gör en kopia för att undvika att ändra på ursprungslistan | |
| return senap.sort! | |
| end | |
| def supermegasort(array:) | |
| senap = array.dup #Gör en kopia för att undvika att ändra på ursprungslistan | |
| return senap.sort! |
| class ArrayRandomizationComparison | |
| def initialize(array:, method:, runs: 1000) | |
| @array = array.dup | |
| @method = method | |
| @runs = runs | |
| @comparison_matrix = Array.new(@array.size) {|_| Array.new(@array.size, 0)} | |
| run | |
| display |
| <!doctype html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <title>Document</title> | |
| </head> | |
| <body> | |
| <form action="/grill" method="post"> | |
| <input name="first_name" type="text" placeholder="first name"%> | |
| <br> |
| class CountdownTooShortError < Exception ; end | |
| # TOMDOC | |
| # Public: Creates a list of numbers from 'from' to zero | |
| # | |
| # from - The Fixnum to count down from | |
| # | |
| # raises TypeError if from is not a Fixnum | |
| # raises ArgumentError if... | |
| # Examples |