Facebook
From Beige Agouti, 5 Years ago, written in Python.
This paste is a reply to Re: zadanie from Denim Marmoset - go back
Embed
Viewing differences between Re: zadanie and Re: Re: zadanie
# -*- coding: cp1250 -*-

import random
import math
import turtle
import time
class punkt(object):
    def __init__(self,x,y):
        self.__x=x
        self.__y=y

    def getxy(self):
        return(self.__x,self.__y)

    def draw(self):
        turtle.speed(0)
        turtle.up()
        turtle.goto(self.__x,self.__y)
        turtle.dot()
        turtle.write(turtle.pos())

class wektor(object):
    def __init__(self,start,koniec):
        self.__start=start
        self.__koniec=koniec

    def getwektor(self):
        return(self.__start.getxy(),self.__koniec.getxy())

    def draww(self):
draww(self,px,py):
        turtle.up()
        turtle.goto(self.__start.getxy()[0],self.getxy()[0]+px,self.__start.getxy()[1])
getxy()[1]+py)
        turtle.write(turtle.pos())
write(str(self.__start.getxy()[0])+"; "+str(self.__start.getxy()[1]))
        turtle.down()
        turtle.goto(self.__koniec.getxy()[0],self.getxy()[0]+px,self.__koniec.getxy()[1])
getxy()[1]+py)
        turtle.write(turtle.pos())

write(str(self.__koniec.getxy()[0])+"; "+str(self.__koniec.getxy()[1]))
        turtle.up()

    def dlugosc(self):
        a = math.sqrt((self.__start.getxy()[0]+self.__koniec.getxy()[0])**2+(self.__start.getxy()[1]+self.__koniec.getxy()[1])**2)
        return a

def sortuj(list1):
    for i in range(1,len(list1)):
        key=list1[i]
        j=i-1
        while j>=0 and (list1[j].getxy()[0]>key.getxy()[0]) or (list1[i].getxy()[0]==key.getxy()[0] and list1[i].getxy()[1]>key.getxy()[1]):
            list1[j+1]=list1[j]
            j=j-1
        list1[j+1]=key


list1[j+1]=key

przypadki = []
turtle.speed(0)
for r in range(0,10):
    listap = []
    for x in range(5):
        a = punkt(random.randint(-300,300),random.randint(-300,300))
        listap.append(a)

    wektory = []
    dl = 0
    for x in range(0,len(listap)-1):
        a = wektor(listap[x],listap[x+1])
        dl = dl + a.dlugosc()
        wektory.append(a)
    for x in wektory:
        x.draww(-400,0)


    sortuj(listap)
    dl2 = 0
    wektoryp = []
    for x in range(0,len(listap)-1):
        a = wektor(listap[x],listap[x+1])
        dl2 = dl2 + a.dlugosc()
        wektoryp.append(a)

    for x in wektoryp:
        x.draww(400,0)

    turtle.goto(-300,-320)
    turtle.write("dlugosc = " + str(dl))
    turtle.goto(300,-320)
    turtle.write("dlugosc = " + str(dl2))
    przypadki.append((r,dl,dl2))
    
listap = []
for x in range(20):
    a = punkt(random.randint(-300,300),random.randint(-300,300))
    listap.append(a)


wektory = []
for x in range(0,len(listap)-1):
    a = wektor(listap[x],listap[x+1])
    wektory.append(a)

for x in wektory:
    x.draww()
    
    turtle.clear()
turtle.done()


done()

print(przypadki)
print("Liczba przypadkow: " + str(len(przypadki)))
for x in range(0,len(przypadki)):
    licznika = 0
    licznikb = 0
    if przypadki[x][1]>przypadki[x][2]:
        licznika = licznika+1
    elif przypadki[x][1]         licznikb = licznikb+1
    else:
        print("Nieznany blad")
        break

print("Przypadki w ktorych nieposortowane wektory byly dłuzsze " + str(licznika))
print("Przypadki w ktorych nieposortowane wektory byly krotsze " + str(licznikb))