Wyszukiwanie elementu¶
Gdzie w napisie jest a?¶
Napisz funkcję znajdz_a(napis)
, której wynikiem jest pozycja pierwszego wystąpienia litery a
w napisie lub 0
, gdy w napisie nie ma tej litery.
Wynikiem znajdz_a('mama')
jest 2
,
wynikiem znajdz_a('wujek')
jest 0
.
Zmodyfikuj funkcję tak, aby jej wynikiem była pozycja ostatniego wystapienia liery a
.
Element najmniejszy¶
Poniższa funkcja dla niepustego napisu zwraca indeks pierwszego wystąpienia elementu najmniejszego. Dokładniej, początkowo przyjmujemy, że najmniejszy element występuje na pozycji pierwszej (indeks – 0). Następnie porównujemy element zapamiętany (napis[naj]) z bieżącym elementem napisu napis[i]<napis[naj]
. Jeśli znaleźliśmy mniejszy, to zapamiętujemy jego indeks na zmiennej naj
. W ten sposób przeglądamy wszystkie elementy napisu. Na koniec zwracamy wartość zmiennej naj
– jest to indeks elementu najmniejszego.
Przeanalizuj działanie funkcji na kilku przykładach, a następnie zmodyfikuj tak, aby znajdowała element największy.
Zwrócić uwagę na kilka kwestii:
- funkcja zwraca indeks elementu najmniejszego tzn. jeżeli element występuje na pierwszej pozycji, wynikiem jest
0
, na drugiej – wynikiem jest1
itd.; - wynikiem funkcji jest indeks pierwszego wystąpienia elementu. Co trzeba zmodyfikować, by był to indeks ostatniego wystąpienia elementu najmniejszego?;
- argumentem funkcji jest napis – może być on złożony z samych cyfr, z samych liter, czy może być mieszany?
-
Q-1: Jaki będzie wynik funkcji dla napisu ‘4321’?
- 0
- 1
- 2
- 3
-
Q-2: Jaki będzie wynik funkcji dla napisu ‘algorytmika’?
- 0
- 1
- a
- b
-
Q-3: Jaki będzie wynik funkcji dla napisu ‘haslo1234’?
Podpowiedź: proszę sprawdzić kod ASCII dla litery a i 0.
- 1
- 2
- 5
- 6
Badamy sąsiadów¶
Znajdź pierwszą liczbę, która jest większa od swoich sąsiadów.
Proszę napisać funkcję sas(kod)
, której dla danego kodu – listy złożonej wyłącznie z liczb – wynikiem jest pozycja pierwszego wystąpienia liczby większej od obu swoich sąsiadów lub 0
, gdy taka liczba nie istnieje.
Wynikiem sas([1, 2, 4, 2, 13, 5, 16])
jest 3
,
wynikiem sas([1, 2, 4, 5, 13, 14, 16])
jest 0
.
W funkcji są błędy. Proszę je znaleźć i poprawić.