البرمجة هي عملية إنشاء برنامج باستخدام لغة برمجة معينة. واحدة من لغات البرمجة الأكثر شعبية هي اللغة ج. يتميز بالأداء العالي والوصول المنخفض المستوى إلى موارد الكمبيوتر. هناك أدوات خاصة في اللغة ج للعمل مع هياكل البيانات متعددة الأبعاد ، بما في ذلك ناقلات ثنائية الأبعاد.
المتجه ثنائي الأبعاد هو بنية بيانات عبارة عن مصفوفة من العناصر مرتبة في صفوف وأعمدة. عادة ، يتم استخدام المتجهات ثنائية الأبعاد لتخزين ومعالجة كميات كبيرة من البيانات ، مثل الصور أو الجداول الرياضية.
إنشاء متجه ثنائي الأبعاد في ج يبدأ بإعلان متغير صفيف. للقيام بذلك ، يمكنك استخدام الكلمة الأساسية كثافة العمليات عن طريق تحديد عدد الصفوف والأعمدة بين قوسين مربعين. على سبيل المثال ، ناقلات كثافة العمليات[3][5] ؛ يعلن متجه ثنائي الأبعاد مع ثلاثة صفوف وخمسة أعمدة.
يمكن استخدام الحلقات المتداخلة لملء متجه ثنائي الأبعاد بالقيم. سوف تتكرر الحلقة الخارجية من خلال الصفوف ، وسوف تتكرر الحلقة الداخلية من خلال الأعمدة. على سبيل المثال ، يملأ الكود التالي متجها ثنائي الأبعاد بأرقام من 1 إلى 15:
- }
- سيبدو المتجه ثنائي الأبعاد الناتج كما يلي:
- 1 2 3 4 5
- 6 7 8 9 10
- 11 12 13 14 15
- ما هو ناقل ثنائي الأبعاد?
- أساسيات البرمجة ج
- 1. الشخصيات والسلاسل
- 2. المتغيرات
- 3. المشغلين الشرطيين
- 4. دورات
- 5. المهام
- 6. صفائف
إعلان متجه ثنائي الأبعاد في ج
تهيئة العناصر المتجهة
الوصول إلى عناصر متجه ثنائي الأبعاد
تغيير عناصر متجه ثنائي الأبعاد
تحرير الذاكرة
سؤال وجواب
كيفية إنشاء متجه ثنائي الأبعاد ج?
أي نوع من البيانات يجب أن أختار إنشاء متجه ثنائي الأبعاد ج?
كيفية الوصول إلى عنصر متجه ثنائي الأبعاد ج حسب الفهرس?
A
المتجه ثنائي الأبعاد هو كائن رياضي يستخدم لتمثيل البيانات أو الكميات ثنائية الأبعاد. يتكون من قيمتين رقميتين ، والتي تسمى عادة الإحداثيات. يشير الإحداثي الأول إلى الموضع على المحور الأفقي ، ويشير الإحداثي الثاني إلى الموضع على المحور الرأسي.
تستخدم المتجهات ثنائية الأبعاد بشكل شائع في الرياضيات والفيزياء ورسومات الكمبيوتر وغيرها من المجالات التي تتطلب العمل مع البيانات ثنائية الأبعاد. على سبيل المثال ، في لعبة الكمبيوتر ، يمكن استخدام متجه ثنائي الأبعاد لتحديد موضع شخصية اللعبة في الملعب أو لتعيين اتجاه حركة كائن ما.
يمكن تمثيل المتجه ثنائي الأبعاد كزوج مرتب من الأرقام (س, ص) ، أين س هو الإحداثي الأفقي و ص هو الإحداثي الرأسي. يمكن أن تكون إحداثيات المتجه إيجابية أو سلبية ، اعتمادا على موضع الكائن.
للعمل مع المتجهات ثنائية الأبعاد ، هناك عدد من العمليات الحسابية ، مثل إضافة المتجهات وطرحها ، وضرب المتجه في رقم ، وإيجاد طول المتجه. تسمح لك هذه العمليات بإجراء العديد من العمليات الحسابية والتلاعب ببيانات ثنائية الأبعاد.
إن استخدام المتجهات ثنائية الأبعاد يجعل من الملائم العمل مع البيانات ثنائية الأبعاد وحل المهام المختلفة المتعلقة بالرسومات ومعالجة الصور والفيزياء والعديد من المجالات الأخرى.
أساسيات البرمجة ج
ج هي واحدة من لغات البرمجة الأكثر شعبية ورواجا في العالم. يستخدم على نطاق واسع لتطوير أنظمة التشغيل والتطبيقات وبرامج التشغيل والمزيد. عند دراسة ج ، من المهم معرفة أساسياتها.
1. الشخصيات والسلاسل
في ال لغة سي ، الأحرف والسلاسل هي أنواع البيانات الرئيسية. تمثل الأحرف الأحرف الفردية ، مثل الأحرف أو الأرقام ، ويتم تمثيلها في علامات اقتباس مفردة ، مثل 'أ' أو '1'. السلاسل هي سلسلة من الأحرف ويجب أن تكون محاطة بعلامات اقتباس مزدوجة ، على سبيل المثال "مرحبا ، العالم!".
2. المتغيرات
المتغيرات في ج تستخدم لتخزين القيم. يجب الإعلان عن المتغيرات بنوع البيانات واسمها ، على سبيل المثال:
عمر الباحث ؛ / / إعلان متغير العمر من نوع الباحث
تعويم بي = 3.14 ؛ / / إعلان وتهيئة متغير بي من نوع تعويم
رمز شار = 'أ' ؛ / / إعلان وتهيئة متغير رمز من نوع شار
3. المشغلين الشرطيين
تسمح العبارات الشرطية للبرنامج باختيار مسار التنفيذ وفقا للشروط المحددة. في ج ، إذا ، وإلا إذا ، وتستخدم مشغلي آخر لهذا الغرض:
إذا (الشرط 1) {
// تنفيذ التعليمات البرمجية إذا تم تنفيذ الشرط 1
} آخر إذا (الشرط 2) {
// قم بتنفيذ الكود إذا لم يتم استيفاء الشرط 1 وتم استيفاء الشرط 2
} آخر {
// تنفيذ التعليمات البرمجية إذا لم يتم استيفاء أي من الشروط
}
4. دورات
حلقات تسمح لك لتنفيذ كتلة من التعليمات البرمجية عدة مرات. تستخدم اللغة ج ل ، في حين ، والقيام في حين الحلقات:
ل (التهيئة ؛ الشرط ؛ الزيادة) {
// تنفيذ التعليمات البرمجية داخل الحلقة
}
بينما (الشرط) {
// تنفيذ التعليمات البرمجية داخل الحلقة
}
هل {
// تنفيذ التعليمات البرمجية داخل الحلقة
} بينما (الشرط);
5. المهام
الوظائف هي كتل من التعليمات البرمجية التي تؤدي مهام معينة ويمكن استدعاؤها من أجزاء أخرى من البرنامج. في ج ، يتم الإعلان عن الوظائف مع الإشارة إلى نوع قيمة الإرجاع والاسم والمعلمات ، على سبيل المثال:
مجموع الباحث (الباحث أ ، الباحث ب) {
العودة أ + ب;
}
كثافة العمليات النتيجة = مجموع (5 ، 10) ؛ / / استدعاء وظيفة المبلغ وحفظ النتيجة في النتيجة
6 متغير. صفائف
تسمح لك المصفوفات بتخزين قيم متعددة من نفس نوع البيانات في متغير واحد. في ج ، يتم الإعلان عن المصفوفات لتحديد نوع العنصر وحجمه ، على سبيل المثال:
أرقام كثافة العمليات [5] ؛ / / إعلان مجموعة من الأرقام مع حجم 5 عناصر من نوع كثافة العمليات
الأرقام [0] = 1 ؛ / / تعيين قيمة لعنصر به فهرس 0
أرقام [1] = 2; // تعيين قيمة لعنصر به فهرس 1
أرقام [2] = 3 ؛ / / تعيين قيمة لعنصر به فهرس 2
أرقام [3] = 4 ؛ / / تعيين قيمة لعنصر به فهرس 3
أرقام [4] = 5 ؛ / / تعيين قيمة لعنصر به فهرس 4
هذه ليست سوى أساسيات البرمجة ج ، وهذه اللغة لديها المزيد من الميزات. لكن إتقان هذه الأساسيات سيسمح لك بالبدء في إنشاء برامج في ج والتعمق في تعلم لغة البرمجة القوية هذه.
إعلان متجه ثنائي الأبعاد في ج
في لغة البرمجة ج ، يمكنك إعلان متجه ثنائي الأبعاد باستخدام مصفوفة ثنائية الأبعاد. للقيام بذلك ، حدد نوع البيانات من عناصر الصفيف ، وعدد الصفوف والأعمدة.
مثال على إعلان متجه ثنائي الأبعاد في ج:
# تشمل
كثافة العمليات الرئيسية () {
ناقلات كثافة العمليات [3] [4];
العودة 0;
}
في هذا المثال ، نعلن متجه ثنائي الأبعاد مع نوع البيانات إنت وحجم 3 صفوف من 4 أعمدة. سيحتوي المتجه ثنائي الأبعاد على 3 * 4 = 12 عنصرا من النوع الدولي.
يمكنك تهيئة قيم عناصر متجه ثنائي الأبعاد في وقت الإعلان.
# تشمل
كثافة العمليات الرئيسية () {
ناقلات كثافة العمليات [3] [4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
العودة 0;
}
في هذا المثال ، نقوم بتهيئة قيم عناصر متجه ثنائي الأبعاد باستخدام أقواس متعرجة وتحديد قيم كل صف بداخلها.
متجه ثنائي الأبعاد في ج يمكن استخدامها لتخزين المصفوفات وهياكل البيانات الأخرى باستخدام بعدين. في هذه الحالة ، يتم الوصول إلى عناصر متجه ثنائي الأبعاد بواسطة فهارس الصف والعمود. على سبيل المثال ، للوصول إلى عنصر في الصف الثالث والعمود الثاني ، يجب عليك استخدام البناء التالي:
عنصر كثافة العمليات = متجه [2] [1];
في هذه الحالة ، ستكون قيمة العنصر 6 ، حيث تبدأ الفهارس من 0.
إعلان متجه ثنائي الأبعاد في ج يجعلها ملائمة للعمل مع المصفوفات وهياكل البيانات الأخرى ذات البعدين.
تهيئة العناصر المتجهة
هناك عدة طرق لتهيئة عناصر متجه ثنائي الأبعاد في لغة البرمجة سي.
1. التهيئة عند التصريح
أبسط طريقة هي تهيئة عناصر المتجه عند الإعلان عنه. للقيام بذلك ، يكفي تحديد قيم العناصر في أقواس مربعة وفصلها بفواصل. على سبيل المثال:
ناقلات كثافة العمليات[2][3] = {{1, 2, 3}, {4, 5, 6}};
في هذا المثال ، يتم إنشاء متجه ثنائي الأبعاد 2 3 3 ، وتهيئة العناصر بالقيم 1 ، 2 ، 3 للمتجه الفرعي الأول و 4 ، 5 ، 6 للمتجه الفرعي الثاني.
2. التهيئة بعد الإعلان
إذا تم الإعلان عن متجه بالفعل ، فيمكن تهيئة عناصره واحدا أو أكثر في كل مرة عن طريق تحديد فهارس العناصر بين قوسين معقوفين. على سبيل المثال:
ناقلات كثافة العمليات [2] [3];
ناقل [0] [0] = 1;
المتجه [0] [1] = 2;
المتجه [0] [2] = 3;
ناقل [1] [0] = 4;
ناقل [1] [1] = 5;
ناقل [1] [2] = 6;
في هذا المثال ، يتم الإعلان أولا عن متجه ثنائي الأبعاد 2 3 3 ، ثم تتم تهيئة كل عنصر بدوره.
3. باستخدام الدورة
لراحة تهيئة العناصر المتجهة ، يمكن استخدام الحلقات. على سبيل المثال ، يمكن استخدام الحلقة للتكرار من خلال الفهارس وتهيئة العناصر. على سبيل المثال:
ناقلات كثافة العمليات [2] [3];
قيمة كثافة العمليات = 1;
ل (إنت أنا = 0 ؛ أنا < 2 ؛ أنا {) {
إلى عن على (الباحث ي = 0 ؛ ي < 3 ؛ ي++) {
المتجه [أنا] [ي] = القيمة;
{7, 8, 9}
};
للوصول إلى عنصر متجه ثنائي الأبعاد ، من الضروري استخدام فهارس الصفوف والأعمدة بين قوسين مربعين:
// الحصول على قيمة عنصر الصف الثاني والعمود الثالث
عنصر كثافة العمليات = متجه [1] [2];
// تغيير قيمة عنصر الصف الثالث والعمود الثاني
ناقل [2] [1] = 10;
وبالتالي ، باستخدام فهارس الصفوف والأعمدة ، يمكننا الوصول إلى عناصر متجه ثنائي الأبعاد. بالإضافة إلى قراءة القيم ببساطة ، يمكننا أيضا تغييرها ، مما يسمح لنا بمعالجة بيانات المتجهات لحل المهام المختلفة.
غالبا ما يوجد استخدام المتجهات ثنائية الأبعاد في المهام التي تتطلب تمثيل المصفوفات والبيانات الجدولية. يعد فهم مبدأ الوصول إلى عناصر المتجه ثنائي الأبعاد مكونا مهما للعمل الفعال مع هياكل البيانات هذه.
تغيير عناصر متجه ثنائي الأبعاد
لتغيير العناصر في متجه ثنائي الأبعاد في لغة البرمجة ج ، يمكنك استخدام الفهارس للوصول إلى العناصر الضرورية.
لتغيير عنصر في متجه ثنائي الأبعاد ، يجب تحديد فهرس الصف وفهرس العمود للعنصر الذي تريد تغييره. على سبيل المثال ، إذا كان لدينا متجه مصفوفة ثنائي الأبعاد يتكون من 3 صفوف و 4 أعمدة ، ونحتاج إلى تغيير العنصر في الصف الثاني والعمود الثالث ، فيمكننا القيام بذلك على النحو التالي:
المصفوفة[1] [2] = قيمة جديدة ؛ / / تبدأ الفهارس من 0 ، لذا فإن الصف الثاني هو المصفوفة [1] ، والعمود الثالث هو المصفوفة [1] [2]
مثال:
# تشمل
كثافة العمليات الرئيسية () {
int matrix[3][4] = {{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}};
printf("Исходная матрица:
");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", matrix[i][j]);
}
printf("
");
}
matrix[1][2] = 99; // изменяем элемент во второй строке и третьем столбце
printf("
Матрица после изменения элемента:
");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", matrix[i][j]);
}
printf("
");
}
return 0;
}
Вывод программы:
Исходная матрица:
1 2 3 4
5 6 7 8
9 10 11 12
المصفوفة بعد تغيير العنصر:
1 2 3 4
5 6 99 8
9 10 11 12
كما يتضح من المثال ، تم تغيير العنصر الذي يحتوي على فهارس [1][2] بنجاح إلى القيمة 99.
تحرير الذاكرة
واحدة من المهام الهامة للمبرمج هو الاستخدام الفعال لذاكرة الكمبيوتر. عند العمل مع الذاكرة الديناميكية ، مثل إنشاء متجه ثنائي الأبعاد في ج ، من الضروري عدم نسيان تحريره.
يتيح لك تحرير الذاكرة تقليل مقدار ذاكرة الوصول العشوائي المستخدمة ومنع تسرب الذاكرة الذي يمكن أن يؤدي إلى انخفاض في أداء البرنامج أو حتى تشغيله بشكل غير صحيح.
لتحرير الذاكرة المخصصة لمتجه ثنائي الأبعاد ، يجب عليك استخدام الوظيفة المجانية (). تأخذ الوظيفة المجانية () مؤشرا إلى العنصر الأول من المتجه وتحرر الذاكرة التي يشغلها هذا المتجه.
مثال على تحرير الذاكرة لمتجه ثنائي الأبعاد:
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
الصفوف كثافة العمليات = 3;
كثافة العمليات الأعمدة = 4;
// تخصيص الذاكرة لمتجه ثنائي الأبعاد
إنت * * ناقلات = (إنت**) مالوك (الصفوف * سيزوف (إنت*));
ل (إنت أنا = 0 ؛ أنا < الصفوف ؛ أنا i) {
}
// ... العمل مع ناقل ...