Problem

1/10

المصفوفات (القوائم). مقدمة

Theory Click to read/hide

تخزين البيانات لنفترض أنك طورت لعبة كمبيوتر تسمى "User Hostile" حيث يتنافس اللاعبون ضد واجهة كمبيوتر معقدة وغير ودية. أنت الآن بحاجة إلى كتابة برنامج يتتبع المبيعات الشهرية لهذه اللعبة على مدار فترة خمس سنوات. أو لنفترض أنك بحاجة إلى جرد بطاقات تداول Hacker Hero.
قريبًا ستصل إلى استنتاج مفاده أنك بحاجة إلى أكثر من أنواع البيانات الأساسية البسيطة لتخزين المعلومات ومعالجتها.
نبسب ؛

صفائف (قوائم). مقدمة لتسهيل العمل مع كمية كبيرة من البيانات ، يتم إعطاء مجموعة من الخلايا اسمًا شائعًا. تسمى هذه المجموعة من الخلايا مصفوفة
Array & ndash؛ إنها مجموعة من خلايا الذاكرة من نفس النوع ، وتقع جنبًا إلى جنب ولها اسم شائع. كل خلية في المجموعة لها رقم فريد.

عند العمل مع المصفوفات ، تحتاج إلى تعلم كيفية حل ثلاث مهام:
x تخصيص ذاكرة بالحجم المطلوب لصفيف
x كتابة البيانات إلى الخلية المطلوبة
x قراءة البيانات من الخلية


المصفوفات في باسكال


تقليديا ، يستخدم باسكال مصفوفات ثابتة مثل <قبل> var a: المصفوفة [1..10] من عدد صحيح ؛

يجب تعيين حدود المصفوفة بواسطة الثوابت ، ولا يمكنك تغيير حجم المصفوفة أثناء تشغيل البرنامج. ولكن يمكنك إنشاء فهرس ليس فقط لعدد صحيح ، ولكن أيضًا ، على سبيل المثال ، من حرف أو نوع تم تعداده. على سبيل المثال ، لحساب تواجد كل حرف ، يمكنك استخدام مصفوفة <قبل> var LettersCount: مصفوفة [& # 39 ؛ a & # 39 ؛ .. & # 39 ؛ z & # 39 ؛] من عدد صحيح ؛

واعمل معها بما يرضي قلبك: <قبل> LettersCount [& # 39 ؛ z & # 39 ؛]: = 1 ؛ LettersCount [& # 39 ؛ d & # 39 ؛]: = LettersCount [& # 39 ؛ d & # 39 ؛] + 1 ؛

تُعرف عيوب هذه المصفوفات: إذا لم يكن معروفًا مسبقًا عدد العناصر التي يجب استخدامها ، فسيتم تخصيص الحد الأقصى لحجم الذاكرة للمصفوفة. نتيجة لذلك ، في معظم الحالات ، "نخزن للمستقبل" ، وأحيانًا يكون هذا "الاحتياطي" تبين أنه لا يكفي. هذا هو سبب تسمية هذه المصفوفات & nbsp؛ static : حجمها ثابت ويجب تعيينه في مرحلة تجميع البرنامج. ومع ذلك ، يوجد في باسكال & nbsp؛ & nbsp؛ مصفوفات ديناميكية ، لا يمكن تعيين حجمها فحسب ، بل يمكن تغييرها أيضًا أثناء البرنامج. ستتم مناقشة هذه المصفوفات ومزايا استخدامها بمزيد من التفصيل.

إنشاء مصفوفة

عند إنشاء مصفوفة ، يتم تخصيص مساحة في الذاكرة (عدد معين من الخلايا) <قبل> 1) يمكن أن تكون المصفوفات تم إنشاؤها عن طريق سرد العناصر ببساطة: <قبل> var a: مجموعة من الأعداد الصحيحة ؛ SetLength (أ ، 3) ؛ أ [0]: = 1 ؛ أ [1]: = 2 ؛ أ [2]: = 3 ؛
2) يمكن أن تتكون المصفوفات من بيانات من أي نوع - أعداد صحيحة أو أرقام حقيقية ، سلاسل أحرف & nbsp؛ <قبل> var a: مجموعة من الأحرف ؛ SetLength (أ ، 3) ؛ أ [0]: = & # 39؛ a & # 39 ؛؛ أ [1]: = & # 39 ؛ b & # 39 ؛؛ أ [2]: = & # 39 ؛ c & # 39 ؛؛ 3) المصفوفة دائمًا "تعرف" حجمك. يتم استخدام الدالة & nbsp؛ length لتحديد حجم المصفوفة. غالبًا ما يتم تخزين حجم المصفوفة في متغير منفصل بحيث يمكن تغيير البرنامج بسهولة للعمل مع حجم مصفوفة مختلف. مثال: <قبل> N: = 10 ؛ // في المتغير N نقوم بتخزين حجم المصفوفة SetLength (أ ، ن) ؛ // ضبط الصفيف والحجم ن writeln (الطول (أ)) ؛ // عرض حجم المصفوفة يمكن ضبط حجم المصفوفة من لوحة المفاتيح.

Problem

قم بتعديل البرنامج بحيث يتم إدخال قيمة المتغير N في السطر الخامس من لوحة المفاتيح ، وفي السطر السادس يتم إنشاء مصفوفة بالحجم N (يمكن أن تكون قيم عناصر المصفوفة أيًا)