Bc (lenguaje de programación)

bc es un lenguaje de programación de cálculo numérico con precisión arbitraria, con una sintaxis similar a la del lenguaje de programación C.

El lenguaje y su intérprete son una herramienta estandarizada de los sistemas UNIX.

El intérprete de bc puede ser usado de forma interactiva, escribiendo expresiones como (1 + 3) * 2 que son evaluadas y su valor escrito en la salida estándar (8 en el ejemplo anterior).

Hay actualmente dos dialectos principales: el rigurosamente definido POSIX bc y un descendiente directo suyo, GNU bc, que incorpora numerosas extensiones.

bc permite la definición de funciones matemáticas. Además las implementaciones de bc incorporan una biblioteca matemática con funciones predefinidas (y estandarizadas) tales como coseno o función de Bessel.

También posee estructuras que permiten la programación estructurada tales como bucles o decisiones condicionales.

Historia

bc apareció por primera vez en la versión 6 de Unix en 1975 y fue escrito por Robert Morris y Lorinda Cherry de Bell Labs. bc fue precedido por dc, una calculadora de precisión arbitraria anterior escrita por los mismos autores. dc podía realizar cálculos de precisión arbitraria, pero su sintaxis de notación polaca inversa (RPN), muy apreciada por muchos para evaluar fórmulas algebraicas, resultó inconveniente para sus usuarios al expresar el control de flujo y, por lo tanto, bc se escribió como una interfaz para dc. bc era un compilador muy simple (un solo archivo fuente yacc con unos pocos cientos de líneas), que convertía la nueva sintaxis bc, similar a C, en la notación postfija de dc y canalizaba los resultados a través de dc.

En 1991, POSIX definió y estandarizó rigurosamente bc. Tres implementaciones de este estándar sobreviven hoy: la primera es la implementación tradicional de Unix, un front-end para dc, que sobrevive en los sistemas Unix y Plan 9. El segundo es el software libre GNU bc, lanzado por primera vez en 1991 por Philip A. Nelson. La implementación de GNU tiene numerosas extensiones más allá del estándar POSIX y ya no es un front-end para dc (es un intérprete de código de bytes). El tercero es una reimplementación de OpenBSD en 2003.

Ejemplos

Cálculos simples

bc
 5+2*3
 ^D

Algo un poco más complejo:

bc
 b=1
 for (a=5;a>1;a--) b=b*a
 ^D

Funciones parte entera y exponencial

A continuación se presentarán dos funciones, i y p. La función i devuelve la parte entera de cualquier número; y la función p (que se apoya en la anterior función) calcula:

permitiendo que y sea cualquier número (no solamente un entero).

/* Una función que devuelve la parte entera de x */
 define i((x)) {
    auto s
    s = scale
    scale = 0
     x /= 1   /* redondea x */
    scale = s
    return (x)
 }
/* x^y == e^(y*log(x)) */
 define p(x,y) {
    if (y == i(y)) {
       return (x ^ y)
    }
    return ( e( y * l(x) ) )
 }

Cálculo de π con 10000 dígitos

Calculate pi usando la función incorporada arcotangente, a():

$ bc -lq
scale=10000
4*a(1) # The atan of 1 is 45 degrees, which is pi/4 in radians.
       # This may take several minutes to calculate.

Función en C traducida

Debido a que la sintaxis de bc es similar a la del lenguaje de programación C, las funciones numéricas escritas en C a menudo se pueden traducir a bc con bastante facilidad. Por ejemplo, el siguiente código C para la distribución normal acumulativa:

double Phi(double x)
{
    long double s=x,t=0,b=x,q=x*x,i=1;
    while(s!=t)
        s=(t=s)+(b*=q/(i+=2));
    return .5+s*exp(-.5*q-.91893853320467274178L);
}

Con algunos cambios necesarios para adaptarse a la sintaxis diferente de bc, y teniendo en cuenta que la constante "0.9189 ..." es en realidad log (2 * PI) / 2, esto se puede traducir al siguiente código GNU bc:

