TI-TEMEL - TI-BASIC

TI-BASIC bir resmi adıdır TEMEL yerleşik -like dile Texas Instruments (TI) 'in grafiğini hesap makineleri . TI-BASIC, farklı ürünlerde yayınlanan üç farklı ve uyumsuz sürümden oluşan bir dil ailesidir:

TI, dile nadiren adıyla atıfta bulunur, ancak TI-BASIC adı bazı geliştirici belgelerinde kullanılmıştır.

Birçok uygulama için, TI-BASIC'te program yazma yeteneği yerleşik olduğundan, herhangi bir TI hesap makinesini programlamanın en uygun yoludur . Assembly dili (genellikle "asm" olarak anılacaktır) de kullanılabilir, ve C derleyicileri montaj içine çeviri için mevcuttur: TIGCC için Motorola 68000 (68k) bazlı hesap makineleri ve SDCC için birZilog Z80 tabanlı hesap makineleri. Bununla birlikte, her ikisi de hesap makinesi üzerinde programlamaya izin vermeyen çapraz derleyicilerdir . TI-BASIC, Assembly dilinden oldukça yavaştır (çünkü yorumlanması gerekir ), bu da onu, oyunları veya grafik yoğun uygulamaları programlamak yerine, matematik problemlerini hızlı bir şekilde çözmek veya tekrarlayan görevleri gerçekleştirmek için programlar yazmaya daha uygun hale getirir. Hatta bazı matematik talimat kitapları TI-BASIC'te programlar bile sağlar (genellikle TI-82/83/84 serisi tarafından kullanılan yaygın varyant için).

Bilgisayarlarda kullanılan programlama dilleriyle karşılaştırıldığında biraz minimalist olsa da, TI-BASIC yine de programlama topluluğunda önemli bir faktördür. Birçok lise ve üniversitede ileri matematik dersleri için TI grafik hesaplayıcılar gerekli olduğundan, TI-BASIC çoğu öğrencinin programlama dünyasına ilk bakışını sağlar.

Vikikitaplar

Wikibooks , TI-BASIC programlama ile ilgili ders kitaplarına sahiptir:

Sözdizimi

TI-BASIC'in tüm sürümlerinin sözdizimi, tipik BASIC uygulamalarından biraz farklıdır. Dilin kendisi bazı temel yapılandırılmış programlama yeteneklerine sahiptir, ancak boşluk veya girinti kullanımı veya izniyle sınırlı değildir . Ayrıca, atama için belirli karakterlerle (çoğu karakter kümesinde kolayca bulunmayan sağ "STO" oku), kare ve küp kökler ve diğer matematiksel sembollerin yanı sıra belirteçli giriş içeren, standart olmayan bir karakter kümesine de bağlıdır. ve anahtar kelimeler için depolama. Tüm ifadeler, satırlar içinde ifade ayırıcı işlevi gören iki nokta üst üste işaretiyle başlar. TI-83/84 modellerinde, kapatma parantezleri, parantezler, parantezler ve tırnaklar, bazen daha iyi bırakılsalar da, yer kazanmak için bir satırın sonunda veya STO belirtecinden önce isteğe bağlı olarak atlanabilir. Örneğin, TI 83/84 modellerinde for döngüsü işlevi, belirli durumlarda parantezleri kapatmadan çok daha yavaş çalışır.

İfadeler standart operatör önceliğine sahip infix gösterimini kullanır . Birçok ifade, matematiksel işlevler için kullanılan sözdizimine benzer şekilde, parantez içinde argümanlar gerektirir. Atama sözdizimi (verilerin bir değişkene kopyalanması), bilgisayarlar için çoğu geleneksel programlama diline göre olağandışıdır; TI-BASIC, eşittir işaretine sahip BASIC benzeri bir let ifadesi veya algol benzeri bir operatör kullanmak yerine, kaynak → hedef sözdizimine sahip bir sağ ok "STO" operatörü kullanır . Bu, 1970'lerin sonlarında ve 1980'lerin başlarında ilk toplu pazar Japon alfanümerik hesap makinelerinin ortaya çıkmasından bu yana, genellikle benzer bir sözdizimi kullanan Casio, Canon ve Sharp gibi birkaç Japon hesap makinesine benzer. :=

