메인 콘텐츠로 건너뛰기
Učilnica FRI 25/26
  • 홈
  • 캘린더
  • 더 보기
한국어 ‎(ko)‎
English ‎(en)‎ Slovenščina ‎(sl)‎ Македонски ‎(mk)‎ Русский ‎(ru)‎ 한국어 ‎(ko)‎
손님 계정으로 접속
로그인
Učilnica FRI 25/26
홈 캘린더
모두 펼치기 모두 접기
  1. 강의 현황
  2. pn
  3. Oblikovanje nizov in pisanje datotek
  4. Lov na zaklad

Lov na zaklad

완료 조건
Due: 수요일, 3 12월 2025, 11:00 AM

Priprava

Spodnja procedura je potrebna zato, da bo vaš izdelek možno avtomatsko testirati. Vaš program, testi.py, mora biti namreč v istem direktoriju kot poddirektorij "datoteke", ki vsebuje vse potrebne datoteke za reševanje naloge.

  • Datoteko s testi skopirajte v direktorij, v katerem nameravate reševati nalogo (recimo /Users/petra/Documents/Programiranje/dn7-zaklad/, ali kjerkoli že).
  • Svojo rešitev pišite v datoteko "testi.py" -- torej nad teste, ki so že v tej datoteki.
  • Kot svoj izdelek oddajte samo datoteko "testi.py".

Skrivna sporočila

Prebrati morate pet skrivnih sporočil. Za vsako sporočilo vemo, kje se začne. Prvo, recimo, se začne v direktoriju zelje-testenine/luna-avtobus/blitva-drevo (znotraj poddirektorija datoteke - to morate sami dodati na začetek!), številka vrstice pa je 42 (vrstice bomo šteli od 0, ne od 1!).

V tem direktoriju je nekaj poddirektorijev in ena sama datoteka s končnico .txt (slučajno se imenuje otrok-lopar.txt). Če odpremo to datoteko in preberemo vrstico 42 (ker bomo vrstice šteli od 0, urejevalniki kot je PyCharm, če datoteko odpremo v njem, pa štejejo od 1, to vrstico tam vidimo kot 43. vrstico), najdemo:

N,reka-med/marelica-zvezda/grozdje-grozdje/kraljica-enorog,25

To pomeni, da je prva črka skrivnega sporočila N, naslednje sporočilo pa najdemo v direktoriju reka-med/marelica-zvezda/grozdje-grozdje/kraljica-enorog, zanimala nas bo vrstica 25.

V tem direktoriju poiščemo datoteko s končnico .txt. Imenuje se enorog-teta.txt in v 25. vrstici (26. v urejevalniku) najdemo

A,boj-princesa/trg-sosed/brokoli-rama,79

Drugi znak skrivnega sporočila je torej A, naslednje sporočilo pa najdemo v direktoriju boj-princesa/trg-sosed/brokoli-rama, vrstica 79.

Tako nadaljujemo, dokler ne pridemo do pike.

  • Med znaki bomo našli tudi presledke. V tem primeru bo imela vrstica pred (prvo) vejico preseledek. (Torej: ne kličite strip()!)
  • V vsakem direktoriju je natanko ena datoteka s končnico .txt. Njeno ime je naključno in nepomembno.

Naloga

Napišite funkcijo beri(direktorij, vrstica), ki prejme začetni direktorij in številko vrstice, ter vrne celotno skrito sporočilo kot niz znakov. Klic beri("zelje-testenine/luna-avtobus/blitva-drevo", 42) bi morala vrniti niz "NA PLANINCAH SONČECE SIJE.", če bi bilo to prvo skrivno sporočilo. (Pa ni. :)

Priporočam vam (ni pa obvezno), da si poleg te funkcije napišete pomožno funkcijo, ki kot argument dobi direktorij in vrstico, kot rezultat pa vrne želeno vrstico (edine) tekstne datoteke v podanem direktoriju. Ali pa celo tri podatke iz te vrstice. Ni nujno, vendar bo vaš program na ta način veliko preglednejši.

Ker sem na predavanju stresal neke neslanosti o ljudožercih, moram vsaj za domačo nalogo pokazali malo več dobrega okusa. Skrivno sporočilo je limerik, katerega avtor je pokojni slovenski literarni zgodovinar in prevajalec Tone Pretnar.

Žal moram dodati, da bi možakar, ki ga omenja limerik, že kaki dve leti (pa še dve bo najbrž trajalo) lahko to počel le do Divače.

Test

  • testi.zip testi.zip
    27 11월 2025, 7:11 PM
손님 계정으로 접속 (로그인)
Get the mobile app
Moodle 제공
Obvestilo o avtorskih pravicah