String merupakan salah satu tipe data yang bisa digunakan dalam program pascal dalam format untaian huruf. Dengan menggunakan tipe data ini, dapat dibuat dengan mudah program membalik kalimat. Program membalik kalimat yang dimaksud adalah program yang mempunyai output membaca input dari belakang. Sebagai contoh:
Input:
MATHEMATICS AND SCIENCE
Output:
ECNEICS DNA SCITAMEHTAM
Pada saat menggunakan tipe data ini, dapat diperhatikan bahwa s[i] menyatakan karakter ke-i dari input program dan length(s) menyatakan banyaknya karakter yang diinputkan ke program.
Sehingga program membalik kalimat dapat dibuat seperti berikut.
var s:string; j,i:integer;beginreadln(s);i:=length(s);for j:=i downto 1 dobeginwrite(s[j]);end;end.
Dalam free pascal dapat dilihat pada gambar di bawah ini.
Sehingga pada saat dirun, dan untuk 2 contoh input, dapat dilihat pada gambar di bawah ini.
Apabila ingiin mengunduh dalam format txt, silakan klik di sini.
uses wincrt;
const elemen = 255;
type s255 = string[elemen];
tumpukan = record
isi:s255;
atas: 0..elemen;
end;
var t: tumpukan;
i, k, l, m: integer;
kal, word: s255;
procedure awalan(var t: tumpukan);
begin
t.atas:=0;
end;
procedure push (var t:tumpukan; x: char);
begin
t.atas:=t.atas+1;
t.isi[t.atas]:= x;
end;
function pop(var t:tumpukan):char;
begin
pop:=t.isi[t.atas];
t.atas:=t.atas-1;
end;
begin
clrscr;
awalan(t);
writeln('membalik kalimat Adjja');
writeln;
write('Masukan Kalimat yang kaba pengen: '); readln(kal);
clrscr;
writeln('kalimat asli: ',kal);
writeln;
write('Hasil stack adalah : ');
for i:=1 to length(kal) do
begin
if (kal[i]=' ') then
begin
for k:=(i-1) downto l do
word:=word+kal[k];
word:=word+kal[i];
end;
l:=length(word);
if i=length(kal) then
begin
for i:=length(kal) downto l do
word:=word+kal[i];
end;
end;
for i := 1 to (length(kal) + 1) do
push(t, word [i]);
for i := 1 to (length(kal) + 1) do
write (pop (t) );
readln;
end.
ini cara lain ya, cukup panjang