<snapdata remixID="13496038"><project name="U8L1- Counting Trees" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAABL9JREFUeF7tnb8rrn8Yx69TRv+AXTZlMLDbTH6UJCEpG4vIYDCILAxKSZIk8mOy2S0GxUJ2/4DBoHy7729OnR9039fzOedzdd6vezl1+lzX57pe71ee83jqOd/e39/fjQcCmQh8Q8BM5Lm2JICAiJCVAAJmxc/lCIgDWQkgYFb8XI6AOJCVAAJmxc/lCIgDWQkgYFb8XI6AOJCVAAJmxc/lCIgDWQkgYFb8XI6AOJCVAAJmxc/lCIgDWQkgYFb8XI6AOJCVAAJmxc/lCIgDWQkgYFb8XI6AOJCVAAJmxc/lCIgDWQkgYE38b29v1tTUVLOK458RQMCabiwsLNjq6mrNKo4jYCIH+vv77fz8vFK3zc1Nm5mZqXRW9RA/AWsmv76+bnNzc5WqDg8PbWRkpNJZ1UMI+Enyo6OjdnBwoOrFX9sbAb9Avb29bdPT038tDMWLELBC6s/Pz9bS0mLX19fW3d1docLsq5ff+/t7W15etpOTk0q9/uVDCFgx3eKd78PDg+3t7VWqGBoasuPj4x/OFm9gtra2Spl5/ieAgDVMGBwctNPT00oVU1NTtrOzU76Ed3V12fj4eKU6tUMI+IcSn5yctN3d3T/U/d9pi4A1syx+r1f8fu+rp6+vzy4uLmp21jyOgDVzv729tY6Ojk+rjo6ObHh4uGZX3eMI6Mh+Y2PDZmdnHZWU/EwAAR1OFO+EJyYmfqkcGxuz/f19R0fdEgR0Zn91dWU9PT3fq4uP54qP6XjqEUDAery+n15cXLSVlRVnNWUfBBCwARdeXl6subm5/FRjaWmpgU66pQjYQPbFvwNfX1+teOfL4yOAgD5uVCUigICJQNLGRwABfdyoSkQAAROBpI2PAAL6uFGViAACJgJJGx8BBPRxoyoRAQRMBJI2PgII6ONGVSICCJgIJG18BBDQx42qRAQQMBFI2vgIIKCPG1WJCCBgIpC08RFAQB83qhIRQMBEIGnjI4CAPm5UJSKAgIlA0sZHAAF93Mqq3t7e8s/Ly8sGumiXImAD+Q8MDJTVZ2dnDXTRLkXABvIvvgOmePgeGD9EBHSye3x8tPn5+bJ6bW3N2tranJ20yxDQmX97e7u1traW1U9PT3Z3d+fspF2GgM78P15+P8p5GfaBREAfN0NAJ7ifyhDQwbH4AvLiq3o/fuoVMhZf38v/CVIfJgLWZ2adnZ12c3PzQ+Xv/s7RWq4EAeUij7UwAsbKQ24aBJSLPNbCCBgrD7lpEFAu8lgLI2CsPOSmQUC5yGMtjICx8pCbBgHlIo+1MALGykNuGgSUizzWwggYKw+5aRBQLvJYCyNgrDzkpkFAuchjLYyAsfKQmwYB5SKPtTACxspDbhoElIs81sIIGCsPuWkQUC7yWAsjYKw85KZBQLnIYy2MgLHykJsGAeUij7UwAsbKQ24aBJSLPNbCCBgrD7lpEFAu8lgLI2CsPOSmQUC5yGMtjICx8pCbBgHlIo+1MALGykNuGgSUizzWwggYKw+5aRBQLvJYCyNgrDzkpkFAuchjLYyAsfKQmwYB5SKPtTACxspDbhoElIs81sIIGCsPuWkQUC7yWAsjYKw85KZBQLnIYy2MgLHykJsGAeUij7UwAsbKQ26a/wDRyHG3OCjbiAAAAABJRU5ErkJggg==</thumbnail><scenes select="1"><scene name="U8L1- Counting Trees"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><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="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><list></list></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><list></list></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="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="reportVariadicEquals"><list><block var="data"/><block s="reportNewList"><list></list></block></list></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><list></list></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><list></list></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="reportVariadicGreaterThan"><list><block var="start"/><block var="end"/></list></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportVariadicLessThan"><list><block var="i"/><block var="end"/></list></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="reportVariadicGreaterThan"><list><block var="i"/><block var="end"/></list></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><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></list></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></list></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><list></list></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.000003" 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></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><list></list></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="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 $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="tree 1 size: %&apos;size&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="forward"><block var="size"/></block><block s="forward"><block s="reportVariadicProduct"><list><l>-1</l><block var="size"/></list></block></block></script></block-definition><block-definition s="tree 2 size: %&apos;size&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="forward"><block var="size"/></block><block s="turnLeft"><l>25</l></block><custom-block s="tree 1 size: %n"><block s="reportVariadicProduct"><list><block var="size"/><l>0.65</l></list></block></custom-block><block s="turn"><l>25</l></block><block s="turn"><l>35</l></block><custom-block s="tree 1 size: %n"><block s="reportVariadicProduct"><list><block var="size"/><l>0.85</l></list></block></custom-block><block s="turnLeft"><l>35</l></block><block s="forward"><block s="reportVariadicProduct"><list><l>-1</l><block var="size"/></list></block></block></script></block-definition><block-definition s="tree 3 size: %&apos;size&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="forward"><block var="size"/></block><block s="turnLeft"><l>25</l></block><custom-block s="tree 2 size: %n"><block s="reportVariadicProduct"><list><block var="size"/><l>0.65</l></list></block></custom-block><block s="turn"><l>25</l></block><block s="turn"><l>35</l></block><custom-block s="tree 2 size: %n"><block s="reportVariadicProduct"><list><block var="size"/><l>0.65</l></list></block></custom-block><block s="turnLeft"><l>35</l></block><block s="forward"><block s="reportVariadicProduct"><list><l>-1</l><block var="size"/></list></block></block></script></block-definition><block-definition s="tree 4 size: %&apos;size&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="forward"><block var="size"/></block><block s="turnLeft"><l>25</l></block><custom-block s="tree 3 size: %n"><block s="reportVariadicProduct"><list><block var="size"/><l>0.65</l></list></block></custom-block><block s="turn"><l>25</l></block><block s="turn"><l>35</l></block><custom-block s="tree 3 size: %n"><block s="reportVariadicProduct"><list><block var="size"/><l>0.65</l></list></block></custom-block><block s="turnLeft"><l>35</l></block><block s="forward"><block s="reportVariadicProduct"><list><l>-1</l><block var="size"/></list></block></block></script></block-definition><block-definition s="tree 5 size: %&apos;size&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="forward"><block var="size"/></block><block s="turnLeft"><l>25</l></block><custom-block s="tree 4 size: %n"><l>50</l></custom-block><block s="turn"><l>25</l></block><block s="turn"><l>35</l></block><custom-block s="tree 4 size: %n"><l>50</l></custom-block><block s="turnLeft"><l>35</l></block><block s="forward"><block s="reportVariadicProduct"><list><l>-1</l><block var="size"/></list></block></block></script></block-definition><block-definition s="tree level: %&apos;level&apos; size %&apos;size&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="level"/><l>1</l></list></block><script><block s="forward"><block var="size"/></block><block s="forward"><block s="reportVariadicProduct"><list><block var="size"/><l>-1</l></list></block></block></script><script><block s="forward"><block var="size"/></block><block s="turnLeft"><l>25</l></block><custom-block s="tree level: %n size %n"><block s="reportDifference"><block var="level"/><l>1</l></block><block s="reportVariadicProduct"><list><block var="size"/><l>0.65</l></list></block></custom-block><block s="turn"><l>25</l></block><block s="turn"><l>35</l></block><custom-block s="tree level: %n size %n"><block s="reportDifference"><block var="level"/><l>1</l></block><block s="reportVariadicProduct"><list><block var="size"/><l>0.85</l></list></block></custom-block><block s="turnLeft"><l>35</l></block><block s="forward"><block s="reportVariadicProduct"><list><block var="size"/><l>-1</l></list></block></block></script></block></script></block-definition><block-definition s="segments in tree %&apos;num&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>answer</l></list></block><block s="doSetVar"><l>answer</l><l>1</l></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><block var="num"/><l>10</l><script><block s="doSetVar"><l>answer</l><block s="reportVariadicProduct"><list><block var="answer"/><l>2</l></list></block></block></script></custom-block><block s="doReport"><block s="reportDifference"><block var="answer"/><l>1</l></block></block></script></block-definition><block-definition s="recursive segments in tree %&apos;level&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="level"/><l>1</l></list></block><script><block s="doReport"><l>1</l></block></script><script><block s="doReport"><block s="reportVariadicSum"><list><l>1</l><block s="reportVariadicProduct"><list><l>2</l><custom-block s="recursive segments in tree %n"><block s="reportDifference"><block var="level"/><l>1</l></block></custom-block></list></block></list></block></block></script></block></script><scripts><comment x="19" y="250.2" w="330" collapsed="false">Design:&#xD;&#xD;if n is one then&#xD;     report one&#xD;else&#xD;     report (one plus (2 times (recursive (level less one))</comment><comment x="16" y="208.2" w="477" collapsed="true">This is the formula from Unit 8 Lab 1: Recursive Reporters   Working with Recursive Reporters</comment></scripts></block-definition><block-definition s="iterative segments in tree %&apos;n&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>answer</l></list></block><block s="doSetVar"><l>answer</l><l>1</l></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><block var="n"/><script><block s="doSetVar"><l>answer</l><block s="reportVariadicProduct"><list><block var="answer"/><l>2</l></list></block></block></script></custom-block><block s="doReport"><block s="reportDifference"><block var="answer"/><l>1</l></block></block></script><scripts><comment x="11.200000000000045" y="202.56" w="347.6" collapsed="false">8.1.1.3 iterative solution.  This isn&apos;t *wrong*, but students who find this solution should be encouraged to think about it recursively also.</comment></scripts></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="888"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="889"></list></costumes><sounds><list struct="atomic" id="890"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="-2.2737367544323206e-13" y="0" heading="0" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="895"><costumes><list struct="atomic" id="896"></list></costumes><sounds><list struct="atomic" id="897"></list></sounds><blocks></blocks><variables></variables><scripts><comment x="20" y="20" w="636" collapsed="false">Created by Alexander Perez on 02/23/2020&#xD;1920 U8L1p1 Counting Trees (starter file)&#xD;Week 11 Unit 8 Lab 1 Recursive Reporters Counting Trees</comment><comment x="20" y="98.00000000000006" w="610" collapsed="false">1. Open your &quot;U6L1-Tree&quot; project. How many line segments are in a tree of each level? Complete this table. (You can count by eye or have Snap! count for you.)</comment><script x="20" y="164.00000000000006"><block s="clear"></block><block s="setHeading"><l>0</l></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="down"></block><custom-block s="tree 3 size: %n"><l>50</l></custom-block></script><script x="20" y="280.99999999999994"><block s="clear"></block><block s="setHeading"><l>0</l></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="down"></block><custom-block s="tree level: %n size %n"><l>4</l><l>50</l></custom-block></script><comment x="20" y="398" w="610" collapsed="false">2. How does the number of segments in one level compare to the number of segments in the previous level?</comment><comment x="20" y="451.9999999999999" w="616" collapsed="false">Each number is twice the previous one, plus 1.  For example, (2×7)+1 = 15, which is the number below 7 in the table.  Note that we do *not* ask for a closed form formula in terms of the level number!</comment><comment x="20" y="517.9999999999999" w="610" collapsed="false">3. Build a block whose input is a tree number and whose output is the number of segments in that level: segments in tree 7</comment><script x="20" y="571.9999999999999"><custom-block s="iterative segments in tree %s"><l></l><comment w="311" collapsed="true">Alphie and Betty discuss the code they created.</comment></custom-block></script><comment x="20" y="606.9999999999999" w="593" collapsed="false">4. If you haven&apos;t yet, build a recursive reporter that reports the number of segments in a tree of level n.&#xD;Remember that you need to click &quot;Apply&quot; before you can use your block recursively in the Block Editor.</comment><script x="20" y="673.0000000000001"><custom-block s="recursive segments in tree %n"><l>7</l></custom-block></script><script x="20" y="706.0000000000001"><custom-block s="segments in tree %n"><l>7</l></custom-block></script></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="U8L1- Counting Trees" app="Snap! 9.0, https://snap.berkeley.edu" version="2"></media></snapdata>