سلاسل. نظرة عامة

السلسلة عبارة عن قائمة (أو تسلسل) من الأحرف بترتيب معين. يتم التعامل مع التسلسل الكامل للأحرف على أنه كيان واحد.

الحرف هو أي شيء يمكنك كتابته على لوحة المفاتيح بضغطة مفتاح واحدة (حرف أو رقم أو شرطة مائلة للخلف أو أي حرف آخر).
يمكن أن تحتوي السلاسل على مسافات: & nbsp؛ & quot؛ Hello world! & quot؛ .
السلسلة الفارغة هي سلسلة تتكون من 0 حرفًا.
يتعرف باسكال على كل شيء مكتوب بالفاصلات على شكل سلاسل ( & # 39 ؛ & # 39 ؛ ).
في باسكال ، تكون السلسلة من النوع string .

يمكنك كتابة قيمة جديدة لسلسلة باستخدام جملة الإدخال <قبل> قراءة (ق) ؛ يمكنك أيضًا ببساطة تعيين قيمة سلسلة للمتغير ، مثل & nbsp؛ <قبل> s: = & # 39 ؛ Python & # 39 ؛؛ يمكنك تحديد طول سلسلة باستخدام الدالة المضمنة length <قبل> n: = length (s)


مقارنة السلاسل

يمكن مقارنة السلاسل ببعضها البعض تمامًا مثل الأرقام. يمكنك تحديد أي الخطوط أكبر ، أي أقل.

عند مقارنة السلاسل ، تتم مقارنة رموز الأحرف. هناك العشرات ، إن لم يكن المئات ، من ترميز الأحرف. أسهل طريقة لفهم هذا المفهوم هي فهم أبسطها ، ASCII (اقرأ هنا ). نبسب ؛
من الضروري أن نفهم أنه في الترميزات الحديثة يتم ترتيب الحروف الروسية والإنجليزية بالترتيب الأبجدي ، كما تنتقل الأرقام أيضًا من الأصغر إلى الأكبر. & nbsp؛
على سبيل المثال ، في جدول رموز ASCII ، رمز الحرف الإنجليزي & # 39 ؛ A & # 39 ؛ - 65 ، الحروف & # 39 ؛ a & # 39 ؛ - 97 ، رقم & # 39 ؛ 0 & # 39 ؛ يحتوي على رمز 48. توجد الأحرف الروسية في الجزء الممتد من جدول رموز ASCII (الأرقام من 128 إلى 255). تأتي الأحرف الكبيرة قبل (أي تحتوي على رمز أصغر) من الأحرف الصغيرة.
في معظم جداول الترميز المستخدمة ، تكون الأنماط هي نفسها ، والأحرف الصغيرة متأخرة عن الأحرف الكبيرة ، والأرقام أقدم من الأحرف ، والحروف الروسية متأخرة عن الأحرف الإنجليزية.

على سبيل المثال: & quot؛ قاطرة & quot؛ & nbsp؛ العلامة & lt؛ "steamboat" ، لأن الكلمات تختلف في الحرف الخامس و "in" العلامة & lt؛ "x".

لسوء الحظ ، لا توجد وظيفة في باسكال تسمح بقراءة أسطر متعددة مفصولة بمسافات من سطر واحد. للقيام بذلك ، عليك كتابة الوظيفة الخاصة بك: <قبل> فارز ، ث: خيط ؛ i ، j ، ind: عدد صحيح ؛ أ: مجموعة من الخيط. يبدأ readln (ق) ؛ setlength (a ، length (s)) ؛ أنا: = 1 ؛ ind: = 0 ؛ بينما أنا العلامة & lt ؛ طول (ق) تفعل يبدأ بينما (i ​​& lt ؛ length (s)) و (& # 39 ؛ & # 39 ؛ + s [i] = & # 39 ؛ & # 39 ؛) أفعل أنا + = 1 ؛ ي: = أنا + 1 ؛ ث: = & # 39 ؛ & # 39 ؛ + s [i] ؛ بينما (j & lt ؛ length (s)) و (& # 39 ؛ & # 39 ؛ + s [j] & lt ؛ & gt ؛ & # 39 ؛ & # 39 ؛) تبدأ w + = s [j] ؛ ي + = 1 ؛ نهاية؛ a [ind]: = w ؛ إيند + = 1 ؛ أنا: = ي ؛ نهاية؛ اكتب (أ [0] ، أ [1]) ؛ نهاية.

نتيجة لذلك ، نحصل على مجموعة من السلاسل.

يمكن إضافة السلاسل معًا باستخدام علامة "+". تسمى هذه العملية تسلسل السلسلة أو التسلسل . & nbsp؛
على سبيل المثال ، <قبل> s: = & # 39 ؛ مرحبًا ، & # 39 ؛؛ s1: = & # 39 ؛ world & # 39 ؛؛ writeln (s + s1) ؛ ستعرض الشاشة عبارة & quot؛ Hello world & quot؛ (بدون اقتباسات).

الإشارة إلى فهارس الصفوف كل حرف في السلسلة له رقمه الخاص (يُطلق عليه & nbsp ؛ index ) ، وتبدأ الفهرسة في لغة البرمجة Pascal من واحد. أي أن الحرف الأول به فهرس 1 ، والثاني به فهرس 2 ، وهكذا.
يمكن الوصول إلى أحرف السلسلة بواسطة الفهارس ، والتي يشار إليها بين قوسين مربعين & nbsp؛ s [i] .
نبسب ؛
مثال & nbsp؛
<الجسم>
String S H e l l o
الفهرس S [1] S [2] S [3] S [4] S [5]

ملاحظة. تفترض العديد من طرق السلسلة في PascalABC.NET أن السلاسل مفهرسة من الصفر. لن نستخدم طرق السلسلة التي تعمل مع الفهارس الصفرية في الوقت الحالي. هناك بدائل مكافئة لهذه الوظائف الخارجية تفترض أن الصفوف مفهرسة من 1. & nbsp؛
نبسب ؛

نظرًا لأنه يمكن الوصول إلى الحرف عن طريق الفهرس ، يمكنك استخدام حلقة متغيرة للتكرار على جميع الأحرف ، والتي ستأخذ قيم الفهرس الممكنة. على سبيل المثال ، سيبدو البرنامج الذي يعرض جميع رموز الأحرف في السلسلة s بهذا الشكل <قبل> بالنسبة إلى i: = 1 إلى length (s) writeln (s [i] ، ord (s [i])) شروحات للبرنامج:
1) تحدد الدالة length (s) طول السلسلة. فهرس الحرف الأول هو 1 وفهرس الأخير هو الطول (الأطوال). سيأخذ متغير الحلقة i القيم من 1 إلى الطول (الأطوال).
2) في كل سطر ، سيتم عرض الرمز نفسه أولاً ، ثم رمزه ، والذي يتم إرجاعه بواسطة الوظيفة المضمنة ord ()

