advertisements
السلام عليكم

ندخل مباشرة في صلب الموضوع شرحنا
في الدرس السابق درس الجدوال العادية
اليوم موعدنا مع تمرين تطبيقي لترسيخ الأفكار
كود المستخدم في الشرح
#include "stdio.h" #include "stdlib.h" main () { //#define constant_variable value #define size 5 int tab[size],i,j,tmp=NULL; //tmp=0; if(size <= 0) { printf("\nError !! \n\n"); } else { for(i=0 ; i < size ; i++) { printf("\nenter number tab[%d] : ",i); fflush(stdin); scanf("%d",&tab[i]); } } for(i=0 ; i < size ; i++) { printf("\n tab[%d] :%d \n",i,tab[i]); } printf("\n\n NEW ORDRE\n"); for(i=0 ; i < size ; i++) { for(j=0 ; j < size; j++) { if(tab[i]>tab[j]) { tmp=tab[i]; tab[i]=tab[j]; tab[j]=tmp; } } } for(i=0 ; i < size ; i++) { printf("\n tab[%d] :%d \n",i,tab[i]); } printf("\n"); system("pause"); }
: كود
#include "stdio.h" #include "stdlib.h" main () { //#define constant_variable value #define size 5 int tab[size],i,j,tmp=NULL; //tmp=0; if(size <= 0) { printf("\nError !! \n\n"); } else { for(i=0 ; i < size ; i++) { printf("\nenter number tab[%d] : ",i); fflush(stdin); scanf("%d",&tab[i]); } } for(i=0 ; i < size ; i++) { printf("\n tab[%d] :%d \n",i,tab[i]); } printf("\n\n NEW ORDRE\n"); for(i=0 ; i < size ; i++) { for(j=i ; j < size; j++) { //تم التعديل هنا J=I if(tab[i]>tab[j]) { tmp=tab[i]; tab[i]=tab[j]; tab[j]=tmp; } } } for(i=0 ; i < size ; i++) { printf("\n tab[%d] :%d \n",i,tab[i]); } printf("\n"); system("pause"); }
: النتيجة
الأن قد تستغرب ياشيخنا ههههه
سأرجع بكم لدرس قلنا في الدرس أنه لما يدخل البرنامج لدالة التكرارية الأولى بعدها سيدخل في الدالة التالية for(I=0...) for(J=0...) if ( tab[i] > tab[j] ) if ( tab[0] > tab[0] ) if ( tab[0] > tab[1] ) if ( tab[0] > tab[2] ) if ( tab[0] > tab[3] ) if ( tab[0] > tab[4] ) if ( tab[1] > tab[0] ) if ( tab[1] > tab[1] ) if ( tab[1] > tab[2] ) if ( tab[1] > tab[3] ) if ( tab[1] > tab[4] ) if ( tab[2] > tab[0] ) if ( tab[2] > tab[1] ) if ( tab[2] > tab[2] ) if ( tab[2] > tab[3] ) if ( tab[2] > tab[4] ) if ( tab[3] > tab[0] ) if ( tab[3] > tab[1] ) if ( tab[3] > tab[2] ) if ( tab[3] > tab[3] ) if ( tab[3] > tab[4] ) if ( tab[4] > tab[0] ) if ( tab[4] > tab[1] ) if ( tab[4] > tab[2] ) if ( tab[4] > tab[3] ) if ( tab[4] > tab[4] ) طيب هنا نرى ان دالة الثانية ستبدأ المقارنة الخانة مع الجدول كامل أما في هذا الكود for(I=0...) for(J=I...) if ( tab[i] > tab[j] ) نفس المنهية السابقة إلا انه سيتم مسح بعض الحالات if ( tab[0] > tab[0] ) if ( tab[0] > tab[1] ) if ( tab[0] > tab[2] ) if ( tab[0] > tab[3] ) if ( tab[0] > tab[4] ) if ( tab[1] > tab[1] ) if ( tab[1] > tab[2] ) if ( tab[1] > tab[3] ) if ( tab[1] > tab[4] ) if ( tab[2] > tab[2] ) if ( tab[2] > tab[3] ) if ( tab[2] > tab[4] ) if ( tab[3] > tab[3] ) if ( tab[3] > tab[4] ) if ( tab[4] > tab[4] ) كما تلاحطون الأمر مختلف عن الأول تلخيص منهجية العمل I=1 > J=I = 1 > 4 I=2 > J=I = 2 > 4 I=3 > J=I = 3 > 4 I=4 > J=I = 4 > 4 ومنه الجدول سيبدأ بمقارنة من خانة رقم 1 وهكذا سيتم تجاهل الحالات الأخرى ومنه لا يتم مقارنة الخانة مع الجدول كاملا كل مرة وهذه طريقة أسرع من الأولى
0 commentaires :
Publier un commentaire