diff options
Diffstat (limited to 'C_Programming:_A_Modern_Approach_by_K.N._King/Chapter9.ipynb')
-rwxr-xr-x | C_Programming:_A_Modern_Approach_by_K.N._King/Chapter9.ipynb | 394 |
1 files changed, 394 insertions, 0 deletions
diff --git a/C_Programming:_A_Modern_Approach_by_K.N._King/Chapter9.ipynb b/C_Programming:_A_Modern_Approach_by_K.N._King/Chapter9.ipynb new file mode 100755 index 00000000..bc87a6c7 --- /dev/null +++ b/C_Programming:_A_Modern_Approach_by_K.N._King/Chapter9.ipynb @@ -0,0 +1,394 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6212a1681da4032325cbede0a51614855911a11a6baad9f5e6fd0a0ecd4b5da9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9: Functions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example average.c, Page 185"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def average(a,b): #function to calculate average\n",
+ " return (a+b)/2\n",
+ "nums = raw_input(\"Enter three numbers: \") #input numbers from user\n",
+ "list1 = map(float, nums.split()) \n",
+ "x=list1[0]\n",
+ "y=list1[1]\n",
+ "z=list1[2]\n",
+ "print \"Average of %.1f and %.1f: %.2f\" % (x,y,average(x,y)) #print average using function\n",
+ "print \"Average of %.1f and %.1f: %.2f\" % (y,z,average(y,z))\n",
+ "print \"Average of %.1f and %.1f: %.2f\" % (x,z,average(x,z))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter three numbers: 3.5 9.6 10.2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average of 3.5 and 9.6: 6.55\n",
+ "Average of 9.6 and 10.2: 9.90\n",
+ "Average of 3.5 and 10.2: 6.85\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example countdown.c, Page 186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def print_count(n): #function definition\n",
+ " print \"T minus %d and counting\" % n\n",
+ "for i in range (10,0,-1):\n",
+ " print_count(i) #print using function\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "T minus 10 and counting\n",
+ "T minus 9 and counting\n",
+ "T minus 8 and counting\n",
+ "T minus 7 and counting\n",
+ "T minus 6 and counting\n",
+ "T minus 5 and counting\n",
+ "T minus 4 and counting\n",
+ "T minus 3 and counting\n",
+ "T minus 2 and counting\n",
+ "T minus 1 and counting\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example pun2.c, Page 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def print_pun(): #function definition\n",
+ " print \"To C, or not to C: that is the question.\"\n",
+ "print_pun() #function call"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "To C, or not to C: that is the question.\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example prime.c, Page 190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def is_prime(n): #function to check for prime number\n",
+ " if (n<=1):\n",
+ " return False\n",
+ " divisor=2\n",
+ " while(divisor*divisor<=n):\n",
+ " if(n%divisor==0):\n",
+ " return False\n",
+ " return True\n",
+ "n=int(raw_input(\"Enter a number: \")) #input number\n",
+ "if(is_prime(n)): #check if prime using function\n",
+ " print \"Prime\" #print result of check\n",
+ "else:\n",
+ " print \"Not prime\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 34\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Not prime\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example on Page 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def main():\n",
+ " nums = raw_input(\"Enter three numbers: \") #input numbers from user\n",
+ " list1 = map(float, nums.split()) \n",
+ " x=list1[0]\n",
+ " y=list1[1]\n",
+ " z=list1[2]\n",
+ " \n",
+ " #function usage before definition\n",
+ " \n",
+ " print \"Average of %.1f and %.1f: %.2f\" % (x,y,average(x,y)) #print average using function\n",
+ " print \"Average of %.1f and %.1f: %.2f\" % (y,z,average(y,z))\n",
+ " print \"Average of %.1f and %.1f: %.2f\" % (x,z,average(x,z))\n",
+ " \n",
+ "if __name__==\"__main__\":\n",
+ " main()\n",
+ " \n",
+ "def average(a,b): #function to calculate average\n",
+ " return (a+b)/2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter three numbers: 3.5 9.6 10.2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average of 3.5 and 9.6: 6.55\n",
+ "Average of 9.6 and 10.2: 9.90\n",
+ "Average of 3.5 and 10.2: 6.85\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example on Page 195"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "x=3.0\n",
+ "print \"Square: %d\" % square(x) #gives error since function prototype doesnt exist before\n",
+ "def square(n):\n",
+ " return n*n\n",
+ "\n",
+ "\"\"\"\n",
+ "def main():\n",
+ " x=3.0\n",
+ " print \"Square: %d\" % square(x) \n",
+ " \n",
+ "#Now wouldn't give an error since writing the line below loads up all functions before starting main()\n",
+ "\n",
+ "if __name__==\"__main__\":\n",
+ " main()\n",
+ " \n",
+ "def square(n):\n",
+ " return n*n\n",
+ "\"\"\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "NameError",
+ "evalue": "name 'square' is not defined",
+ "output_type": "pyerr",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32m<ipython-input-3-2c761040ea35>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m3.0\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[1;32mprint\u001b[0m \u001b[1;34m\"Square: %d\"\u001b[0m \u001b[1;33m%\u001b[0m \u001b[0msquare\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;31m#gives error since function prototype doesnt exist before\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0msquare\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mn\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mn\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mn\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
+ "\u001b[1;31mNameError\u001b[0m: name 'square' is not defined"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example on Page 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def store_zeroes(a,n):\n",
+ " for i in range(0,n):\n",
+ " a[i]=0\n",
+ "b=[None]*200\n",
+ "store_zeroes(b,100) #First 100 elements of b are now 100.\n",
+ "print b"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example qsort.c, Page 207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "N=10 #number of elements to sort\n",
+ "def split(a,low,high): #function to split list while sorting\n",
+ " part_element=a[low]\n",
+ " while(1):\n",
+ " while(low<high and part_element<=a[high]):\n",
+ " high=high-1\n",
+ " if(low>=high):\n",
+ " break\n",
+ " a[low+1]=a[high]\n",
+ " \n",
+ " while(low<high and a[low]<=part_element):\n",
+ " low=low+1\n",
+ " if(low>=high):\n",
+ " break\n",
+ " a[high-1]=a[low]\n",
+ " \n",
+ " a[high]=part_element\n",
+ " return high\n",
+ " \n",
+ "def quicksort(a,low,high): #recursive function for quicksort\n",
+ " if(low>=high):\n",
+ " return\n",
+ " middle=split(a,low,high)\n",
+ " quicksort(a,low,(middle-1))\n",
+ " quicksort(a,(middle+1),high)\n",
+ " \n",
+ "nums = raw_input(\"Enter %d numbers to be sorted: \"%N) #input numbers to sort\n",
+ "a = map(int, nums.split())\n",
+ "a.sort()\n",
+ "quicksort(a,0,(N-1)) #call quicksort function\n",
+ "print \"In sorted order: \", #print sorted result\n",
+ "for i in a:\n",
+ " print i,\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter 10 numbers to be sorted: 9 16 47 82 4 66 12 3 25 51\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In sorted order: 3 4 9 12 16 25 47 51 66 82\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file |