define phi(x) {
    auto s,t,b,q,i,const
    s=x; t=0; b=x; q=x*x; i=1
    while(s!=t)
        s=(t=s)+(b*=q/(i+=2))
    const=0.5*l(8*a(1))   # 0.91893...
    return .5+s*e(-.5*q-const)
}

Usando bc en scripts de shell

bc se puede utilizar de forma no interactiva Esto es útil dentro de script de shells. Por ejemplo:

$ resultado=$(echo "scale=2; 5 * 7 /3;" | bc)
$ echo $resultado
11.66

Por el contrario, tenga en cuenta que el shell bash solo realiza aritmética de enteros. Por ejemplo:

$ resultado=$((5 * 7 /3))
$ echo $resultado
11

También se puede utilizar el Here document (en bash, ksh, csh):

$ bc -l <<< "5*7/3"
11.66666666666666666666

Como en el caso anterior, pero con dos decimales:

$ bc -l <<< "scale=2; 5*7/3"
11.66

Referencias

Enlaces externos

Read other articles:

Space probes Halley's Comet in 1986 The Halley Armada is the name of a series of space probes, five of which were successful, sent to examine Halley's Comet during its 1986 sojourn through the inner Solar System,[1] connected with apparition 1P/1982 U1. The armada included one probe from the European Space Agency, two probes that were joint projects between the Soviet Union and France and two probes from the Institute of Space and Astronautical Science in Japan. Notably, NASA did not ...

 

