summaryrefslogtreecommitdiff
path: root/C++_Programming_In_Easy_Steps/Chapter8.ipynb
diff options
context:
space:
mode:
authorhardythe12015-01-30 12:30:05 +0530
committerhardythe12015-01-30 12:30:05 +0530
commit62aa228e2519ac7b7f1aef53001f2f2e988a6eb1 (patch)
tree7b632b21341f832c3d3b1352dabceaefb36c9a7b /C++_Programming_In_Easy_Steps/Chapter8.ipynb
parent9add422993fb2649287260bc91d429a07d1810d5 (diff)
downloadPython-Textbook-Companions-62aa228e2519ac7b7f1aef53001f2f2e988a6eb1.tar.gz
Python-Textbook-Companions-62aa228e2519ac7b7f1aef53001f2f2e988a6eb1.tar.bz2
Python-Textbook-Companions-62aa228e2519ac7b7f1aef53001f2f2e988a6eb1.zip
added books
Diffstat (limited to 'C++_Programming_In_Easy_Steps/Chapter8.ipynb')
-rwxr-xr-xC++_Programming_In_Easy_Steps/Chapter8.ipynb603
1 files changed, 603 insertions, 0 deletions
diff --git a/C++_Programming_In_Easy_Steps/Chapter8.ipynb b/C++_Programming_In_Easy_Steps/Chapter8.ipynb
new file mode 100755
index 00000000..2bb6672f
--- /dev/null
+++ b/C++_Programming_In_Easy_Steps/Chapter8.ipynb
@@ -0,0 +1,603 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:fa5fb390e0208b333276a0ed5185d5e56d34940c09a52bd389b2d0242ea600f2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8: Harnessing polymorphism"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.1, Page No.134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Base:\n",
+ " def Identify(self,adr):\n",
+ " print \"Base Class called by \",hex(adr)\n",
+ "\n",
+ "class SubA(Base):\n",
+ " def __init__(self,adr):\n",
+ " Base.Identify(self,adr)\n",
+ "class SubB(Base):\n",
+ " def __init__(self,adr):\n",
+ " Base.Identify(self,adr)\n",
+ "ptrA=1\n",
+ "ptrB=SubA(id(ptrA))\n",
+ "ptrC=2\n",
+ "ptrc=SubB(id(ptrC))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Base Class called by 0x12fd8e0\n",
+ "Base Class called by 0x12fd8d4\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2, Page No.136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Parent:\n",
+ " def Common(self):\n",
+ " print \"I am part of this family\"\n",
+ " def identify(self):\n",
+ " print \"I am the parent\"\n",
+ "\n",
+ "class Child(Parent):\n",
+ " def identify(self):\n",
+ " print \"I am the child\"\n",
+ " \n",
+ "class Grandchild(Child):\n",
+ " def identify(self):\n",
+ " print \"I am the grandchild\"\n",
+ " def Relate(self):\n",
+ " print \"Grandchild has parent and grandparent\"\n",
+ "\n",
+ "son=Child()\n",
+ "grandson=Grandchild()\n",
+ "parent=Parent()\n",
+ "print parent.Common(),\" \",son.identify()\n",
+ "print parent.Common(),\" \",grandson.identify()\n",
+ "print parent.Common(),\" \",parent.identify()\n",
+ "print grandson.Relate()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "I am part of this family\n",
+ "None I am the child\n",
+ "None\n",
+ "I am part of this family\n",
+ "None I am the grandchild\n",
+ "None\n",
+ "I am part of this family\n",
+ "None I am the parent\n",
+ "None\n",
+ "Grandchild has parent and grandparent\n",
+ "None\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page No.138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Bird:\n",
+ " def Talk(self):\n",
+ " print \"A Bird talks...\"\n",
+ " def Fly(self):\n",
+ " print \"A Bird flies...\"\n",
+ "class Pigeon(Bird):\n",
+ " def Talk(self):\n",
+ " print \"Coo!Coo!\"\n",
+ " def Fly(self):\n",
+ " print \"A Pigeon flies away...\"\n",
+ "class Chicken(Bird):\n",
+ " def Talk(self):\n",
+ " print \"Cluk!Cluk!\"\n",
+ " def Fly(self):\n",
+ " print \"I'm just a chicken- I can't fly!\"\n",
+ "pPigeon=Pigeon()\n",
+ "pChicken=Chicken()\n",
+ "pBird=Bird()\n",
+ "print \"\",pPigeon.Talk()\n",
+ "print \"\",pPigeon.Fly()\n",
+ "print \"\",pChicken.Talk()\n",
+ "print \"\",pChicken.Fly()\n",
+ "print \"\",pBird.Talk()\n",
+ "print \"\",pBird.Fly()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Coo!Coo!\n",
+ "None\n",
+ " A Pigeon flies away...\n",
+ "None\n",
+ " Cluk!Cluk!\n",
+ "None\n",
+ " I'm just a chicken- I can't fly!\n",
+ "None\n",
+ " A Bird talks...\n",
+ "None\n",
+ " A Bird flies...\n",
+ "None\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4, Page No. 140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Bird:\n",
+ " def Talk(self):\n",
+ " return -1\n",
+ " def Fly(self):\n",
+ " return -1\n",
+ "class Pigeon(Bird):\n",
+ " def Talk(self):\n",
+ " print \"Coo!Coo!\"\n",
+ " def Fly(self):\n",
+ " print \"A Pigeon flies away...\"\n",
+ "class Chicken(Bird):\n",
+ " def Talk(self):\n",
+ " print \"Cluk!Cluk!\"\n",
+ " def Fly(self):\n",
+ " print \"I'm just a chicken- I can't fly!\"\n",
+ "pPegion=Pigeon()\n",
+ "pChicken=Chicken()\n",
+ "pPegion.Talk()\n",
+ "pChicken.Talk()\n",
+ "pBird=Bird()\n",
+ "data=pBird.Talk()\n",
+ "if data==-1:\n",
+ " print \"Error!-Program ended\"\n",
+ " exit()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Coo!Coo!\n",
+ "Cluk!Cluk!\n",
+ "Error!-Program ended\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5, Page No.142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Rect:\n",
+ " height=0\n",
+ " width=0\n",
+ " def __init__(self,initWidth,initHeight):\n",
+ " self.height=initHeight\n",
+ " self.width=initWidth\n",
+ " def getArea(self):\n",
+ " return self.height*self.width\n",
+ " def getEdge(self):\n",
+ " return ((2*self.height)+(2*self.width)) \n",
+ " def Draw(self):\n",
+ " for i in range(0,self.height):\n",
+ " for j in range(0,self.width):\n",
+ " print \"X\",\n",
+ " print \"\\n\"\n",
+ "\n",
+ "pQuad=Rect(7,3)\n",
+ "pSquare=Rect(5,5)\n",
+ "\n",
+ "pQuad.Draw()\n",
+ "print \"Area is:\",pQuad.getArea()\n",
+ "print \"Perimeter is:\",pQuad.getEdge()\n",
+ "\n",
+ "pSquare.Draw()\n",
+ "print \"Area is:\",pSquare.getArea()\n",
+ "print \"Perimeter is:\",pSquare.getEdge()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "X X X X X X X \n",
+ "\n",
+ "X X X X X X X \n",
+ "\n",
+ "X X X X X X X \n",
+ "\n",
+ "Area is: 21\n",
+ "Perimeter is: 20\n",
+ "X X X X X \n",
+ "\n",
+ "X X X X X \n",
+ "\n",
+ "X X X X X \n",
+ "\n",
+ "X X X X X \n",
+ "\n",
+ "X X X X X \n",
+ "\n",
+ "Area is: 25\n",
+ "Perimeter is: 20\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6, Page No.144"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Boat:\n",
+ " length=0\n",
+ " def getLength(self):\n",
+ " return self.length\n",
+ "class Sailboat(Boat):\n",
+ " mast=0\n",
+ " def getMast(self):\n",
+ " return self.mast\n",
+ "class Laser(Sailboat):\n",
+ " def __init__(self):\n",
+ " self.mast=19\n",
+ " self.length=35\n",
+ " def Model(self):\n",
+ " print \"Laser Classic:\"\n",
+ " def Boom(self):\n",
+ " print \"Boom: 14ft\"\n",
+ "pLaser=Laser()\n",
+ "pLaser.Model()\n",
+ "print \"Length:\",pLaser.getLength(),\"ft\"\n",
+ "print \"Height:\",pLaser.getMast(),\"ft\"\n",
+ "pLaser.Boom()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Laser Classic:\n",
+ "Length: 35 ft\n",
+ "Height: 19 ft\n",
+ "Boom: 14ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7, Page No.147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Calculator:\n",
+ " status=\"true\"\n",
+ " num1=0.0\n",
+ " num2=0.0\n",
+ " oper='+'\n",
+ " def __init__(self):\n",
+ " self.status=\"true\"\n",
+ " def launch(self):\n",
+ " print \"***SUM CALCULATOR***\"\n",
+ " print \"Enter a number, an operator (+,-,*,/), and another number\\nEnter Zero to exit\"\n",
+ " def readInput(self):\n",
+ " print \">\",\n",
+ " self.num1=float(raw_input())\n",
+ " if self.num1==0:\n",
+ " self.status=\"false\"\n",
+ " else:\n",
+ " self.oper=raw_input()\n",
+ " self.num2=float(raw_input())\n",
+ " def writeOutput(self):\n",
+ " if self.status==\"true\":\n",
+ " if self.oper=='+':\n",
+ " print self.num1+self.num2\n",
+ " elif self.oper=='-':\n",
+ " print self.num1-self.num2\n",
+ " elif self.oper=='*':\n",
+ " print self.num1*self.num2\n",
+ " elif self.oper=='/':\n",
+ " if self.num2!=0:\n",
+ " print self.num1/self.num2\n",
+ " else:\n",
+ " print \"Cannot divide by zero\"\n",
+ " def run(self):\n",
+ " return self.status\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "pCalc=Calculator()\n",
+ "pCalc.launch()\n",
+ "while (pCalc.run()==\"true\"):\n",
+ " pCalc.readInput()\n",
+ " pCalc.writeOutput()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " ***SUM CALCULATOR***\n",
+ "Enter a number, an operator (+,-,*,/), and another number\n",
+ "Enter Zero to exit\n",
+ ">"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "32\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "+\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "32\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 64.0\n",
+ ">"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5.25\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "-\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8.75\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " -3.5\n",
+ ">"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "*\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 24.0\n",
+ ">"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "/\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 4.0\n",
+ ">"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "/\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Cannot divide by zero\n",
+ ">"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file