{ "metadata": { "name": "", "signature": "sha256:f0f6a2ccafa5bf612c316f32caa438a56abd55c7d615f06f2f9b34b2ed02f28d" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Hour 16: Applying Pointers" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 16.1, Page No 260" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# There is no concept of pointer in pyton and this program is based on pointer so i have done in this manner\n", "ptr_ch=chr\n", "ptr_int=int\n", "ptr_db=float\n", "\n", "#Char pointer ptr_ch\n", "print \" Corrent position of ptr_ch: %#x \" % id(ptr_ch)\n", "print \" The position after ptr_ch+1 : %#x\" % (id(ptr_ch)+1)\n", "print \" The position after ptr_ch+2 : %#x\" % (id(ptr_ch)+2)\n", "print \" The position after ptr_ch+1 : %#x\" % (id(ptr_ch)+1)\n", "print \" The position after ptr_ch+2 : %#x\\n\" % (id(ptr_ch)+2)\n", "\n", "print \" Corrent position of ptr_int: %#x \" % id(ptr_int)\n", "print \" The position after ptr_int+1 : %#x\" % (id(ptr_int)+1)\n", "print \" The position after ptr_int+2 : %#x\" % (id(ptr_int)+2)\n", "print \" The position after ptr_int+1 : %#x\" % (id(ptr_int)+1)\n", "print \" The position after ptr_int+2 : %#x\\n\" % (id(ptr_int)+2)\n", "\n", "print \" Corrent position of ptr_db: %#x \" % id(ptr_db)\n", "print \" The position after ptr_db+1 : %#x\" % (id(ptr_db)+1)\n", "print \" The position after ptr_db+2 : %#x\" % (id(ptr_db)+2)\n", "print \" The position after ptr_db+1 : %#x\" % (id(ptr_db)+1)\n", "print \" The position after ptr_db+2 : %#x\\n\" % (id(ptr_db)+2)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " Corrent position of ptr_ch: 0x12a30a8 \n", " The position after ptr_ch+1 : 0x12a30a9\n", " The position after ptr_ch+2 : 0x12a30aa\n", " The position after ptr_ch+1 : 0x12a30a9\n", " The position after ptr_ch+2 : 0x12a30aa\n", "\n", " Corrent position of ptr_int: 0x1e222010 \n", " The position after ptr_int+1 : 0x1e222011\n", " The position after ptr_int+2 : 0x1e222012\n", " The position after ptr_int+1 : 0x1e222011\n", " The position after ptr_int+2 : 0x1e222012\n", "\n", " Corrent position of ptr_db: 0x1e220be0 \n", " The position after ptr_db+1 : 0x1e220be1\n", " The position after ptr_db+2 : 0x1e220be2\n", " The position after ptr_db+1 : 0x1e220be1\n", " The position after ptr_db+2 : 0x1e220be2\n", "\n" ] } ], "prompt_number": 17 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 16.2, Page No 263" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# There is no concept of pointer in pyton and this program is based on pointer so i have done in this manner\n", "ptr_int1=int\n", "ptr_int2=int\n", "\n", "print \"The position of ptr_int1: %#x\" % id(ptr_int1)\n", "ptr_int2=id(ptr_int1)+5\n", "print \"The position of ptr_int2=id(ptr_int1)+5 :%#x\" % ptr_int2\n", "print \"The subtraction of ptr_int2-ptr_int1 :%#x\" % (ptr_int2 - id(ptr_int1))\n", "\n", "ptr_int2=id(ptr_int1)-5\n", "print \"The position of ptr_int2=id(ptr_int1)-5 :%#x\" % ptr_int2\n", "print \"The subtraction of ptr_int2-ptr_int1 :%#x\" % (ptr_int2 - id(ptr_int1))\n", "\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "The position of ptr_int1: 0x1e222010\n", "The position of ptr_int2=id(ptr_int1)+5 :0x1e222015\n", "The subtraction of ptr_int2-ptr_int1 :0x5\n", "The position of ptr_int2=id(ptr_int1)-5 :0x1e22200b\n", "The subtraction of ptr_int2-ptr_int1 :-0x5\n" ] } ], "prompt_number": 24 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 16.3, Page No 265" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# There is no concept of pointer in pyton and this program is based on pointer so i have done in this manner\n", "str1=\"It's a string!\"\n", "ptr_str=chr\n", "list1=[1,2,3,4,5]\n", "ptr_int=int\n", "str1=list(str1)\n", "ptr_str=str1\n", "print \"Before the change, str1 contains: \",\n", "print \"\".join(str1)\n", "print \"Before the change, str1[5] contains : %c\" % str1[5]\n", "str1[5]='A'\n", "print \"After The change, str1[5] contains : %c\" % str1[5]\n", "print \"After The change, str1 contains: \",\n", "print \"\".join(str1)\n", "\n", "ptr_int=list1\n", "print \"Before The change, list1[2] contains: %d\" % list1[2]\n", "list1[2]=-3\n", "print \"After the change, list1[2] contains : %d\" % list1[2]\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Before the change, str1 contains: It's a string!\n", "Before the change, str1[5] contains : a\n", "After The change, str1[5] contains : A\n", "After The change, str1 contains: It's A string!\n", "Before The change, list1[2] contains: 3\n", "After the change, list1[2] contains : -3\n" ] } ], "prompt_number": 32 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 16.4, Page No 266" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def AddThree(list1):\n", " result=0\n", " for i in range(len(list1)):\n", " result=result+list1[i]\n", " return result\n", "\n", "sum1=0\n", "listt=[x for x in range(3)]\n", "\n", "listt[0]=int(raw_input(\"Enter integer1 :\"))\n", "listt[1]=int(raw_input(\"Enter integer2 :\"))\n", "listt[2]=int(raw_input(\"Enter integer3 :\"))\n", "sum1=AddThree(listt)\n", "print \"The sum of three integers is: %d\" % sum1\n" ], "language": "python", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Enter integer1 :10\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Enter integer2 :20\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Enter integer3 :30\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "The sum of three integers is: 60\n" ] } ], "prompt_number": 42 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 16.5, Page No 268" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# There is no concept of pointer in pyton and this program is based on pointer so i have done in this manner\n", "def ChPrint(c):\n", " print \"%s\" % c\n", "def DataAdd(list1,max1):\n", " sum1=0\n", " for i in range(max1):\n", " sum1 += list1[i]\n", " return sum1\n", "\n", "str1=\"It's a string!\"\n", "ptr_str=chr\n", "listt=[1,2,3,4,5]\n", "ptr_int=int\n", "\n", "ptr_str=str1\n", "ChPrint(ptr_str)\n", "ChPrint(str1)\n", "\n", "ptr_int=listt\n", "\n", "print \"The sum returned by DataAdd() : %d\" % DataAdd(ptr_int,5)\n", "print \"The sum returned by DataAdd() : %d\" % DataAdd(listt,5)\n", " " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "It's a string!\n", "It's a string!\n", "The sum returned by DataAdd() : 15\n", "The sum returned by DataAdd() : 15\n" ] } ], "prompt_number": 47 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 16.6, Page No 270" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# There is no concept of pointer in pyton and this program is based on pointer so i have done in this manner\n", "def DataAdd(list1,max1,max2):\n", " sum1=0\n", " for i in range(max1):\n", " for j in range(max2):\n", " sum1 = sum1 + list1[i][j]\n", " return sum1\n", "def DataAdd2(list2,max1,max2):\n", " sum2=0\n", " for i in range(max1):\n", " for j in range(max2):\n", " sum2 = sum2 + list2[i][j]\n", " return sum2\n", "\n", "listt=[[1,2],[3,4],[5,5],[4,3],[2,1]]\n", "ptr_int=int\n", "print \"The sum returned by DataAdd() : %d\" % DataAdd(listt,5,2)\n", "ptr_int=listt\n", "print \"The sum returned by DataAdd() : %d\" % DataAdd2(ptr_int,5,2)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "The sum returned by DataAdd() : 30\n", "The sum returned by DataAdd() : 30\n" ] } ], "prompt_number": 12 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 16.7, Page No 272" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def StrPrint1(str1,size):\n", " for i in range(size):\n", " print \"%s\" % str1[i]\n", "def StrPrint2(str2):\n", " print \"%s\" % str2\n", " \n", "str1=[\"There's music in the sighing of a reed;\",\"There's music in the gushing of a rill;\",\"There's music in all things if men had ears;\",\"There earth is but an echo of the spheres.\\n\"]\n", "size=4\n", "\n", "StrPrint1(str1,size)\n", "for i in range(size):\n", " StrPrint2(str1[i])" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "There's music in the sighing of a reed;\n", "There's music in the gushing of a rill;\n", "There's music in all things if men had ears;\n", "There earth is but an echo of the spheres.\n", "\n", "There's music in the sighing of a reed;\n", "There's music in the gushing of a rill;\n", "There's music in all things if men had ears;\n", "There earth is but an echo of the spheres.\n", "\n" ] } ], "prompt_number": 14 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 16.8, Page No 274" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# There is no concept of pointer in pyton and this program is based on pointer so i have done in this manner\n", "def StrPrint(str1):\n", " print \"%s\" % str1\n", "\n", "str1=\"Pointing to a function\"\n", "ptr=StrPrint\n", "if(not(ptr(str1))):\n", " print \"Done.\"" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Pointing to a function\n", "Done.\n" ] } ], "prompt_number": 18 } ], "metadata": {} } ] }