{
 "metadata": {
  "name": "",
  "signature": "sha256:7c77241a39b4d43ac95986ef692466eff990f0d448827fcae58b424fe3cd8b1d"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "Chapter 8: Arrays"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example reverse.c, Page 164"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "N=10\n",
      "li = raw_input(\"Enter %d numbers: \" % N) #accepting input in list\n",
      "a = map(int, li.split()) \n",
      "print \"In reverse order: \",\n",
      "for i in a[::-1]: #print reversed list\n",
      "    print i,"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "name": "stdout",
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Enter 10 numbers: 34 82 49 102 7 94 23 11 50 31\n"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "In reverse order:  31 50 11 23 94 7 102 49 82 34\n"
       ]
      }
     ],
     "prompt_number": 5
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example repdigit.c, Page 166"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "digit_seen=[False]*10 #initialise with false\n",
      "n=int(raw_input(\"Enter a number: \"))#input number\n",
      "while(n>0): #calculate if any digit repeated\n",
      "    digit=n%10\n",
      "    if (digit_seen[digit]==True):\n",
      "        break\n",
      "    digit_seen[digit]=True\n",
      "    n=n/10\n",
      "if(n>0): \n",
      "    print \"Repeated digit\" #print result\n",
      "else:\n",
      "    print \"No repeated digit\""
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "name": "stdout",
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Enter a number: 28212\n"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Repeated digit\n"
       ]
      }
     ],
     "prompt_number": 7
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example interest.c, Page 169"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import sys\n",
      "#initialisation\n",
      "value=[None]*5 \n",
      "NUM_RATES=int(sys.getsizeof(value)/sys.getsizeof(value[0]))-1\n",
      "INITIAL_BALANCE=100.00\n",
      "#accept input\n",
      "low_rate=int(raw_input(\"Enter interest rate: \"))\n",
      "num_years=int(raw_input(\"Enter number of years: \"))\n",
      "print \"\"\n",
      "#print calculated result table\n",
      "print \"Years\",\n",
      "for i in range (NUM_RATES):\n",
      "    print \"%6d%%\" % (low_rate + i),\n",
      "    value[i]=INITIAL_BALANCE\n",
      "print \"\"\n",
      "for year in range (num_years):\n",
      "    print \"%3d\\t\"%(year+1),\n",
      "    for i in range (NUM_RATES):\n",
      "        value[i]=value[i]+ (low_rate+i)/100.0*value[i]\n",
      "        print \"%7.2f\"%value[i],\n",
      "    print \"\"\n",
      "    "
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "name": "stdout",
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Enter interest rate: 6\n"
       ]
      },
      {
       "name": "stdout",
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Enter number of years: 5\n"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "Years      6%      7%      8%      9%     10% \n",
        "  1\t 106.00  107.00  108.00  109.00  110.00 \n",
        "  2\t 112.36  114.49  116.64  118.81  121.00 \n",
        "  3\t 119.10  122.50  125.97  129.50  133.10 \n",
        "  4\t 126.25  131.08  136.05  141.16  146.41 \n",
        "  5\t 133.82  140.26  146.93  153.86  161.05 \n"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example deal.c, Page 173"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import random\n",
      "#initialisation\n",
      "NUM_SUITS=4\n",
      "NUM_RANKS=13\n",
      "in_hand = [[False for i in xrange(13)] for i in xrange(4)]\n",
      "rank_code=['2','3','4','5','6','7','8','9','t','j','q','k','a']\n",
      "suit_code=['c','d','h','s']\n",
      "#accet input\n",
      "num_cards=int(raw_input(\"Enter number of cards in hand: \"))\n",
      "print \"Your hand: \",\n",
      "while(num_cards>0):\n",
      "    suit=random.randint(0,(NUM_SUITS-1)) #generate random suit\n",
      "    rank=random.randint(0,(NUM_RANKS-1)) #generate random rank\n",
      "    if (in_hand[suit][rank]!=True):\n",
      "        in_hand[suit][rank]=True\n",
      "        num_cards=num_cards-1\n",
      "        #print hand\n",
      "        print \"%c%c\" % (rank_code[rank],suit_code[suit]),\n",
      "print \"\""
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "name": "stdout",
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Enter number of cards in hand: 5\n"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Your hand:  9h 4d 5d 3d ad \n"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example reverse2.c, Page 174"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "n=int(raw_input(\"How many numbers do you want to reverse?\")) #accept number of elements\n",
      "li = raw_input(\"Enter %d numbers: \" % n) #accepting input in list\n",
      "a = map(int, li.split())\n",
      "print \"In reverse order: \", #print reversed list\n",
      "for i in a[::-1]:\n",
      "    print i,"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "name": "stdout",
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "How many numbers do you want to reverse?10\n"
       ]
      },
      {
       "name": "stdout",
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Enter 10 numbers: 34 82 49 102 7 94 23 11 50 31\n"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "In reverse order:  31 50 11 23 94 7 102 49 82 34\n"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}