4. cvičení


Programování v shellu

Základní konstrukce bash lze nalézt v souboru bash_basics.sh.


Úkoly

  1. Naprogramujte "hádání" (celého) čísla, které si uživatel myslí, z intervalu zadaného až dvěma parametry, sérií dotazů "je menší/větší než X?" algoritmem půlení intervalu. Při jednom parametru je první číslo 0, při žádném navíc druhé 100..

        Romans-MacBook-Pro:UNIX romanvyjidacek$ ./guess-number.sh
        Je cislo vetsi nez 50? (a/n)
        a
        Je cislo vetsi nez 75? (a/n)
        n
        Je cislo vetsi nez 62? (a/n)
        a
        Je cislo vetsi nez 68? (a/n)
        a
        Je cislo vetsi nez 71? (a/n)
        n
        Je cislo vetsi nez 69? (a/n)
        a
        Je cislo vetsi nez 70? (a/n)
        n
        Je cislo vetsi nez 69? (a/n)
        a
        Vase cislo je 70.
    

    2 body

  2. Implementujte zjednodušenou verzi programu seq: výpis posloupnosti (celých) čísel oddělených mezerou od čísla zadaného jako první parametr do čísla zadaného jako třetí parametr, obojí včetně, s přírůstkem zadaným jako druhý parametr, pokud je počáteční číslo menší nebo rovno než cílové pro kladný přírůstek a obráceně. Při dvou parametrech je chybějící přírůstek roven 1, při jednom parametru je i chybějící počáteční číslo rovno 1.

        Romans-MacBook-Pro:UNIX romanvyjidacek$ ./my-seq.sh
        Nespravny pocet argumentu. Minimalni pocet je jeden
    
        Romans-MacBook-Pro:UNIX romanvyjidacek$ ./my-seq.sh 20
        1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
    
        Romans-MacBook-Pro:UNIX romanvyjidacek$ ./my-seq.sh 10 20
        10 11 12 13 14 15 16 17 18 19 20
    
        Romans-MacBook-Pro:UNIX romanvyjidacek$ ./my-seq.sh 10 2 20
        10 12 14 16 18 20
    
        Romans-MacBook-Pro:UNIX romanvyjidacek$ ./my-seq.sh 20 -2 10
        20 18 16 14 12 10
    

    4 body