Petlja while
1. zadatak
Napišite programsku funkciju obrnuti_poredak() kojoj je parametar lista i koja, pomoću petlje while, oblikuje novu listu s komponentama u obrnutom poretku (zadnja komponenta parametra postaje prva komponenta rezultata, predzadnja postaje druga komponenta rezultata itd.). Program izvedite s argumentom [1,2,3,4]; rezultat je lista [4,3,2,1].
|
[4, 3, 2, 1] [4, 3, 2, 1] |
SageMath dopušta i indeksiranje „unazad” pomoću negativnih indeksa. Ako lista ima n komponenata, tada indeks −1 označava posljednju komponentu, a indeks −n prvu.
|
[4, 3, 2, 1] [4, 3, 2, 1] |
Varijacija na temu:
|
[4, 3, 2, 1] [4, 3, 2, 1] |
1. zadatak za zadaću
1. zadatak riješite primjenom petlje for umjesto petlje while.
|
2. zadatak za zadaću
Napišite programsku funkciju potencije() kojoj je parametar lista brojeva i koja, primjenom petlje while, vraća novu listu čije su komponente jednake komponentama parametra potencirane svojim indeksom. Program izvedite s argumentom [5,2,3,4]; rezultat je lista [50,21,32,43]=[1,2,9,64].
|
2. zadatak
Napišite programsku funkciju br_pozitivnih() čiji je parametar lista brojeva. Funkcija treba odrediti, primjenom petlje while, koliko parametar ima pozitivnih komponenata do prve pojave komponente jednake nuli ili, ako u listi nema nule, do njezina kraja. Za argument
|
3 3 |
5 5 |
0 0 |
0 0 |
Obratite pozornost na redoslijed uvjeta:
|
... naizgled ispravno:
3 3 |
... ali:
Traceback (click to the left of this block for traceback) ... IndexError: list index out of range Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_16.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("bGkgPSBbMiwgLTcsIDgsIC00LCA1LCA3LCA4XQpicl9wb3ppdGl2bmloX2tyaXZvIChsaSk="),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmp8HcEKU/___code___.py", line 4, in <module> exec compile(u'br_pozitivnih_krivo (li) File "", line 1, in <module> File "/tmp/tmplYZbf1/___code___.py", line 7, in br_pozitivnih_krivo while (lista[k] != _sage_const_0 ) and (k < duljina) : IndexError: list index out of range |
3. zadatak za zadaću
Napišite programsku funkciju maks() čiji je parametar lista brojeva. Funkcija treba, primjenom petlje while, pronaći najveću komponentu parametra do prve pojave negativne komponente. Nalaženje maksimuma je završeno kad se naiđe na negativnu komponentu te funkcija vraća do tada određeni maksimum; ako u listi nema negativnih komponenata, pretraživanje, naravno, završava kad se iscrpi lista. Za argument [2,3,0,−1,4,7] rezultat je 3.
|
4. zadatak za zadaću
Napišite programsku funkciju indeks_min() čiji je parametar lista brojeva. Funkcija treba, primjenom petlje while, odrediti indeks najmanje komponente do prve pojave komponente jednake 0. Kada funkcija naiđe na komponentu jednaku nuli, vraća indeks do tada određenog minimuma; ako u listi nema nula, pretraživanje završava na kraju liste. Za argument [2,−3,0,−1,4,−7] rezultat je 1, za argument [0,−3,0,−1,4,−7] rezultat je −∞, a za argument [2,−3,2,−1,−4,7] rezultat je 4.
|
5. zadatak za zadaću
Napišite programsku funkciju maks20() koja kao parametar ima listu i koja određuje koliko najviše komponenata liste možemo zbrojiti, a da suma ne premaši 20 (pribrojnike brojimo od jedan). Funkciju izvedite s argumentima
|
Rješenje 1. zadatka za zadaću
1. zadatak riješite primjenom petlje for umjesto petlje while.
|
[4, 3, 2, 1] [4, 3, 2, 1] |
Rješenje s negativnim indeksiranjem:
|
[4, 3, 2, 1] [4, 3, 2, 1] |
Varijacija na temu:
|
[4, 3, 2, 1] [4, 3, 2, 1] |
Rješenje 2. zadatka za zadaću
Napišite programsku funkciju potencije() kojoj je parametar lista brojeva i koja, primjenom petlje while, vraća novu listu čije su komponente jednake komponentama parametra potencirane svojim indeksom. Program izvedite s argumentom [5,2,3,4]; rezultat je lista [50,21,32,43]=[1,2,9,64].
|
[1, 2, 9, 64] [1, 2, 9, 64] |
Rješenje 3. zadatka za zadaću
Napišite programsku funkciju maks() čiji je parametar lista brojeva. Funkcija treba, primjenom petlje while, pronaći najveću komponentu parametra do prve pojave negativne komponente. Nalaženje maksimuma je završeno kad se naiđe na negativnu komponentu te funkcija vraća do tada određeni maksimum; ako u listi nema negativnih komponenata, pretraživanje, naravno, završava kad se iscrpi lista. Za argument [2,3,0,−1,4,7] rezultat je 3.
|
3 3 |
Rješenje 4. zadatka za zadaću
Napišite programsku funkciju indeks_min() čiji je parametar lista brojeva. Funkcija treba, primjenom petlje while, odrediti indeks najmanje komponente do prve pojave komponente jednake 0. Kada funkcija naiđe na komponentu jednaku nuli, vraća indeks do tada određenoga minimuma; ako u listi nema nula, pretraživanje završava na kraju liste. Za argument [2,−3,0,−1,4,−7] rezultat je 1, za argument [0,−3,0,−1,4,−7] rezultat je −∞, a za argument [2,−3,2,−1,−4,7] rezultat je 4.
|
1 1 |
-Infinity -Infinity |
4 4 |
Rješenje 5. zadatka za zadaću
Napišite programsku funkciju maks20() koja kao parametar ima listu i koja određuje koliko najviše komponenata liste možemo zbrojiti, a da suma ne premaši 20 (pribrojnike brojimo od jedan). Funkciju izvedite s argumentima
|
3 3 |
1 1 |
0 0 |
5 5 |
Drugo moguće rješenje:
|
3 3 |
1 1 |
0 0 |
5 5 |
Rješenje pomoću petlje for:
|
4 4 |
1 1 |
0 0 |
5 5 |
|