##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 |