"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Display the address of the variable\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"num = int(raw_input(\"Enter a Number = \"))\n",
"\n",
"#Result\n",
"sys.stdout.write(\"Value of num = %d\\n\"%(num))\n",
"sys.stdout.write(\"Address of num = %d\\n\"%(id(num)))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter a Number = 20\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Value of num = 20\n",
"Address of num = 19554932\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.2, Page number: 283
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Display the addresses of different variables together with their values.\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"c = raw_input(\"Enter alphabet\")\n",
"i = int(raw_input(\"Enter number\"))\n",
"f = float(raw_input(\"Enter float\"))\n",
"\n",
"#Result\n",
"sys.stdout.write(\"\\nAddress of (c) %c = %d\"%(c,id(c)))\n",
"sys.stdout.write(\"\\nAddress of (i) %d = %d\"%(i,id(i)))\n",
"sys.stdout.write(\"\\nAddress of (f) %.2f = %d\"%(f,id(f)))\n",
"#Memory address differs in different systems\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter alphabetC\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter number20\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter float2.5\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Address of (c) C = 48769192\n",
"Address of (i) 20 = 19554932\n",
"Address of (f) 2.50 = 44777808"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.3, Page number: 284
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Show pointer of any data type that occupies same space\n",
"\n",
"import sys\n",
"\n",
"#Result\n",
"#Garbage collector module is used for python memory management\n",
"sys.stdout.write(\"char %d byte & its pointer %d bytes\\n\"%(sys.getsizeof(chr),sys.getsizeof(id(chr))))\n",
"sys.stdout.write(\"int %d byte & its pointer %d bytes\\n\"%(sys.getsizeof(int),sys.getsizeof(id(int))))\n",
"sys.stdout.write(\"float %d byte & its pointer %d bytes\\n\"%(sys.getsizeof(float),sys.getsizeof(id(float))))\n",
"\n",
"#value tagged method is used in python"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"char 36 byte & its pointer 12 bytes\n",
"int 436 byte & its pointer 12 bytes\n",
"float 436 byte & its pointer 12 bytes\n"
]
}
],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.4, Page number: 284
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Display the value of variable and its location using pointer\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"#There is no pointer concept in python\n",
"v = 10\n",
"p = v\n",
"#In python, variables of same value are tagged together instead of storing the value in different locations\n",
"#Result\n",
"sys.stdout.write(\"\\nAddress of v = %u\"%(id(v)))\n",
"sys.stdout.write(\"\\nValue of v = %d\"%(p))\n",
"sys.stdout.write(\"\\nAddress of p = %d\"%(id(p)))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Address of v = 29808764\n",
"Value of v = 10\n",
"Address of p = 29808764"
]
}
],
"prompt_number": 9
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.5, Page number: 285
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Print the value of variable by different ways.\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"a = int(raw_input(\"Enter Integer Value\"))\n",
"b = float(raw_input(\"Enter float Value\"))\n",
"\n",
"pa = id(a)\n",
"pb = id(b)\n",
"\n",
"#Result\n",
"#There is no pointer concept in python. content of memory location can't be accessed directly by user.\n",
"sys.stdout.write(\"\\nAddress of a = %u\"%(pa))\n",
"sys.stdout.write(\"\\nValue of a = %d\"%(a))\n",
"sys.stdout.write(\"\\nValue of a = %d\"%(a))\n",
"sys.stdout.write(\"\\nValue of a = %d\"%(a))\n",
"\n",
"sys.stdout.write(\"\\nAddress of b = %u\"%(pb))\n",
"sys.stdout.write(\"\\nValue of b = %.2f\"%(b))\n",
"sys.stdout.write(\"\\nValue of b = %.2f\"%(b))\n",
"sys.stdout.write(\"\\nValue of b = %.2f\"%(b))\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter Integer Value4\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter float Value2.2\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Address of a = 19555124\n",
"Value of a = 4\n",
"Value of a = 4\n",
"Value of a = 4\n",
"Address of b = 44777792\n",
"Value of b = 2.20\n",
"Value of b = 2.20\n",
"Value of b = 2.20"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.6, Page number: 286
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Print value of variable using different pointer notations.\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"v = 10\n",
"p = id(v)\n",
"\n",
"#Result\n",
"#There is no pointer concept in python and can't access memory location directly by user\n",
"sys.stdout.write(\"\\nv = %d v = %d v = %d\"%(v,v,v))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"v = 10 v = 10 v = 10"
]
}
],
"prompt_number": 13
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.7, Page number: 287
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Print element and its address using pointer\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"i = int(raw_input(\"Enter a number : \"))\n",
"k = id(i)\n",
"\n",
"#Result\n",
"#There is no pointer concept in python and can't access memory location directly by user\n",
"sys.stdout.write(\"\\nAddress of i is %u\"%(k))\n",
"sys.stdout.write(\"\\nValue of i is %d\"%(i))\n",
"#The memory address differs in different systems\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter a number : 15\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Address of i is 19554992\n",
"Value of i is 15"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.8, Page number: 287
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Add two numbers through variables and their pointers\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"a = int(raw_input(\"Enter Two Numbers : \"))\n",
"b = int(raw_input(\"Enter Two Numbers : \"))\n",
"ap = a\n",
"bp = b\n",
"\n",
"#Calculation\n",
"c = a + b\n",
"d = ap + bp\n",
"\n",
"#Result\n",
"#There is no pointer concept in python and can't access memory location directly by user\n",
"sys.stdout.write(\"\\nSum of A & B Using Variable : %d\"%(c))\n",
"sys.stdout.write(\"\\nSum of A & B Using Pointer : %d\"%(d))\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter Two Numbers : 8\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter Two Numbers : 4\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Sum of A & B Using Variable : 12\n",
"Sum of A & B Using Pointer : 12"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.9, Page number: 288
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Assign pointer value to another variable\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"a = 5\n",
"c = id(a)\n",
"b = a\n",
"\n",
"#Result\n",
"#There is no pointer concept in python and can't access memory location directly by user\n",
"sys.stdout.write(\"\\nMemory location of 'a' = %u\"%(c))\n",
"sys.stdout.write(\"\\nThe value of a = %d & b = %d\"%(a,b))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Memory location of 'a' = 29808824\n",
"The value of a = 5 & b = 5"
]
}
],
"prompt_number": 17
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.10, Page number: 289
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Assign value of 'b' to 'a' through pointers and add the values.\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"a = int(raw_input(\"Enter Value of 'a' & 'b' : \"))\n",
"b = int(raw_input(\"Enter Value of 'a' & 'b' : \"))\n",
"pa = id(a)\n",
"pb = id(b)\n",
"\n",
"#Result\n",
"#There is no pointer concept in python and can't access memory location directly by user\n",
"sys.stdout.write(\"\\nValue of a = %d & b = %d\"%(a,b))\n",
"sys.stdout.write(\"\\nAddress of a = %u\"%(pa))\n",
"sys.stdout.write(\"\\nAddress of b = %u\"%(pb))\n",
"sys.stdout.write(\"\\n\\nAddition of 'a' & 'b' : %d\"%(a+b))\n",
"\n",
"a = b\n",
"pa = id(a)\n",
"#In python, variables of same value are tagged together instead of storing the value in different locations\n",
"\n",
"sys.stdout.write(\"\\n*pa = %d *pb = %d\"%(a,b))\n",
"sys.stdout.write(\"\\npa = %u pb = %u\"%(pa,pb))\n",
"sys.stdout.write(\"\\nAddition of *pa + *pb : %d\"%(a+b))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter Value of 'a' & 'b' : 8\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter Value of 'a' & 'b' : 4\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Value of a = 8 & b = 4\n",
"Address of a = 19555076\n",
"Address of b = 19555124\n",
"\n",
"Addition of 'a' & 'b' : 12\n",
"*pa = 4 *pb = 4\n",
"pa = 19555124 pb = 19555124\n",
"Addition of *pa + *pb : 8"
]
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.11, Page number: 290
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#The effect of increment on pointer variables. \n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"x = int(raw_input(\"Enter integer Value\"))\n",
"y = raw_input(\"Enter Character Value\")\n",
"z = float(raw_input(\"Enter float Value\"))\n",
"\n",
"x1 = id(x)\n",
"y1 = id(y)\n",
"z1 = id(z)\n",
"\n",
"#Result\n",
"#There is no pointer concept in python and can't access memory location directly by user\n",
"\n",
"sys.stdout.write(\"\\nAddress of x = %u\\n\"%(x1))\n",
"sys.stdout.write(\"\\nAddress of y = %u\\n\"%(y1))\n",
"sys.stdout.write(\"\\nAddress of z = %u\\n\"%(z1))\n",
"\n",
"x1 += 1\n",
"y1 += 1\n",
"z1 += 1\n",
"#In python, variables of same value are tagged together instead of storing the value in different locations\n",
"\n",
"sys.stdout.write(\"\\nAfter Increment in Pointers\\n\")\n",
"sys.stdout.write(\"\\nNow Address of x = %u\\n\"%(x1))\n",
"sys.stdout.write(\"Now Address of y = %u\\n\"%(y1))\n",
"sys.stdout.write(\"Now Address of z = %u\\n\"%(z1))\n",
"\n",
"sys.stdout.write(\"\\nSize of Integer : %d\"%(sys.getsizeof(x)))\n",
"sys.stdout.write(\"\\nSize of Character : %d\"%(sys.getsizeof(y)))\n",
"sys.stdout.write(\"\\nSize of Float : %d\"%(sys.getsizeof(z)))\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter integer Value2\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter Character ValueA\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter float Value2.2\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Address of x = 19555148\n",
"\n",
"Address of y = 48769192\n",
"\n",
"Address of z = 44777728\n",
"\n",
"After Increment in Pointers\n",
"\n",
"Now Address of x = 19555149\n",
"Now Address of y = 48769193\n",
"Now Address of z = 44777729\n",
"\n",
"Size of Integer : 12\n",
"Size of Character : 22\n",
"Size of Float : 16"
]
}
],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.12, Page number: 291
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#The effect of increased and decreased operator used as prefix and suffix with pointer variable.\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"i = int(raw_input(\"Enter Value of i = \"))\n",
"ii = id(i)\n",
"\n",
"#Result\n",
"sys.stdout.write(\"Address of i = %u\\n\"%(ii))\n",
"#There is no increment or decrement operator and pointer concept in python\n",
"ii += 1\n",
"sys.stdout.write(\"Address of i = %u\\n\"%(ii))\n",
"sys.stdout.write(\"Address of i = %u\\n\"%(ii))\n",
"ii += 1\n",
"ii -= 1\n",
"sys.stdout.write(\"Address of i = %u\\n\"%(ii))\n",
"sys.stdout.write(\"Address of i = %u\\n\"%(ii))\n",
"ii -= 1\n",
"sys.stdout.write(\"Address of i = %u\\n\"%(ii))\n",
"\n",
"#Memory address differs in different systems"
],
"language": "python",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter Value of i = 8\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Address of i = 19555076\n",
"Address of i = 19555077\n",
"Address of i = 19555077\n",
"Address of i = 19555077\n",
"Address of i = 19555077\n",
"Address of i = 19555076\n"
]
}
],
"prompt_number": 9
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.13, Page number: 292
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Perform different arithmetic operations using pointers\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"a = 25\n",
"b = 10\n",
"p = id(a)\n",
"j = id(b)\n",
"\n",
"#Result\n",
"#There is no pointer concept in python and user can't access memory contents directly\n",
"sys.stdout.write(\"\\nAddition a + b = %d\"%(a+b))\n",
"sys.stdout.write(\"\\nSubtraction a - b = %d\"%(a-b))\n",
"sys.stdout.write(\"\\nProduct a * b = %d\"%(a*b))\n",
"sys.stdout.write(\"\\nDivision a / b = %d\"%(a/b))\n",
"sys.stdout.write(\"\\na Mod b = %d\"%(a%b))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Addition a + b = 35\n",
"Subtraction a - b = 15\n",
"Product a * b = 250\n",
"Division a / b = 2\n",
"a Mod b = 5"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.14, Page number: 293
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Compare two pointers. \n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"a = 2\n",
"j = id(a)\n",
"k = id(a)\n",
"\n",
"#Result\n",
"if j == k:\n",
" sys.stdout.write(\"\\nThe Tow Pointers have the same address.\")\n",
"else:\n",
" sys.stdout.write(\"\\nThe Pointers have the different address.\")\n",
" \n",
"sys.stdout.write(\"\\n\\nAddress of a (j) = %u\"%(j))\n",
"sys.stdout.write(\"\\nAddress of a (k) = %u\"%(k))\n",
"#Memory address differs in different systems"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"The Tow Pointers have the same address.\n",
"\n",
"Address of a (j) = 30726364\n",
"Address of a (k) = 30726364"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Display array element with their addresses using array name as a pointer\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"x = [2,4,6,8,10]\n",
"k = 0\n",
"\n",
"#Result\n",
"sys.stdout.write(\"\\nElement No.\\tElement\\tAddress\")\n",
"\n",
"while k < 5:\n",
" sys.stdout.write(\"\\nx[%d] \\t%13d %10u\"%(k,x[k],id(x[k])))\n",
" k += 1\n",
" \n",
"#There is no pointer concept in python"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Element No.\tElement\tAddress\n",
"x[0] \t 2 30726364\n",
"x[1] \t 4 30726340\n",
"x[2] \t 6 30726316\n",
"x[3] \t 8 30726292\n",
"x[4] \t 10 30726268"
]
}
],
"prompt_number": 11
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.17, Page number: 296
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Display array elements with their addresses using array name as a pointer\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"num = [10,25,35,45]\n",
"\n",
"#Result\n",
"sys.stdout.write(\"\\nElement\\t Address\\n\")\n",
"\n",
"for i in range(0,4):\n",
" sys.stdout.write(\"num[%d] = %d \"%(i,num[i]))\n",
" sys.stdout.write(\"%8u\\n\"%(id(num[i])))\n",
" \n",
"#There is no pointer concept in python"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Element\t Address\n",
"num[0] = 10 30726268\n",
"num[1] = 25 30726088\n",
"num[2] = 35 30725968\n",
"num[3] = 45 30725848\n"
]
}
],
"prompt_number": 17
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.18, Page number: 296
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Access elements of array through different ways using pointer\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"arr = [10,20,30,40,50]\n",
"p = 0\n",
"\n",
"#Result\n",
"for p in range(0,5):\n",
" sys.stdout.write(\"Value of arr[%d] = \"%(p))\n",
" sys.stdout.write(\"%d | \"%(arr[p]))\n",
" sys.stdout.write(\"%d | \"%(arr[p]))\n",
" sys.stdout.write(\"%d | \"%(arr[p]))\n",
" sys.stdout.write(\"%d | \"%(arr[p]))\n",
" sys.stdout.write(\"address of arr[%d] = %u\\n\"%(p,id(arr[p])))\n",
" \n",
"#There is no pointer concept in python\n",
"#Memory address differs in different systems\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Value of arr[0] = 10 | 10 | 10 | 10 | address of arr[0] = 30726268\n",
"Value of arr[1] = 20 | 20 | 20 | 20 | address of arr[1] = 30726148\n",
"Value of arr[2] = 30 | 30 | 30 | 30 | address of arr[2] = 30726028\n",
"Value of arr[3] = 40 | 40 | 40 | 40 | address of arr[3] = 30725908\n",
"Value of arr[4] = 50 | 50 | 50 | 50 | address of arr[4] = 30725788\n"
]
}
],
"prompt_number": 18
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.19, Page number: 297
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Find sum of all the elements of an array.\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"sum1 = 0 #Since sum is a built-in function in python, sum1 is used\n",
"i = 0\n",
"a = [1,2,3,4,5]\n",
"\n",
"#Result\n",
"sys.stdout.write(\"Elements Values Address\\n\\n\")\n",
"\n",
"while i < 5:\n",
" sys.stdout.write(\"a[%d]\\t %5d\\t %8u\\n\"%(i,a[i],id(a[i])))\n",
" sum1 = sum1 + a[i]\n",
" i += 1\n",
" \n",
"#There is no pointer concept in python"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Elements Values Address\n",
"\n",
"a[0]\t 1\t 30726376\n",
"a[1]\t 2\t 30726364\n",
"a[2]\t 3\t 30726352\n",
"a[3]\t 4\t 30726340\n",
"a[4]\t 5\t 30726328\n"
]
}
],
"prompt_number": 20
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.20, Page number: 298
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Sum of squares and cubes of array elements using pointer\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"b = [1,2,3,4,5]\n",
"sumsq = 0\n",
"sumc = 0\n",
"\n",
"#Result\n",
"for j in range(0,5):\n",
" sumsq = sumsq + pow(b[j],2)\n",
" sumc = sumc + pow(b[j],3)\n",
" \n",
"sys.stdout.write(\"\\nSum of Squares of array elements : %d\"%(sumsq))\n",
"sys.stdout.write(\"\\nSum of Cubes of array elements : %d\"%(sumc))\n",
"\n",
"#There is no pointer concept in python"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Sum of Squares of array elements : 55\n",
"Sum of Cubes of array elements : 225"
]
}
],
"prompt_number": 21
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.21, Page number: 299
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Copy element of one array to another array using pointers.\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"so = [10,20,30,40,50]\n",
"ds = [0 for i in range(0,5)]\n",
"\n",
"#Copying\n",
"for i in range(0,5):\n",
" ds[i] = so[i]\n",
" \n",
"sys.stdout.write(\"Original Array Duplicated Array\")\n",
"\n",
"for i in range(0,5):\n",
" sys.stdout.write(\"\\n\\t%d\\t\\t%d\"%(so[i],ds[i]))\n",
" \n",
"#There is no pointer concept in python"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Original Array Duplicated Array\n",
"\t10\t\t10\n",
"\t20\t\t20\n",
"\t30\t\t30\n",
"\t40\t\t40\n",
"\t50\t\t50"
]
}
],
"prompt_number": 23
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.22, Page number: 299
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Copy one array into another array. \n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"arr1 = [15,25,35,45,55]\n",
"arr2 = [0 for i in range(0,5)]\n",
"j = 4\n",
"\n",
"#Copying & Result\n",
"sys.stdout.write(\"\\nOriginal Array Duplicate Array\")\n",
"for i in range(0,5):\n",
" arr2[i] = arr1[j]\n",
" j -= 1\n",
" sys.stdout.write(\"\\n\\t%d\\t\\t%d\"%(arr1[i],arr2[i]))\n",
" \n",
"#There is no pointer concept in python"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Original Array Duplicate Array\n",
"\t15\t\t55\n",
"\t25\t\t45\n",
"\t35\t\t35\n",
"\t45\t\t25\n",
"\t55\t\t15"
]
}
],
"prompt_number": 24
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.23, Page number: 300
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Display array elements and their address using pointers\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"a = [[1,2,3],[4,5,6],[7,8,9]]\n",
"j = 1\n",
"\n",
"#Result\n",
"sys.stdout.write(\"\\tElements of An Array with their addresses\\n\\n\")\n",
"\n",
"p = id(a[0][0])\n",
"\n",
"for i in range(0,3):\n",
" for j in range(0,3):\n",
" sys.stdout.write(\"%5d [%5u]\"%(a[i][j],id(a[i][j])))\n",
" sys.stdout.write(\"\\n\")\n",
" \n",
"#There is no pointer concept in python\n",
"#Memory address differs in different systems\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\tElements of An Array with their addresses\n",
"\n",
" 1 [30726376] 2 [30726364] 3 [30726352]\n",
" 4 [30726340] 5 [30726328] 6 [30726316]\n",
" 7 [30726304] 8 [30726292] 9 [30726280]\n"
]
}
],
"prompt_number": 25
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.24, Page number: 301
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Display array elements and their address. \n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"a = [[1,2,3],[4,5,6],[7,8,9]]\n",
"\n",
"#Result\n",
"sys.stdout.write(\"\\nElements of An Array with their addresses.\\n\\n\")\n",
"\n",
"for i in range(0,3):\n",
" for j in range(0,3):\n",
" sys.stdout.write(\"%5d [%5u]\"%(a[i][j],id(a[i][j])))\n",
" sys.stdout.write(\"\\n\")\n",
" \n",
"#There is no pointer concept in python\n",
"#Memory address differs in different systems\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Elements of An Array with their addresses.\n",
"\n",
" 1 [30726376] 2 [30726364] 3 [30726352]\n",
" 4 [30726340] 5 [30726328] 6 [30726316]\n",
" 7 [30726304] 8 [30726292] 9 [30726280]\n"
]
}
],
"prompt_number": 26
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.25, Page number: 302
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Store addresses of different elements of an array using array of pointers\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"arrl = [5,10,15]\n",
"arrp = [0 for i in range(0,3)]\n",
"\n",
"for i in range(0,3):\n",
" arrp[i] = id(arrl[i])\n",
" \n",
"#Result\n",
"sys.stdout.write(\"\\nAddress \\tElement\\n\")\n",
"\n",
"for k in range(0,3):\n",
" sys.stdout.write(\"%u\"%(arrp[k]))\n",
" sys.stdout.write(\"\\t%7d\\n\"%(arrl[k]))\n",
" \n",
"#There is no pointer concept in python\n",
"#Memory address differs in different systems\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Address \tElement\n",
"30726328\t 5\n",
"30726268\t 10\n",
"30726208\t 15\n"
]
}
],
"prompt_number": 29
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.26, Page number: 303
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Display address of elements and pointers\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"a = [0,1,2,3,4]\n",
"p = [0 for i in range(0,5)]\n",
"\n",
"for i in range(0,5):\n",
" p[i] = id(a[i])\n",
" \n",
"#Result\n",
"for i in range(0,5):\n",
" sys.stdout.write(\"\\n%d at location\"%(a[i]))\n",
" sys.stdout.write(\"\\t%u at location\"%(id(a[i])))\n",
" sys.stdout.write(\" %u\"%(id(p[i])))\n",
" \n",
"#There is no pointer concept in python\n",
"#Memory address differs in different systems\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"0 at location\t30726388 at location 52456564\n",
"1 at location\t30726376 at location 52456360\n",
"2 at location\t30726364 at location 52456456\n",
"3 at location\t30726352 at location 52456420\n",
"4 at location\t30726340 at location 52456468"
]
}
],
"prompt_number": 31
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.27, Page number: 304
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Print value of a variable through pointer and pointer to pointer\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"a = 2\n",
"p = id(a)\n",
"q = id(p)\n",
"\n",
"#Result\n",
"sys.stdout.write(\"\\n Value of a = %d Address of a = %u\"%(a,id(a)))\n",
"sys.stdout.write(\"\\nThrough *p Value of a = %d Address of a = %u\"%(a,p))\n",
"sys.stdout.write(\"\\nThrough **q Vallue of a = %d Address of a = %d\"%(a,p))\n",
"\n",
"#There is no pointer concept in python\n",
"#Memory address differs in different systems\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" Value of a = 2 Address of a = 30726364\n",
"Through *p Value of a = 2 Address of a = 30726364\n",
"Through **q Vallue of a = 2 Address of a = 30726364"
]
}
],
"prompt_number": 33
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.28, Page number: 305
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Different levels of array of pointer to pointer and display the elements\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"a = [1,2,3]\n",
"b = [0 for i in range(0,3)]\n",
"c = [0 for i in range(0,3)]\n",
"d = [0 for i in range(0,3)]\n",
"e = [0 for i in range(0,3)]\n",
"f = [0 for i in range(0,3)]\n",
"\n",
"for k in range(0,3):\n",
" b[k] = id(a[k])\n",
" c[k] = id(b[k])\n",
" d[k] = id(c[k])\n",
" e[k] = id(d[k])\n",
" f[k] = id(e[k])\n",
" \n",
"#Result\n",
"for k in range(0,3):\n",
" sys.stdout.write(\"%3d\"%(a[k]))\n",
" sys.stdout.write(\"%3d\"%(a[k]))\n",
" sys.stdout.write(\"%3d\"%(a[k]))\n",
" sys.stdout.write(\"%3d\"%(a[k]))\n",
" sys.stdout.write(\"%3d\\n\"%(a[k]))\n",
" \n",
"#There is no pointer concept in python\n",
"#Memory address differs in different systems\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
" 1 1 1 1 1\n",
" 2 2 2 2 2\n",
" 3 3 3 3 3\n"
]
}
],
"prompt_number": 36
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.29, Page number: 306
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Display string using character pointer\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"name = ['K','U','M','A','R']\n",
"ch = id(name)\n",
"i = 0\n",
"\n",
"#Result\n",
"while i < len(name): #There is no null terminating character in python string\n",
" sys.stdout.write(\"%c\"%(name[i]))\n",
" i += 1\n",
" \n",
"#There is no pointer concept in python"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"KUMAR"
]
}
],
"prompt_number": 37
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.30, Page number: 307
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Length of a given string including and excluding spaces using pointers\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"p = 0\n",
"q = 0\n",
"s = 0\n",
"str1 = ['P','O','I','N','T','E','R','S',' ','A','R','E',' ','E','A','S','Y']\n",
"\n",
"#Result\n",
"while s < len(str1): #There is no null termination character for python string\n",
" sys.stdout.write(\"%c\"%(str1[s]))\n",
" p += 1\n",
" if ord(str1[s]) == 32:\n",
" q += 1\n",
" s += 1\n",
"\n",
"sys.stdout.write(\"\\nLength of String including spaces : %d\"%(p))\n",
"sys.stdout.write(\"\\nLength of String excluding spaces : %d\"%(p-q))\n",
"\n",
"#There is no pointer concept in python"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"POINTERS ARE EASY\n",
"Length of String including spaces : 17\n",
"Length of String excluding spaces : 15"
]
}
],
"prompt_number": 40
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#String comparison.\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"c = 0\n",
"str1 = raw_input(\"Enter First String : \")\n",
"str2 = raw_input(\"Enter Second String : \")\n",
"a = 0\n",
"l = 0\n",
"\n",
"#Result\n",
"sys.stdout.write(\"\\nSimilar Characters Found in Both String\")\n",
"\n",
"while a < len(str1):\n",
" if str1[a] == str2[a]:\n",
" sys.stdout.write(\"\\n\\t%c\\t%c\"%(str1[a],str2[a]))\n",
" l += 1\n",
" else:\n",
" c += 1\n",
" a += 1\n",
" \n",
"if c == 0:\n",
" sys.stdout.write(\"\\nThe Strings are Identical\")\n",
"else:\n",
" sys.stdout.write(\"\\nThe Strings are different at %d places.\"%(c))\n",
" sys.stdout.write(\"\\nThe String Characters are similar at %d places.\"%(l))\n",
" \n",
"#There is no pointer concept in python"
],
"language": "python",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter First String : SUNDAY\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter Second String : MONDAY\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Similar Characters Found in Both String\n",
"\tN\tN\n",
"\tD\tD\n",
"\tA\tA\n",
"\tY\tY\n",
"The Strings are different at 2 places.\n",
"The String Characters are similar at 4 places."
]
}
],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.33, Page number: 310
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Compare three characters using pointers.\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"x = raw_input(\"Enter Three Characters\")\n",
"y = raw_input(\"Enter Three Characters\")\n",
"z = raw_input(\"Enter Three Characters\")\n",
"\n",
"stat = 0\n",
"\n",
"stat = y > x\n",
"if x == y:\n",
" sys.stdout.write(\"\\n1st and 2nd Character are same\\n\")\n",
"else:\n",
" if stat < 0:\n",
" sys.stdout.write(\"\\n2nd Character appears after the 1st Character in Alphabetic\\n\")\n",
" else:\n",
" sys.stdout.write(\"2nd Character appears before the first Character in Alphabetic\\n\")\n",
" \n",
"stat = y > z\n",
"\n",
"if y == z:\n",
" sys.stdout.write(\"\\n2nd and 3rd Character are same.\")\n",
"else:\n",
" if stat > 0:\n",
" sys.stdout.write(\"\\n2nd Character appears after the 3rd Character in Alphabetic\")\n",
" else:\n",
" sys.stdout.write(\"\\n2nd Character appears before the 3rd Character in Alphabetic\")"
],
"language": "python",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter Three CharactersC\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter Three CharactersC\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter Three CharactersA\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"1st and 2nd Character are same\n",
"\n",
"2nd Character appears after the 3rd Character in Alphabetic"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.34, Page number: 311
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Compare two strings irrespective of case. \n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"buf1 = \"computer\"\n",
"buf2 = \"computer\"\n",
"\n",
"#Comparison\n",
"stat = buf1 == buf2\n",
"\n",
"#Result\n",
"sys.stdout.write(\"The Characters upto 4th position are \")\n",
"if stat == 0:\n",
" sys.stdout.write(\"not \")\n",
"sys.stdout.write(\"same\")\n",
"\n",
"#There is no pointer concept in python and memicmp() function"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The Characters upto 4th position are same"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.35, Page number: 311
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Print the string upto the first occurrence of a character\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"\n",
"src = raw_input(\"Enter a String : \")\n",
"f = raw_input(\"Enter a Character to find in the text : \")\n",
"dest = ['0' for i in range(0,len(src))]\n",
"ptr = 0\n",
"\n",
"while ptr < len(src):\n",
" if src[ptr] == f:\n",
" dest[ptr] = src[ptr]\n",
" break\n",
" else:\n",
" dest[ptr] = src[ptr]\n",
" ptr += 1\n",
"\n",
"if ptr == len(src):\n",
" sys.stdout.write(\"The character wasn't found\\n\")\n",
"else:\n",
" sys.stdout.write(\"String upto that Character : %s\"%(dest[0:ptr+1]))\n",
" \n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter a String : FUNCTIONS\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter a Character to find in the text : T\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"String upto that Character : ['F', 'U', 'N', 'C', 'T']"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.36, Page number: 312
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Replace the contents of second string with the first string. \n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"src = raw_input(\"Enter a Source String : \")\n",
"dest = raw_input(\"Enter a Destination String :\")\n",
"\n",
"#Result\n",
"sys.stdout.write(\"\\n\\nDestination before memcpy : %s\\n\"%(dest))\n",
"dest = src[:len(src)] + dest[len(src):]\n",
"\n",
"sys.stdout.write(\"Destination after memcpy : %s\\n\"%(dest))\n",
"\n",
"#There is no pointer concept in python and memcpy function"
],
"language": "python",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter a Source String : Tomorrow\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter a Destination String :Today is Sunday\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"\n",
"Destination before memcpy : Today is Sunday\n",
"Destination after memcpy : Tomorrowis Sunday\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Example 9.37, Page number: 313
"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Display the string through their pointer\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"c = \"Central Processing Unit\"\n",
"m = \"Math Co- Processor\"\n",
"\n",
"#Result\n",
"sys.stdout.write(\"'c' is pointing the string '%s'\\n\"%(c))\n",
"sys.stdout.write(\"'m' is pointing the string '%s'\\n\"%(m))\n",
"\n",
"#There is no pointer concept in python"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"'c' is pointing the string 'Central Processing Unit'\n",
"'m' is pointing the string 'Math Co- Processor'\n"
]
}
],
"prompt_number": 16
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"