<snapdata remixID="9159309"><project name="U5L3: Timing Algorithms" app="Snap! 5.4, http://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="true" codify="false" inheritance="false" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" idx="1" x="0.4134885078624393" y="0.032744025484419126" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="8"><costumes><list struct="atomic" id="9"></list></costumes><sounds><list struct="atomic" id="10"></list></sounds><blocks></blocks><variables></variables><scripts><comment x="20" y="10" w="315.38860103626945" collapsed="false">Use this &quot;list from x through y&quot; block to build the following blocks:</comment><script x="20" y="64"><custom-block s="list from %s through %s"><l></l><l></l></custom-block></script><script x="20" y="130"><custom-block s="all %s digit numbers"><l></l></custom-block></script><comment x="20" y="163.00000000000006" w="495.18134715025906" collapsed="false">The list of 2-digit numbers goes from 10 to 99. There&apos;s a math operations block that can give you powers of 10.&#xD;Also make a factorial block.</comment><script x="20" y="229"><custom-block s="factorial of %s"><l></l></custom-block></script><comment x="20" y="262" w="435.0777202072539" collapsed="false">Use the &quot;time function&quot; block to determine which algorithms (from above and below) can be executed in &quot;reasonable time&quot;.  &#xD;Also, run the &quot;time function&quot; multiple times on all the algorithms to determine if they are constant, linear, polynomial, or exponential.</comment><script x="20" y="351.99999999999994"><custom-block s="time function %repRing"><block s="reifyReporter"><autolambda><custom-block s="position of number %s in unsorted list %s"><l>100001</l><block var="randomList"/></custom-block></autolambda><list></list></block></custom-block></script><script x="20" y="386.9999999999999"><custom-block s="add numbers 1 to %s using for"><l></l></custom-block></script><script x="20" y="419.9999999999998"><custom-block s="add numbers 1 to %s using combine"><l></l></custom-block></script><script x="20" y="452.9999999999998"><custom-block s="add numbers 1 to %s using math trick"><l></l></custom-block></script><comment x="20" y="485.9999999999999" w="90" collapsed="false">alter the numbers in the loop to make a bigger/smaller list to test; we will always search for a number not in the list</comment><script x="20" y="612.0000000000001"><block s="doSetVar"><l>randomList</l><block s="reportNewList"><list></list></block></block><block s="doRepeat"><l>100</l><script><block s="doAddToList"><block s="reportRandom"><l>0</l><l>100000</l></block><block var="randomList"/></block></script></block></script><script x="20" y="741.0000000000001"><block s="doSetVar"><l>sorted list</l><custom-block s="numbers from %n to %n"><l>1</l><l>1000</l></custom-block><comment w="90" collapsed="false">just like above, change to make sorted list bigger/smaller</comment></block></script><script x="20" y="868.0000000000001"><custom-block s="averageTime %s"><l>50</l></custom-block></script><script x="20.513672874999997" y="706.000004"><custom-block s="1000 numbers starting from %s"><l>2000</l></custom-block></script><script x="19.513672874999997" y="830.0000039999999"><custom-block s="position of number %s in sorted list %s"><l>1002</l><block var="sorted list"/></custom-block></script></scripts></sprite><watcher var="randomList" style="normal" x="10" y="10.333616780045375" color="243,118,29" extX="109" extY="305"/><watcher var="sorted list" style="normal" x="13.029496243409312" y="10.462783446712024" color="243,118,29" extX="128" extY="311" hidden="true"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="map %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>mapone</l><l>mapmany</l></list></block><block s="doSetVar"><l>mapone</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="evaluate"><block var="mapone"/><list><block s="reportCDR"><block var="data"/></block></list></block></block></block></script><list><l>data</l></list></block></block><block s="doSetVar"><l>mapmany</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportListItem"><l>1</l><block var="data lists"/></block></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></block><block s="evaluate"><block var="mapmany"/><list><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></list></block></block></block></script><list><l>data lists</l></list></block></block><block s="doIfElse"><custom-block s="empty? %l"><block s="reportCDR"><block var="lists"/></block></custom-block><script><block s="doReport"><block s="evaluate"><block var="mapone"/><list><block s="reportListItem"><l>1</l><block var="lists"/></block></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="mapmany"/><list><block var="lists"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="tell %&apos;sprite&apos; to %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%cs"></input></inputs><script><block s="doRun"><block s="reportAttributeOf"><block var="action"/><block var="sprite"/></block><list></list></block></script></block-definition><block-definition s="ask %&apos;sprite&apos; for %&apos;expression&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportAttributeOf"><block var="expression"/><block var="sprite"/></block><list></list></block></block></script></block-definition><block-definition s="list from %&apos;min&apos; through %&apos;max&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportGreaterThan"><block var="min"/><block var="max"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><script><block s="doReport"><block s="reportCONS"><block var="min"/><custom-block s="list from %s through %s"><block s="reportSum"><block var="min"/><l>1</l></block><block var="max"/></custom-block></block></block></script></block></script></block-definition><block-definition s="1000 numbers starting from %&apos;num&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="list from %s through %s"><block var="num"/><block s="reportDifference"><block s="reportSum"><block var="num"/><l>1000</l></block><l>1</l></block></custom-block></block></script></block-definition><block-definition s="all %&apos;num&apos; digit numbers" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="list from %s through %s"><block s="reportPower"><l>10</l><block s="reportDifference"><block var="num"/><l>1</l></block></block><block s="reportDifference"><block s="reportPower"><l>10</l><block var="num"/></block><l>1</l></block></custom-block></block></script></block-definition><block-definition s="time function %&apos;function&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doDeclareVariables"><list><l>start time</l></list></block><block s="doSetVar"><l>start time</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><custom-block s="ignore %s"><block s="evaluate"><block var="function"/><list></list></block></custom-block><block s="doReport"><block s="reportDifference"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="start time"/></block></block></script></block-definition><block-definition s="label %&apos;text&apos; of size %&apos;size&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Hello!</input><input type="%n">12</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l><l>size</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;    rotation = radians(this.direction() - 90),&#xD;    trans = new Point(&#xD;      this.center().x - stage.left(),&#xD;      this.center().y - stage.top()&#xD;    ),&#xD;    isWarped = this.Warped,&#xD;    len,&#xD;    pos;&#xD;&#xD;if (isWarped) {endWarp(); }&#xD;context.save();&#xD;context.font = size + &apos;px monospace&apos;;&#xD;context.textAlign = &apos;left&apos;;&#xD;context.textBaseline = &apos;alphabetic&apos;;&#xD;context.fillStyle = this.color.toString();&#xD;len = context.measureText(text).width;&#xD;trans = trans.multiplyBy(1 / stage.scale);&#xD;context.translate(trans.x, trans.y);&#xD;context.rotate(rotation);&#xD;context.fillText(text, 0, 0);&#xD;context.translate(-trans.x, -trans.y);&#xD;context.restore();&#xD;pos = new Point(&#xD;  len * Math.sin(radians(this.direction())),&#xD;  len * Math.cos(radians(this.direction())));&#xD;pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;this.gotoXY(pos.x, pos.y, false);&#xD;this.changed();&#xD;if (isWarped) {this.startWarp(); }&#xD;stage.changed();</l></block><list><block var="text"/><block var="size"/></list></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="keep items such that %&apos;pred&apos; from %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script><script><block s="doReport"><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></script></block></script></block></script></block-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="data"/></block></block></script></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="combine with %repRing items of %l"><block var="function"/><block s="reportCDR"><block var="data"/></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doReport"><block s="evaluate"><block var="true"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="false"/><list></list></block></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportGreaterThan"><block var="start"/><block var="end"/></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="words"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="words"/></block><block s="reportCDR"><block s="reportCDR"><block var="words"/></block></block></block></custom-block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block var="words"/></block><l> </l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></list></block></block></script></block></script><scripts><script x="229.00000299999996" y="196.77778077777774"><block s="reportJoinWords"><list><l></l><l></l></list></block></script></scripts></block-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block><custom-block s="ignore %s"><l>3</l></custom-block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;tag&apos; %&apos;value&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input><input type="%s"></input></inputs><script><block s="doRun"><block var="tag"/><list><block var="value"/></list></block></script></block-definition><block-definition s="for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>breakpoint</l></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doSetVar"><l>breakpoint</l><block var="test"/></block><block s="doShowVar"><l>breakpoint</l></block><block s="doRun"><block var="action"/><list></list></block><block s="doPauseAll"></block><block s="doHideVar"><l></l></block></script></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block></script></block-definition><block-definition s="%&apos;x&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block var="x"/></block></script></block-definition><block-definition s="numbers from %&apos;from&apos; to %&apos;to&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doIf"><block s="reportGreaterThan"><block var="from"/><block var="to"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block var="from"/><custom-block s="numbers from %n to %n"><block s="reportSum"><block var="from"/><l>1</l></block><block var="to"/></custom-block></block></block></script></block-definition><block-definition s="map %&apos;func&apos; over %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block var="data"/></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="func"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><custom-block s="map %repRing over %l"><block var="func"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script></block-definition><block-definition s="add numbers 1 to %&apos;max&apos; using for" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><l>0</l></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><block var="max"/><script><block s="doChangeVar"><l>a</l><block var="i"/></block></script></custom-block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="add numbers 1 to %&apos;max&apos; using combine" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="combine with %repRing items of %l"><block s="reifyReporter"><autolambda><block s="reportSum"><l></l><l></l></block></autolambda><list></list></block><custom-block s="numbers from %n to %n"><l>1</l><block var="max"/></custom-block></custom-block></block></script></block-definition><block-definition s="add numbers 1 to %&apos;max&apos; using math trick" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportProduct"><block var="max"/><block s="reportSum"><block var="max"/><l>1</l></block></block><l>2</l></block></block></script></block-definition><block-definition s="factorial of %&apos;num&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>product</l></list></block><block s="doSetVar"><l>product</l><l>1</l></block><block s="doForEach"><l>item</l><custom-block s="list from %s through %s"><l>1</l><block var="num"/></custom-block><script><block s="doSetVar"><l>product</l><block s="reportProduct"><block var="product"/><block var="item"/></block></block></script></block><block s="doReport"><block var="product"/></block></script></block-definition><block-definition s="position of number %&apos;number&apos; in unsorted list %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><block s="reportListLength"><block var="list"/></block><script><block s="doIf"><block s="reportEquals"><block var="number"/><block s="reportListItem"><block var="i"/><block var="list"/></block></block><script><block s="doReport"><block var="i"/></block></script></block></script></custom-block><block s="doReport"><l>NIL</l></block></script></block-definition><block-definition s="position of number %&apos;num&apos; in sorted list %&apos;sorted&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>b</l><l>c</l></list></block><block s="doSetVar"><l>a</l><l>1</l></block><block s="doSetVar"><l>b</l><block s="reportListLength"><block var="sorted"/></block></block><block s="doSetVar"><l>c</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block s="reportSum"><block var="a"/><block var="b"/></block><l>2</l></block></block></block><block s="doUntil"><block s="reportEquals"><block var="num"/><block s="reportListItem"><block var="c"/><block var="sorted"/></block></block><script><block s="doIf"><block s="reportOr"><block s="reportEquals"><block var="c"/><block var="a"/></block><block s="reportEquals"><block var="c"/><block var="b"/></block></block><script><block s="doReport"><l>NIL</l></block></script></block><block s="doIfElse"><block s="reportLessThan"><block var="num"/><block s="reportListItem"><block var="c"/><block var="sorted"/></block></block><script><block s="doSetVar"><l>b</l><block var="c"/></block><block s="doSetVar"><l>c</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block s="reportSum"><block var="a"/><block var="b"/></block><l>2</l></block></block></block></script><script><block s="doSetVar"><l>a</l><block var="c"/></block><block s="doSetVar"><l>c</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block s="reportSum"><block var="a"/><block var="b"/></block><l>2</l></block></block></block></script></block></script></block><block s="doReport"><block var="c"/></block></script></block-definition><block-definition s="averageTime %&apos;numOfTimes&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>average</l></list></block><block s="doSetVar"><l>average</l><l>0</l></block><block s="doRepeat"><block var="numOfTimes"/><script><block s="doSetVar"><l>average</l><block s="reportSum"><block var="average"/><custom-block s="time function %repRing"><block s="reifyReporter"><autolambda><custom-block s="1000 numbers starting from %s"><l>4000</l></custom-block></autolambda><list></list></block></custom-block></block></block></script></block><block s="doReport"><block s="reportQuotient"><block var="average"/><block var="numOfTimes"/></block></block></script></block-definition></blocks><variables><variable name="randomList"><list struct="atomic" id="1015">96506,56107,34650,43518,97062,1600,39624,81632,50803,23115,64217,47292,74436,66592,50786,51087,53426,99718,42021,16890,50895,76839,80878,61103,19144,31783,86717,7729,81577,99958,83416,84546,80102,48115,62747,59678,96217,62059,831,72994,7504,7901,48534,73624,39603,97402,59870,28286,93526,774,28686,54511,11857,67864,97046,89048,55317,52968,30988,13702,88500,26832,37022,4072,20034,1211,68915,73858,80664,76476,61605,60189,1981,22787,64209,77745,41911,43121,80988,50229,68574,34704,88433,11685,89177,35998,24277,22558,52712</list></variable><variable name="sorted list"><list struct="atomic" linked="linked" id="1016">1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000</list></variable></variables></project><media name="U5L3: Timing Algorithms" app="Snap! 5.4, http://snap.berkeley.edu" version="1"></media></snapdata>