From fffcc90da91b66ee607066d410b57f34024bd1de Mon Sep 17 00:00:00 2001 From: Jovina Dsouza Date: Mon, 7 Jul 2014 16:34:28 +0530 Subject: adding book --- Programming_With_C/chapter7.ipynb | 708 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 708 insertions(+) create mode 100755 Programming_With_C/chapter7.ipynb (limited to 'Programming_With_C/chapter7.ipynb') diff --git a/Programming_With_C/chapter7.ipynb b/Programming_With_C/chapter7.ipynb new file mode 100755 index 00000000..89247348 --- /dev/null +++ b/Programming_With_C/chapter7.ipynb @@ -0,0 +1,708 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Chapter 7: Functions

" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Example 7.1, Page number: 7.2

" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "def lower_to_upper(c1):\n", + "\n", + " if c1>='a' and c1<='z':\n", + " c2=chr(ord('A')+ord(c1)-ord('a'))\n", + "\n", + " else:\n", + " c2=c1\n", + "\n", + " return c2\n", + "\n", + "lower='g'\n", + "upper=lower_to_upper(lower)\n", + "print \"the upper case equivalent is : \",upper\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "the upper case equivalent is : G\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Example 7.3, Page number: 7.5

" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "def lower_to_upper(c1):\n", + "\n", + " if c1>='a' and c1<='z':\n", + " return (chr(ord('A')+ord(c1)-ord('a')))\n", + " else:\n", + " return c1\n", + "\n", + "lower='g'\n", + "upper=lower_to_upper(lower)\n", + "print \"The uppercase equivalent is : \",upper\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The uppercase equivalent is : G\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Example 7.4, Page number: 7.5

" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "def maximum(x,y):\n", + " if x>=y:\n", + " z=x\n", + " else:\n", + " z=y\n", + "\n", + " print \"Maximum value is : \",z\n", + "\n", + " return\n", + "\n", + "maximum(5,6)\n", + "maximum(6,5)\n", + "maximum(5,5)\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Maximum value is : 6\n", + "Maximum value is : 6\n", + "Maximum value is : 5\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Example 7.5, Page number: 7.5

" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "def factorial(n):\n", + " prod=1\n", + " if n>1:\n", + " for i in range(2,n+1):\n", + " prod=prod*i\n", + "\n", + " return prod\n", + "\n", + "fact=factorial(6)\n", + "print \"Its factorial is : \",fact\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Its factorial is : 720\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Example 7.7, Page number: 7.7

" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "def maximum(x,y):\n", + "\n", + " if x>=y:\n", + " z=x\n", + " else:\n", + " z=y\n", + "\n", + " print 'Maximum value is = ',z\n", + " return\n", + "\n", + "maximum(5,9)\n", + "maximum(8,3)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Maximum value is = 9\n", + "Maximum value is = 8\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Example 7.9, Page number: 7.8

" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "def maximum(x,y):\n", + " if x>=y:\n", + " z=x\n", + " else:\n", + " z=y\n", + "\n", + " return z\n", + "\n", + "a=5\n", + "b=4\n", + "c=7\n", + "\n", + "d=maximum(a,b)\n", + "print \"Maximum = \",maximum(c,d)\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Maximum = 7\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Example 7.10, Page number: 7.10

" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "def factorial(n):\n", + " prod=1\n", + " if n>1:\n", + " for i in range(2,n+1):\n", + " prod=prod*i\n", + "\n", + " return prod\n", + "\n", + "n=7\n", + "fact=factorial(n)\n", + "print \"Its factorial is : \",fact\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Its factorial is : 5040\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Example 7.11, Page number: 7.12

" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "\n", + "def play():\n", + " print \"Throwing the dice....\"\n", + " score1=throw()\n", + " print \"%2d\" %(score1)\n", + "\n", + " if score1==7 or score1==11:\n", + " print \"Congratulations!! you WIN on the first throw\"\n", + "\n", + " elif score1==2 or score1==3 or score1==12:\n", + " print \"sorry!! you LOSE on the first throw\"\n", + "\n", + " else:\n", + " while(True):\n", + " print \"Throwing the dice again...\"\n", + " score2=throw()\n", + " print \"%2d\" %(score2)\n", + " if score2==score1 or score2==7:\n", + " break\n", + "\n", + " if score2==score1:\n", + " print \"You WIN by matching your first score\"\n", + " else:\n", + " print \"You LOSE by failing to match your first score\"\n", + "\n", + "\n", + " return\n", + "\n", + "\n", + "def throw():\n", + "\n", + " n1=random.randrange(1,7)\n", + " n2=random.randrange(1,7)\n", + " return n1+n2\n", + "\n", + "\n", + "import random\n", + "\n", + "\n", + "print \"Welcome to the Game of Craps \\n\\n\"\n", + "random.seed(2365)\n", + "play()\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Welcome to the Game of Craps \n", + "\n", + "\n", + "Throwing the dice....\n", + " 9\n", + "Throwing the dice again...\n", + " 4\n", + "Throwing the dice again...\n", + "11\n", + "Throwing the dice again...\n", + " 9\n", + "You WIN by matching your first score\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Example 7.12, Page number: 7.18

" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "def modify(a):\n", + " a=a*3\n", + " print \"a= %d (from the function, after being modified)\" %(a)\n", + " return\n", + "\n", + "a=2\n", + "print \"a=%d (from main, before calling the function)\" %(a)\n", + "modify(a)\n", + "print \"a=%d (from main, after calling the function)\" %(a)\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a=2 (from main, before calling the function)\n", + "a= 6 (from the function, after being modified)\n", + "a=2 (from main, after calling the function)\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Example 7.13, Page number: 7.19

" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "def sl(val,n):\n", + " deprec=val/n\n", + " print \"in \",n\n", + " \n", + " for year in range(1,n+1):\n", + " val=val-deprec\n", + " writeoutput(year,deprec,val)\n", + "\n", + " return\n", + "\n", + "def ddb(val,n):\n", + " for year in range(1,n+1):\n", + " deprec=2*val/n\n", + " val=val-deprec\n", + " writeoutput(year,deprec,val)\n", + "\n", + " return\n", + "\n", + "def syd(val,n):\n", + " tag=val\n", + " for year in range(1,n+1):\n", + " deprec=(n-year+1)*tag/(n*(n+1)/2)\n", + " val=val-deprec\n", + " writeoutput(year,deprec,val)\n", + "\n", + " return\n", + "\n", + "def writeoutput(year,depreciation,value):\n", + " print \"End of the year %2d Depreciation: %7.2f Current Value: %8.2f\" %(year,depreciation,value)\n", + "\n", + " return\n", + "\n", + "\n", + "\n", + "def main(choice,val,n):\n", + " \n", + " print \"Original value : \",val\n", + " val=float(val)\n", + " print \"Number of years : \",n\n", + "\n", + " if choice==1:\n", + " print \"Straight-Line Method\\n\\n\"\n", + " sl(val,n)\n", + " elif choice==2:\n", + " print \"Double-Declining-Balance Method \\n\\n\"\n", + " ddb(val,n)\n", + " elif choice==3:\n", + " print \"Sum-Of-The-Years'-Digits Method\"\n", + " syd(val,n)\n", + "\n", + " return\n", + "\n", + "\n", + "print \"\\n\\nMethod: (1-SL 2-DDB 3-SYD)\"\n", + "main(1,8000,10)\n", + "print \"\\n\\nMethod: (1-SL 2-DDB 3-SYD)\"\n", + "main(2,8000,10)\n", + "print \"\\n\\nMethod: (1-SL 2-DDB 3-SYD)\"\n", + "main(3,8000,10)\n", + "print \"\\n\\nMethod: (1-SL 2-DDB 3-SYD)\"\n", + "main(1,5000,4)\n", + "\n", + "\n", + " \n", + " \n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "\n", + "Method: (1-SL 2-DDB 3-SYD)\n", + "Original value : 8000\n", + "Number of years : 10\n", + "Straight-Line Method\n", + "\n", + "\n", + "in 10\n", + "End of the year 1 Depreciation: 800.00 Current Value: 7200.00\n", + "End of the year 2 Depreciation: 800.00 Current Value: 6400.00\n", + "End of the year 3 Depreciation: 800.00 Current Value: 5600.00\n", + "End of the year 4 Depreciation: 800.00 Current Value: 4800.00\n", + "End of the year 5 Depreciation: 800.00 Current Value: 4000.00\n", + "End of the year 6 Depreciation: 800.00 Current Value: 3200.00\n", + "End of the year 7 Depreciation: 800.00 Current Value: 2400.00\n", + "End of the year 8 Depreciation: 800.00 Current Value: 1600.00\n", + "End of the year 9 Depreciation: 800.00 Current Value: 800.00\n", + "End of the year 10 Depreciation: 800.00 Current Value: 0.00\n", + "\n", + "\n", + "Method: (1-SL 2-DDB 3-SYD)\n", + "Original value : 8000\n", + "Number of years : 10\n", + "Double-Declining-Balance Method \n", + "\n", + "\n", + "End of the year 1 Depreciation: 1600.00 Current Value: 6400.00\n", + "End of the year 2 Depreciation: 1280.00 Current Value: 5120.00\n", + "End of the year 3 Depreciation: 1024.00 Current Value: 4096.00\n", + "End of the year 4 Depreciation: 819.20 Current Value: 3276.80\n", + "End of the year 5 Depreciation: 655.36 Current Value: 2621.44\n", + "End of the year 6 Depreciation: 524.29 Current Value: 2097.15\n", + "End of the year 7 Depreciation: 419.43 Current Value: 1677.72\n", + "End of the year 8 Depreciation: 335.54 Current Value: 1342.18\n", + "End of the year 9 Depreciation: 268.44 Current Value: 1073.74\n", + "End of the year 10 Depreciation: 214.75 Current Value: 858.99\n", + "\n", + "\n", + "Method: (1-SL 2-DDB 3-SYD)\n", + "Original value : 8000\n", + "Number of years : 10\n", + "Sum-Of-The-Years'-Digits Method\n", + "End of the year 1 Depreciation: 1454.55 Current Value: 6545.45\n", + "End of the year 2 Depreciation: 1309.09 Current Value: 5236.36\n", + "End of the year 3 Depreciation: 1163.64 Current Value: 4072.73\n", + "End of the year 4 Depreciation: 1018.18 Current Value: 3054.55\n", + "End of the year 5 Depreciation: 872.73 Current Value: 2181.82\n", + "End of the year 6 Depreciation: 727.27 Current Value: 1454.55\n", + "End of the year 7 Depreciation: 581.82 Current Value: 872.73\n", + "End of the year 8 Depreciation: 436.36 Current Value: 436.36\n", + "End of the year 9 Depreciation: 290.91 Current Value: 145.45\n", + "End of the year 10 Depreciation: 145.45 Current Value: 0.00\n", + "\n", + "\n", + "Method: (1-SL 2-DDB 3-SYD)\n", + "Original value : 5000\n", + "Number of years : 4\n", + "Straight-Line Method\n", + "\n", + "\n", + "in 4\n", + "End of the year 1 Depreciation: 1250.00 Current Value: 3750.00\n", + "End of the year 2 Depreciation: 1250.00 Current Value: 2500.00\n", + "End of the year 3 Depreciation: 1250.00 Current Value: 1250.00\n", + "End of the year 4 Depreciation: 1250.00 Current Value: 0.00\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Example 7.14, Page number: 7.24

" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "def factorial(n):\n", + "\n", + " if n<=1:\n", + " return 1\n", + "\n", + " else:\n", + " return (n*factorial(n-1))\n", + "\n", + "\n", + "n=10\n", + "fact=factorial(n)\n", + "print \"Its factorial is \",fact\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Its factorial is 3628800\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Example 7.15, Page number: 7.26

" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "def reverse(text,n):\n", + "\n", + " if n<0:\n", + " return\n", + " else:\n", + " print text[n],\n", + " reverse(text,n-1)\n", + "\n", + "\n", + "\n", + "text='Now is the time for all good men to come to tje aid of their country!'\n", + "n=len(text)\n", + "reverse(text,n-1)\n", + " \n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "! y r t n u o c r i e h t f o d i a e j t o t e m o c o t n e m d o o g l l a r o f e m i t e h t s i w o N\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Example 7.16, Page number: 7.16

" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "def transfer(n,From,to,temp):\n", + "\n", + " if n>0:\n", + " transfer(n-1,From,temp,to)\n", + " print \"Move disk %d from %c to %c\" %(n,From,to)\n", + " transfer(n-1,temp,to,From)\n", + "\n", + " return\n", + "\n", + "print \"Welcome to the TOWERS OF HANOI \\n\\n\"\n", + "transfer(3,'L','R','C')" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Welcome to the TOWERS OF HANOI \n", + "\n", + "\n", + "Move disk 1 from L to R\n", + "Move disk 2 from L to C\n", + "Move disk 1 from R to C\n", + "Move disk 3 from L to R\n", + "Move disk 1 from C to L\n", + "Move disk 2 from C to R\n", + "Move disk 1 from L to R\n" + ] + } + ], + "prompt_number": 17 + } + ], + "metadata": {} + } + ] +} \ No newline at end of file -- cgit