[SOLVED] ITI1120 Lab5-range function more for loops, “pointer/reference” variables, aliasing 

30.00 $

Category:
Click Category Button to View Your Next Assignment | Homework

You will receive the following solution file(s) instantly after successful payment:

zip file icon Lab5-61vyze.zip (427.8 KB)
Assignment Instructions Updated Recently? Submit Below and we will provide new Solution!
Submit New Instructions
🔒 Securely Powered by:
Secure Checkout
5/5 - (2 votes)

Lab #  5 lists  ,   range   function more    for   loops, “pointer/reference” variables,    aliasing

(This        is     a      very important      lab.  Please     make      sure        you  learn       and  understand    all    of     this  material)

Starting   Lab 5

  • Open a browser    and      log into    Brightspace
  • On the left hand   side     under  Labs    tab,    find     lab5     material    contained in   lab5-students.zip file
  • Download that     file to  the Desktop    and    unzip

Before   starting, always make   sure you  are   running   Python   3

This       slide      is    applicable  to   all   labs, exercises,   assignments     …    etc

ALWAYS      MAKE   SURE    FIRST    that      you are running       Python 3.4 (3.5

or 3.6   is    fine       too)

That      is,   when    you click      on  IDLE      (or start     Python any other    way)     look      at the first       line that      the Python shell displays.     It    should  say Python 3.4 or   3.5 or   3.6 (and      then      some    extra     digits)

If     you do  not know    how      to   do  this, read      the material      provided     with      Lab 1.   It    explains      it    step      by   step

Do  all   the exercises labeled as

Task in  your  head i.e. on  a paper

Later   on if   you    wish, you  can    type   them into    a  computer    (or copy/paste  from  the     solutions  once  I    poste them)

 

Study the     following     four   fundamental     algorithms:

 

Returns sum       of   all   positive       integers smaller than n

def summation(n): ‘’'(number)->number”’

odd_sum = 0 for num in range(n):

odd_sum = odd_sum + num

return odd_sum  Sum      of   numbers      in    a given     list  a.

A    solution with      loop      over      elements

def sum_list_v1(a): ”’ (list)->num ”’

list_sum = 0 for item in a:

list_sum = list_sum + item return list_sum

Returns   a     product of   all   positive       integers  smaller than      n

def product(n): ‘’'(number)->number’’’

prod = 1 for num in range(n):

prod = prod * num

return prod

Sum     of   numbers      in    a     given     list  a.

A   solution with      a     loop      over      indices

def sum_list_v2(a): ”’ (list)->num ”’

list_sum = 0 i = 0 for i in range(len(a)):

list_sum = list_sum + a[i] return list_sum 8

 

Task 4   and   Programming    Exercise     1

1.After studying the previous four fundamental functions, how would you modify them to only sum odd numbers (or odd list elements)? Try yourself and then see next step for solutions.

2.Open the file called four_functions.py Copy/paste, one by one, Example 1 to 4 into Python visualizer. Run through each example and understand how the solutions work and how the variables change in the loops. As always, you can find  python visualizer here (make sure you choose Python 3)

http://www.pythontutor.com/visualize.html#mode=edit

  1. Programming exercise: Write a function called ah(l,x,y) that given a list l, and integers x and y such that x <=y, returns two numbers. The first is the number of elements of l that are between x and y (including x and y). The second number is the minimum element of l that is between x and y (including x and y). Example test:

>>> t=[5, 1, -2.5, 10, 13, 8]

>>> ah(t, 2,11) (3, 5)

Recall    that you can  return     two numbers referred by        variables a      and b      by    just  returning       a      tuple                (a,b)

9

Task    5

How    many   stars    does    the      following  program   print?

  1. a) 0              b)                15    c)     45                        d)                                48             e)                68

10

Intermission: print    function   revisited

Built-in      function       print,     when    its   completes printing,      enters   a     new       line.       For example:

print(“This is”) print(“Lab 5”) Prints:

This is

Lab 5

As mentioned  in    the last lab, this default  behavior of   the print      function       can be   changed      by specifying    what     we  want     print      function to   end with.     For example:

print(“This is”, end=’***’)

print(“Lab 5.”)                  Would      This is***Lab 5

print(“This is”, end=”)         Print This isLab 6

print(“Lab 6”, end=’\n’)               This is Lab 7

print(“This is”, end=’ ‘)           =>

print(“Lab 7”)

In        other      words,    unless     specified otherwise,     the   default   end for   the  print       function is     end=’\n’

Introduction to Computing Using Python by Lj. Perkovic

More    examples   of use  of  print   function

Function  print prints, by default,

a newline character after printing its arguments

Task 6

  1. What does this print?
  2. What does this print?
  3. What does this print?

Task   7

What   does    the following      program   print?

14

Programming  Exercise 2: Experiment  with Perfect  Numbers

  • A positive       integer is    called   a    perfect number      if     it    is    equal    to   the sum      of   all of     its   positive    divisors,      excluding   itself.   For    example,    6 is perfect number      since    6=1+2+3.    The next      is    28=1+2+4+7+12.    There   are four    perfect numbers     less than      10,000.    Write    a     program     that      prints    all   these    four
  • Your program     should  have     a    function      called   is_perfect   that    takes    as   input    a     positive    integers      and returns True      if     it    is    perfect and False
  • Once you are     Modify  your    program      so   that       it    looks     for    all   perfect  numbers      smaller than    35   million. What    do   you notice?    Assuming    that       you computer    can    do   a     billion   instructions in    a     sec,    can you figure    out how      long,    roughly, will it    take      your    computer    to   find 5th perfect    number    (it is       33,550,336).      Is    the answer    roughly:              couple   of   minutes,    couple   of   hours,   couple   of   days,    …    weeks,  months,       years     ?
  • 15 What if you wanted to   wait      until      it    prints    6th perfect    number,      which    is    8,589,869,056?

Programming    Exercise  3a:

Arithmetic progression

Recall    that       a     sequence     of   numbers      forms an   arithmetic   progression if     the difference    between every     pair of   consecutive numbers      is    the same.    For example:     -5,  -1,  3,    7,    11   forms    an arithmetic   progression since     the difference    between every     pair of   consecutive numbers      is    4.    On  the contrary      5,    10,  15,  24,  29   is    not an   arithmetic progression since     the difference    between      some consecutive pairs      is    5     and some     4.    A    sequence that       has exactly  one number is    considered arithmetic,  too.

  • Write a    function    called    arithmetic that     takes   as  input   a    list of   numbers   and      returns    True    if    the numbers   of   the list    form    arithmetic    And    False   otherwise

Testing:

>>> arithmetic( [-5, -1, 3, 7, 11] )

True

>>> arithmetic([0, -1, 3, 7, 11])

False

>>> a = [5, 10, 15, 24, 29]

>>> arithmetic(a)

False

>>> arithmetic(a[:3])

True

Programming  Exercise  3b:  and  now … is  it  sorted?

Now      modify  your      method arithmetic   slightly  so that       instead it    tests      if     the numbers      in    the give lists are ordered for  smallest       to   largest.        Call the new       function       is_sorted

Testing:

>>> is_sorted([1, 1, 1, 7, 7])

True

>>> is_sorted([-10, -1, 3, 7, 100])

True

>>> is_sorted([0, 3, 1, 7, 11])

False

>>> a = [5, -10, 15, 24, 29]

>>> is_sorted(a)

False

>>> is_sorted(a[1:4])

True

Task 6: Flow    of execution

The the following two multiple choice questions:

https://runestone.academy/runestone/static/thinkcspy/Functions/FlowofExecutionSummary.html 

  • Lab5-61vyze.zip