<snapdata remixID="8884281"><project name="1920 U5L1p2 Analyzing and Improving Searches (starter)" app="Snap! 5.1, 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" 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="1.8505703787478913" y="-2.9169235773799755" 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="630" collapsed="false">Updated by Firstname Lastname on 07/18/2019&#xD;1920 U5L1p2 Analyzing and Improving Searches (starter)&#xD;Unit 5 Lab 1: Search Algorithms &gt; Analyzing and Improving Searches</comment><comment x="20" y="88" w="631.6" collapsed="false">1.0 Build a position of number in unsorted list block that reports the earliest location of a number in an unsorted list or reports &quot;Not In List&quot; (or NIL, if you like) if the number is not in the list.</comment><script x="20" y="154"><custom-block s="position of number %s in unsorted list %l"><l>12</l><block s="reportNewList"><list><l>20</l><l>12</l><l>3</l><l>100</l><l>50</l><l>12</l></list></block></custom-block></script><script x="20" y="191"><block s="doSetVar"><l>awfulList</l><block s="reportNewList"><list><l>1</l><l>7</l><l>8</l><l>9</l><l>11</l><l>11</l><l>21</l><l>22</l><l>23</l><l>24</l><l>73</l><l>73</l><l>96</l><l>99</l></list></block></block></script><script x="20" y="234"><custom-block s="position of number %s in unsorted list %l"><l>11</l><block var="awfulList"/></custom-block></script><script x="20" y="268"><custom-block s="position of %n in sorted list %l"><l>7</l><block var="awfulList"/></custom-block></script><comment x="20" y="302" w="600.4" collapsed="false">2.0 Using the strategy of your guessing game project from the previous page, write a block that says:&#xD;     * the position of an item in an ordered list&#xD;     * the number of guesses it takes to find the number</comment><script x="20" y="380"><custom-block s="say position of number %n in sorted list %l"><l>22</l><block var="awfulList"/></custom-block></script><comment x="20" y="420" w="593.2" collapsed="false">3.0 Then, build a position of number in sorted list block that returns the position of a number in a list sorted from lowest to highest or zero if the number is not in the list.</comment><script x="20" y="486"><custom-block s="position of %n in sorted list %l"><l>11</l><block var="awfulList"/></custom-block></script><script x="20" y="520"><custom-block s="position of %n in sorted list %l"><l>2</l><block var="awfulList"/></custom-block></script><comment x="15" y="547" w="608" collapsed="false">If There Is Time...&#xD;4.0 Make a table that tracks the number of guesses it takes to find the last number in a sorted list depending on the length of the list:</comment></scripts></sprite><watcher scope="Stage" s="getLastAnswer" style="normal" x="6.237622070313023" y="4.769946289062517" color="4,148,220" hidden="true"/><watcher var="awfulList" style="normal" x="2.935351562499477" y="0" color="243,118,29" extX="229" extY="454"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="Number guessing game" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="tell %s to %cs"><l>Sprite(2)</l><script><block s="bubble"><l>I&apos;m thinking of a number from 1 to 60.</l></block></script></custom-block><block s="doDeclareVariables"><list><l>secret number</l><l>number of guesses</l><l>guesses</l></list></block><block s="doSetVar"><l>secret number</l><block s="reportRandom"><l>1</l><l>60</l></block></block><block s="doSetVar"><l>number of guesses</l><l>0</l></block><block s="doSetVar"><l>guesses</l><block s="reportNewList"><list></list></block></block><block s="doUntil"><block s="reportEquals"><block s="getLastAnswer"></block><block var="secret number"/></block><script><block s="doAsk"><l>Guess my secret number.</l></block><block s="doAddToList"><block s="getLastAnswer"></block><block var="guesses"/></block><block s="doSetVar"><l>number of guesses</l><block s="reportSum"><block var="number of guesses"/><l>1</l></block></block><custom-block s="tell %s to %cs"><l>Sprite(2)</l><script><block s="bubble"><block var="guesses"/></block></script></custom-block><block s="doSayFor"><custom-block s="high or low answer: %n secret number: %n"><block s="getLastAnswer"></block><block var="secret number"/></custom-block><l>2</l></block></script></block><block s="doSayFor"><block s="reportJoinWords"><list><l>You guessed it in </l><block var="number of guesses"/><l> guesses.</l></list></block><l>3</l></block></script></block-definition><block-definition s="high or low answer: %&apos;answer&apos; secret number: %&apos;secret number&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="answer"/><block var="secret number"/></block><script><block s="doReport"><l>Yay!</l></block></script></block><block s="doIfElse"><block s="reportLessThan"><block var="answer"/><block var="secret number"/></block><script><block s="doReport"><l>too low</l></block></script><script><block s="doReport"><l>too high</l></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="position of number %&apos;value&apos; in unsorted list %&apos;data&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><custom-block s="for %upvar = %n to %n %cs"><l>index</l><l>1</l><block s="reportListLength"><block var="data"/></block><script><block s="doIf"><block s="reportEquals"><block var="value"/><block s="reportListItem"><block var="index"/><block var="data"/></block></block><script><block s="doReport"><block var="index"/></block></script></block></script></custom-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.00000300000002" 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="say position of number %&apos;num&apos; in sorted list %&apos;data&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>guess</l><l>low</l><l>high</l></list></block><block s="doSetVar"><l>guess</l><block s="reportRound"><block s="reportQuotient"><block s="reportSum"><block var="low"/><block var="high"/></block><l>2</l></block></block></block><block s="doSetVar"><l>low</l><l>1</l></block><block s="doSetVar"><l>high</l><block s="reportListLength"><block var="data"/></block></block><block s="doUntil"><block s="reportEquals"><block s="reportListItem"><block var="guess"/><block var="data"/></block><block var="num"/></block><script><block s="doIf"><block s="reportGreaterThan"><block var="low"/><block var="high"/></block><script><block s="doSayFor"><l>Not in list (or list isn&apos;t sorted).</l><l>3</l></block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportGreaterThan"><block s="reportListItem"><block var="guess"/><block var="data"/></block><block var="num"/></block><script><block s="doSetVar"><l>high</l><block s="reportDifference"><block var="guess"/><l>1</l></block></block></script><script><block s="doSetVar"><l>low</l><block s="reportSum"><block var="guess"/><l>1</l></block></block></script></block><block s="doSetVar"><l>guess</l><block s="reportRound"><block s="reportQuotient"><block s="reportSum"><block var="low"/><block var="high"/></block><l>2</l></block></block></block></script></block><block s="doSayFor"><block var="guess"/><l>3</l></block></script><scripts><comment x="10" y="1380" w="467.6" collapsed="false">This is essentially the Number guessing game program, but with the user interface parts removed.&#xD;A stop condition for the loop should be self-documenting.  (There&apos;s still an early stop if the error condition LOW&gt;HIGH occurs.  In this case it means that the supposedly sorted list given as input isn&apos;t sorted, or if the desired item isn&apos;t in the list.)</comment><script x="10" y="1469.9999999999998"><custom-block s="tell %s to %cs"><l>Sprite(2)</l><script><block s="bubble"><l>I&apos;m thinking of a number from 1 to 60.</l></block></script></custom-block><block s="doDeclareVariables"><list><l>secret number</l><l>number of guesses</l><l>guesses</l></list></block><block s="doSetVar"><l>secret number</l><block s="reportRandom"><l>1</l><l>60</l></block></block><block s="doSetVar"><l>number of guesses</l><l>0</l></block><block s="doSetVar"><l>guesses</l><block s="reportNewList"><list></list></block></block><block s="doUntil"><block s="reportEquals"><block s="getLastAnswer"></block><block var="secret number"/></block><script><block s="doAsk"><l>Guess my secret number.</l></block><block s="doAddToList"><block s="getLastAnswer"></block><block var="guesses"/></block><block s="doSetVar"><l>number of guesses</l><block s="reportSum"><block var="number of guesses"/><l>1</l></block></block><custom-block s="tell %s to %cs"><l>Sprite(2)</l><script><block s="bubble"><block var="guesses"/></block></script></custom-block><block s="doSayFor"><custom-block s="high or low answer: %n secret number: %n"><block s="getLastAnswer"></block><block var="secret number"/></custom-block><l>2</l></block></script></block><block s="doSayFor"><block s="reportJoinWords"><list><l>You guessed it in </l><block var="number of guesses"/><l> guesses.</l></list></block><l>3</l></block></script></scripts></block-definition><block-definition s="position of %&apos;num&apos; in sorted list %&apos;data&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>guess</l><l>low</l><l>high</l></list></block><block s="doSetVar"><l>low</l><l>1</l></block><block s="doSetVar"><l>high</l><block s="reportListLength"><block var="data"/></block></block><block s="doSetVar"><l>guess</l><block s="reportRound"><block s="reportQuotient"><block s="reportSum"><block var="low"/><block var="high"/></block><l>2</l></block></block></block><block s="doUntil"><block s="reportEquals"><block s="reportListItem"><block var="guess"/><block var="data"/></block><block var="num"/></block><script><block s="doIf"><block s="reportGreaterThan"><block var="low"/><block var="high"/></block><script><block s="doSayFor"><l>Not in list (or list isn&apos;t sorted).</l><l>3</l></block><block s="doReport"><l>0</l></block></script></block><block s="doIfElse"><block s="reportGreaterThan"><block s="reportListItem"><block var="guess"/><block var="data"/></block><block var="num"/></block><script><block s="doSetVar"><l>high</l><block s="reportDifference"><block var="guess"/><l>1</l></block></block></script><script><block s="doSetVar"><l>low</l><block s="reportSum"><block var="guess"/><l>1</l></block></block></script></block><block s="doSetVar"><l>guess</l><block s="reportRound"><block s="reportQuotient"><block s="reportSum"><block var="low"/><block var="high"/></block><l>2</l></block></block></block></script></block><block s="doReport"><block var="guess"/></block></script><scripts><script x="251" y="562"><block var="data"/></script><script x="344" y="553.9999999999998"><block var="num"/></script><comment x="14" y="457.99999999999994" w="547.6" collapsed="false">This is exactly the code from the previous problem, but with REPORT instead of SAY.</comment></scripts></block-definition></blocks><variables><variable name="awfulList"><list struct="atomic" id="906">1,7,8,9,11,11,21,22,23,24,73,73,96,99</list></variable></variables></project><media name="1920 U5L1p2 Analyzing and Improving Searches (starter)" app="Snap! 5.1, http://snap.berkeley.edu" version="1"></media></snapdata>