diff options
Diffstat (limited to 'Programming_in_C/Chapter_10.ipynb')
-rw-r--r-- | Programming_in_C/Chapter_10.ipynb | 768 |
1 files changed, 768 insertions, 0 deletions
diff --git a/Programming_in_C/Chapter_10.ipynb b/Programming_in_C/Chapter_10.ipynb new file mode 100644 index 00000000..1ec5bf12 --- /dev/null +++ b/Programming_in_C/Chapter_10.ipynb @@ -0,0 +1,768 @@ +{ + "metadata": { + "name": "Chapter X" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 10: Character strings" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Program 10.1, Page number: 197" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#10.1.py\n", + "#Concatenating Character Arrays\n", + "\n", + "#Import system library\n", + "import sys\n", + "\n", + "#Function to concatinate strings\n", + "def concat(result,str1,n1,str2,n2): #Calculations\n", + " \n", + " #copy str1 to result\n", + " for i in range(0,n1):\n", + " result[i]=str1[i]\n", + " \n", + " #copy str2 to result \n", + " for j in range(0,n2):\n", + " result[n1+j]=str2[j]\n", + "\n", + "\n", + "#Main()\n", + "def main():\n", + "\n", + " #List Declaration\n", + " s1 = [ 'T', 'e', 's', 't', ' ']\n", + " s2 = [ 'w', 'o', 'r', 'k', 's', '.' ]\n", + " s3=[0]*11\n", + "\n", + " concat(s3,s1,5,s2,6) #Fucntion call\n", + "\n", + " for i in range(0,11): #Result\n", + " sys.stdout.write(\"{0}\".format(s3[i]))\n", + "\n", + " sys.stdout.write(\"\\n\")\n", + "\n", + "\n", + "#Setting top level conditional script\n", + "if __name__=='__main__':\n", + " main()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Test works.\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Program 10.2, Page number: 199" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#10.2.py\n", + "#Counting the Characters in a String\n", + "\n", + "\n", + "#FUnction to count number of characters ina string\n", + "def stringLength(string):\n", + " count = 0\n", + " while(string[count]!='\\0'): #Calculation\n", + " count+=1\n", + " return count\n", + "\n", + "#Main()\n", + "def main():\n", + "\n", + " #List Declaration\n", + " word1 = [ 'a', 's', 't', 'e', 'r', '\\0' ]\n", + " word2 = [ 'a', 't', '\\0' ]\n", + " word3 = [ 'a', 'w', 'e', '\\0' ]\n", + "\n", + " #Result\n", + " print(\"{0} {1} {2}\\n\".format(stringLength (word1),stringLength (word2),stringLength (word3)))\n", + "\n", + "\n", + "#Setting top level conditional script\n", + "if __name__=='__main__':\n", + " main()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "5 2 3\n", + "\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Program 10.3, Page number: 202" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#10.3.py\n", + "#Concatenating Character Strings\n", + "\n", + "\n", + "#Function to concatinate strings\n", + "def concat(result,str1,str2): #Calculations\n", + " \n", + " #copy str1 to result\n", + " for i in str1:\n", + " result.append(i)\n", + " \n", + " #copy str2 to result \n", + " for j in str2:\n", + " result.append(j)\n", + " \n", + "\n", + "#Main()\n", + "def main():\n", + "\n", + " #String Declaration\n", + " s1 = \"Test \"\n", + " s2 = \"works.\"\n", + " s3=[]\n", + "\n", + " concat(s3,s1,s2) #Fucntion call\n", + " print(''.join(s3)) #Result\n", + "\n", + "\n", + "#Setting top level conditional script\n", + "if __name__=='__main__':\n", + " main()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Test works.\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Program 10.4, Page number: 204" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#10.4.py\n", + "#Testing Strings for Equality\n", + "\n", + "#Function to compare 2 strings\n", + "def equalStrings(s1,s2):\n", + " \n", + " #Calculation\n", + " if(s1==s2):\n", + " areEqual=True\n", + " else:\n", + " areEqual=False\n", + " return areEqual\n", + "\n", + "\n", + "\n", + "def main():\n", + "\n", + " #String Declaration\n", + " stra = \"string compare test\";\n", + " strb = \"string\";\n", + "\n", + " #Result\n", + " print(\"{0}\".format(equalStrings (stra, strb)))\n", + " print(\"{0}\".format(equalStrings (stra, stra)))\n", + " print(\"{0}\".format(equalStrings (strb, \"string\")))\n", + "\n", + "\n", + "#Setting top level confditional script\n", + "if __name__=='__main__':\n", + " main()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "False\n", + "True\n", + "True\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Program 10.5, Page number: 207" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#10.5.py\n", + "#Reading Strings\n", + "\n", + "#Main()\n", + "def main():\n", + " print(\"Enter Text:\\n\")\n", + "\n", + " #User Input\n", + " s1,s2,s3=map(str,\"System expansion bus\".split())\n", + " #s1,s2,s3=map(str,raw_input().split())\n", + " \n", + " \n", + " #Result\n", + " print(\"\\ns1={0}\\ns2={1}\\ns3={2}\\n\".format(s1,s2,s3))\n", + "\n", + "\n", + "#Setting top level conditional script\n", + "if __name__=='__main__':\n", + " main()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Enter Text:\n", + "\n", + "\n", + "s1=System\n", + "s2=expansion\n", + "s3=bus\n", + "\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Program 10.6, Page number: 209" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#10.6.py\n", + "#Reading Lines of Data\n", + "\n", + "#Main()\n", + "def main():\n", + "\n", + " #List declaration\n", + " line=['sample text']\n", + " for i in range(0,3):\n", + " readLine(line) #Function call\n", + " print(\"{0}\\n\".format(''.join(line))) #Result\n", + "\n", + "\n", + "#Function to read user input\n", + "def readLine(line):\n", + " \n", + " line.pop()\n", + " line.append(\"This is a sample line of text\"+\" \")\n", + " #line.append(raw_input()+\" \")\n", + "\n", + "\n", + "#Setting top level conditional script\n", + "if __name__=='__main__':\n", + " main()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "This is a sample line of text \n", + "\n", + "This is a sample line of text \n", + "\n", + "This is a sample line of text \n", + "\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Program 10.7, Page number: 211" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#10.7.py\n", + "#Counting Words\n", + "\n", + "#Function to determine if a character is alphabetic\n", + "def alphabetic(c):\n", + " if ( (c >= 'a' and c <= 'z') or (c >= 'A' and c <= 'Z') ):\n", + " return True\n", + " else:\n", + " return False\n", + "\n", + "\n", + "#Function to count the number of words in a string\n", + "def countWords(string):\n", + " \n", + " #Variable Declaration\n", + " wordCount=0\n", + " lookingForWord=True\n", + " \n", + " #Calculations\n", + " for i in string:\n", + " if(alphabetic(i)):\n", + " if(lookingForWord):\n", + " wordCount+=1\n", + " lookingForWord=False\n", + " else:\n", + " lookingForWord=True\n", + " return wordCount\n", + "\n", + "\n", + "#Main()\n", + "def main():\n", + "\n", + " #String Declaration\n", + " text1 = \"Well, here goes.\"\n", + " text2 = \"And here we go... again.\"\n", + " \n", + " #Result\n", + " print(\"{0} - words = {1}\\n\".format(text1,countWords(text1)))\n", + " print(\"{0} - words = {1}\\n\".format(text2,countWords(text2)))\n", + "\n", + "\n", + "#Setting top level conditional script\n", + "if __name__=='__main__':\n", + " main()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Well, here goes. - words = 3\n", + "\n", + "And here we go... again. - words = 5\n", + "\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Program 10.8, Page number: 214" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#10.8.py\n", + "#Counting Words in a Piece of Text\n", + "\n", + "\n", + "#Function to read a piece of text\n", + "def readLine(line):\n", + " \n", + " line.pop()\n", + " line.append(\"This is a dummy text to replace raw_input()\"+\" \")\n", + " #line.append(raw_input()+\" \")\n", + "\n", + "\n", + "#Function to determine if a character is alphabetic\n", + "def alphabetic(c):\n", + " if ( (c >= 'a' and c <= 'z') or (c >= 'A' and c <= 'Z') ):\n", + " return True\n", + " else:\n", + " return False\n", + "\n", + "\n", + "#Function to count the number of words in a string\n", + "def countWords(string):\n", + " \n", + " #Variable Declaration\n", + " wordCount=0\n", + " lookingForWord=True\n", + " \n", + " #Calculations\n", + " for i in string:\n", + " if(alphabetic(i)):\n", + " if(lookingForWord):\n", + " wordCount+=1\n", + " lookingForWord=False\n", + " else:\n", + " lookingForWord=True\n", + " return wordCount\n", + "\n", + "\n", + "\n", + "def main():\n", + " #Variable Declaration\n", + " totalWords=0\n", + " endOfText=False\n", + " text=['sample']\n", + "\n", + " print(\"Type in your text.\\n\")\n", + " print(\"When you are done, press 'RETURN'.\\n\\n\")\n", + " \n", + " readLine (text)\n", + " \n", + " #Increment Counter\n", + " totalWords += countWords(''.join(text))\n", + " \n", + " #Result\n", + " print(\"\\nThere are {0} words in the above text.\\n\".format(totalWords))\n", + "\n", + "\n", + "#Top level conditional script\n", + "if __name__=='__main__':\n", + " main()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Type in your text.\n", + "\n", + "When you are done, press 'RETURN'.\n", + "\n", + "\n", + "\n", + "There are 9 words in the above text.\n", + "\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Program 10.9, Page number: 220" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#10.9.py\n", + "#Using the Dictionary Lookup Program\n", + "\n", + "#Class Declaration\n", + "class entry:\n", + " def __init__(self,w,d):\n", + " self.word=w\n", + " self.definition=d\n", + "\n", + "\n", + "#Function to check equality of two strings\n", + "def equalStrings(str1,str2):\n", + " if(str1==str2):\n", + " return True\n", + " else:\n", + " return False\n", + "\n", + "#Lookup function to return dictionary entry\n", + "def lookup(dictionary,search,entries):\n", + " for i in range(0,entries):\n", + " if ( equalStrings(search, dictionary[i].word) ):\n", + " return i;\n", + " return -1;\n", + "\n", + "#Main()\n", + "def main():\n", + "\n", + " entries=10\n", + " global entry\n", + " dictionary=[]\n", + " \n", + " dictionary.append(entry(\"aardvark\",\"a burrowing African mammal\"))\n", + " dictionary.append(entry(\"abyss\",\"a bottomless pit\"))\n", + " dictionary.append(entry(\"acumen\",\"mentally sharp keen\"))\n", + " dictionary.append(entry(\"addle\",\"to become confused\"))\n", + " dictionary.append(entry(\"aerie\",\"a high nest\"))\n", + " dictionary.append(entry(\"affix\",\"to append; attach\"))\n", + " dictionary.append(entry(\"agar\",\"a jelly made from seaweed\"))\n", + " dictionary.append(entry(\"ahoy\",\"nautical call of greeting\"))\n", + " dictionary.append(entry(\"aigrette\",\"an ornamental cluster of feathers\"))\n", + " dictionary.append(entry(\"ajar\",\"partially opened\"))\n", + "\n", + "\n", + " print(\"Enter word:\")\n", + " word='ajar' #word=raw_input()\n", + " entry=lookup(dictionary,word,entries)\n", + "\n", + " #Result\n", + " if(entry!=-1):\n", + " print(\"{0}\".format(dictionary[entry].definition))\n", + " else:\n", + " print(\"Sorry, the word {0} is not in my dictionary.\\n\".format(word))\n", + "\n", + "\n", + "#Setting top level conditional script\n", + "if __name__=='__main__':\n", + " main()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Enter word:\n", + "partially opened\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Program 10.10, Page number: 224" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#10.10.py\n", + "#Modifying the Dictionary Lookup Using Binary Search\n", + "\n", + "#Class Declaration\n", + "class entry:\n", + " def __init__(self,w,d): #Class constructor\n", + " self.word=w\n", + " self.definition=d\n", + "\n", + "\n", + "#Function to compare two strings\n", + "def compareStrings(s1,s2):\n", + "\n", + " #Calculations\n", + " if( s1 < s2 ):\n", + " answer = -1;\n", + " elif( s1 == s2 ):\n", + " answer = 0;\n", + " else:\n", + " answer=1\n", + "\n", + " return answer\n", + "\n", + "\n", + "\n", + "#Lookup function to return dictionary entry\n", + "def lookup(dictionary,search,entries):\n", + " \n", + " #Variable Declaration\n", + " low=0\n", + " high=entries-1\n", + "\n", + " #Calculations\n", + " while(low<=high):\n", + " mid=(low+high)/2\n", + " result=compareStrings(dictionary[mid].word,search)\n", + "\n", + " if(result==-1):\n", + " low=mid+1\n", + " elif(result==1):\n", + " high=mid-1\n", + " else:\n", + " return mid\n", + "\n", + " return -1\n", + "\n", + "\n", + "#Main()\n", + "def main():\n", + "\n", + " #Variable Declaration\n", + " entries=10\n", + " global entry\n", + " dictionary=[]\n", + " \n", + " dictionary.append(entry(\"aardvark\",\"a burrowing African mammal\"))\n", + " dictionary.append(entry(\"abyss\",\"a bottomless pit\"))\n", + " dictionary.append(entry(\"acumen\",\"mentally sharp keen\"))\n", + " dictionary.append(entry(\"addle\",\"to become confused\"))\n", + " dictionary.append(entry(\"aerie\",\"a high nest\"))\n", + " dictionary.append(entry(\"affix\",\"to append; attach\"))\n", + " dictionary.append(entry(\"agar\",\"a jelly made from seaweed\"))\n", + " dictionary.append(entry(\"ahoy\",\"nautical call of greeting\"))\n", + " dictionary.append(entry(\"aigrette\",\"an ornamental cluster of feathers\"))\n", + " dictionary.append(entry(\"ajar\",\"partially opened\"))\n", + "\n", + " print(\"Enter word:\")\n", + " word='ahoy' #word=raw_input()\n", + " entry=lookup(dictionary,word,entries)\n", + "\n", + " #Result\n", + " if(entry!=-1):\n", + " print(\"{0}\".format(dictionary[entry].definition))\n", + " else:\n", + " print(\"Sorry, the word {0} is not in my dictionary.\\n\".format(word))\n", + "\n", + "\n", + "#Setting top level conditional script\n", + "if __name__=='__main__':\n", + " main()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Enter word:\n", + "nautical call of greeting\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Program 10.11, Page number: 229" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#10.11.py\n", + "#Converting a String to its Integer Equivalent\n", + "\n", + "\n", + "#Function to convert a string to an integer\n", + "def strToInt(string):\n", + " \n", + " return int(string)\n", + "\n", + "#Main()\n", + "def main():\n", + "\n", + " #Result\n", + " print(\"{0}\\n\".format(strToInt(\"245\")))\n", + " print(\"{0}\\n\".format(strToInt(\"100\") + 25))\n", + " print(\"{0}\\n\".format(strToInt(\"13\")))\n", + "\n", + "\n", + "#Setting top level conditional script\n", + "if __name__=='__main__':\n", + " main()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "245\n", + "\n", + "125\n", + "\n", + "13\n", + "\n" + ] + } + ], + "prompt_number": 9 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file |