Łańcuchy Dane tekstowe mają - obok grafiki
Transkrypt
Łańcuchy Dane tekstowe mają - obok grafiki
Łańcuchy Dane tekstowe mają - obok grafiki - największy udział w objętości informacji przetwarzanej i przechowywanej we współczesnych systemach komputerowych. Z tego też względu każdy szanujący się język wysokiego poziomu jest wyposażony w mechanizmy pozwalające na reprezentowanie, przechowywanie i przetwarzanie tekstów. W Turbo Pascalu służy do tego typ łańcuchowy (string), przykładowa deklaracja zmiennej łańcuchowej ma postać var Napis : string; Stałe łańcuchowe zapisuje się natomiast w postaci ciągów znaków ujętych w apostrofy (podobnie jak stałe znakowe): const STALY_NAPIS = 'Turbo Pascal'; Zerowy element łańcucha przechowuje jego aktualną długość (tzw. długość dynamiczną); będąc typu znakowego może on przyjmować wartości od 0 do 255. Stąd właśnie wynika ograniczenie długości łańcucha do 255 znaków, co zresztą w większości przypadków wystarcza aż nadto. Aby "skrócić" łańcuch (dana typu string zajmuje zawsze 256 bajtów, niezależnie od rzeczywistej długości tekstu), można wykorzystać deklarację nazwa-zmiennej : string[długość] Możliwość ta jest szczególnie cenna, jeśli w programie wykorzystujesz np. tablicę łańcuchów: deklarując element składowy tablicy jako string[20] oszczędzasz 235 bajtów, co przy stu elementach daje zysk ponad 20 kB. Warto zauważyć, że próba zapisania do "skróconego" łańcucha tekstu dłuższego niż pozwala deklaracja nie spowoduje błędu, a jedynie obcięcie nadmiarowych znaków. Z rzeczy prostych pozostało jeszcze dodawanie łańcuchów, polegające na ich zwykłym "sklejaniu" (niestety, łańcuchów nie da się odejmować, mnożyć ani dzielić). Jeżeli zmienna lancuch1 zawiera tekst 'Turbo', zaś lancuch2 - tekst 'Pascal', to wynikiem sklejenia obu zmiennych: wynik := lancuch1 + lancuch2; będzie oczywiście tekst 'TurboPascal'. Również odwołania do poszczególnych znaków łańcucha realizuje się w sposób elementarny. Ponieważ może on być traktowany jako tablica znaków, instrukcja s[5] := 'x' - wstawi znak x na piątą pozycję w łańcuchu s. program P010; var S1 : String S2 : String[15] begin S1:='Dowolny ciąg znaków'; S2:='Karol'; Writeln(S1); Writeln(S2); end. program P011; var S1,S2,S3 : String begin S1:='Turbo'; S2:='Pascal'; S3:=S1+' '+S2; Writeln(S3); end.