<snapdata remixID="11251199"><project name="U5L3-TimingAlgorithms" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="U5L3-TimingAlgorithms"><notes></notes><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="reportSum"><block var="num"/><l>999</l></block></custom-block></block></script></block-definition><block-definition s="all %&apos;num&apos; digit numbers" type="reporter" category="lists"><comment x="0" y="0" w="90" collapsed="true">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. You don&apos;t need to include zero in 1 digit numbers.</comment><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="reportMonadic"><l><option>10^</option></l><block s="reportDifference"><block var="num"/><l>1</l></block></block><block s="reportDifference"><block s="reportMonadic"><l><option>10^</option></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"><comment w="144.5098039215686" collapsed="true">5 factorial -&gt; 5! = 5x4x3x2x1&#xD;You can choose to worry about zero/negative numbers or not </comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>finalval</l></list></block><block s="doSetVar"><l>finalval</l><l>1</l></block><block s="doFor"><l>i</l><l>1</l><block var="num"/><script><block s="doSetVar"><l>finalval</l><block s="reportProduct"><block var="finalval"/><block var="i"/></block></block></script></block><block s="doReport"><block var="finalval"/></block></script></block-definition><block-definition s="position of number %&apos;number&apos; in unsorted list %&apos;list&apos; of size %&apos;size&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>randomList</l><block s="reportNewList"><list></list></block></block><block s="doRepeat"><block var="size"/><script><block s="doAddToList"><block s="reportRandom"><l>1</l><l>100000</l></block><block var="randomList"/><comment w="90" collapsed="true">leave these numbers alone</comment></block></script></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><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; of size %&apos;size&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><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>sorted list</l><custom-block s="list from %s through %s"><l>1</l><block var="size"/></custom-block></block><block s="doSetVar"><l>a</l><l>1</l></block><block s="doSetVar"><l>b</l><block s="reportListAttribute"><l><option>length</option></l><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="matching %&apos;num&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>list</l></list></block><block s="doSetVar"><l>list</l><custom-block s="list from %s through %s"><l>0</l><block var="num"/></custom-block></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><script><block s="doFor"><l>j</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><script><block s="doIf"><block s="reportAnd"><block s="reportNot"><block s="reportEquals"><block var="i"/><block var="j"/></block></block><block s="reportEquals"><block s="reportListItem"><block var="i"/><block var="list"/></block><block s="reportListItem"><block var="j"/><block var="list"/></block></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><list><l>Match found at </l><block var="i"/><l> </l><block var="j"/></list></custom-block></block></script></block></script></block></script></block><block s="doReport"><l>No match found</l></block></script></block-definition><block-definition s="tetsaudhj %&apos;weewoo&apos; %&apos;input&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><custom-block s="time function %repRing"><block var="weewoo"/></custom-block></block><block s="doAddToList"><block s="reportNewList"><list><block var="input"/><block var="a"/></list></block><block var="outputs"/></block><block s="gotoXY"><block s="reportDifference"><block s="reportProduct"><block var="input"/><block s="reportQuotient"><l>400</l><block s="reportListItem"><l><option>last</option></l><block var="inputs"/></block></block></block><l>200</l></block><block s="reportDifference"><block var="a"/><l>100</l></block></block></script></block-definition></blocks><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" hyperops="true" codify="false" inheritance="false" sublistIDs="false" id="1035"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="1036"></list></costumes><sounds><list struct="atomic" id="1037"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="-200" y="-100" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="0" color="108.5199999999999,0,233,1" pen="tip" id="1042"><costumes><list struct="atomic" id="1043"></list></costumes><sounds><list struct="atomic" id="1044"></list></sounds><blocks></blocks><variables></variables><scripts><comment x="45.88529185556993" y="12.311075181240824" w="315.38860103626945" collapsed="true">Use this &quot;list from x through y&quot; block to build the following blocks: </comment><script x="242.48632812499983" y="58.144408514574195"><block s="receiveGo"><comment w="183.7841796875" collapsed="true">wrote this to make testing faster</comment></block><block s="down"></block><block s="doSetVar"><l>inputs</l><block s="reportNewList"><list><l>10</l><l>20</l><l>30</l><l>40</l></list></block></block><block s="doSetVar"><l>outputs</l><block s="reportNewList"><list></list></block></block><block s="changePenColorDimension"><l><option>hue</option></l><l>29</l></block><block s="doForEach"><l>item</l><block var="inputs"/><script><custom-block s="tetsaudhj %repRing %s"><block s="reifyReporter"><autolambda><custom-block s="position of number %s in sorted list %s of size %s"><l>0</l><block var="sorted list"/><block var="item"/><comment w="90" collapsed="true">keep the &quot;position of number&quot; = 0. Change the &quot;size&quot; and put in your chart.</comment></custom-block></autolambda><list></list></block><block var="item"/></custom-block></script></block><block s="up"></block><block s="gotoXY"><l>-200</l><l>-100</l></block></script><script x="442.1191406249998" y="181.81107518124094"><custom-block s="all %s digit numbers"><l></l></custom-block></script><comment x="451.4863281249998" y="80.31107518124082" w="134" collapsed="false">Idea: make a block that tests a large set of numbers and returns their corresponding outputs in a list (and even draws a basic a plot graph?)</comment><comment x="50.486328125" y="10.212629585385798" w="435.07772020725395" collapsed="true">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, quadratic, cubic, exponential, or log time.</comment><comment x="48.35884063388954" y="10" w="127.18134715025906" collapsed="true">Also make a factorial block.</comment><script x="22.119140625" y="73.81107518124094"><custom-block s="1000 numbers starting from %s"><l></l></custom-block></script><script x="18.94818652849733" y="102.35294117647072"><custom-block s="add numbers 1 to %s using combine"><l></l></custom-block></script><script x="10" y="135.31107518124082"><custom-block s="add numbers 1 to %s using math trick"><l></l></custom-block></script><script x="685.4208984374998" y="231.6444085145743"><custom-block s="factorial of %s"><block var="item"/></custom-block></script><script x="21.486328125" y="203.64440851457425"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="clear"></block><block s="gotoXY"><l>-200</l><l>-100</l></block><block s="setColor"><color>0,7,1,1</color></block><block s="down"></block><block s="changeYPosition"><l>200</l></block><block s="changeYPosition"><l>-200</l></block><block s="changeXPosition"><l>400</l></block><block s="changeXPosition"><l>-400</l></block><block s="setColor"><color>233,6,0,1</color></block><block s="up"></block></script><script x="260.1191406249998" y="442.8110751812409"><custom-block s="factorial of %s"><l></l></custom-block></script><script x="227.11914062499977" y="404.8110751812409"><custom-block s="add numbers 1 to %s using for"><l></l></custom-block></script><script x="221.11914062499977" y="364.8110751812409"><custom-block s="matching %s"><l></l><comment w="208" collapsed="true">Just enter a number here - this algorithm is often used to see if there are duplicates. It has been modified to never have a duplicate so we can have accurate timings when run.</comment></custom-block></script><script x="46.48632812499983" y="487.64440851457425"><custom-block s="position of number %s in unsorted list %s of size %s"><l>0</l><block var="randomList"/><l></l><comment w="90" collapsed="true">keep the &quot;position of number&quot; = 0. Change the &quot;size&quot; and put in your chart.</comment></custom-block></script></scripts></sprite><watcher var="randomList" style="normal" x="-9.789647324482303" y="1.3958510487528457" color="243,118,29" hidden="true"/><watcher var="sorted list" style="normal" x="3.814343515213068" y="1.3414239654194944" color="243,118,29" hidden="true"/><watcher var="inputs" style="normal" x="10" y="10" color="243,118,29" hidden="true"/><watcher var="outputs" style="normal" x="6" y="6.000001999999995" color="243,118,29" extX="129" extY="86"/></sprites></stage><variables><variable name="randomList"><list struct="atomic" id="1135">87891,10382,7701,61598,26873,90680,607,15059,65523,89400,5742,31929,36443,85862,60984,40831,16567,52840,81979,77348,60521,20127,83704,56100,84489,89344,40151,63075,32995,34498,58100,62601,2907,57539,7560,76785,34502,26435,98031,88773</list></variable><variable name="sorted list"><list struct="atomic" linked="linked" id="1136">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</list></variable><variable name="outputs"><list id="1137"><item><list struct="atomic" id="1138">10,85</list></item><item><list struct="atomic" id="1139">20,69</list></item><item><list struct="atomic" id="1140">30,59</list></item><item><list struct="atomic" id="1141">40,66</list></item></list></variable><variable name="inputs"><list struct="atomic" id="1142">10,20,30,40</list></variable></variables></scene></scenes></project><media name="U5L3-TimingAlgorithms" app="Snap! 7, https://snap.berkeley.edu" version="2"></media></snapdata>