Napisz program sprawdzający, czy dane słowo jest palindromem. Wykorzystaj do tego pierwszą metodę.
R7JG38BAvC5ba
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
1
Polecenie 1
Przeanalizuj prezentację. Porównaj z nią swoje rozwiązanie.
RoJlJcOojAwl41
Wysłuchaj nagrania abstraktu, wyodrębnij jego części i nadaj im tytuły.
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
Dla zainteresowanych
Jeśli chcesz zmierzyć się z trudniejszym przykładem, wykonaj Polecenie 2.
1
Polecenie 2
1
Zapisz program wyszukujący wszystkie palindromy zawarte w danym ciągu znaków. Jeśli chcesz powtórzyć ze szkoły podstawowej wiadomości na temat programowania za pomocą bloków, wykorzystaj blockly. W przeciwnym razie program zapisz, wykorzystując język programowania.
R1OC5o1tEmEPn1
Wymyśl pytanie na kartkówkę związane z tematem materiału.
Wymyśl pytanie na kartkówkę związane z tematem materiału.
RT6nlnk8iG2FV
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
1
1
R1VuHtYJ5wlKs
1. tekst = 'abaaba'
2. N = #tekst
3. palindromy = {}
4. i_inc = 1
5. if (1) > (N - 1) then
6. i_inc = -i_inc
7. end
8. for i = 1, N - 1, i_inc do
9. j_inc = 1
10. if (i + 2) > (N + 1) then
11. j_inc = -j_inc
12. end
13. for j = i + 2, N + 1, j_inc do
14. L = i
15. P = j - 1
16. T = true
17. while L < P do
18. if string.sub(tekst, L, L) ~= string.sub(tekst, P, P) then
19. T = false
20. break
21. end
22. L = L + 1
23. P = P + -1
24. end
25. if T then
26. podciag = string.sub(tekst, i, j - 1)
27. table.insert(palindromy, #palindromy + 1, podciag)
28. end
29. end
30. end
31. print(table.concat(palindromy, ' '))
1. tekst = 'abaaba'
2. N = #tekst
3. palindromy = {}
4. i_inc = 1
5. if (1) > (N - 1) then
6. i_inc = -i_inc
7. end
8. for i = 1, N - 1, i_inc do
9. j_inc = 1
10. if (i + 2) > (N + 1) then
11. j_inc = -j_inc
12. end
13. for j = i + 2, N + 1, j_inc do
14. L = i
15. P = j - 1
16. T = true
17. while L < P do
18. if string.sub(tekst, L, L) ~= string.sub(tekst, P, P) then
19. T = false
20. break
21. end
22. L = L + 1
23. P = P + -1
24. end
25. if T then
26. podciag = string.sub(tekst, i, j - 1)
27. table.insert(palindromy, #palindromy + 1, podciag)
28. end
29. end
30. end
31. print(table.concat(palindromy, ' '))
Linia 1. from numbers import Number.
Linia 3. tekst znak równości None.
Linia 4. N znak równości None.
Linia 5. palindromy znak równości None.
Linia 6. i znak równości None.
Linia 7. j znak równości None.
Linia 8. L znak równości None.
Linia 9. P znak równości None.
Linia 10. T znak równości None.
Linia 11. podciag znak równości None.
Linia 13. def upRange otwórz nawias okrągły start przecinek stop przecinek step zamknij nawias okrągły dwukropek.
Linia 14. while start otwórz nawias ostrokątny znak równości stop dwukropek.
Linia 15. yield start.
Linia 16. start plus znak równości abs otwórz nawias okrągły step zamknij nawias okrągły.
Linia 18. def downRange otwórz nawias okrągły start przecinek stop przecinek step zamknij nawias okrągły dwukropek.
Linia 19. while start zamknij nawias ostrokątny znak równości stop dwukropek.
Linia 20. yield start.
Linia 21. start minus znak równości abs otwórz nawias okrągły step zamknij nawias okrągły.
Linia 24. tekst znak równości apostrof abaaba apostrof.
Linia 25. N znak równości len otwórz nawias okrągły tekst zamknij nawias okrągły.
Linia 26. palindromy znak równości otwórz nawias kwadratowy zamknij nawias kwadratowy.
Linia 27. i podkreślnik end znak równości float otwórz nawias okrągły N minus 1 zamknij nawias okrągły.
Linia 28. for i in otwórz nawias okrągły 1 otwórz nawias ostrokątny znak równości i podkreślnik end zamknij nawias okrągły and upRange otwórz nawias okrągły 1 przecinek i podkreślnik end przecinek 1 zamknij nawias okrągły or downRange otwórz nawias okrągły 1 przecinek i podkreślnik end przecinek 1 zamknij nawias okrągły dwukropek.
Linia 29. j podkreślnik start znak równości float otwórz nawias okrągły i plus 2 zamknij nawias okrągły.
Linia 30. j podkreślnik end znak równości float otwórz nawias okrągły N plus 1 zamknij nawias okrągły.
Linia 31. for j in otwórz nawias okrągły j podkreślnik start otwórz nawias ostrokątny znak równości j podkreślnik end zamknij nawias okrągły and upRange otwórz nawias okrągły j podkreślnik start przecinek j podkreślnik end przecinek 1 zamknij nawias okrągły or downRange otwórz nawias okrągły j podkreślnik start przecinek j podkreślnik end przecinek 1 zamknij nawias okrągły dwukropek.
Linia 32. L znak równości i.
Linia 33. P znak równości j minus 1.
Linia 34. T znak równości True.
Linia 35. while L otwórz nawias ostrokątny P dwukropek.
Linia 36. if tekst otwórz nawias kwadratowy int otwórz nawias okrągły L minus 1 zamknij nawias okrągły zamknij nawias kwadratowy wykrzyknik znak równości tekst otwórz nawias kwadratowy int otwórz nawias okrągły P minus 1 zamknij nawias okrągły zamknij nawias kwadratowy dwukropek.
Linia 37. T znak równości False.
Linia 38. break.
Linia 39. L znak równości otwórz nawias okrągły L if isinstance otwórz nawias okrągły L przecinek Number zamknij nawias okrągły else 0 zamknij nawias okrągły plus 1.
Linia 40. P znak równości otwórz nawias okrągły P if isinstance otwórz nawias okrągły P przecinek Number zamknij nawias okrągły else 0 zamknij nawias okrągły plus minus 1.
Linia 41. if T dwukropek.
Linia 42. podciag znak równości tekst otwórz nawias kwadratowy int otwórz nawias okrągły i minus 1 zamknij nawias okrągły dwukropek int otwórz nawias okrągły j minus 1 zamknij nawias okrągły zamknij nawias kwadratowy.
Linia 43. palindromy kropka append otwórz nawias okrągły podciag zamknij nawias okrągły.
Linia 44. if not len otwórz nawias okrągły palindromy zamknij nawias okrągły dwukropek.
Linia 45. print otwórz nawias okrągły apostrof W podanym ciągu znaków nie ma palindromów kropka apostrof zamknij nawias okrągły.
Linia 46. else dwukropek.
Linia 47. print otwórz nawias okrągły apostrof apostrof kropka join otwórz nawias okrągły palindromy zamknij nawias okrągły zamknij nawias okrągły.
from numbers import Number
tekst = None
N = None
palindromy = None
i = None
j = None
L = None
P = None
T = None
podciag = None
def upRange(start, stop, step):
while start <= stop:
yield start
start += abs(step)
def downRange(start, stop, step):
while start >= stop:
yield start
start -= abs(step)
tekst = 'abaaba'
N = len(tekst)
palindromy = []
i_end = float(N - 1)
for i in (1 <= i_end) and upRange(1, i_end, 1) or downRange(1, i_end, 1):
j_start = float(i + 2)
j_end = float(N + 1)
for j in (j_start <= j_end) and upRange(j_start, j_end, 1) or downRange(j_start, j_end, 1):
L = i
P = j - 1
T = True
while L < P:
if tekst[int(L - 1)] != tekst[int(P - 1)]:
T = False
break
L = (L if isinstance(L, Number) else 0) + 1
P = (P if isinstance(P, Number) else 0) + -1
if T:
podciag = tekst[int(i - 1) : int(j - 1)]
palindromy.append(podciag)
if not len(palindromy):
print('W podanym ciągu znaków nie ma palindromów.')
else:
print(' '.join(palindromy))