Movatterモバイル変換


[0]ホーム

URL:


Przejdź do zawartości
Wikipediawolna encyklopedia
Szukaj

bc (Unix)

Z Wikipedii, wolnej encyklopedii


Zobacz publikację
Programowanie w systemie UNIX/bc w Wikibooks

bcuniksowykalkulator dowolnej precyzji (zarówno przed, jak i po przecinku). Umożliwia operowanie liczbami w dowolnych systemach liczbowych (wejście możliwe w systemie maksymalnie szesnastkowym, wyjście w dowolnie dużym), wykonywanie skryptów itd.

Pierwotnie program opierał się na programiedc, tłumacząc zapis infiksowy na postfiksowy (odwrotna notacja polska), jednak obecnie wersjaGNU jest autonomicznym programem.

bc posiada składnię podobną do językaC.

Odmiany

[edytuj |edytuj kod]

POSIX bc

[edytuj |edytuj kod]

Oprócz prostych poleceń (np. 2*(3+4)^4) POSIX bc obsługuje:

  • if(warunek) – wyrażenia warunkowe
  • while(warunek) – pętle typu while
  • for(wartość początkowa;warunek; operacja zwiększenia) – pętle typu for
  • define – tworzenie funkcji
  • return – zwracanie wartości przez funkcję
  • operatory:
 +     -     *     / +=    -=    *=    /= ++    --    <     > ==    !=    <=    >= ( )   [ ]   { } %     %= ^     ^=
  • sqrt - pierwiastek kwadratowy
  • zmienne

GNU bc

[edytuj |edytuj kod]

GNU bc oferuje te same polecenia co POSIX bc oraz:

  • read – zezwala na odczyt danych liczbowych z klawiatury
  • operatory logiczne:
 &&     ||      !
  • komentarze (wszystkie znaki w linii po# są ignorowane)

Przykłady użycia

[edytuj |edytuj kod]
   $ bc -l   scale=200   4*a(1)
  • Wypisanie tabliczki mnożenia o rozmiarach 10x10.
   for (i=1; i<=10; ++i){      for (j=1; j<=10; ++j)         print i*j, "\t"      print "\n"   }
  • Rekurencyjne zdefiniowanie funkcji silnia.
   define silnia(n){      if (n <= 1) return 1;      return n * silnia(n-1);   }

Potęgowanie

[edytuj |edytuj kod]
  • Potęgowanie w POSIX bc
 /* Funkcja zwraca część całkowitą liczby */ define i(x) {   auto s   s = scale   scale = 0    x /= 1   /* zaokrągla x z niedomiarem */   scale = s   return (x) }  /* Funkcja wykorzysuje fakt, iż x^y == e^(y*log(x)) */ define p(x,y) {   if (y == i(y)) {      return (x ^ y)   }   return ( e( y * l(x) ) ) }
  • Potęgowanie w GNU bc
 # Funkcja zwraca część całkowitą liczby define int(number) {   auto oldscale   oldscale = scale   scale = 0   number /= 1 /* round number down */   scale = oldscale   return number }  # Funkcja wykorzysuje fakt, iż x^y == e^(y*log(x)) define power(number,exponent) {   if (exponent == int(exponent)) {      return number ^ exponent    } else {      return e( exponent * l(number) )   } }
Polecenia systemów operacyjnych Unix
System plików
Procesy
Środowisko użytkownika
Przetwarzanie tekstu
Wbudowane w powłokę
Komunikacja
Wyszukiwanie
Dokumentacja
Różne
Źródło: „https://pl.wikipedia.org/w/index.php?title=Bc_(Unix)&oldid=72629913
Kategorie:

[8]ページ先頭

©2009-2026 Movatter.jp