Menu

Páté cvičení (22. 3.)

Materiály

Příklady

Zobrazit řešení
  1. Napište skript, který vypíše třetí mocniny všech čísel od 1 do $1.
  2. #!/bin/sh
    for i in $( seq 1 $1 ); do
        echo $(( i*i*i ))
    done
    
  3. Vypište všechny čtverce (druhé mocniny) mezi 1 a $1, které nejsou dělitelné $2.
  4. #!/bin/sh
    odm=$( echo "sqrt($1)" | bc )
    for i in $( seq 1 $odm ); do
        if [ $(( i % $2 )) -ne 0 ]; then
            echo $i
        fi
    done
    
  5. Vypište obvod a obsah kruhu o poloměru $1.
  6. #!/bin/sh
    pi="3.1415926"
    obvod=$( echo "sqrt(2*$pi*$1)" | bc -l )
    obsah=$( echo "sqrt($pi*$1*$1)" | bc -l )
    
    echo "Obvod: $obvod"
    echo "Obsah: $obsah"
    
  7. Spočtěte největšího společného dělitele $1 a $2 Euklidovým algoritmem.
  8. #!/bin/bash
    x=$1
    y=$2
    while [ $y -gt 0 ]; do
        if [ $x -ge $y ]; then
            x=$(( x-y ))
        else
            z=$x; x=$y; y=$z
        fi
    done
    echo $x
    
  9. Napište skript, který přijme na standardním vstupu dvě čísla oddělená mezerou a vypíše jejich součet.
  10. #!/bin/sh
    read x y
    echo $(( x+y ))
    
  11. Napište skript, který bude číst ze standardního vstupu celá čísla (jedno číslo na řádek) dokud vstup neskončí a poté vypíše jejich součet. Standardní vstup ukončíte stiskem <Ctrl-D>.
  12. #!/bin/bash
    while read x; do
        sum=$(( sum + x ))
    done
    echo $sum
    
  13. Napište skript, který dostane jako své argumenty posloupnost čísel, tato čísla setřídí a vypíše je oddělená mezerami na standardní výstup.
  14. #!/bin/bash
    echo $@ | tr " " "\n" | sort -n | tr "\n" " "
    
  15. Napište skript, který mezi parametry zadanými na příkazové řádce najde nejdelší souvislou rostoucí podposloupnost.