Rozdział 7 - Łańcuchy tekstowe

Jedną z rzeczy, które może robić ZX81, a której nie potrafią kalkulatory kieszonkowe to operacje na tekstach. Wpisz:

PRINT "SIEMANKO. JESTEM TWOIM ZX81."       (" to klawisz P z SHIFT)

Sprawiające dreszcz pozdrowienie wewnątrz cudzysłowów zwie się łańcuchem (co oznacza ciąg znaków), który może zawierać dowolne znaki, jakie ci się podobają z wyjątkiem cudzysłowu (lecz zamiast niego możesz użyć tzw. obrazu cudzysłowu "" (Q z SHIFT) i zostanie on wydrukowany jako " przez polecenie PRINT).

Typowym błędem przy wpisywaniu łańcuchów jest pominięcie jednego z cudzysłowów - wtedy pojawi się znacznik  S .

Gdy wyświetlasz liczby, możesz wykorzystać te łańcuchy do wyjaśnienia znaczenia liczb. Na przykład wpisz:

LET JAJA=61

a następnie:

PRINT "CENA JAJ WYNOSI  ";JAJA;" NOWYCH PENSOW ZA TUZIN."

(nie przejmuj się, że tekst tego polecenia wyjdzie poza koniec wiersza).

Polecenie wyświetla trzy rzeczy (elementy PRINT), mianowicie łańcuch "CENA JAJ WYNOSI ", liczbę 61 (wartość zmiennej JAJA) i następnie łańcuch "NOWYCH PENSOW ZA TUZIN". W rzeczywistości możesz wyświetlić tyle elementów, ile ci się podoba, a wśród nich dowolną mieszaninę łańcuchów i liczb (lub wyrażeń). Zwróć uwagę, iż spacje w łańcuchach należą do nich tak samo jak litery. Nie są ignorowane, nawet na końcu.

Z łańcuchami możesz robić całe mnóstwo rzeczy.

 

  1. Możesz przypisywać je do zmiennych. Jednakże nazwa zmiennej musi posiadać specjalną postać, aby pokazać, iż jej wartość jest łańcuchem a nie liczbą: musi zawierać pojedynczą literę, po której następuje $ (U z SHIFT). Na przykład wpisz:

LET A$="DOUBLE GLOUCESTER"

a następnie

PRINT A$

 

  1. Możesz łączyć je razem. Często nazywa się to konkatencją, co oznacza "złączenie w jedno" i jest dokładnie tym, co się dzieje. Wypróbuj:

PRINT "GAMMO" + "N RASHERS"

Łańcuchów nie możesz odejmować, mnożyć lub dzielić, czy podnosić do potęgi.

 

  1. Do łańcuchów możesz zastosować niektóre funkcje w celu otrzymania liczb i na odwrót. 
LEN   Stosuje się do łańcucha, a wynikiem jest jego długość, czyli liczba zawartych w łańcuchu znaków (spacje też się liczą). Na przykład LEN "SEREK" = 6.
VAL   Stosuje się do łańcucha, a wynikiem jest to, co zawiera łańcuch potraktowany jako wyrażenie arytmetyczne. Na przykład (jeśli A = 9), VAL "1/2+SQR A" = 3.5. Jeśli łańcuch, do którego zastosowano VAL zawiera zmienne, to należy przestrzegać dwóch reguł:
  (i) Jeśli funkcja VAL jest częścią większego wyrażenia, to musi wystąpić na jego początku, np. LET X = 7+VAL "Y" należy zmienić na LET X = VAL "Y" +7.
  (ii) VAL może pojawić się tylko w pierwszej współrzędnej polecenia PRINT AT, PLOT lub UNPLOT (zobacz do rozdziału 17 i 18) tj. 10 PLOT 5, VAL "X" musi być zastąpione przez

10 LET Y = VAL "X"
15 PLOT 5, Y

STR$   Stosuje się do liczby, a wynikiem jest to, co pojawiłoby się na ekranie, gdyby liczba została wyświetlona przez polecenie PRINT. Na przykład STR$ 3.5 = "3.5".

 

  1. Co się tyczy liczb, możesz użyć połączyć je z funkcjami, aby stworzyć wyrażenia łańcuchowe, takie jak:

VAL (STR$ LEN "123456"+"-4")

co jest obliczane w sposób następujący:


 

 
 

Podsumowanie

Łańcuchy

Operacja: + (dla łańcuchów)

Funkcje: LEN, VAL, STR$
 

 

Ćwiczenia

  1. Wpisz:

LET A$="2+2"

a następnie:

PRINT A$;" = ",VAL A$

Spróbuj zmienić A$ na coś bardziej skomplikowanego i wykonaj ponownie to samo. np.

LET A$="ATN 1*4"

(wynikiem powinna być wartość liczby π).
 

 

  1. Łańcuch "" nie zawierający znaków nazywa się łańcuchem pustym lub zerowym. To jedyny łańcuch o długości 0. Pamiętaj, iż spacje są znaczące i pusty łańcuch nie jest tym samym, co łańcuch zawierający spacje.

Nie myl go z obrazem cudzysłowu "" (pojedynczy znak, Q z SHIFT). Jest to specjalne rozwiązanie omijające fakt, iż nie można umieścić znaku cudzysłowu wewnątrz łańcucha (czemu nie?). Gdy obraz cudzysłowu pojawia się w łańcuchu posiadającym na końcach cudzysłowy (na przykład w tekście programu), pokazuje się jako dwa symbole cudzysłowu w celu odróżnienia od zwykłego cudzysłowu; lecz przy wyświetlaniu poleceniem PRINT dostajesz tylko pojedynczy cudzysłów.

Wpisz:

PRINT "X";"";"X",""""."""";"";""""
 

 

  1. Jeśli bawi cię obrażanie komputerów, wpisz:

PRINT "2+2 = ";2+1

 



List do administratora Serwisu Edukacyjnego Nauczycieli I LO

Twój email: (jeśli chcesz otrzymać odpowiedź)
Temat:
Uwaga: ← tutaj wpisz wyraz  ilo , inaczej list zostanie zignorowany

Poniżej wpisz swoje uwagi lub pytania dotyczące tego rozdziału (max. 2048 znaków).

Liczba znaków do wykorzystania: 2048

 

W związku z dużą liczbą listów do naszego serwisu edukacyjnego nie będziemy udzielać odpowiedzi na prośby rozwiązywania zadań, pisania programów zaliczeniowych, przesyłania materiałów czy też tłumaczenia zagadnień szeroko opisywanych w podręcznikach.



   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2018 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.