Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def set_real_part(number,rpart):
- number["real_part"]=rpart
- def get_real_part(number):
- return number["real_part"]
- def set_imaginary_part(number,ipart):
- number["imaginary_part"]=ipart
- def get_imaginary_part(number):
- return number["imaginary_part"]
- def create_number(rpart, ipart):
- '''
- Create a number
- input:
- rpart-the real part
- ipart- the imaginary part
- output: n- the list with the new number added into it
- '''
- n={}
- set_real_part(n,rpart)
- set_imaginary_part(n,ipart)
- return n
- def print_menu():
- '''
- Print the menu
- '''
- print("1.Add a number")
- print("2.Display the list")
- print("3.Display the longest sequence of numbers with increasing real part")
- print("4.Display the longest sequence of numbers having their modulus in the [0,10] range")
- print("5.Exit")
- def show_numbers(data):
- '''
- Display the entire list of numbers
- input:
- data- the list
- output: print the numbers from list
- '''
- print("List of numbers")
- for n in data:
- print("["+str(get_real_part(n))+","+str(get_imaginary_part(n))+"]")
- def init_number_list():
- '''
- Add the following numbers to the list
- input:
- res-an empty list
- output:
- res-the final list
- '''
- res=[]
- res.append(create_number(2,7))
- res.append(create_number(-1,3))
- res.append(create_number(2,7))
- res.append(create_number(7,3))
- res.append(create_number(1,7))
- res.append(create_number(3,1))
- res.append(create_number(4,5))
- res.append(create_number(11,-6))
- res.append(create_number(19,-3))
- res.append(create_number(-3,3))
- return res
- def read_number():
- '''
- Read a number
- input: the real and the imaginary part
- output: the introduced number
- '''
- rpart=int(input("enter the real part: "))
- ipart=int(input("enter the imaginary part: "))
- return create_number(rpart, ipart)
- def add_number(numbers):
- '''
- Add number to list
- params:
- numbers- the list
- output: add the number to the list
- '''
- n=read_number()
- numbers.append(n)
- def increasing_real_part(numbers):
- '''
- Find the longest sequence of numbers having increasing modulus.
- input: numers - the list
- output: l - a list containing the longest sequence of numbers with increasing real part
- '''
- l=[]
- s=0
- max=0
- i=0
- while i<len(numbers)-1:
- if get_real_part(numbers[i])<get_real_part(numbers[i+1]):
- s+=1
- if s>=max:
- max=s+1
- position=i-s+1
- else:
- s=0
- i+=1
- while max!=0:
- l.append(create_number(get_real_part(numbers[position]),get_imaginary_part(numbers[position])))
- position+=1
- max-=1
- return l
- def modulus_in_range(numbers):
- '''
- Find the longest sequence of numbers having their modulus in the [0,10] range.
- input: numbers - the list
- output: l2 - a list containing the longest sequence of numbers having their modulus in the [0,10] range
- '''
- import math
- l2=[]
- s=0
- max=0
- i=0
- while i<len(numbers):
- mod=math.sqrt(get_real_part(numbers[i])*get_real_part(numbers[i])+get_imaginary_part(numbers[i])*get_imaginary_part(numbers[i]))
- if mod>=0 and mod<=10:
- s+=1
- if s>max:
- max=s
- position=i-s+1
- else:
- s=0
- i+=1
- while max!=0:
- l2.append(create_number(get_real_part(numbers[position]),get_imaginary_part(numbers[position])))
- position+=1
- max-=1
- return l2
- def start():
- numbers=init_number_list()
- while True:
- print_menu()
- choice=input(">")
- if choice == "1":
- add_number(numbers)
- elif choice == '2':
- show_numbers(numbers)
- elif choice=='3':
- result=increasing_real_part(numbers)
- show_numbers(result)
- elif choice=='4':
- result2=modulus_in_range(numbers)
- show_numbers(result2)
- elif choice == '5':
- break
- else:
- print("Bad command")
- start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement