المصفوفات أحادية البعد هي واحدة من هياكل البيانات الرئيسية في لغة سي. أنها تسمح لك لتخزين ومعالجة تسلسل من نفس النوع من العناصر. يمكن إدخال صفيف أحادي البعد في برنامج ج بطرق مختلفة.
أسهل طريقة هي إدخال صفيف باستخدام لوحة المفاتيح. للقيام بذلك ، قم بتعريف متغير صفيف من النوع والحجم المطلوبين ، ثم باستخدام حلقة ، املأ عناصره بالقيم التي سيتم إدخالها من لوحة المفاتيح بواسطة المستخدم. للراحة ، يمكنك استخدام وظيفة المسح الضوئي () ، والذي يسمح لك لقراءة القيم من لوحة المفاتيح وحفظها في المتغيرات.
الطريقة الثانية لإدخال مصفوفة أحادية البعد يمكن أن تكون قراءة القيم من ملف. في هذه الحالة ، تحتاج إلى إنشاء ملف نصي يتم فيه تسجيل قيم عناصر المصفوفة ، كل قيمة في سطر منفصل. ثم ، باستخدام وظيفة فوبين () ، نفتح الملف للقراءة وقراءة محتوياته باستخدام وظيفة فسكانف (). يمكن حفظ القيم الناتجة في المصفوفة المعلنة مسبقا.
الطريقة الثالثة هي ملء المصفوفة بالقيم الافتراضية. يمكن أن يكون هذا مفيدا في الحالات التي تحتاج فيها إلى تهيئة صفيف بقيم معينة أو ملئه بتسلسل معين من العناصر. للقيام بذلك ، يمكنك استخدام حلقة من شأنها تعيين القيم اللازمة لعناصر المصفوفة ، أو تعيين القيم عند إعلان المصفوفة.
نتيجة لذلك ، يمكن إدخال صفيف أحادي البعد في برامج ج عن طريق قراءة القيم من لوحة المفاتيح أو القراءة من ملف أو ملء القيم الافتراضية. يعتمد اختيار طريقة معينة على متطلبات البرنامج والموارد المتاحة.
- تحديد وإعلان مصفوفة أحادية البعد
- تهيئة مصفوفة أحادية البعد
- الوصول إلى عناصر مصفوفة أحادية البعد
- تغيير عناصر مصفوفة أحادية البعد
- مثال على العمل مع مصفوفة أحادية البعد في ج
- سؤال وجواب
- كيف أعلن صفيف أحادي البعد في ج?
- هل من الممكن أن تعلن مجموعة دون تحديد حجمها?
- هل من الممكن تغيير حجم صفيف أعلن بالفعل?
تحديد وإعلان مصفوفة أحادية البعد
المصفوفة أحادية البعد هي بنية بيانات تسمح لك بتخزين سلسلة من العناصر من نفس النوع في سطر واحد. كل عنصر في المصفوفة له فهرس خاص به ، والذي يحدد موقعه في المصفوفة.
من أجل الإعلان عن مصفوفة أحادية البعد في ج ، يجب عليك تحديد نوعها واسمها ، وكذلك تحديد حجم المصفوفة بين قوسين مربعين. على سبيل المثال:
أرقام كثافة العمليات[10] ؛ / / إعلان صفيف "أرقام" من نوع "كثافة العمليات" بحجم 10 عناصرفي هذا المثال ، نعلن صفيف اسمه " أرقام "من نوع" كثافة العمليات " ومع حجم 10 عناصر. هذا يعني أن مصفوفة "الأرقام" ستتألف من 10 عناصر صحيحة.
يتم فهرسة المصفوفات في ج بدءا من 0. هذا يعني أن العنصر الأول من المصفوفة يحتوي على فهرس 0 ، والعنصر الثاني يحتوي على فهرس 1 ، وهكذا.
يمكن قراءة كل عنصر من عناصر المصفوفة وكتابته باستخدام اسمه وفهرسه. على سبيل المثال:
أرقام [0] = 42 ؛ / / تعيين القيمة 42 للعنصر الأول من المصفوفة "أرقام"
الباحث س = أرقام [1] ؛ / / تعيين العنصر الثاني من مجموعة "أرقام" إلى متغير "س"
في هذا الرمز ، ونحن تعيين قيمة 42 إلى العنصر الأول من مجموعة" أرقام "وقراءة العنصر الثاني من مجموعة" أرقام "في المتغير"س".
لاحظ أنه يجب معرفة حجم المصفوفة في مرحلة التجميع من البرنامج. في ج ، لا يمكنك تغيير حجم المصفوفة بعد الإعلان عنها. إذا كنت بحاجة إلى تخزين عدد متغير من العناصر ، فيمكنك استخدام الذاكرة الديناميكية أو استخدام المصفوفات الديناميكية.
هنا هو مثال بسيط يوضح الإعلان واستخدام مجموعة أحادية البعد:
# تشمل
كثافة العمليات الرئيسية () {
أرقام كثافة العمليات[5] = {1, 2, 3, 4, 5}; // الإعلان والتهيئة
صفيف إنت أنا;
برينتف ("عناصر مجموعة الأرقام:
");
إلى عن على (أنا = 0 ؛ أنا < 5 ؛ أنا i) {
برينتف ("٪د
"،أرقام [أنا]) ؛ / / إخراج عناصر المصفوفة
}
العودة 0;
}
يعلن هذا الرمز "أرقام" مصفوفة أحادية البعد مع خمسة عناصر ويهيئها بالقيم 1 و 2 و 3 و 4 و 5. ثم يعرض كل عنصر من عناصر المصفوفة على الشاشة.
إن استخدام المصفوفات أحادية البعد يجعل من الممكن تنظيم تخزين ومعالجة كمية كبيرة من البيانات بكفاءة. تستخدم على نطاق واسع في البرمجة لحل المهام المختلفة.
تهيئة مصفوفة أحادية البعد
صفيف أحادي البعد في ج هي مجموعة من العناصر من نفس النوع تقع بالتتابع في الذاكرة. لتهيئة مصفوفة أحادية البعد ، يجب تحديد نوعها واسمها وتعيين قيم العناصر.
هناك عدة طرق لتهيئة مصفوفة أحادية البعد في ج:
- التهيئة عند إعلان صفيف:
أرقام كثافة العمليات[] = {1, 3, 5, 7, 9};
في هذا المثال ، تتم تهيئة مصفوفة "الأرقام" بالقيمة {1, 3, 5, 7, 9}. يحدد المترجم تلقائيا حجم المصفوفة بناء على عدد القيم المحددة.
- تهيئة عناصر المصفوفة في حلقة:
أرقام كثافة العمليات [5];
الباحث الأول;
إلى عن على (أنا = 0 ؛ أنا < 5 ؛ أنا i) {
أرقام [أنا] = أنا * 2;
}
في هذا المثال ، يتم الإعلان أولا عن مصفوفة من "الأرقام" بالحجم 5 ، ثم في حلقة يتم تعيين قيمة محسوبة لكل عنصر باستخدام الصيغة "أنا * 2" ، حيث "أنا" هو فهرس العنصر.
- تهيئة صفيف عن طريق تعيين فهارس البداية والنهاية:
أرقام كثافة العمليات[5] = {[1] = 10, [3] = 20};
في هذا المثال ، تتم تهيئة مصفوفة "الأرقام" بالقيمتين 10 و 20 للعناصر ذات الفهارس 1 و 3 ، على التوالي. يتم تهيئة العناصر الأخرى من المصفوفة تلقائيا إلى القيمة 0.
لاحظ أنه في ج ، تبدأ فهرسة الصفيف من 0 ، لذلك يحتوي العنصر الأول على فهرس 0 ، والثاني يحتوي على فهرس 1 ، وهكذا.
- تهيئة مصفوفة باستخدام كلمة رئيسية ثابتة:
أرقام كثافة العمليات [] = {0};
في هذا المثال ، تتم تهيئة صفيف "الأرقام" إلى القيمة 0. إذا لم تحدد حجم الصفيف بشكل صريح ، فسيحدده المترجم تلقائيا بناء على عدد القيم المحددة.
تتيح لك تهيئة مصفوفة أحادية البعد تعيين قيم عناصرها على الفور ، مما يبسط العمل مع البيانات في المستقبل. ومع ذلك ، قد يستغرق الأمر بعض الوقت لتهيئة المصفوفات الكبيرة.
الوصول إلى عناصر مصفوفة أحادية البعد
المصفوفة أحادية البعد في ج هي مجموعة من العناصر من نفس النوع ، تقع واحدة تلو الأخرى في ذاكرة الكمبيوتر. يمكن استخدام الفهارس للوصول إلى كل عنصر من عناصر المصفوفة.
تبدأ فهارس الصفيف من الصفر وتزداد بمقدار واحد. على سبيل المثال ، إذا كان لدينا مجموعة من الأرقام من خمسة عناصر:
أرقام كثافة العمليات[5] = {1, 2, 3, 4, 5};
ثم يمكنك الوصول إلى كل عنصر عن طريق تحديد فهرسه بين قوسين مربعين. على سبيل المثال ، ستعيد الأرقام[0] قيمة العنصر الأول من المصفوفة ، أي 1 ، والأرقام[4] ستعيد قيمة العنصر الأخير ، أي 5.
يمكنك أيضا استخدام الحلقات للوصول إلى عناصر المصفوفة. على سبيل المثال ، يمكن استخدام حلقة للتكرار من خلال جميع العناصر في صفيف:
الباحث الأول;
إلى عن على (أنا = 0 ؛ أنا < 5 ؛ أنا i)
{
برينتف ("٪د " ، أرقام [أنا]);
}
سيؤدي تنفيذ هذه الحلقة إلى إخراج جميع عناصر مصفوفة الأرقام إلى وحدة التحكم: 1 2 3 4 5.
يمكن أيضا الوصول إلى عناصر المصفوفة باستخدام المؤشرات. على سبيل المثال:
كثافة العمليات * بتر = أرقام;
برينتف ("٪د " ، *(بتر + 2));
ينتج هذا الرمز قيمة العنصر الثالث من مصفوفة الأرقام ، أي 3.
تغيير عناصر مصفوفة أحادية البعد
لتغيير عناصر صفيف أحادي البعد في ج ، يجب عليك أولا الوصول إلى عنصر الصفيف بواسطة فهرسه ، ثم تعيين قيمة جديدة له.
تبدأ فهارس عناصر المصفوفة من الصفر. على سبيل المثال ، لتغيير العنصر الأول من المصفوفة:
إنت آر[5] = {1, 2, 3, 4, 5};
أر [0] = 10 ؛ / / تغيير قيمة العنصر الأول إلى 10
الآن ستكون قيمة العنصر الأول من المصفوفة 10.
وبالمثل ، يمكنك تغيير أي عنصر من عناصر المصفوفة عن طريق الوصول إليه بواسطة فهرسه. على سبيل المثال ، لتغيير العنصر الثالث من المصفوفة:
إنت آر[5] = {1, 2, 3, 4, 5};
[2] = 20; // تغيير قيمة العنصر الثالث إلى 20
الآن ستكون قيمة العنصر الثالث من المصفوفة 20.
وبالتالي ، لتغيير عنصر من مصفوفة أحادية البعد ، من الضروري:
- الوصول إلى عنصر المصفوفة من خلال فهرسها
- تعيين قيمة جديدة لها
أو نوع بيانات آخر ستعمل معه المصفوفة.
مثال على العمل مع مصفوفة أحادية البعد في ج
لنلق نظرة على مثال للعمل مع مصفوفة أحادية البعد في لغة سي. المصفوفة أحادية البعد هي سلسلة من العناصر من نفس النوع تقع بالتتابع في الذاكرة. كل عنصر له فهرس خاص به ، بدءا من الصفر.
نموذج التعليمات البرمجية:
# تشمل
كثافة العمليات الرئيسية () {
إنت أر[5] ؛ / / إعلان مجموعة أر مع حجم 5 عناصر إنت
// تهيئة المصفوفة
آر [0] = 10;
[1] = 20;
[2] = 30;
[3] = 40;
[4] = 50;
// الوصول إلى عناصر المصفوفة وإخراجها
برينتف ("عنصر مع مؤشر 0: ٪ د
"،آر آر [0]);
برينتف ("عنصر مع مؤشر 1: ٪ د
"،آر آر[1]);
برينتف ("العنصر مع مؤشر 2: ٪ د
"،آر آر[2]);
برينتف ("العنصر مع مؤشر 3: ٪ د
"،آر آر[3]);
برينتف ("العنصر مع مؤشر 4: ٪ د
"،آر آر [4]);
العودة 0;
}
في هذا المثال ، يتم الإعلان عن مجموعة أر من حجم 5 وتهيئتها. ثم يتم تعيين قيمة لكل عنصر باستخدام عامل تعيين. يتم الوصول إلى عناصر المصفوفة بواسطة فهرسها باستخدام عامل التشغيل [].
يتم تنفيذ الإخراج إلى الشاشة باستخدام وظيفة برينتف ، حيث يتم تحديد فهرس العنصر بشكل صريح.
سؤال وجواب
كيف أعلن صفيف أحادي البعد في ج?
يتم الإعلان عن صفيف أحادي البعد على النحو التالي في لغة ج: اسم صفيف نوع البيانات [حجم الصفيف] ؛ على سبيل المثال ، أرقام كثافة العمليات[10] ؛ يعلن صفيف أحادي البعد اسمه أرقام ونوع البيانات كثافة العمليات ، والذي يحتوي على 10 عناصر.
هل من الممكن أن تعلن مجموعة دون تحديد حجمها?
نعم ، في اللغة ج من الممكن إعلان صفيف دون تحديد حجمه. وهذا ما يسمى إعلان صفيف طول متغير (فلا). على سبيل المثال ، كثافة العمليات ن ؛ مسح ضوئي ("٪د" ، &ن) ؛ أرقام كثافة العمليات[ن] ؛ يعلن صفيف اسمه أرقام ، يتم تحديد حجمها بواسطة المتغير ن الذي أدخله المستخدم.
هل من الممكن تغيير حجم صفيف أعلن بالفعل?
لا ، في لغة ج ، يجب تحديد حجم المصفوفة عند الإعلان عنها ولا يمكن تغييرها لاحقا. إذا كنت بحاجة إلى تغيير حجم المصفوفة ، فسيتعين عليك إنشاء مصفوفة جديدة ونسخ العناصر من المصفوفة القديمة إليها.