يمكن كتابة نفس التعداد بشكل أقصر: <قبل> ل c in s do & nbsp؛ نبسب ؛ نبسب ؛ writeln (c ، ord (c)) ؛ في هذا الجزء ، يدور رأس الحلقة عبر جميع الأحرف s ، ويضعها بدورها في المتغير c.

إن خصوصية باسكال عند التعامل مع الجمل هي أن الأوتار هي كائنات قابلة للتغيير. بمعنى آخر ، يمكننا تغيير الأحرف الفردية لسلسلة.
على سبيل المثال ، سوف تعمل العبارة التالية <قبل> ق [5]: = & # 39 ؛ أ & # 39 ؛؛ يمكنك أيضًا إنشاء سلسلة جديدة من الأحرف بالتغييرات المطلوبة.
على سبيل المثال ، برنامج يستبدل جميع الأحرف & # 39 ؛ a & # 39 ؛ إلى الشخصيات & # 39 ؛ b & # 39 ؛ سيبدو هكذا: <قبل> قراءة (ق) ؛ نبسب ؛ نبسب ؛ بالنسبة إلى i: = 1 إلى length (s) ابدأ نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ if s [i] = & # 39 ؛ a & # 39 ؛ ثم s [i]: = & # 39 ؛ b & # 39 ؛؛ نبسب ؛ نبسب ؛ نهاية؛ writeln (s) ؛ في هذا المثال ، نقوم بعمل حلقة عبر جميع أحرف السلسلة s. في نص الحلقة ، نتحقق من قيمة المتغير s [i]: إذا كان الحرف يطابق الحرف & # 39 ؛ a & # 39 ؛ ثم نستبدلها بـ & # 39 ؛ b & # 39 ؛.
نبسب ؛