<?xml version="1.0"?>
<flowgorithm fileversion="2.11">
    <attributes>
        <attribute name="name" value=""/>
        <attribute name="authors" value="Tonye"/>
        <attribute name="about" value=""/>
        <attribute name="saved" value="2020-12-19 03:02:31 PM"/>
        <attribute name="created" value="VG9ueWU7REVTS1RPUC01OFFMOUpGOzIwMjAtMTItMTg7MDM6MzM6MTcgUE07Mjg1NA=="/>
        <attribute name="edited" value="VG9ueWU7REVTS1RPUC01OFFMOUpGOzIwMjAtMTItMTg7MTE6MjM6NTQgUE07Mjg7MzAxOA=="/>
        <attribute name="edited" value="YnVycmluO0RFU0tUT1AtNzQ5RDJJRjsyMDIwLTEyLTE5OzAzOjAyOjMxIFBNOzE7MzA0NA=="/>
    </attributes>
    <function name="Main" type="None" variable="">
        <parameters/>
        <body>
            <declare name="Exit" type="Boolean" array="False" size=""/>
            <comment text="false as a boolean needs a capital F"/>
            <comment text=""/>
            <assign variable="Exit" expression="False"/>
            <declare name="NumMessages" type="Integer" array="False" size=""/>
            <assign variable="NumMessages" expression="0"/>
            <comment text="the continue var is a string not an int"/>
            <declare name="continue" type="String" array="False" size=""/>
            <while expression="Exit == False">
                <output expression="&quot;Please Enter A Message&quot;" newline="True"/>
                <declare name="Text" type="String" array="False" size=""/>
                <declare name="cipherText" type="String" array="False" size=""/>
                <declare name="Alphabet" type="String" array="True" size="26"/>
                <declare name="substitution" type="String" array="True" size="27"/>
                <call expression="LoadAlphabet(Alphabet)"/>
                <call expression="LoadCipher(substitution)"/>
                <input variable="Text"/>
                <breakpoint/>
                <assign variable="Text" expression="ToUpper(Text)"/>
                <assign variable="cipherText" expression="MakeCipherText(Text,Alphabet,substitution)"/>
                <assign variable="cipherText" expression="ToLower(cipherText)"/>
                <output expression="cipherText" newline="True"/>
                <assign variable="NumMessages" expression="NumMessages +1"/>
                <output expression="&quot;QUIT to quit&quot;" newline="True"/>
                <comment text="you can't to upper before you input"/>
                <input variable="continue"/>
                <assign variable="continue" expression="ToUpper(continue)"/>
                <if expression="continue == &quot;QUIT&quot;">
                    <then>
                        <assign variable="Exit" expression="True"/>
                    </then>
                    <else/>
                </if>
            </while>
            <call expression="printMessage(NumMessages)"/>
        </body>
    </function>
    <function name="LoadAlphabet" type="None" variable="alphabet">
        <parameters>
            <parameter name="Alphabet" type="String" array="True"/>
        </parameters>
        <body>
            <declare name="START" type="Integer" array="False" size=""/>
            <assign variable="START" expression="65"/>
            <declare name="Counter" type="Integer" array="False" size=""/>
            <for variable="Counter" start="0" end="25" direction="inc" step="1">
                <assign variable="alphabet[counter]" expression="Tochar(START+counter)"/>
            </for>
        </body>
    </function>
    <function name="LoadCipher" type="None" variable="">
        <parameters>
            <parameter name="substitution" type="String" array="True"/>
        </parameters>
        <body>
            <assign variable="substitution[0]" expression="&quot;S&quot;"/>
            <assign variable="substitution[1]" expression="&quot;T&quot;"/>
            <comment text="your assignemnts are wrong you have one missing and it should only go to 25"/>
            <assign variable="substitution[3]" expression="&quot;A&quot;"/>
            <assign variable="substitution[4]" expression="&quot;R&quot;"/>
            <assign variable="substitution[5]" expression="&quot;W&quot;"/>
            <assign variable="substitution[6]" expression="&quot;E&quot;"/>
            <assign variable="substitution[7]" expression="&quot;U&quot;"/>
            <assign variable="substitution[8]" expression="&quot;N&quot;"/>
            <assign variable="substitution[9]" expression="&quot;I&quot;"/>
            <assign variable="substitution[10]" expression="&quot;F&quot;"/>
            <assign variable="substitution[11]" expression="&quot;H&quot;"/>
            <assign variable="substitution[12]" expression="&quot;J&quot;"/>
            <assign variable="substitution[13]" expression="&quot;D&quot;"/>
            <assign variable="substitution[14]" expression="&quot;I&quot;"/>
            <assign variable="substitution[15]" expression="&quot;Z&quot;"/>
            <assign variable="substitution[16]" expression="&quot;B&quot;"/>
            <assign variable="substitution[17]" expression="&quot;K&quot;"/>
            <assign variable="substitution[18]" expression="&quot;Y&quot;"/>
            <assign variable="substitution[19]" expression="&quot;Q&quot;"/>
            <assign variable="substitution[20]" expression="&quot;T&quot;"/>
            <assign variable="substitution[21]" expression="&quot;X&quot;"/>
            <assign variable="substitution[22]" expression="&quot;G&quot;"/>
            <assign variable="substitution[23]" expression="&quot;M&quot;"/>
            <assign variable="substitution[24]" expression="&quot;V&quot;"/>
            <assign variable="substitution[25]" expression="&quot;P&quot;"/>
            <assign variable="substitution[2]" expression="&quot;L&quot;"/>
        </body>
    </function>
    <function name="MakeCipherText" type="String" variable="Cipher">
        <parameters>
            <parameter name="Text" type="String" array="False"/>
            <parameter name="Alphabet" type="String" array="True"/>
            <parameter name="substitution" type="String" array="True"/>
        </parameters>
        <body>
            <comment text="variable case must match the loop variable"/>
            <declare name="counter" type="Integer" array="False" size=""/>
            <declare name="Cipher" type="String" array="False" size=""/>
            <assign variable="Cipher" expression="&quot;&quot;"/>
            <declare name="Letter" type="String" array="False" size=""/>
            <declare name="Position" type="Integer" array="False" size=""/>
            <for variable="counter" start="0" end="len(Text)-1" direction="inc" step="1">
                <assign variable="Letter" expression="char(Text,counter)"/>
                <if expression="ToCode(letter) &lt;65 OR ToCode(letter) &gt;90">
                    <then>
                        <assign variable="Cipher" expression="Cipher &amp; letter"/>
                    </then>
                    <else>
                        <for variable="position" start="0" end="size(Alphabet)-1" direction="inc" step="1">
                            <if expression="letter=alphabet[position]">
                                <then>
                                    <assign variable="Cipher" expression="Cipher &amp; substitution[position]"/>
                                </then>
                                <else/>
                            </if>
                        </for>
                    </else>
                </if>
            </for>
        </body>
    </function>
    <function name="printMessage" type="None" variable="">
        <parameters>
            <parameter name="NumMessages" type="Integer" array="False"/>
        </parameters>
        <body>
            <output expression="&quot;There were &quot;&amp;NumMessages &amp; &quot;of encrypted messages.&quot; &amp; &quot;Have a nice day&quot;" newline="True"/>
        </body>
    </function>
    <function name="ToLower" type="String" variable="IWords">
        <parameters>
            <parameter name="uWords" type="String" array="False"/>
        </parameters>
        <body>
            <declare name="letter" type="Integer" array="False" size=""/>
            <declare name="code" type="Integer" array="False" size=""/>
            <declare name="IWords" type="String" array="False" size=""/>
            <assign variable="IWords" expression="&quot;&quot;"/>
            <for variable="Letter" start="0" end="len(uWords)-1" direction="inc" step="1">
                <assign variable="code" expression="ToCode(Char(uWords,letter))"/>
                <if expression="code &gt;64 AND code &lt;91">
                    <then>
                        <assign variable="code" expression="ToCode(Char(uWords,letter))+32"/>
                        <assign variable="IWords" expression="IWords &amp; ToChar(code)"/>
                    </then>
                    <else>
                        <assign variable="IWords" expression="IWords &amp; ToChar(code)"/>
                    </else>
                </if>
            </for>
        </body>
    </function>
    <function name="ToUpper" type="String" variable="uWords">
        <parameters>
            <parameter name="IWords" type="String" array="False"/>
        </parameters>
        <body>
            <comment text="again with incorrect case"/>
            <declare name="letter" type="Integer" array="False" size=""/>
            <comment text="again with incorrect case"/>
            <declare name="code" type="Integer" array="False" size=""/>
            <declare name="uWords" type="String" array="False" size=""/>
            <assign variable="uWords" expression="&quot;&quot;"/>
            <comment text="Wrong variavbel lword not uword"/>
            <for variable="Letter" start="0" end="len(IWords)-1" direction="inc" step="1">
                <assign variable="code" expression="ToCode(Char(IWords,letter))"/>
                <if expression="code &gt;96 AND code &lt;123">
                    <then>
                        <comment text="you sub 32 here"/>
                        <assign variable="code" expression="ToCode(Char(IWords,letter))-32"/>
                        <assign variable="uWords" expression="uWords &amp; ToChar(code)"/>
                    </then>
                    <else>
                        <assign variable="uWords" expression="uWords &amp; ToChar(code)"/>
                    </else>
                </if>
            </for>
        </body>
    </function>
</flowgorithm>