كين روزوول معلومات شخصية اسم الولادة (بالإنجليزية: Kenneth Robert Rosewall)‏  الميلاد 2 نوفمبر 1934 (العمر 89 سنة)سيدني الطول 1.70 م (5 قدم 7 بوصة)* الإقامة سيدني  الجنسية  أستراليا الوزن 68 كيلوغرام  استعمال اليد اليد اليمنى الحياة العملية الفرق منتخب أستراليا لكأس ديفيز (1953...

 

Третий дивизион чемпионата мира по хоккею с шайбой среди молодёжных команд 20182018 IIHF Ice Hockey U20 World Championship Division III Подробности турнира Страна проведения  Болгария Города проведения София Время проведения 22 — 28 января 2018 Число команд 6 20172019 Чемпионат мира по хоккею с шайбой с

Charles Jenkins Jenkins em sua passagem pelo BC Khimki Informações pessoais Nome completo Charles Jenkins Data de nasc. 28 de fevereiro de 1989 (34 anos) Local de nasc. Brooklyn,  Nova Iorque Estados Unidos Altura 1,91m Peso 100Kg Informações no clube Clube atual BC Khimki Número 22 Posição Armador Clubes de juventude 2007-2011 Hofstra Pride Clubes profissionais Ano Clubes Partidas (pontos) 2011-201320132013-20152015-20162016-20172017-presente GS Warriors Philadelph...

 

Situs fosil Mamalia Australia (Riversleigh/Naracoorte)Situs Warisan Dunia UNESCOKriteriaAlam: viii, ixNomor identifikasi698Pengukuhan1994 (18) Gua Naracoorte adalah taman nasional di dekat Naracoorte di wilayah pariwisata pantai Limestone, Australia Selatan. Taman ini diakui pada tahun 1994 untuk catatan fosilnya dan menjadi Situs Warisan Dunia II. Pranala luar Naracoorte Lucindale Tourism Photographs of the Naracoorte Caves by Andrew McMillan Diarsipkan 2009-07-05 di Wayback Machine. lb...

 

American track and field athlete Cheryl ToussaintPersonal informationFull nameCheryl Renee ToussaintBornDecember 16, 1952 (1952-12-16) (age 70)Brooklyn, New York, U.S. Medal record Women's athletics Representing  United States Olympic Games 1972 Munich 4x400 m relay Pan American Games 1971 Cali 4x400 m relay Cheryl Renee Toussaint (born December 16, 1952) is an American athlete who mainly competed in the 800 metres. She grew up in the Bedford-Stuyvesant neighborhood of Bro...

Huruf Kiril Shwe Alfabet KirilHuruf SlaviaАА́А̀А̂А̄ӒБВГҐДЂЃЕЕ́ÈЕ̂ЁЄЖЗЗ́ЅИИ́ЍИ̂ЙІЇЈКЛЉМНЊОŌПРСС́ТЋЌУУ́ У̀У̂ӮЎФХЦЧЏШЩЪЫЬЭЮЯHuruf non-SlaviaӐА̊А̃Ӓ̄ӔӘӘ́Ә̃ӚВ̌ҒГ̑Г̣Г̌ҔӺҒ̌ӶД̌Д̣Д̆ӖЕ̄Е̃Ё̄Є̈ӁҖӜҘӞЗ̌З̱З̣ԐԐ̈ӠӢИ̃ҊӤҚӃҠҞҜК̣ԚӅԮԒӍӉҢԨӇҤО́О̀О̆О̂О̃ӦӦ̄ӨӨ̄Ө́Ө̆ӪҨԤР̌ҎҪС̣С̱Т̌Т̣ҬУ̃Ӱ Ӱ́Ӱ̄ӲҮҮ́ҰХ̣Х̱Х̮Х̑ҲӼӾҺ...

 

High StrungPoster rilis teatrikalSutradara Michael Damian Produser Janeen Damian Michael Damian Ditulis oleh Janeen Damian Michael Damian Pemeran Keenan Kampa Nicholas Galitzine Jane Seymour Sonoya Mizuno Richard Southgate Paul Freeman Maia Morgenstern Penata musikNathan LanierSinematograferViorel SergoviciPenyuntingPeter CabadaHagan Janeen Damian Michael Damian Byron SpeightPerusahaanproduksiRiviera Films Sforzando Productions Castel Film StudioDistributorPaladinTanggal rilis 6 Februar...

 

Scottish writer Hamish Henderson's bust in South Gyle (James) Hamish Scott Henderson (11 November 1919 – 9 March 2002) was a Scottish poet, songwriter, communist, intellectual and soldier. He was a catalyst for the folk revival in Scotland. He was also an accomplished folk song collector and discovered such notable performers as Jeannie Robertson, Flora MacNeil and Calum Johnston. Early life Born on the first Armistice Day 11 November 1919, to a single mother, Janet Henderson, a Queen's...

Bert RoachRoach dalam The Black Bag (1922)Lahir(1891-08-21)21 Agustus 1891Washington, D.C., Amerika SerikatMeninggal16 Februari 1971(1971-02-16) (umur 79)Los Angeles, California, Amerika SerikatPekerjaanPemeranTahun aktif1914-1951Suami/istriGladys Marie Johnson Egbert Bert Roach (21 Agustus 1891 – 16 Februari 1971) adalah seorang pemeran film Amerika Serikat. Ia tampil dalam 327 film antara 1914 dan 1951. Ia lahir di Washington, D.C., dan meninggal di Los Angeles, Ca...

 

この項目では、1979年に日本テレビで放送されたテレビアニメについて説明しています。2012年に公開された韓国のCGアニメーション映画については「大恐竜時代 タルボサウルス vs ティラノサウルス」をご覧ください。 この記事の主題はウィキペディアにおける独立記事作成の目安を満たしていないおそれがあります。目安に適合することを証明するために、記事の主題...

 

Antártida Argentina beralih ke halaman ini. Untuk stasiun kereta api di Rosario, lihat Stasiun kereta api Antártida Argentina. Antarktika Argentina Antártida ArgentinaDepartemenPeta Antarktika Argentina sejak 1950. Pangkalan Orcadas dari 1904. BenderaLambang kebesaranLokasi di Antarktika.Negara ArgentinaProvinsi Tierra del FuegoDepartemenDepartemen Antártida ArgentinaEkspedisi pertama1901–1904PendiriJosé María SobralPemerintahan • GubernurRosana Bertone • ...

American pizzeria featured in The Sopranos For the former UK pizzeria chain, see Pizzaland. Pizza LandThe business in 2021.TypePrivateIndustryRestaurants, Food DeliveryFounded1965; 58 years ago (1965)HeadquartersNorth Arlington, New Jersey, United StatesProductsPizzaOwnerEddie Twdroos Pizza Land (spelled Pizzaland on its front sign and in press accounts, and as two words on a separate sign) is an American pizzeria at 260 Belleville Turnpike in North Arlington, New Jersey, wh...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Viscount Shannon – news · newspapers · books · scholar · JSTOR (January 2021) (Learn how and when to remove this template message) Richard Boyle, 2nd Viscount Shannon. Viscount Shannon, in the County of Limerick, was a title in the Peerage of Ireland. It was cr...

 

青蜂俠The Green Hornet台灣版電影海報基本资料导演米歇·龔德里监制Neal H. Moritz编剧塞斯·羅根伊凡·戈博剧本塞斯·羅根埃文·戈德堡原著青蜂俠George W. TrendleFran Striker作品主演塞斯·羅根克里斯多夫·華茲愛德華·詹姆斯·歐蒙周杰倫湯姆·威金森卡麥蓉·狄亞配乐詹姆斯·紐頓·霍華摄影約翰·史瓦茲剪辑Michael Tronick制片商Original Film片长119分鐘产地 美國语言英語上映及发行上映日...

تحتاج هذه المقالة إلى الاستشهاد بمصادر إضافية لتحسين وثوقيتها. فضلاً ساهم في تطوير هذه المقالة بإضافة استشهادات من مصادر موثوقة. من الممكن التشكيك بالمعلومات غير المنسوبة إلى مصدر وإزالتها. بحاجة للاستشهاد بمعجم مطبوع بدلاً عن قاعدة بيانات معجمية على الإنترنت. صورة معالج...

 

ジェイムズ・マーシャル ジェイムズ・ウィリアム・マーシャル(James William Marshall, 1822年8月14日 - 1910年2月5日)は、アメリカ合衆国の政治家。1874年7月から8月までユリシーズ・グラント大統領の下で第27代アメリカ合衆国郵政長官を務めた。 生い立ちと家族 1822年8月14日、マーシャルはバージニア州クラーク郡において、ジェイムズ・ペド・マーシャル (James Pade Marshall, 17...

 

Spanish painter (1896–1968) Rigoberto Soler PérezBorn1896Alcoy, Alicante, SpainDied1968NationalitySpanishKnown forPainting, drawing, musicMovementPost-Impressionism Rigoberto Soler Pérez (1896–1968) was a Spanish post-Impressionist painter. Early life Rigoberto Soler was born in the city of Alcoy in the province of Alicante, Spain in 1896. His father, with whom he clashed, was an administrator in the city’s recording office. His father wanted him to pursue a career in banking[...

У Вікіпедії є статті про інших людей із прізвищем Бойченко. Бойченко Павло Іванович Народився 24 листопада 1979(1979-11-24) (44 роки)Шевченкове, Кілійський район, Одеська областьГромадянство  УкраїнаДіяльність державний посадовецьПартія Блок Петра Порошенка «Солідарність» Б...

 

Chemical compound DehydronorketamineClinical dataATC codeNoneIdentifiers IUPAC name 6-Amino-6-(2-chlorophenyl)cyclohex-2-en-1-one CAS Number57683-62-2PubChem CID162835ChemSpider142954UNIIJ5442FVV58CompTox Dashboard (EPA)DTXSID80973283 Chemical and physical dataFormulaC12H12ClNOMolar mass221.68 g·mol−13D model (JSmol)Interactive image SMILES C1CC(C(=O)C=C1)(C2=CC=CC=C2Cl)N InChI InChI=1S/C12H12ClNO/c13-10-6-2-1-5-9(10)12(14)8-4-3-7-11(12)15/h1-3,5-7H,4,8,14H2Key:BXBPJMHHWPXBJL-UHFFFAOY...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!