Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- import sys
- print("Witaj w programie znajdującym dzielniki wielomianu wykorzystującym schemat Hornera")
- n = int(input("Podaj stopień wielomianu n = "))
- if n < 0:
- print("Stopień wielomianu musi być liczbą nieujemną!")
- input("Wciśnij dowolny klaiwsz aby kontynuować...")
- sys.exit(0)
- else:
- wspol = [] #szyk zmiennych współczynników wielomianów n-tego stopnia
- i = 0
- while i <= n: #generowanie szyku
- wspol.append("stopien"+str(i))
- i += 1
- dlug = len(wspol)
- stopien0 = float(input("Podaj wyraz wolny "))
- wspol[0] = stopien0
- if wspol[0] == int(wspol[0]):
- wspol[0] = int(wspol[0])
- it = 1
- while it < dlug: #nadawanie wartości współczynnikom
- wspol[it] = float(input("Podaj współczynnik przy potędze "+str(it)+" stopnia "))
- if wspol[it] == int(wspol[it]):
- wspol[it] = int(wspol[it])
- it +=1
- itp = 1
- print("Twój wielomian ma postać ", stopien0 ,sep='', end='', flush=True)
- while itp <len(wspol):
- print("+(",wspol[itp],")x^",itp,sep='', end='', flush=True)
- itp +=1
- #===========================================teraz kod odpowiadajacy za obliczenia=====================================================
- print("\n", end='\n')
- dzielnikia = [] #array dzielnikow wspolczynnika przy najwyzszej potedze
- dzielnikiwyraz = [] #array dzielnikow wyrazu wolnego
- dzielnika = (-1)*wspol[dlug-1]
- dzielnikwyraz = (-1)*stopien0
- print("Oto dzielniki wyrazu wolnego")
- while dzielnikwyraz <= stopien0:
- try:
- if stopien0%dzielnikwyraz==0:
- if dzielnikwyraz == int(dzielnikwyraz):
- dzielnikwyraz = int(dzielnikwyraz)
- dzielnikiwyraz.append(dzielnikwyraz)
- print(dzielnikwyraz)
- dzielnikwyraz +=1
- except ZeroDivisionError:
- dzielnikwyraz +=1
- while dzielnikwyraz <= stopien0:
- if stopien0%dzielnikwyraz==0:
- dzielnikiwyraz.append(dzielnikwyraz)
- print(dzielnikwyraz)
- dzielnikwyraz +=1
- print("Oto dzielniki współczynnika najwyższej potęgi")
- while dzielnika <= wspol[dlug-1]:
- try:
- if wspol[dlug-1]%dzielnika==0:
- if dzielnika==int(dzielnika):
- dzielnika = int(dzielnika)
- dzielnikia.append(dzielnikia)
- print(dzielnika)
- dzielnika +=1
- except ZeroDivisionError:
- dzielnika +=1
- while dzielnika <= wspol[dlug-1]:
- if wspol[dlug-1]%dzielnika==0:
- dzielnikia.append(dzielnika)
- print(dzielnika)
- dzielnika +=1
- idz = 0 #iterator dzielnika
- iwsp = dlug-1 #iterator wspolczynnika potęgi uporządkwoane od zerowej
- dlugd = len(dzielnikiwyraz) #dlugosc array dzielnika
- while idz <dlugd:
- o1=(wspol[iwsp]*dzielnikiwyraz[idz]) #o1 ro
- iwsp -=1
- o1+=wspol[iwsp]
- while 0<=iwsp:
- iwsp-=1
- a = o1*dzielnikwyraz[idz]
- iwsp-=1
- a+=wspol[iwsp]
- print("Dla dzielnika"+dziennikiwyraz[idz])
- print(a)
- if a == 0:
- print("x-("+a+") To miejsce zerowe wielomianu")
- idz +=1
- input("\nwcisnij dowolny klawisz aby zakonczyc program")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement