Advertisement
RieqyNS13

Untitled

Mar 18th, 2014
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.98 KB | None | 0 0
  1. Operasi String
  2.  
  3. Batas Waktu 1 detik
  4. Batas Memori 16 MB
  5.  
  6.  
  7. Pada latihan ini, program Anda harus membaca sebuah empat buah string yang kita beri nama S1, S2, S3, dan S4. Misalnya program Anda mendapat input seperti ini:
  8.  
  9. abcdehalofghi
  10. bcd
  11. halo
  12. semua
  13. Dijamin bahwa string S1 mengandung sebuah string S2 di dalamnya. Buang string S2 yang ditemukan di string S1 (dijamin ada, dan hanya satu). Kemudian sisipkan string S4 pada posisi setelah string S3 yang ditemukan di string S1 (dijamin ada, dan hanya satu). Jadi pada contoh di atas, abcdehalofghi diubah menjadi aehalofghi, lalu menjadi aehalosemuafghi. Keluarkan string hasil akhir, yang pada contoh ini adalahaehalosemuafghi.
  14.  
  15. Untuk menyelesaikan masalah tersebut, kita perlu mengenal berbagai fungsi-fungsi dan prosedur-prosedur penanganan string yang disediakan oleh library Pascal yang bisa kita gunakan. (Dapat dilihat di
  16. http://community.freepascal.org:10000/docs-html/rtl/system/stringfunctions.html)
  17. Fungsi-fungsi dan prosedur-prosedur yang akan kita gunakan adalah:
  18.  
  19. function length(s: string): integer;
  20. function pos(substr: string; s: string): integer;
  21. procedure delete(var s: string; index: integer; count: integer);
  22. procedure insert(s: string; var source: string; index: integer);
  23. Fungsi length akan mengembalikan panjang dari s.
  24.  
  25. Jika string s mengandung string substr, fungsi pos akan mengembalikan index pertama dari kemunculan pertama substr di dalam s (karakter pertama diberi index 1). Jika tidak ada, fungsi ini akan mengembalikan 0.
  26.  
  27. Prosedur delete akan membuang sebanyak count karakter pada string s, dimulai dengan index ke-index. Misalnya, jika s pada mulanya adalah 'Halo', delete(s, 1, 2) akan mengubah isi s menjadi 'lo'.
  28.  
  29. Prosedur insert akan memasukkan string s ke dalam string source, dimulai pada posisi index ke-index.
  30.  
  31. Untuk menyelesaikan masalah awal, kita dapat membuat program sebagai berikut:
  32.  
  33. var
  34. S1, S2, S3, S4: string;
  35. begin
  36. readln(S1);
  37. readln(S2);
  38. readln(S3);
  39. readln(S4);
  40.  
  41. delete(S1, pos(S2, S1), length(S2));
  42. insert(S4, S1, pos(S3, S1) + length(S3));
  43.  
  44. writeln(S1);
  45. end.
  46. Pada program di atas, S2 di dalam S1 akan dibuang dari S1, dan selanjutnya S4 akan dimasukkan ke dalam S1 tepat pada posisi pos(S3, S1) + length(S3), yaitu posisi karakter pertama yang tidak termasuk S3, setelah kemunculan seluruh karakter S3 di dalam S1.
  47.  
  48. Namai program tersebut dengan nama pjj0114 dan simpanlah dengan nama 'pjj0114.PAS'.
  49.  
  50. Contoh Masukan
  51.  
  52. abcdehalofghi bcd halo semua
  53. Contoh Keluaran
  54.  
  55. aehalosemuafghi
  56. Masih banyak fungsi-fungsi dan prosedur-prosedur lain yang mungkin berguna, yang bisa dipelajari di
  57. http://community.freepascal.org:10000/docs-html/rtl/system/index.html
  58.  
  59. Berikut ini adalah ringkasan dari beberapa fungsi yang mungkin berguna:
  60.  
  61. procedure str(x: integer; var s: string);
  62. Prosedur ini akan mengubah nilai integer x menjadi string, lalu dimasukkan ke dalam variabel s. Misalnya, jika x bernilai 10, s akan menjadi bernilai '10'.
  63.  
  64. function lowerCase(s: string): string;
  65. Fungsi ini akan menghasilkan sebuah string seperti s tetapi semua karakternya diubah ke huruf kecil.
  66.  
  67. function upCase(s: string): string;
  68. Fungsi ini akan menghasilkan sebuah string seperti s tetapi semua karakternya diubah ke huruf besar.
  69.  
  70. function chr(b: byte): char;
  71. Fungsi ini akan mengembalikan sebuah karakter yang memiliki kode ASCII b. Misalnya chr(65) akan mengembalikan "A".
  72.  
  73. function ord(c: char): longint;
  74. Fungsi ini akan mengembalikan nilai bilangan bulat dari sebuah tipe ordinal. Biasanya fungsi ini digunakan untuk menentukan kode ASCII dari karakter c. Misalnya, ord("A") akan mengembalikan 65.
  75.  
  76. Kombinasi chr dan ord dapat digunakan untuk mengubah sebuah karakter dari huruf kecil menjadi huruf besar, atau sebaliknya. Misalnya,chr(ord("x") + (ord("A") - ord("a"))) akan menghasilkan "X".
  77.  
  78. function abs(l: longint): longint;
  79. Fungsi ini akan mengembalikan nilai absolut dari l. Misalnya, abs(-3) akan mengembalikan 3, dan abs(3) juga mengembalikan 3.
  80.  
  81. procedure dec(var x: integer); procedure dec(var x: integer; decrement: integer);
  82. Prosedur ini akan mengurangi nilai x dengan 1, atau dengan nilai decrement jika diberikan.
  83.  
  84. procedure inc(var x: integer); procedure inc(var x: integer; increment: integer);
  85. Prosedur ini akan menambah nilai x dengan 1, atau dengan nilai increment jika diberikan.
  86.  
  87. function sqr(x: longint): longint; function sqr(x: real): real;
  88. Fungsi ini akan mengembalikan kuadrat dari x.
  89.  
  90. function sqrt(x: real): real;
  91. Fungsi ini akan mengembalikan akar kuadrat dari x.
  92.  
  93. function trunc(x: real): integer;
  94. Fungsi ini akan mengembalikan bagian bilangan bulat dari sebuah bilangan real x. Misalnya, trunc(3.456) akan menghasilkan 3.
  95.  
  96. function round(x: real): integer;
  97. Fungsi ini akan menghasilkan pembulatan dari sebuah bilangan real x. Pada Pascal, aturan pembulatan untuk 0.5 adalah ke arah bilangan genap. Jadi, round(1.5) akan menghasilkan 2, tetapi round(2.5) juga akan menghasilkan 2.
  98.  
  99. function pi: real;
  100. Fungsi ini mengembalikan nilai pi (3.14159...).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement