summaryrefslogtreecommitdiff
path: root/Programming_in_C_using_ANSI_C/KamthaneChapter16.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Programming_in_C_using_ANSI_C/KamthaneChapter16.ipynb')
-rwxr-xr-xProgramming_in_C_using_ANSI_C/KamthaneChapter16.ipynb2160
1 files changed, 2160 insertions, 0 deletions
diff --git a/Programming_in_C_using_ANSI_C/KamthaneChapter16.ipynb b/Programming_in_C_using_ANSI_C/KamthaneChapter16.ipynb
new file mode 100755
index 00000000..cafb9828
--- /dev/null
+++ b/Programming_in_C_using_ANSI_C/KamthaneChapter16.ipynb
@@ -0,0 +1,2160 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 16: Marching Towards C++<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.1, Page number: 537<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read and display a string\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Initialize variable\n",
+ "name = raw_input(\"Enter Your Name : \")\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Your name is %s\"%(name))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Your Name : Amit\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Your name is Amit"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.2, Page number: 540<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the value of a variable using reference variable\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "qty = 10\n",
+ "qt = qty\n",
+ "#in python, value tagging method is used for storage. so there is no reference concept\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"qty\\tqt\\n\")\n",
+ "sys.stdout.write(\"%d\\t%d\\n\"%(qty,qt))\n",
+ "qt = qt + 1\n",
+ "qty = qty + 1\n",
+ "sys.stdout.write(\"%d\\t%d\\n\"%(qty,qt))\n",
+ "qty = qty - 1\n",
+ "qt = qt - 1\n",
+ "sys.stdout.write(\"%d\\t%d\\n\"%(qty,qt))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "qty\tqt\n",
+ "10\t10\n",
+ "11\t11\n",
+ "10\t10\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.3, Page number: 541<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to use scope access operator.\n",
+ "#Display the variaous values of the same variable declared at different scope levels.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = 10\n",
+ "\n",
+ "def main():\n",
+ " a = 20\n",
+ " sys.stdout.write(\"::a = %d\"%(a))\n",
+ " return\n",
+ "\n",
+ "#There is no scope operator. Intendation is used to define scope/block of statements\n",
+ "main()\n",
+ "sys.stdout.write(\" a = %d\"%(a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "::a = 20 a = 10"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.4, Page number: 542<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to read tow integers through the keyboard.\n",
+ "#Declare the variables in C++ style.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Read Variables\n",
+ "num = int(raw_input(\"Enter Two numbers : \"))\n",
+ "num1 = int(raw_input(\"Enter Two numbers : \"))\n",
+ "#No variable declaration is needed in python\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Entered Numbers are : %d %d\"%(num,num1))\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 : 9\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entered Numbers are : 8 9"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.5, Page number: 543<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Length of a string\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#There is no variable declaration is needed in python\n",
+ "#Read string\n",
+ "name = raw_input(\"Enter Your Name : \")\n",
+ "\n",
+ "#Calculation\n",
+ "len1 = len(name)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"The length of the string is : %d\"%(len1))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Your Name : Santosh\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The length of the string is : 7"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.6, Page number: 544<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Sum of numbers using function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definition\n",
+ "def sum1(x,y):\n",
+ " return x+y\n",
+ "#Forward function definition is not possible in python.\n",
+ "#Otherwise wrap the function within the main() function\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = 20\n",
+ "b = 2.5\n",
+ "\n",
+ "#Function call\n",
+ "sys.stdout.write(\"Sum = %f\"%(sum1(a,b)))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum = 22.500000"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.7, Page number: 545<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Function with default arguments.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definition\n",
+ "def sum1(j,k=10,l=15,m=20):\n",
+ " return j+k+l+m\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = 2\n",
+ "b = 3\n",
+ "c = 4\n",
+ "d = 5\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Sum = %d\"%(sum1(a,b,c,d)))\n",
+ "sys.stdout.write(\"\\nSum = %d\"%(sum1(a,b,c)))\n",
+ "sys.stdout.write(\"\\nSum = %d\"%(sum1(a,b)))\n",
+ "sys.stdout.write(\"\\nSum = %d\"%(sum1(a)))\n",
+ "sys.stdout.write(\"\\nSum = %d\"%(sum1(b,c,d)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum = 14\n",
+ "Sum = 29\n",
+ "Sum = 40\n",
+ "Sum = 47\n",
+ "Sum = 32"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.8, Page number: 547<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Square of integer and float number using function overloading\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definition/ There is no seperate function definition is needed.\n",
+ "def sqr(s):\n",
+ " return s*s\n",
+ "\n",
+ "#Variable iNitialization\n",
+ "a = 15\n",
+ "b = 2.5\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Square = %d\"%(sqr(a)))\n",
+ "sys.stdout.write(\"\\nSquare = %f\"%(sqr(b)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Square = 225\n",
+ "Square = 6.250000"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.9, Page number: 549<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display private and public member variables of the class.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class num:\n",
+ " def readdata(self,j,k):\n",
+ " self.x = j\n",
+ " self.y = k\n",
+ " \n",
+ " def display(self):\n",
+ " sys.stdout.write(\"x = %d y = %f\"%(self.x,self.y))\n",
+ "\n",
+ "#Object declaration\n",
+ "j = num()\n",
+ "\n",
+ "#Result\n",
+ "j.z = 'C'\n",
+ "j.readdata(10,10.5)\n",
+ "j.display()\n",
+ "sys.stdout.write(\" z = %c\"%(j.z))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x = 10 y = 10.500000 z = C"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.10, Page number: 550<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Private and public data member of a class.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class player:\n",
+ " def __init__(self,name=None,height=0,weight=0):\n",
+ " self.name = name\n",
+ " self.height = height\n",
+ " self.weight = weight\n",
+ " \n",
+ "#Object declaration\n",
+ "a = player()\n",
+ "\n",
+ "#Variable Initialization\n",
+ "#There is no need/concept for private variables in python.\n",
+ "a.name = \"Sanjay\"\n",
+ "a.height = 5.5\n",
+ "a.weight = 38\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Height : %d\"%(a.height))\n",
+ "sys.stdout.write(\"\\nWeight : %d\"%(a.weight))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Height : 5\n",
+ "Weight : 38"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.11, Page number: 551<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Class with member variables and functions. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class player:\n",
+ " def __init__(self,name=None,height=0,weight=0):\n",
+ " self.name = name\n",
+ " self.height = height\n",
+ " self.weight = weight\n",
+ " \n",
+ " def setdata(self):\n",
+ " self.name = raw_input(\"Enter Name Age Height Weight\")\n",
+ " self.age = int(raw_input(\"Enter Name Age Height Weight\"))\n",
+ " self.height = float(raw_input(\"Enter Name Age Height Weight\"))\n",
+ " self.weight = int(raw_input(\"Enter Name Age Height Weight\"))\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"\\nName : %s\"%(self.name))\n",
+ " sys.stdout.write(\"\\nAge : %d\"%(self.age))\n",
+ " sys.stdout.write(\"\\nHeight : %f\"%(self.height))\n",
+ " sys.stdout.write(\"\\nWeight : %d\"%(self.weight))\n",
+ " \n",
+ "#Object declaration\n",
+ "a = player()\n",
+ "\n",
+ "#Function call\n",
+ "a.setdata()\n",
+ "a.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name Age Height WeightSanjay\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name Age Height Weight24\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name Age Height Weight5.5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name Age Height Weight54\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Name : Sanjay\n",
+ "Age : 24\n",
+ "Height : 5.500000\n",
+ "Weight : 54"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.12, Page number: 552<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Class with member variables and functions.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class player:\n",
+ " def __init__(self,name=None,height=0,weight=0):\n",
+ " self.name = name\n",
+ " self.height = height\n",
+ " self.weight = weight\n",
+ " \n",
+ " def setdata(self):\n",
+ " self.name = raw_input(\"Enter Name Age Height Weight\")\n",
+ " self.age = int(raw_input(\"Enter Name Age Height Weight\"))\n",
+ " self.height = float(raw_input(\"Enter Name Age Height Weight\"))\n",
+ " self.weight = int(raw_input(\"Enter Name Age Height Weight\"))\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"\\nName : %s\"%(self.name))\n",
+ " sys.stdout.write(\"\\nAge : %d\"%(self.age))\n",
+ " sys.stdout.write(\"\\nHeight : %f\"%(self.height))\n",
+ " sys.stdout.write(\"\\nWeight : %d\"%(self.weight))\n",
+ "#In python, member functions should be defined inside the class instance\n",
+ "\n",
+ "#Object declaration\n",
+ "a = player()\n",
+ "\n",
+ "#Function call\n",
+ "a.setdata()\n",
+ "a.show() "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name Age Height WeightAjay\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name Age Height Weight24\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name Age Height Weight5.2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name Age Height Weight45\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Name : Ajay\n",
+ "Age : 24\n",
+ "Height : 5.200000\n",
+ "Weight : 45"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.13, Page number: 554<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Static data member. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class sumnum:\n",
+ " def __init__(self,num = 0):\n",
+ " self.num = num\n",
+ " \n",
+ " def input1(self,c):\n",
+ " self.num = int(raw_input(\"Enter Number : \"))\n",
+ " c = c + self.num\n",
+ " return c\n",
+ " \n",
+ " def sum1(self,c):\n",
+ " sys.stdout.write(\"The sum of entered numbers is %d\"%(c))\n",
+ " \n",
+ "#Object declaration\n",
+ "a = sumnum()\n",
+ "b = sumnum()\n",
+ "c1 = sumnum()\n",
+ "c = 0\n",
+ "\n",
+ "#Function call\n",
+ "#There is no static variable in python\n",
+ "c = a.input1(c)\n",
+ "c = b.input1(c)\n",
+ "c = c1.input1(c)\n",
+ "\n",
+ "a.sum1(c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The sum of entered numbers is 14"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.14, Page number: 555<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Static member functions \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class bita:\n",
+ " def __initi__(self):\n",
+ " self.c = 0\n",
+ " \n",
+ " @staticmethod \n",
+ " def count(c):\n",
+ " c = c + 1\n",
+ " return c\n",
+ " \n",
+ " @staticmethod\n",
+ " def display(k,c):\n",
+ " k = k + 1\n",
+ " sys.stdout.write(\"\\nCall Number : %d\"%(k))\n",
+ " sys.stdout.write(\"\\nValue of c : %d\"%(c))\n",
+ " return k\n",
+ " \n",
+ "#Object declaration\n",
+ "b = bita()\n",
+ "c1 = bita()\n",
+ "\n",
+ "c = 0\n",
+ "k = 0\n",
+ "\n",
+ "#Function call\n",
+ "k = bita.display(k,c)\n",
+ "c = bita.count(c)\n",
+ "c = b.count(c)\n",
+ "c = c1.count(c)\n",
+ "k = bita.display(k,c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Call Number : 1\n",
+ "Value of c : 0\n",
+ "Call Number : 2\n",
+ "Value of c : 3"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.15, Page number: 557<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Array of objects to maintain records of bank \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class bank:\n",
+ " def __init__(self):\n",
+ " self.city = None\n",
+ " self.bank = None\n",
+ " self.branches = 0\n",
+ " self.no_ac = 0\n",
+ " \n",
+ " def input1(self):\n",
+ " self.city = raw_input(\"City Name : \")\n",
+ " self.bank = raw_input(\"Bank Name : \")\n",
+ " self.branches = int(raw_input(\"Total Branches : \"))\n",
+ " self.no_ac = int(raw_input(\"Number of A/c : \"))\n",
+ " \n",
+ " def console(self):\n",
+ " sys.stdout.write(\"\\n\\nCity Name : %s\"%(self.city))\n",
+ " sys.stdout.write(\"\\nBank Name : %s\"%(self.bank))\n",
+ " sys.stdout.write(\"\\nTotal Branches : %d\"%(self.branches))\n",
+ " sys.stdout.write(\"\\nNumber of A/c : %d\"%(self.no_ac))\n",
+ " \n",
+ "#Object declaration\n",
+ "ms = [bank() for i in range(0,2)]\n",
+ "\n",
+ "#Processing\n",
+ "for k in range(0,2):\n",
+ " ms[k].input1()\n",
+ " \n",
+ "for k in range(0,2):\n",
+ " ms[k].console()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "City Name : Nanded\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bank Name : SNSB\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total Branches : 10\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of A/c : 7500\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "City Name : Latur\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bank Name : SNSB\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total Branches : 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of A/c : 5400\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "City Name : Nanded\n",
+ "Bank Name : SNSB\n",
+ "Total Branches : 10\n",
+ "Number of A/c : 7500\n",
+ "\n",
+ "City Name : Latur\n",
+ "Bank Name : SNSB\n",
+ "Total Branches : 8\n",
+ "Number of A/c : 5400"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.16, Page number: 559<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Accessing private data using non member function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class ac:\n",
+ " def __init__(self):\n",
+ " self.name = None\n",
+ " self.acno = 0\n",
+ " self.bal = 0\n",
+ " \n",
+ " def read(self):\n",
+ " self.name = raw_input(\"Name : \")\n",
+ " self.acno = int(raw_input(\"A/c No :\"))\n",
+ " self.bal = int(raw_input(\"Balance : \"))\n",
+ " \n",
+ "#Non member function\n",
+ "def showbal(a):\n",
+ " sys.stdout.write(\"\\nBalance of A/c no. %d is Rs. %d\"%(a.acno,a.bal))\n",
+ " \n",
+ "#object declaration\n",
+ "k = ac()\n",
+ "\n",
+ "#Function call\n",
+ "k.read()\n",
+ "showbal(k)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name : Manoj\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A/c No :474\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Balance : 40000\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Balance of A/c no. 474 is Rs. 40000"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.17, Page number: 561<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Friend function in two classes. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class first:\n",
+ " def __init__(self):\n",
+ " self.f = 0\n",
+ " \n",
+ " def getvalue(self):\n",
+ " self.f = int(raw_input(\"Enter a number : \"))\n",
+ " \n",
+ "class second:\n",
+ " def __init__(self):\n",
+ " self.s = 0\n",
+ " \n",
+ " def getvalue(self):\n",
+ " self.s = int(raw_input(\"Enter a number : \"))\n",
+ " \n",
+ " \n",
+ "#Non member function\n",
+ "def sum1(d,t):\n",
+ " sys.stdout.write(\"\\nSum of two numbers : %d\"%(t.f+d.s))\n",
+ " \n",
+ "#Object declaration\n",
+ "a = first()\n",
+ "b = second()\n",
+ "\n",
+ "#Function call\n",
+ "a.getvalue()\n",
+ "b.getvalue()\n",
+ "sum1(b,a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number : 7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number : 8\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Sum of two numbers : 15"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.18, Page number: 562<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#String Replacement\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class fandr:\n",
+ " def __init__(self):\n",
+ " self.str1 = None\n",
+ " self.f = ''\n",
+ " self.r = ''\n",
+ " \n",
+ " def accept(self):\n",
+ " #Since string object does not support item assignment, initialize the string as character array\n",
+ " self.str1 = ['P','r','o','g','r','a','_','e','r']\n",
+ " self.f = raw_input(\"Find what (char) \")\n",
+ " self.r = raw_input(\"Replace with (char) \")\n",
+ " \n",
+ " def display(self,d):\n",
+ " sys.stdout.write(\"%c\"%(self.str1[d]))\n",
+ " \n",
+ " def len1(self):\n",
+ " self.l = len(self.str1)\n",
+ " return self.l\n",
+ " \n",
+ " def find(self,i):\n",
+ " if self.str1[i] == self.f:\n",
+ " self.replace(i)\n",
+ " \n",
+ " def replace(self,k):\n",
+ " self.str1[k] = self.r\n",
+ " \n",
+ "#Object declaration\n",
+ "b = fandr()\n",
+ "\n",
+ "#function call\n",
+ "b.accept()\n",
+ "l = b.len1()\n",
+ "sys.stdout.write(\"\\nReplaced text : \")\n",
+ "\n",
+ "for i in range(0,l):\n",
+ " b.find(i)\n",
+ " b.display(i)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Find what (char) _\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Replace with (char) m\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Replaced text : Programer"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.19, Page number: 564<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Largest out of ten numbers.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class num:\n",
+ " def __init__(self):\n",
+ " self.number = [0 for i in range(0,10)]\n",
+ " \n",
+ " def input1(self,i):\n",
+ " self.number[i] = int(raw_input(\"Enter Number (%d) : \"%(i+1)))\n",
+ " return self.number[i]\n",
+ " \n",
+ " def large(self,s,m):\n",
+ " if self.number[s] == m:\n",
+ " sys.stdout.write(\"\\nLargest number : %d\"%(self.number[s]))\n",
+ " return 0\n",
+ " else:\n",
+ " return 1\n",
+ " \n",
+ "#Object declaration\n",
+ "b = num()\n",
+ "\n",
+ "sum1 = 0\n",
+ "c = 1\n",
+ "\n",
+ "#Sum\n",
+ "for i in range(0,10):\n",
+ " sum1 = sum1 + b.input1(i)\n",
+ " \n",
+ "#largest\n",
+ "for k in range(sum1,0,-1):\n",
+ " for i in range(0,10):\n",
+ " if c == 1:\n",
+ " c = b.large(i,k)\n",
+ " else:\n",
+ " break"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (1) : 125\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (2) : 654\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (3) : 246\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (4) : 945\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (5) : 258\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (6) : 159\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (7) : 845\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (8) : 940\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (9) : 944\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (10) : 485\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Largest number : 945"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.20, Page number: 567<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constructor to initialize the class member variables \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class num:\n",
+ " #Constructor\n",
+ " def __init__(self):\n",
+ " sys.stdout.write(\"\\nConstructor called\")\n",
+ " self.x = 5\n",
+ " self.a = 0\n",
+ " self.b = 1\n",
+ " self.c = 2\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"\\nx = %d a = %d b = %d c = %d\"%(self.x,self.a,self.b,self.c))\n",
+ " \n",
+ "#Object declaration\n",
+ "x = num()\n",
+ "\n",
+ "#Function call\n",
+ "x.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Constructor called\n",
+ "x = 5 a = 0 b = 1 c = 2"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.21, Page number: 569<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constructor with arguments \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class num:\n",
+ " #Constructor\n",
+ " def __init__(self,m,j,k):\n",
+ " self.a = m\n",
+ " self.b = j\n",
+ " self.c = k\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"\\na = %d b = %d c = %d\"%(self.a,self.b,self.c))\n",
+ " \n",
+ " \n",
+ "#Object declaration\n",
+ "x = num(4,5,7)\n",
+ "y = num(1,2,8)\n",
+ "\n",
+ "#Function call\n",
+ "x.show()\n",
+ "y.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "a = 4 b = 5 c = 7\n",
+ "a = 1 b = 2 c = 8"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.22, Page number: 571<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constructor overloading\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class num:\n",
+ " def __init__(self,m = None,j = None,k = None):\n",
+ " if m and j and k is not None:\n",
+ " sys.stdout.write(\"Constructor with three arguments\")\n",
+ " self.a = m\n",
+ " self.b = j\n",
+ " self.c = k\n",
+ " \n",
+ " else:\n",
+ " if m and j is not None:\n",
+ " sys.stdout.write(\"Constructor with two arguments\")\n",
+ " self.a = m\n",
+ " self.b = j\n",
+ " self.c = ''\n",
+ " else:\n",
+ " if m == j == k == None:\n",
+ " sys.stdout.write(\"Constructor without arguments\")\n",
+ " self.a = 0\n",
+ " self.b = 0\n",
+ " self.c = ''\n",
+ " \n",
+ " \n",
+ " def show(self): \n",
+ " sys.stdout.write(\"\\na = %d b = %f c = \"%(self.a,self.b))\n",
+ " print self.c\n",
+ " \n",
+ " \n",
+ "#Object declaration\n",
+ "\n",
+ "x = num(4,5.5,'A')\n",
+ "x.show()\n",
+ "\n",
+ "y = num(1,2.2)\n",
+ "y.show()\n",
+ "\n",
+ "z = num()\n",
+ "z.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor with three arguments\n",
+ "a = 4 b = 5.500000 c = A\n",
+ "Constructor with two arguments\n",
+ "a = 1 b = 2.200000 c = \n",
+ "Constructor without arguments\n",
+ "a = 0 b = 0.000000 c = \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.23, Page number: 573<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Default arguments in constructor. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class power:\n",
+ " def __init__(self,n = 9,p = 3):\n",
+ " self.num = n\n",
+ " self.power = p\n",
+ " self.ans = pow(n,p)\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"\\n%d raise to %d is %d\"%(self.num,self.power,self.ans))\n",
+ " \n",
+ " \n",
+ "#Object declaration\n",
+ "p1 = power()\n",
+ "p2 = power(5)\n",
+ "\n",
+ "#Result\n",
+ "p1.show()\n",
+ "p2.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "9 raise to 3 is 729\n",
+ "5 raise to 3 is 125"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.24, Page number: 575<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Object with reference to constructor. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class num:\n",
+ " #There is no overloading concept in python\n",
+ " def __init__(self,k=None,j=None):\n",
+ " if k is not None:\n",
+ " self.n = k\n",
+ " return\n",
+ " else:\n",
+ " if j is not None:\n",
+ " self.n = j.n\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"%d\"%(self.n))\n",
+ " \n",
+ "#Object creation\n",
+ "J = num(50)\n",
+ "K = num(J.n)\n",
+ "L = num()\n",
+ "L = J\n",
+ "M = num()\n",
+ "M = J\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nObject J Value of n : \")\n",
+ "J.show()\n",
+ "sys.stdout.write(\"\\nObject K Value of n : \")\n",
+ "K.show()\n",
+ "sys.stdout.write(\"\\nObject L Value of n : \")\n",
+ "L.show()\n",
+ "sys.stdout.write(\"\\nObject M Value of n : \")\n",
+ "M.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Object J Value of n : 50\n",
+ "Object K Value of n : 50\n",
+ "Object L Value of n : 50\n",
+ "Object M Value of n : 50"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.25, Page number: 576<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Destructors\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "c = 0\n",
+ "\n",
+ "#Class definition\n",
+ "class num:\n",
+ " def __init__(self,c):\n",
+ " c = c + 1\n",
+ " sys.stdout.write(\"\\nObject Created : Object(%d)\"%(c))\n",
+ " \n",
+ " \n",
+ " def __exit__(self, type, value, traceback,c):\n",
+ " self.package_obj.cleanup()\n",
+ " sys.stdout.write(\"\\nObject Released : Object(%d)\"%(c))\n",
+ " c = c - 1\n",
+ " \n",
+ " \n",
+ "#Object creation\n",
+ "sys.stdout.write(\"\\nIn main()\\n\")\n",
+ "a = num(c)\n",
+ "b = num(c)\n",
+ "\n",
+ "sys.stdout.write(\"\\nIn Block A()\\n\")\n",
+ "c = num(c)\n",
+ "\n",
+ "sys.stdout.write(\"\\n\\nAgain in main()\\n\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "In main()\n",
+ "\n",
+ "Object Created : Object(1)\n",
+ "Object Created : Object(1)\n",
+ "In Block A()\n",
+ "\n",
+ "Object Created : Object(1)\n",
+ "\n",
+ "Again in main()\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.26, Page number: 579<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Overload unary ++ operator\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class num:\n",
+ " def input1(self):\n",
+ " self.a = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " self.b = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " self.c = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " self.d = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"\\nA = %d B = %d C = %d D = %d\"%(self.a,self.b,self.c,self.d))\n",
+ " \n",
+ " def operatorplusplus(self):\n",
+ " self.a = self.a + 1\n",
+ " self.b = self.b + 1\n",
+ " self.c = self.c + 1\n",
+ " self.d = self.d + 1\n",
+ " \n",
+ "#Object creation\n",
+ "X = num()\n",
+ "\n",
+ "X.input1()\n",
+ "sys.stdout.write(\"\\nBefore Overloading X : \")\n",
+ "X.show()\n",
+ "\n",
+ "#There is no operator overloading in python\n",
+ "X.operatorplusplus()\n",
+ "sys.stdout.write(\"\\nAfter Overloading X : \")\n",
+ "X.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 9\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Before Overloading X : \n",
+ "A = 4 B = 5 C = 8 D = 9\n",
+ "After Overloading X : \n",
+ "A = 5 B = 6 C = 9 D = 10"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.27, Page number: 581<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Overload + binary operator\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class num:\n",
+ " def input1(self):\n",
+ " self.a = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " self.b = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " self.c = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " self.d = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"A = %d B = %d C = %d D = %d\"%(self.a,self.b,self.c,self.d))\n",
+ " \n",
+ " def operatorplus(self,t):\n",
+ " tmp = num()\n",
+ " tmp.a = self.a + t.a\n",
+ " tmp.b = self.b + t.b\n",
+ " tmp.c = self.c + t.c\n",
+ " tmp.d = self.d + t.d\n",
+ " return tmp\n",
+ " \n",
+ "#Object creation\n",
+ "X = num()\n",
+ "Y = num()\n",
+ "Z = num()\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nObject X \")\n",
+ "X.input1()\n",
+ "sys.stdout.write(\"\\nObject Y \")\n",
+ "Y.input1()\n",
+ "\n",
+ "Z = X.operatorplus(Y)\n",
+ "\n",
+ "sys.stdout.write(\"\\nX : \")\n",
+ "X.show()\n",
+ "sys.stdout.write(\"\\nY : \")\n",
+ "Y.show()\n",
+ "sys.stdout.write(\"\\nZ : \")\n",
+ "Z.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Object X "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Object Y "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "X : A = 1 B = 4 C = 2 D = 1\n",
+ "Y : A = 2 B = 5 C = 4 D = 2\n",
+ "Z : A = 3 B = 9 C = 6 D = 3"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.28, Page number: 583<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Multiplication using an integer and object. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class num:\n",
+ " def input1(self):\n",
+ " self.a = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " self.b = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " self.c = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " self.d = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"A = %d B = %d C = %d D = %d\"%(self.a,self.b,self.c,self.d))\n",
+ " \n",
+ "def operatormul(a,t):\n",
+ " tmp = num()\n",
+ " tmp.a = a * t.a\n",
+ " tmp.b = a * t.b\n",
+ " tmp.c = a * t.c\n",
+ " tmp.d = a * t.d\n",
+ " return tmp\n",
+ "\n",
+ "#Result\n",
+ "X = num()\n",
+ "Z = num()\n",
+ "\n",
+ "sys.stdout.write(\"\\nObject X \")\n",
+ "X.input1()\n",
+ "\n",
+ "Z = operatormul(3,X)\n",
+ "sys.stdout.write(\"\\nX : \")\n",
+ "X.show()\n",
+ "sys.stdout.write(\"\\nZ : \")\n",
+ "Z.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Object X "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "X : A = 1 B = 2 C = 2 D = 3\n",
+ "Z : A = 3 B = 6 C = 6 D = 9"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.29, Page number: 585<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Inheritance\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class one:\n",
+ " def __init__(self):\n",
+ " self.a = 0\n",
+ " self.b = 0\n",
+ " \n",
+ "class two(one):\n",
+ " def __init__(self):\n",
+ " one.__init__(self)\n",
+ " self.c = 0\n",
+ " self.d = 0\n",
+ " \n",
+ " def input1(self):\n",
+ " self.a = int(raw_input(\"Enter values for a,b,c,d : \"))\n",
+ " self.b = int(raw_input(\"Enter values for a,b,c,d : \"))\n",
+ " self.c = int(raw_input(\"Enter values for a,b,c,d : \"))\n",
+ " self.d = int(raw_input(\"Enter values for a,b,c,d : \"))\n",
+ " \n",
+ " def display(self):\n",
+ " sys.stdout.write(\"\\na = %d b = %d c = %d d = %d\"%(self.a,self.b,self.c,self.d))\n",
+ " \n",
+ "#Object declaration\n",
+ "a = two()\n",
+ "\n",
+ "#Result\n",
+ "a.input1()\n",
+ "a.display()\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter values for a,b,c,d : 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter values for a,b,c,d : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter values for a,b,c,d : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter values for a,b,c,d : 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "a = 2 b = 5 c = 4 d = 7"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.30, Page number: 586<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Member function using pointer\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#class declaration\n",
+ "class super1:\n",
+ " def display(self):\n",
+ " sys.stdout.write(\"\\nIn function display() class super\")\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"\\nIn function show() class super\")\n",
+ " \n",
+ "class sub(super1):\n",
+ " def display(self):\n",
+ " sys.stdout.write(\"\\nIn function display() class sub\")\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"\\nIn function show() class sub\")\n",
+ " \n",
+ "#Object declaration\n",
+ "S = super1()\n",
+ "A = sub()\n",
+ "\n",
+ "#There is no pointer concept in python\n",
+ "S.display()\n",
+ "S.show()\n",
+ "\n",
+ "sys.stdout.write(\"\\n\\nNow Pointer point points to derived class sub\\n\")\n",
+ "A.display()\n",
+ "A.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "In function display() class super\n",
+ "In function show() class super\n",
+ "\n",
+ "Now Pointer point points to derived class sub\n",
+ "\n",
+ "In function display() class sub\n",
+ "In function show() class sub"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file