Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

5. Pole, řetězce, soubory

1. úkol - najdi a změň

  • Napište funkci my_find(a,b), která v řetezci a hledá řetězec b (nepoužívejte vestavěnou funkci find).
  • Pokud řetězec najde, vrátí index jeho prvního výskytu zleva.
  • Pokud řetězec nenajde, vrátí -1.
  • Napište funkci my_replace(a,b,c), která v řetězci a nahradí všechny výskyty řetězce b řetězcem c.
  • Ve funkcích používejte pouze funkce
    • len(s) - délka řetězce,
    • s[i] - znak na pozici i,
    • s[i:j] - podřetezec od i do j
    • s[:j], s[i:] - podřetězec od počátku do j, resp. od i do konce.

2. úkol - záměna slova

  • Napište program, který čte standardní vstup a v načteném řetězci zamění slovo Ahoj za slovo Cau.
  • Můžete využít vestavěné funkce find, replace, nebo Vaše funkce z předchozí úlohy.
  • Pokud se ve vstupním řetězci objeví slovo Konec, program skončí. V tomto řádku ale nejdříve zamění Ahoj za Cau.

3. úkol - načítání ze souboru

  • Načtení 1D pole ze souboru
  • Pole může být v souboru uloženo dvěma způsoby:
    • všechna čísla na jednom řádku oddělená mezerami, nebo jiným znakem
      • pro načtení nejdřív rozdělte řádek na řetězce podle dělicího znaku - funkce split()
      • pak převeďte řetězce na čísla a uložte do pole

f=open('line.txt','r')
line = f.readline()
pole = list(map(int, line.split()))

  • na řádku pouze jedno číslo, počet řádek udává délku pole
    • otevřete soubor pro čtení - open(název_souboru, “r” - read čtení)
    • přečtěte celý soubor po řádcích - readline, nebo cyklus for
    • každý řádek převeďte na číslo a připojte na konec pole - funkce append

pole=[]
f=open('pole.txt','r')
for line in f:
    pole.append(int(line))

4. úkol - funkce nalezení maxima

  • Napište funkci, která vrací největší hodnotu v poli a zároveň vrací index tohoto prvku
  • Pro pole nulové délky vrací index -1.
  • Pozor: je třeba předpokládat, že v poli mohou být jakékoliv hodnoty (kladné, nuly, záporné)!

5. úkol - funkce nalezení druhého největšího prvku v poli

  • Napište funkci, která vrací druhou největší hodnotu v poli a zároveň vrací index tohoto prvku
  • Pro pole délky méně než 2 vrací index -1.
  • Pozor: je třeba předpokládat, že v poli mohou být opět jakékoliv hodnoty (kladné, nuly, záporné)!

6. úkol - načtení 2D pole z textového souboru

  • Napište funkci, která načte z textového souboru 2D pole - matici
courses/bab37zpr/tutorials/lab05.txt · Last modified: 2019/11/04 13:57 by viteks