Advertisement
winone1208

zad2

May 18th, 2013
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.93 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. i=n # Poczatkowa wartość zmiennej otwierająca pętle
  4. j=5 # Dokładność obliczen
  5.  
  6. while [ $i = n ]
  7. do
  8.  
  9.   clear
  10.   echo 'y=(a/b)+(c/d)'
  11.   echo 'Wpisz a'
  12.   read a
  13.   while [ -z $a  ] # Petla zapobiega pozostawienu pustej zmiennej a
  14.   do
  15.     clear
  16.     echo 'y=(a/b)+(c/d)'
  17.     echo 'Nie wpisałeś a'
  18.     read a
  19.   done
  20.   clear
  21.   echo "y=($a/b)+(c/d)"
  22.   echo 'Wpisz b'
  23.   read b
  24.   while [ -z $b  ] # Petla zapobiega pozostawienu pustej zmiennej b
  25.   do
  26.     clear
  27.     echo "y=($a/b)+(c/d)"
  28.     echo 'Nie wpisałeś b'
  29.     read b
  30.   done
  31.   clear
  32.   echo "y=($a/$b)+(c/d)"
  33.   echo 'Wpsiz c'
  34.   read c
  35.   while [ -z $c  ] # Petla zapobiega pozostawienu pustej zmiennej c
  36.   do
  37.     clear
  38.     echo "y=($a/$b)+(c/d)"
  39.     echo 'Nie wpisałeś c'
  40.     read c
  41.   done
  42.   clear
  43.   echo "y=($a/$b)+($c/d)"
  44.   echo 'Wpisz d'
  45.   read d
  46.   while [ -z $d  ] # Petla zapobiega pozostawienu pustej zmiennej d
  47.   do
  48.     clear
  49.     echo "y=($a/$b)+($c/d)"
  50.     echo 'Nie wpisałeś c'
  51.     read c
  52.   done
  53.   clear
  54.  
  55.   echo "y=($a/$b)+($c/$d)"
  56.  
  57.   if [ $(echo "$b && $d" | bc) -ne 0 ] # Warunek sprawdza czy nie dzielimy przez 0
  58.   then
  59.  
  60.     y=$(echo "scale=$j; ($a/$b)+($c/$d)" | bc) # Obliczenia
  61.  
  62.     if [ $(echo "$y<1 && $y>0" | bc) -ne 1 ] # bc nie dodaje 0 w przupadku $y<1 && $y>0
  63.     then
  64.       brakujace_zero=''
  65.     else
  66.       brakujace_zero=0
  67.     fi
  68.  
  69.     echo
  70.     echo "Wynik: $brakujace_zero$y"
  71.     echo "(z dokładnością do $j miejsc po przecinku):"
  72.   else
  73.     echo
  74.     echo 'Brak rozwiązania' # Komunikat pojawi się w przpadku kiedy dzielimy przez 0
  75.   fi
  76.  
  77.   echo
  78.   echo 'Wyjść? (t/n)'
  79.   echo 'u - ustawienia'
  80.   read i
  81.  
  82.   while [ $i = u ] # Ustawienia
  83.   do
  84.     echo ----------------------------------
  85.     echo 'Ustaw liczbe miejsc po przecinku'
  86.     read d
  87.     i=n # nadanie zmiennej 'i' litery 'n' otwiera program po zmienieniu ustawień
  88.     read -p 'Zapisano!' -s  -t 1
  89.   done
  90.  
  91.   clear
  92.  
  93. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement