خوارزميات المصفوفات
جزء من قسم Fundamentals في رحلة C على Coddy — الدرس 59 من 63.
تعد خوارزميات المصفوفات تقنيات أساسية لمعالجة بيانات المصفوفات. دعونا نتعلم بعض عمليات المصفوفات الشائعة.
إيجاد القيمة القصوى في مصفوفة:
// تهيئة مصفوفة
int numbers[] = {4, 9, 2, 7, 5};
// تعيين القيمة العظمى الأولية إلى العنصر الأول
int max = numbers[0];// قارن مع العناصر الأخرى
for (int i = 1; i < 5; i++) {
if (numbers[i] > max) {
max = numbers[i];
}
}
// الآن يحتوي max على القيمة الأكبر (9)العثور على القيمة الصغرى يعمل بشكل مشابه:
// تعيين القيمة الصغرى الأولية إلى العنصر الأول
int min = numbers[0];
// مقارنة مع العناصر الأخرى
for (int i = 1; i < 5; i++) {
if (numbers[i] < min) {
min = numbers[i];
}
}
// الآن min يحتوي على أصغر قيمة (2)جمع كل العناصر في مصفوفة:
int sum = 0;
// أضف كل عنصر إلى المجموع
for (int i = 0; i < 5; i++) {
sum += numbers[i];
}
// الآن يحتوي sum على المجموع (27)التحدي
سهلاكتب دالة تسمى findAverage تقوم بحساب المتوسط لجميع العناصر في مصفوفة من الأعداد الصحيحة.
يجب أن تقوم الدالة بما يلي:
- تأخذ مصفوفة أعداد صحيحة وحجمها كمعاملات (parameters)
- تحسب مجموع كل العناصر
- تقسم المجموع على عدد العناصر للحصول على المتوسط
- تعيد المتوسط كقيمة من نوع float
بعد حساب المتوسط، اطبع النتيجة بمنزلتين عشريتين بالضبط باستخدام: printf("Average: %.2f\n", average);
ورقة مرجعية
خوارزميات المصفوفات الشائعة لإيجاد القيم العظمى والصغرى والمجموع:
إيجاد القيمة العظمى:
int max = numbers[0];
for (int i = 1; i < size; i++) {
if (numbers[i] > max) {
max = numbers[i];
}
}إيجاد القيمة الصغرى:
int min = numbers[0];
for (int i = 1; i < size; i++) {
if (numbers[i] < min) {
min = numbers[i];
}
}جمع كل العناصر:
int sum = 0;
for (int i = 0; i < size; i++) {
sum += numbers[i];
}لطباعة عدد عشري (float) بمنزلتين عشريتين: printf("Average: %.2f\n", average);
جرّب بنفسك
#include <stdio.h>
// اكتب دالة findAverage الخاصة بك هنا
int main() {
int size;
scanf("%d", &size);
int numbers[size];
// قراءة عناصر المصفوفة
for (int i = 0; i < size; i++) {
scanf("%d", &numbers[i]);
}
// استدعِ دالتك واطبع النتيجة
float average = findAverage(numbers, size);
printf("Average: %.2f\n", average);
return 0;
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
2المتغيرات
أنواع البياناتالأعداد الصحيحة (Integer)الأعداد العشرية (Float - Double)المحارف (Characters)القيم المنطقية (Booleans)الثوابتأساسيات printfقواعد تسمية المتغيراتتحويل الأنواع (Type Casting) - الجزء 1تحويل الأنواع (Type Casting) - الجزء 2تحدي المراجعة3المعاملات
المعاملات الحسابيةمعامل باقي القسمةالزيادة والنقصانمعاملات الإسنادالمعاملات العلائقيةالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيالمعاملات المنطقية - الجزء الثالثتحدي المراجعة