إليك كود ترتيب جدول وإدارج قيمة فيه
1 - بالسي شارب الشبيه بالجافا
كود PHP:
{
int[] maliste = new int[10]; //التصريح بجدول يحوي 10 قيم
int ndx, tmp;
int nbr, k;
//---------------------------- إنشاء جدول وترتيب قيمه ------------------------------}
Console.WriteLine("introduit les nombres à trie");
//إدخال القيم
for (int i = 0; i < 9; i++)//على فكرة، الجداول في السي شارب مثل الجافا، تبدأ من الصفر وتنتهي عند ن-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 = 0; i < 9; i++)
{
Console.WriteLine("la valeur numero [{0}] est {1}", i, maliste[i]);
}
Console.WriteLine("*******************************");
//---------------------------- ترتيب قيم ------------------------------}
//i نبحث عن القيمة الصغرى في الجدول ونضعها في الخانة
for (int i = 0; i < 9; i++)
{
tmp = maliste[i]; //نسخ القيمة الأولى ووضعها في المتغير المؤقت
ndx = i;
for (int j = i + 1; j < 9; j++) //الابحار على بقية القيم ومقارنتها مع القيمة المحفوظة
{
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 = 0; i < 9; i++)
{
Console.WriteLine("la valeur numero [{0}] est {1}", i, maliste[i]);
}
Console.WriteLine("*******************************");
//---------------------------- إدراج القائمة الجديدة في المكان المناسب ------------------------------
Console.Write("ecrit la valeur de la variable k ");
k = Convert.ToInt32(Console.ReadLine());//تم عمل تحويل لأن دالة القراءة ترجع سلسلة حروف
//الابحار على كل القيم لإيجاد مكان القيمة الجديدة
for (int i = 0; i < 10; i++)
{
if (k < maliste[i])
{
for (int j = 9; j > i; j--)
{
maliste[j] = maliste[j - 1]; //t[9]=t[8], t[8]=t[7],t[7]=t[6]....
}
maliste[i] = k; //k الآن قيمة الخانة من الجدول موجودة في الخانة الموالية، لتصير بذلك جاهزة لاستقبال القيمة الجديدة
//ثم نخرج من الحلقة
break;
}
//إذا كانت القيمة الجديدة أكبر من كل القيم فنظعها في آخر الجدول
if (i == 9) maliste[i] = k;
}
Console.WriteLine("insertion de la valeur k");
Console.WriteLine("*******************************");
for (int i = 0; i < 10; i++)
{
Console.WriteLine("la valeur numero [{0}] est {1}", i, maliste[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..10] of integer;
var maliste: liste; {declaration dune liste qui contien 10 nombres}
i, j, ndx: integer;
tmp, nbr, k: integer;
label fin;
begin
{---------------------------- création et triage de la table ------------------------------}
writeln('introduit les nombres à trie');
{introduction des valeurs}
for i :=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 i :=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 i :=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 i :=1 to 10 do
begin
if k < maliste[i] then
begin
for j :=10 downto i+1 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[i] est maintenant dans la cellule i+1, donc 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 i = 10 then maliste[i]:=k;
end;
fin:
writeln('la liste finale');
writeln('*******************************');
for i :=1 to 10 do
begin
writeln('la valeur numero [',i,'] est ',maliste[i]);
end;
writeln('*******************************');
end.
ملاحظة:
إذا وجدتم أخطاء في اللغة الفرنسية (بعضها بسبب الكيبورد qwerty وبعضها لضعف المستوى) فلا تعيروها اهتماما، ببساطة فهي ليست لغتنا وليست لغة العلم والتكنولوجيا
بالتوفيق إن شاء الله