Porównania na planszy

Porównywanie tekstów: palindromy i anagramy - Informatyka - technikum klasa 1 (Python)

Plansza pokazuje działanie dwóch wskaźników. Litery stoją w rzędzie, a każda porównana para jest połączona łukiem: **zielonym**, gdy znaki są równe, **czerwonym**, gdy się różnią. Zewnętrzny łuk to pierwsze porównanie (`text[0]` i `text[-1]`), kolejne są coraz płytsze i bliżej środka. W słowie `kalkulak` widać, gdzie palindrom się "psuje".

arrow = Sprite()
arrow.image = 16
arrow.size = 10
world.add(arrow)
def show(text, y):
    for i, ch in enumerate(text):
        letter = Sprite()
        letter.text = ch
        letter.size = 12
        letter.position = (-90 + 10 * i, y)
        world.add(letter)

def link(i, j, depth):
    x1 = -90 + 10 * i
    x2 = -90 + 10 * j
    arrow.pen.on = False
    arrow.position = (x1, -10)
    arrow.pen.on = True
    arrow.position = (x1, -10 - depth)
    arrow.position = (x2, -10 - depth)
    arrow.position = (x2, -10)

def compare(text):
    i = 0
    j = len(text) - 1
    depth = 8 * (len(text) // 2)
    while i < j:
        if text[i] == text[j]:
            arrow.pen.color = (22, 163, 74)
        else:
            arrow.pen.color = (220, 38, 38)
        link(i, j, depth)
        i += 1
        j -= 1
        depth -= 8

text = "kalkulak"
show(text, 0)
compare(text)

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Informatyka - technikum klasa 1·Zaloguj się, aby zapisać postęp na koncie.