SHARE
TWEET

Untitled

a guest Nov 13th, 2019 79 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import math
  2. import sys
  3.  
  4. print("Witaj w programie znajdującym dzielniki wielomianu wykorzystującym schemat Hornera")
  5. n = int(input("Podaj stopień wielomianu n = "))
  6. if n < 0:
  7.     print("Stopień wielomianu musi być liczbą nieujemną!")
  8.     input("Wciśnij dowolny klaiwsz aby kontynuować...")
  9.     sys.exit(0)
  10. else:
  11.     wspol = [] #szyk zmiennych współczynników wielomianów n-tego stopnia
  12.     i = 0
  13.     while i <= n: #generowanie szyku
  14.         wspol.append("stopien"+str(i))
  15.         i += 1
  16.     dlug = len(wspol)
  17.     stopien0 = float(input("Podaj wyraz wolny "))
  18.     wspol[0] = stopien0
  19.     if wspol[0] == int(wspol[0]):
  20.         wspol[0] = int(wspol[0])
  21.     it = 1
  22.     while it < dlug: #nadawanie wartości współczynnikom
  23.         wspol[it] = float(input("Podaj współczynnik przy potędze "+str(it)+" stopnia "))
  24.         if wspol[it] == int(wspol[it]):
  25.             wspol[it] = int(wspol[it])
  26.         it +=1
  27.     itp = 1
  28.     print("Twój wielomian ma postać ", stopien0 ,sep='', end='', flush=True)
  29.     while itp <len(wspol):
  30.         print("+(",wspol[itp],")x^",itp,sep='', end='', flush=True)
  31.         itp +=1
  32.     #===========================================teraz kod odpowiadajacy za obliczenia=====================================================
  33.     print("\n", end='\n')
  34.     dzielnikia = [] #array dzielnikow wspolczynnika przy najwyzszej potedze
  35.     dzielnikiwyraz = [] #array dzielnikow wyrazu wolnego
  36.     dzielnika = (-1)*wspol[dlug-1]
  37.     dzielnikwyraz = (-1)*stopien0
  38.     print("Oto dzielniki wyrazu wolnego")
  39.     while dzielnikwyraz <= stopien0:
  40.         try:
  41.             if stopien0%dzielnikwyraz==0:
  42.                 if dzielnikwyraz == int(dzielnikwyraz):
  43.                     dzielnikwyraz = int(dzielnikwyraz)
  44.                 dzielnikiwyraz.append(dzielnikwyraz)
  45.                 print(dzielnikwyraz)
  46.             dzielnikwyraz +=1
  47.         except ZeroDivisionError:
  48.             dzielnikwyraz +=1
  49.             while dzielnikwyraz <= stopien0:
  50.                 if stopien0%dzielnikwyraz==0:
  51.                     dzielnikiwyraz.append(dzielnikwyraz)
  52.                     print(dzielnikwyraz)
  53.                 dzielnikwyraz +=1
  54.     print("Oto dzielniki współczynnika najwyższej potęgi")
  55.     while dzielnika <= wspol[dlug-1]:
  56.         try:
  57.             if wspol[dlug-1]%dzielnika==0:
  58.                 if dzielnika==int(dzielnika):
  59.                     dzielnika = int(dzielnika)
  60.                 dzielnikia.append(dzielnikia)
  61.                 print(dzielnika)
  62.             dzielnika +=1
  63.         except ZeroDivisionError:
  64.             dzielnika +=1
  65.             while  dzielnika <= wspol[dlug-1]:
  66.                 if wspol[dlug-1]%dzielnika==0:
  67.                     dzielnikia.append(dzielnika)
  68.                     print(dzielnika)
  69.                 dzielnika +=1
  70.     idz = 0 #iterator dzielnika
  71.     iwsp = dlug-1 #iterator wspolczynnika potęgi uporządkwoane od zerowej
  72.     dlugd = len(dzielnikiwyraz) #dlugosc array dzielnika
  73.     while idz <dlugd:
  74.         o1=(wspol[iwsp]*dzielnikiwyraz[idz]) #o1 ro
  75.         iwsp -=1
  76.         o1+=wspol[iwsp]
  77.         while 0<=iwsp:
  78.             iwsp-=1
  79.             a = o1*dzielnikwyraz[idz]
  80.             iwsp-=1
  81.             a+=wspol[iwsp]
  82.         print("Dla dzielnika"+dziennikiwyraz[idz])
  83.         print(a)
  84.         if a == 0:
  85.             print("x-("+a+") To miejsce zerowe wielomianu")
  86.         idz +=1
  87.        
  88.            
  89.  
  90.            
  91.    
  92.     input("\nwcisnij dowolny klawisz aby zakonczyc program")
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top