Kontrol akışı

Kontrol akışı deyimleri, if-then-else bloklarını , for döngüleri , while döngülerini ve tekrar döngülerini içerir , ancak hiçbir switch deyimi yoktur . Ana kontrol akışı ifadeleri şunlardır:

 If condition
 Then
 ...
 Else
 ...
 End

 For(variable,start,stop,step)
 ...
 End

 While condition
 ...
 End

 Repeat condition
 ...
 End

Yüksek seviyeli bir dil için alışılmadık olan TI-BASIC uygulamaları, IS> (Artış ve Atla Büyüktür) ve DS< (Azaltma ve Küçükse Atla) deyimlerini içerir, bunlar genellikle derleme dilleriyle ilişkilendirilen yapılardır . Programların bölümleri etiketlenebilir ; ancak, özellikle Z80 modellerinde, etiketler , program veya blok etiketleri yerine Goto ifadeleri veya Menu(işlevleri için hedefler olarak işlev görür .

İşlevlerin ve alt programların kullanılabilirliği uygulamaya bağlıdır; TI-82'den türemiş hesap makinelerinde bulunan sürümler, GOSUB benzeri bir işlevi bile desteklemez , ancak programları birbirinden çağırmak ve programlar arasında değişkenleri paylaşmak mümkündür. TI-89/92 tabanlı tasarımlar, paylaşılan işlevlere, esasen bir değer döndürebilen programlara erişebilir.

Veri tipleri

TI-BASIC, güçlü ve dinamik olarak yazılan bir dildir. Kullanılabilir veri türleri, 68k ve Z80 sürümleri arasında önemli ölçüde farklılık gösterir. Assembly'de yazılmış bir kütüphane kullanılmadan kullanıcı tanımlı veri tipleri oluşturmak mümkün değildir. Listeler genellikle yapıların yerine kullanılır .

TI-83/84 (Z80)

  • - ve (teta) dahil sayısal değişkenler . Bunlar, gerçek sayıların veya karmaşık sayıların (gerçeğin çiftleri olarak uygulanan) kayan nokta biçiminde saklanmasına izin verir . Değerler, on haneye kadar doğrulukla 1 E -99 ile 1 E 99 arasında değişebilir . Ancak 27 değişkenlik limit, listeler, matrisler ve tamsayı gösteriminin manipülasyonu yoluyla genişletilebilir. Tek tek referans alınabilen benzersiz gerçek değişkenleri içermek için bir liste veya matris kullanılabilir. Tamsayılar, gerçek bir sayının tamsayı ve ondalık yarısı olarak tanımlanarak tek bir gerçek değişkende birleştirilebilir; her bir yarıya daha sonra iPart ve fPart komutları aracılığıyla bağımsız olarak erişilir. İkili değerlere sahip değişkenler, taban 2 ve taban 10 arasında dönüştürme yoluyla tek bir tam sayı olarak saklanabilir.AZΘ
  • Dahil olmak üzere dizelerStr0 - Str9. Bunlar, kullanılabilir bellek olduğu sürece, herhangi bir sayıda karakteri ve hatta işlev adını saklayabilir. expr()Katalogda bulunan fonksiyon ile ifade olarak değerlendirilebilirler .
  • - dahil , ek listeler oluşturma özelliğine sahip listeler . Bunlar, öğelerinin her birine gerçek veya karmaşık bir sayı depolamak için kullanılan esasen tek boyutlu dizilerdir . Boyuta rağmen listenin, elemanların kendi sayısı, 1 ila 999 arasında olabilir mevcut bellek bir olabilir sınırlayıcı faktör . Bir listenin boyutu olduğundan daha düşük ayarlandığında, sonundaki öğeler kesilir. Daha yükseğe ayarlandığında, sondaki ekstra öğeler sıfırlarla doldurulur. Boyutlar , liste adının içine geçerli bir numara kaydedilerek ayarlanır . Varsayılan listeler L 1 –L 6 olarak adlandırılır , ancak özel listeler oluşturulabilir. Bu ile başvurulan bir listenin boyutunu ayarlayarak yapılır L belirteci içinde 1 ila 5 arasında değişen bir isimle ardından karakterlerin büyük harfle başlar - ve . Listelerin tek tek öğelerine , liste adından sonra parantez içinde öğe numarası yerleştirilerek erişilebilir .L1L6 dim( ListsAZΘ
  • Matrisler , dahil [A]- [J]. Öğeleri, listelerle aynı kısıtlamalara tabidir. Boyutları 99x99 elemana kadar tanımlanabilir, ancak yine kullanılabilir bellek bunu sınırlayacaktır. Kullanıcı tanımlı matrisler oluşturmak mümkün değildir, bu nedenle yalnızca on yerleşik matris kullanılabilir.
  • - , - ve , , dahil denklem değişkenleri . Bunlar esasen denklemleri saklayan dizilerdir. Bir ifadede veya programda kullanıldığında bir değer döndürmek üzere değerlendirilirler. Parantez içindeki sabit değer ile denklem adını (bağımlı, Y) takip ederek bağımsız değişken (X) için belirli değerler (sabit, C) eklenebilir. Aşağıdaki örnekte "(4)" kullanılmıştır (belirli bir neden olmaksızın). ( (4) , X=4'teki değerini döndürürdüY0Y9r1r6uvwY1Y1

Doğrudan manipüle edilemeyen veri türleri şunları içerir:

  • Resimler ( Pic0- Pic9)
  • Programlar ( prgm)
  • Grafik veritabanları ( GDB0- GDB9)

TI-89 (68k)

  • Büyük miktarda veri depolayabilen tam sayılar. 68k hesap makineleri, 'ye kadar çok büyük sayıları mükemmel bir doğrulukla saklayabilir .
  • Ondalık kayan nokta kullanan gerçek sayılar . Bunlar, hesap makinesi modeline bağlı olarak 14 önemli basamağa kadar saklar.
  • Gerçel çiftleri olarak uygulanan karmaşık sayılar .
  • Teller
  • Öğe bazında işlemleri destekleyen tek boyutlu bağlantılı listeler olan listeler . 68k hesap makinelerinde öğeler tamsayılar, gerçekler, karmaşık sayılar, dizeler veya ifadeler olabilir.
  • Listelerde aynı kısıtlamalara tabi olan elemanlara sahip matrisler
  • 68k serisine özgü sembolik ifadeler .

Doğrudan değiştirilemeyen veri türleri (bir satıra yalnızca adlarının yazılması hataya neden olur) şunları içerir:

  • Resimler
  • Veri
  • programlar
  • Fonksiyonlar

Değişkenler

Değişkenlerin kullanımındaki esneklik, hesap makinesi modeline göre büyük ölçüde değişir. Örneğin, TI-84 Plus'ta tüm İngilizce harflerin yanı sıra teta (Θ) mevcuttur.

TI-83/84 (Z80)

TI-83/84'te programcı, adları beş karaktere kadar olan listeler oluşturabilir. 27 gerçek veya karmaşık değişken ve diğer türlerin önceden tanımlanmış bir dizi değişken adı gibi diğer tüm veri türleri sınırlıdır (örneğin, matrisler on değişkenden biri olmalıdır [A]- [J]). TI-83/84'te Ansve finans değişkenleri gibi belirli değişkenlerin RAM'de sabit adresleri vardır, bu da onları 27 harfli değişkenlere göre çok daha hızlı erişmelerini sağlar. Ansson değerlendirilen kodun sonucunu içeren özel bir değişken görevi görür. Sadece değişkenli bir satır hala değerlendirilecek ve Anssonuç olarak içeriği saklanacaktır . Çünkü Ansçok sık reevaluated en sık böyle bir listeden öğeleri olarak çok geçici hesaplamalar saklamak için veya başka erişmek için yavaş olacağını değerlerini tutmak için kullanılır. Tüm değişkenler globaldir.

TI-89 (68k)

Buna karşılık, 68k hesap makineleri, tüm değişken adlarının Yunanca da dahil olmak üzere sekiz adede kadar alfasayısal karaktere sahip olmasına izin verir . Ayrıca, değişkenler "klasörler" halinde gruplandırılabilir veya deyimle bildirilerek bir programa yerel hale getirilebilir Local.

Yorumlar

TI-83/84 (Z80)

Z80 programcıları genellikle bir yorumu belirtmek için satırlara " (çift tırnak işareti) ile başlar. " ile başlayan satırlar aslında Ansdeğişkeni değiştirerek yürütülür , ancak bu, Anshemen ardından okunmadığı sürece performanstan başka bir şeyi etkilemez .

TI-89 (68k)

68k hesap makineleri, programların © 'yi bir yorum sembolü olarak kullanarak tek satırlı yorumları içermesine izin verir . "Prgm" deyiminden sonra ilk satır olarak bir yorum görünüyorsa, katalogda program seçildiğinde durum çubuğunda görüntülenir; bu tür yorumlar genellikle parametre adlarını veya türlerini belgelemek için kullanılır. 68k yorumlayıcı, bir satırın başındaki boşluk karakterlerinin sayısını depolamak için yerleşik bir özelliğe sahiptir, bu girintiye izin verir .

Fonksiyonlar

TI-83/84 (Z80)

TI-BASIC'in Z80 versiyonu, 68k'dekiler gibi açık "işlevleri" imkansız kılar. Bununla birlikte, tüm değişkenler globaldir, bu nedenle, başka bir program çağrılmadan önce argümanlara benzer şekilde değişkenler ayarlanarak işlevler taklit edilebilir. Dönüş değerleri mevcut değil; Returndeyimiyle geçerli program durur ve program denilen yerde devam ediyor.

TI-89 (68k)

TI-BASIC'in 68k sürümü, kullanıcı tanımlı işlevlerin oluşturulmasına izin verir. Fonksiyonlar kullandıkları dışında programları gibi aynı sözdizimi var Func... EndFuncanahtar kelimeler yerine Prgm... EndPrgmve onlar G / Ç, yerel olmayan değişkenlerini değiştirmek yerine kullanılması talimatları, ne de çağrı programlarına izin verilmemektedir. Ancak işlevler , , veya gibi yerleşik işlevleri çağırabildikleri için yine de saf olmayabilirler . Tüm işlevlerin, açık bir ifadenin yokluğunda değerlendirilen son ifade olan bir dönüş değeri vardır . getTime()getKey()rand()Return

Üçüncü taraf dil uzantıları

Üçüncü taraf uygulamalar, kronolojik sırayla Omnicalc, xLIB, Celtic ve Doors CS, ek dil işlevselliği sağlamak için Z80 hesap makinelerinde aşırı TI-BASIC işlevlerine sahiptir. Üçüncü taraf kitaplıkları , ilgili uygulamaları tarafından işlenen ve yorumlanan sum() , real() , det() ve kimlik() işlevlerini aşırı yükler . Ekstra işlevler arasında hızlı şekil çizme rutinleri, hareketli grafik ve tilemap araçları, program ve KDV değiştirme ve erişim yetenekleri, GUI oluşturma özellikleri ve çoğu normalde montaj programcıları tarafından kullanımı kısıtlı olan çok daha fazlası yer alır. Tüm işlevler , kullanıcının hesap makinesinde Doors CS 7.0 gibi bir uygulamanın bulunmasını gerektirir; bu, bazen kitaplıkların kullanımına yönelik bir olumsuzluk olarak kabul edilir.

Örnekler

Selam Dünya

Aşağıdaki programlar yürütüldüğünde " HELLO, WORLD!" ifadesini görüntüler .

TI-83/84 (Z80 Serisi)

:Disp "HELLO, WORLD!"

TI-89 (68k Serisi)

(Bu kod, TI-83/84'teki gibi yalnızca Disp işlevine kısaltılabilir ve merhabawld, prgm ve endprgm otomatik olarak oluşturulur.)

:hellowld()
:Prgm
:ClrIO
:Disp "HELLO, WORLD!"
:Pause
:ClrIO
:DispHome
:EndPrgm

TI-Nspire

text "HELLO, WORLD!"

TI-Nspire Müşteri Deneyimi

text "HELLO, WORLD!"

Listeler ve döngüler

TI-83/84 (Z80 Serisi)

PROGRAM:LISTS
:"ASK FOR THE NUMBER OF VARIABLES
:Input "NUMBER OF VARS? ",A
:"VALIDATE INPUT OR STOP
:If A<1 or fPart(A)
:Stop
:"A FOR LOOP TO ASK FOR EACH VALUE TO BE IN THE LIST
:For(N,1,A
:Input "VAR ",B
:"STORE THE VALUE INTO THE NTH ELEMENT
:B→L1(N)
:End
:"IMPLICITLY RETURN THE FINAL LIST
:L1

TI-89 (68k Serisi)

lists()
:Prgm
:  Local n,i,c © Declare local variables n, i, and c.
:  {}→list © Initialize list as an empty list.
:  Input "Number of variables?",n 
:  For i,1,n
:    Input "Variable #"&string(i),c © & concatenates i after it is converted to a string.
:    c→list[i]
:  EndFor
:EndPrgm

Listelerin birçok olası adı vardır, bu birçok programın önceki verileri geçersiz kılmadan birçok listeyi değiştirmesine izin verir. TI-82'deki listeler özel adlara sahip olamaz (L 1 ila L 6 önceden programlanmıştır). TI-85 ve TI-86, indisli bir değişken adını işleme yeteneğine sahip değildir. TI-81, listeleri tamamen işleyemez. Listeler, çeşitli regresyon analizleri ve daha fazlası dahil olmak üzere istatistikleri hesaplamak için çok sayıda yerleşik TI-BASIC işlevi tarafından kullanılabilir . Bunlar programların içinde çağrılabilir, ancak yürütmeyi duraklatırken yine de bilgileri gösterirler ve belirli sonuçları değişkenlere kaydedemezler.

özyineleme

Tekrarlama mümkündür. Bir program kendi içinden veya başka bir programın içinden çağrılabilir.

TI-83/84 (Z80 Serisi)

Aşağıdaki örnek faktöriyelleri hesaplamak için kullanılır . Çalışması Xiçin faktöriyel fonksiyonun parametresidir ve A1'e eşit olmalıdır.

PROGRAM:FACT
:If X=0
:Then
:Disp A
:Stop
:End
:XA→A
:X-1→X
:prgmFACT

TI-89 (68k Serisi)

factui()
:Prgm
:  Local n
:  Define fact(x)=Func
:    If x=0
:      Return 1
:    Return x*fact(x-1)
:  EndFunc
:  Input "Input a number", n
:  Disp "n! = "
:  Disp fact(n)
:EndPrgm

Fonksiyonlar

68k serisi, programlar ve işlevler arasında bir ayrım yapar. İşlevler, yerel olmayan değişkenleri değiştirmek de dahil olmak üzere G/Ç gerçekleştiren ifadelere izin vermemeleri ve açık bir Returnifadenin yokluğunda değerlendirilen son ifade olan bir değer döndürmeleri dışında tıpkı programlar gibidir .

fact(x)
:Func
:  If x=0
:    Return 1
:  If x<0
:    Return undef
:  x*fact(x-1)
:End Func

Editörler ve Araçlar

Hobi grafik hesap makinesi topluluğunun 1990'lardaki büyümesi, TI-BASIC kodunu posta listelerinde ve tartışma forumlarında paylaşma ihtiyacı da dahil olmak üzere paylaşım ve işbirliğini beraberinde getirdi. İlk başta, bu, bir hesap makinesi ekranından TI-BASIC kodunu bir bilgisayara elle yazarak veya tersine, programları manuel olarak hesap makinelerine girerek yapıldı. TI-BASIC programları tokenize edilmiş bir biçimde saklanır, standart bilgisayar metin düzenleyicileri kullanılarak düzenlenemezler, bu nedenle hesap makinesi programlama topluluğu olgunlaştıkça otomatik bir dönüştürücüye ihtiyaç duyuldu. Texas Instruments'ın TI-GraphLink uygulaması tarafından oluşturulan bilgisayarda depolanan TI-BASIC programlarının formatı sonunda çözüldü ve bu dosyaları işlemek için üçüncü taraf araçlar oluşturuldu. TI, TI-GraphLink bağlama programının belirli yayınlarına dahil ettikleri bir BASIC editörü oluşturdu, ancak yaygın bir kullanım kazanmadı. Özellikle, fora'ya kopyalanıp yapıştırıldığında düzgün görüntülenmeyen özel bir karakter seti kullandı.

2005 yılında Joe Penna , TI-GraphLink düzenleyicisinden metni standart Unicode'a dönüştürmek için bir çevirmen aracı olan OptiBASIC'i yarattı. Proje kısa sürede normal ifade tabanlı bir TI-BASIC iyileştiriciyi içerecek şekilde genişletildi. Bağımsız olarak, Cemetech'ten Christopher "Kerm Martian" Mitchell, düz metin (ve daha sonra HTML ve BBCode formatlı) içeriklerini tokenize edilmiş TI-BASIC programlarından çıkarmak için çevrimiçi bir dönüştürücü oluşturmaya başladı ve bu, bir çevrimiçi program editörü, ihracatçı ve TI'yi içerecek şekilde genişledi. -83 Artı emülatörü. SourceCoder projesi 2005'in sonunda OptiBASIC'i emdi. Şu anda kullanımda olan diğer tek büyük TI-BASIC editörü, Shaun "Merthsoft" McFall tarafından yaratılan TokenIDE (veya "Tokens"). Çevrimdışı bir düzenleyici olan Tokens, TI-BASIC programlarını içe aktarabilir, düzenleyebilir ve dışa aktarabilir, program boyutunu ve doğruluğunu izlemek için araçlar içerir ve hareketli grafik/görüntü düzenleyici gibi yardımcı özellikler sunar. XML dosyalarında depolanan belirteç tanımları etrafında inşa edilmiş olup , kullanıcı tarafından belirtilen herhangi bir belirteç eşlemesi ile çalışmak üzere genişletilebilir olması amaçlanmıştır.

NSprire serisindeki programlar ve ayrıca TI 92 plus ve Voyage 200 hesap makineleri düz açık metin (Ansi/Ascii/ISO 8859-*) formatında aktarılabilir ve kaydedilebilir ve TI hesap makinesi programlaması için birkaç IDE vardır. TI hesaplayıcıları için bir dizi TextPad sözdizimi tanımı, kod parçacığı ve çizelge mevcuttur ve sözdizimi tanımları da Zeus düzenleyicisi tarafından kullanılan biçime dönüştürülmüştür . Net metin biçimi, hesap makinesindeki Lua yorumlayıcısı için de kullanılır.

TI Basic'in TI89-92-Voyage 200 varyantı için hesap makinesi programlarının doğrudan çalıştırılmasına ve bu yorumlayıcı olarak adlandırılan diğer dillerin birleşik programlarına izin verecek bir PC tarafı yorumlayıcısı geliştirmek için bağımsız bir proje mevcuttur. Yorumlayıcı, Windows altında konsol modunda standart girdi, çıktı, hata ve belirlenebilir günlük ve yapılandırma dosyalarını kullanır ve hesap makinesinde kullanılan grafikleri çoğaltmak için ikinci bir program onunla entegre olan Tk araçlarıyla aynı şekilde ilişkilendirilir. Tcl , Perl , Rexx , C ve diğer diller. VBScript tarafından kullanılmak üzere bir Tk türü araç geliştirmek için ilgili bir proje bu aracın kaynağıdır. PC tarafı TI Basic'i elektronik tablo ve veritabanı programları ile VBA ve WSH motorları aracılığıyla entegre eden üçüncü bir araç da tasavvur edilmektedir. Bu proje ayrıca, hesap makinesi tarafı Unix tarzı bir kabuk ve Rexx ve Perl yorumlayıcıları, bir Fortran 77 yorumlayıcısının yanı sıra çeşitli Casio, HP, Sharp ve Texas Instruments hesap makinesi programlama dilleri arasında ileri ve geri gitmek için dönüştürücüler içerir. bunlardan ve çeşitli betik dillerinden .

Ayrıca bakınız

Referanslar

Dış bağlantılar