summaryrefslogtreecommitdiff
path: root/Mastering_C/chapter6.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Mastering_C/chapter6.ipynb')
-rw-r--r--Mastering_C/chapter6.ipynb603
1 files changed, 603 insertions, 0 deletions
diff --git a/Mastering_C/chapter6.ipynb b/Mastering_C/chapter6.ipynb
new file mode 100644
index 00000000..99bf0cd9
--- /dev/null
+++ b/Mastering_C/chapter6.ipynb
@@ -0,0 +1,603 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2b98cee86e6322a41a7dca7a85df32b68e0995a4fde2b6249b408a952c9387e4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: Scope & Extent"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example scope1.c, page no. 202"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#as mentioned in the textbook, the statement j = 30 will not give an error as in Python you can declare a vairable anywhere\n",
+ "#however, the statement does not refer to the variable j of the function.\n",
+ "def func():\n",
+ " j = 20\n",
+ " print \"j is a variable in the function\"\n",
+ " print \"Value of j is \",j\n",
+ "i = 10\n",
+ "print \"i is a variable in main.\"\n",
+ "print \"Value of i is \", i\n",
+ "print \"Calling func...\"\n",
+ "func()\n",
+ "j = 30"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i is a variable in main.\n",
+ "Value of i is 10\n",
+ "Calling func...\n",
+ "j is a variable in the function\n",
+ "Value of j is 20\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example global.c, page no. 202"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "g = 0\n",
+ "def func():\n",
+ " global g\n",
+ " print \"In func. g is visbile here, since it is global\"\n",
+ " print \"Incrementing g in func...\"\n",
+ " g += 1\n",
+ " return g\n",
+ "print \"In main. g is visible here, since it is global\"\n",
+ "print \"assigning 20 to g in main...\"\n",
+ "g = 20\n",
+ "print \"Callint func...\"\n",
+ "func()\n",
+ "print \"func returned g is \", g"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In main. g is visible here, since it is global\n",
+ "assigning 20 to g in main...\n",
+ "Callint func...\n",
+ "In func. g is visbile here, since it is global\n",
+ "Incrementing g in func...\n",
+ "func returned g is 21\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example colcolon.c, page no. 203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#there is no concept of scope resolution operator in Python. we will do it in different way\n",
+ "a = 10\n",
+ "def func():\n",
+ " global a\n",
+ " b = 20\n",
+ " print b\n",
+ " print a\n",
+ "func()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "20\n",
+ "10\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, page no. 204"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#there is no concept of block in Python. writing if True is smiliar to it but still, output will differ\n",
+ "j = 144\n",
+ "print \"The value of j outside the block is \", j\n",
+ "if True:\n",
+ " j = 12\n",
+ " print \"The value of j inside the block is \", j\n",
+ "print \"The value of j outside the block is \", j"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of j outside the block is 144\n",
+ "The value of j inside the block is 12\n",
+ "The value of j outside the block is 12\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, page no. 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "i = 144\n",
+ "j = 132\n",
+ "print \"i = \", i\n",
+ "if True:\n",
+ " k = 12\n",
+ " k = int(raw_input())\n",
+ " i = i%k\n",
+ "if i == 0:\n",
+ " print \"i is a divisor of %d \" %k"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i = 144\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "25\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3, page no. 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "iNum = 5\n",
+ "jNum = 30\n",
+ "if True:\n",
+ " iNum = 10\n",
+ " print \"%d %d\" %(iNum, jNum)\n",
+ "print \"%d %d\" %(iNum, jNum)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10 30\n",
+ "10 30\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7, page no. 207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "cName = raw_input(\"Enter a string: \")\n",
+ "print \"The reverse of the string is: \"\n",
+ "print cName[::-1]"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a string: this is a string\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The reverse of the string is: \n",
+ "gnirts a si siht\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4 pageno : 206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "iGlobal = 35\n",
+ "Number = 47\n",
+ "iVal = 99\n",
+ "Number = 1000\n",
+ "print \"The value of local variable Number is %d\"%Number\n",
+ "print \"The value of global variable iGlobal is %d\"%iGlobal\n",
+ "print \"The value of global variable Number is %d\"%Number\n",
+ "print \"The value of static global variable iVal is %d\"%iVal\n",
+ "\n",
+ "# Python has no static functionality. and also local variable changes value when value assigned to it."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of local variable Number is 1000\n",
+ "The value of global variable iGlobal is 35\n",
+ "The value of global variable Number is 1000\n",
+ "The value of static global variable iVal is 99\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5, page no. 208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "Count = 1\n",
+ "def PrintCount():\n",
+ " global Count\n",
+ " print \"Count = %d\" %Count\n",
+ " Count = Count + 1\n",
+ "PrintCount()\n",
+ "PrintCount()\n",
+ "PrintCount()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Count = 1\n",
+ "Count = 2\n",
+ "Count = 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6, page no.208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "uF1 = 0\n",
+ "uF2 = 1\n",
+ "def PrintNextFibo():\n",
+ " global uF1,uF2\n",
+ " uFpre = uF1 + uF2\n",
+ " print \"%d\" %uFpre ,\n",
+ " uF2 = uF1\n",
+ " uF1 = uFpre\n",
+ "print \"Fibonacci sequences using static variables :\"\n",
+ "print \"Enter how many number are to be generated :\",\n",
+ "itotNum = int(raw_input())\n",
+ "print \"The first %d fibonacci numbers are\" %itotNum\n",
+ "for iIndex in range(1,itotNum+1):\n",
+ " PrintNextFibo()\n",
+ "\n",
+ "# it starts with zero but here function created called uses global variable so we need to print/assume manually zero value."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fibonacci sequences using static variables :\n",
+ "Enter how many number are to be generated :"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The first 5 fibonacci numbers are\n",
+ "1 1 2 3 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example on page no. 209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import linsrch\n",
+ "import bubble\n",
+ "arr = []\n",
+ "num = 5\n",
+ "i = 0\n",
+ "pos = 1\n",
+ "print \"Enter five elements\"\n",
+ "while i < num:\n",
+ " arr.append(int(raw_input()))\n",
+ " i+=1\n",
+ "print \"Enter element to be searched: \",\n",
+ "key = int(raw_input())\n",
+ "pos = linsrch.LinSrch(arr, num, key)\n",
+ "if pos:\n",
+ " print \"Element %d found at %d position\" %(key, pos)\n",
+ "else:\n",
+ " print \"Ellement %d not found\" %key\n",
+ "bubble.BubSort(arr, num)\n",
+ "print \"The sorted element are\"\n",
+ "for ele in arr:\n",
+ " print ele,"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter five elements\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "12\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "15\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "56\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "48\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "22\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter element to be searched: "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "22\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Element 22 found at 5 position\n",
+ "The sorted element are\n",
+ "12 15 22 48 56\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example on page no. 211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import myglobal\n",
+ "globalVar = 10\n",
+ "print \"globalVar before calling = \", globalVar\n",
+ "myglobal.inc_global(globalVar)\n",
+ "print \"globalVar after calling \", globalVar"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "globalVar before calling = 10\n",
+ "globalVar after calling 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example on page no. 212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import myglobal\n",
+ "\n",
+ "globalVar = 10\n",
+ "print \"globalVar before calling = \", globalVar\n",
+ "g = myglobal.inc_global(globalVar)\n",
+ "print \"globalVar after calling \", g"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "globalVar before calling = 10\n",
+ "globalVar after calling 11\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file