Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.45 KB | None | 0 0
  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")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement