WDI – zajęcia 4

Zadania powtórkowe:

1. Napisz rekurencyjną funkcję check_sort(v), która sprawdzi, czy lista v jest posortowana (ściśle, rosnąco lub malejąco).

2. Weźmy funkcję f zdefiniowaną następująco:

def f(n):
    if n % 2 == 0:
        return n / 2
    else:
        return 3*n + 1

Napisz rekurencyjną funkcję collatz_steps(n), która zwróci dla zadanego n liczbę elementów ciągu n, f(n), f(f(n)), …, potrzebnych do osiągnięcia 1. Np.

collatz_steps(1) == 0
collatz_steps(4) == 2

3. Napisz 2 wersje (iteracyjną i rekurencyjną) funkcji incr_segment(v), która dla zadanej listy v zwróci jej najdłuższy rosnący segment (spójny kawałek).

4. (★) Napisz rekurencyjną funkcję rev_number(n), która dla danej liczby całkowitej n zwróci liczbę powstałą z n poprzez odwócenie porządku cyfr (np. rev_number(123)=321). Uwaga: chodzi o rozwiązanie używające wyłącznie operacji na liczbach całkowitych.

Operacje na napisach:

5. Używając maksymalnie trzech wywołań funkcji strip, rstrip, lstrip należy przekształcić:

  • ‘abcccbca’ w ‘ccc’
  • ‘bababa’ w ‘ab’

6. Zastąp spacje przez myślniki w napisie lorem ipsum dolor sit amet, consectetur Adipiscing elit . nunc sit amet ligula in nisi varius mattis nec a urna . phasellus tristique vehicula elit id imperdiet. lorem ipsum dolor sit amet , consectetur adipiscing Elit. Nunc orci libero, accumsan quis Cursus vel , pretium nec dui. Nunc lobortis mollis felis, at malesuada velit volutpat Id. Pellentesque Quis iaculis massa . vestibulum Commodo Egestas fringilla . proin quis justo nunc. Nam sed ultricies orci. curabitur adipiscing , Dolor vel rhoncus Accumsan , sapien tellus volutpat eros , At luctus mi augue sit Amet turpis . Aliquam sagittis, lacus id commodo volutpat , erat Justo auctor massa, in faucibus quam lectus et libero. curabitur laoreet Risus in urna aliquet Vel fringilla felis volutpat. morbi Suscipit purus Velit . “ używając:

  • funkcji replace
  • funkcji split i join

7. Napisz skrypt, który dokona korekty tekstu z poprzedniego ćwiczenia:

  • każde słowo rozpoczynające zdanie musi zaczynać się z dużej litery,
  • pozostałe słowa zaczynają się z małej litery,
  • sąsiednie słowa muszą być rozdzielone dokładnie jedną spacją,
  • znaki interpunkcyjne przylegają do poprzedzającego je słowa,
  • tekst rozpczyna się od słowa, a kończy kropką (należy usunąć zbędne białe znaki).

Zadania z kolokwiów:
Kolokwium 2012:
– zadanie 1 – segmenty (było na kartkówce)
Kolokwium poprawkowe 2012:
– zadanie 2 i 3 – quasindromy
– zadanie 1 – ceny

Leave a Reply

Your email address will not be published. Required fields are marked *