منتديات الجلفة لكل الجزائريين و العرب - عرض مشاركة واحدة - مساعدة من فضلكم لحل التمارين في الخوارزميات
عرض مشاركة واحدة
قديم 2011-10-28, 16:32   رقم المشاركة : 7
معلومات العضو
__الهاوي__
أستــاذ
 
الصورة الرمزية __الهاوي__
 

 

 
إحصائية العضو










افتراضي

إليك كود ترتيب جدول وإدارج قيمة فيه
1 - بالسي شارب الشبيه بالجافا

كود PHP:
        {
            
int[] maliste = new int[10]; //التصريح بجدول يحوي 10 قيم
            
int ndxtmp;
            
int nbrk;

            
//---------------------------- إنشاء جدول وترتيب قيمه ------------------------------}
            
Console.WriteLine("introduit les nombres à trie");
            
//إدخال القيم
            
for (int i 09i++)//على فكرة، الجداول في السي شارب مثل الجافا، تبدأ من الصفر وتنتهي عند ن-1
            
{
                
Console.Write("la valeur numero [{0}] : "i);
                
nbr Convert.ToInt32(Console.ReadLine());//تم عمل تحويل لأن دالة القراءة ترجع سلسلة حروف
                
maliste[i] = nbr;

            }
            
//---------------------------- استظهار البيانات ------------------------------}
            
Console.WriteLine("les valeurs introduits");
            
Console.WriteLine("*******************************");
            for (
int i 09i++)
            {
                
Console.WriteLine("la valeur numero [{0}] est {1}"imaliste[i]);
            }
            
Console.WriteLine("*******************************");
            
//---------------------------- ترتيب قيم ------------------------------}
            //i نبحث عن القيمة الصغرى في الجدول ونضعها في الخانة 
            
for (int i 09i++)
            {
                
tmp maliste[i]; //نسخ القيمة الأولى ووضعها في المتغير المؤقت
                
ndx i;
                for (
int j 19j++) //الابحار على بقية القيم ومقارنتها مع القيمة المحفوظة
                
{
                    if (
maliste[j] < tmp)
                    {
                        
tmp maliste[j];  //في هذه الحالة المتغير المؤقت يأخد القيمة الأصغر منه
                        
ndx j;    //ويحفظ مكانها في الجدول
                    
}

                }
                if (
ndx != i)
                {
                    
maliste[ndx] = maliste[i];  //i الآن بعدما حددنا مكان القيمة نقوم بتبديلها مع المتغير 
                    
maliste[i] = tmp//i ثم نحفظ القيمة الصغرى الموجودة في المتغير المؤقت وندرجها في الجدول في الخانة 
                
}
            }
            
Console.WriteLine("les valeurs tries");
            
Console.WriteLine("*******************************");
            for (
int i 09i++)
            {
                
Console.WriteLine("la valeur numero [{0}] est {1}"imaliste[i]);
            }
            
Console.WriteLine("*******************************");

            
//---------------------------- إدراج القائمة الجديدة في المكان المناسب ------------------------------
            
Console.Write("ecrit la valeur de la variable k ");
            
Convert.ToInt32(Console.ReadLine());//تم عمل تحويل لأن دالة القراءة ترجع سلسلة حروف

            //الابحار على كل القيم لإيجاد مكان القيمة الجديدة
            
for (int i 010i++)
            {
                if (
maliste[i])
                {
                    for (
int j 9ij--)
                    {
                        
maliste[j] = maliste[1];  //t[9]=t[8], t[8]=t[7],t[7]=t[6]....
                    
}
                    
maliste[i] = k//k الآن قيمة الخانة من الجدول موجودة في الخانة الموالية، لتصير بذلك جاهزة لاستقبال القيمة الجديدة
                    //ثم نخرج من الحلقة
                    
break;
                }
                
//إذا كانت القيمة الجديدة أكبر من كل القيم فنظعها في آخر الجدول
                
if (== 9maliste[i] = k;

            }


            
Console.WriteLine("insertion de la valeur k");
            
Console.WriteLine("*******************************");
            for (
int i 010i++)
            {
                
Console.WriteLine("la valeur numero [{0}] est {1}"imaliste[i]);
            }
            
Console.WriteLine("*******************************");
            
Console.Read();

        } 
2- بالباسكال في بيئة الويندوز tpw
كود PHP:
program trie_interger;
uses
    wincrt
;{si vous utilisez turbo 7 alors remplacez la par "uses CRT"}

type liste=array [1..10of integer;

var  
malisteliste; {declaration dune liste qui contien 10 nombres}
     
ijndxinteger;
     
tmpnbrkinteger;
label fin;
begin
{---------------------------- création et triage de la table ------------------------------}
writeln('introduit les nombres à trie');
{
introduction des valeurs}
for 
:=1 to 9 do
    
begin
    write
('la valeur numero [',i,'] : ');read(nbr);
        
maliste[i] := nbr;
    {
next i;}
    
end;
{
on cherche la petite valeur du tableau et on la remplace par la valeur dont lindex i =1}
{
puis la valeur suivante (index i 2)}

for 
:=1 to 9 do
begin
    tmp 
:=maliste[i]; {copier la premiere valeur dans une variable temporaire}
        
ndx := i;
    for 
j:=i+1 to 9 do
    
begin
        
if maliste[j] < tmp then
        begin
            tmp
:=maliste[j] ;  {la variable temporaire recoit cette valeur temprairement}
            
ndx := j;    {sauvetage de lindex de la variable minimal}
        
end;
     
end;
        if 
ndx <> i then
        begin
            maliste
[ndx]:=maliste[i];  {faire maintenant la permitation}
            
maliste[i]:= tmp; {entre la cellule concernée et la cellule dont la valeur et la minimum}
        
end;
end;
writeln('la liste finale');
writeln('*******************************');
for 
:=1 to 9 do
    
begin
    writeln
('la valeur numero [',i,'] est ',maliste[i]);
    
end;
writeln('*******************************');

{---------------------------- 
introduction de la variable k ------------------------------}
    
write('ecrit la valeur de la variable k');
        
read(k);

        {
scanner la table et voire lemplacement de la nouvelle variable}
        for 
:=1 to 10 do
        
begin
             
if maliste[ithen
         begin
                     
for :=10 downto i+do
                     
begin
                        maliste
[j]:=maliste[j-1];  {t[10]:=t[9], t[9]:=t[8],t[8]:=t[7]....}
             
end;
                
maliste[i]:=k; {la valeur de maliste[iest maintenant dans la cellule i+1donc elle reçoit k}
                {
puis on quite la boucle i}
                goto 
fin;
         
end;
             {
si toutes la valeurs sont inferieur a la valeur de k: }
             if 
10 then maliste[i]:=k;
         
end;

        
fin:

writeln('la liste finale');
writeln('*******************************');
for 
:=1 to 10 do
    
begin
    writeln
('la valeur numero [',i,'] est ',maliste[i]);
    
end;
writeln('*******************************');

end
ملاحظة:
إذا وجدتم أخطاء في اللغة الفرنسية (بعضها بسبب الكيبورد qwerty وبعضها لضعف المستوى) فلا تعيروها اهتماما، ببساطة فهي ليست لغتنا وليست لغة العلم والتكنولوجيا

بالتوفيق إن شاء الله









رد مع اقتباس