Professional Documents
Culture Documents
البرمجة ( ) 1
الفصل السابع :تمارين ومسائل للمناقشة
والحل
-0-
الفرل الدابع :تمارين ومدائل لممناقذة والحل مقرر البرمجة ()1
-1-
الفرل الدابع :تمارين ومدائل لممناقذة والحل مقرر البرمجة ()1
ملخص:
ييدف ىذا القدم إلى تقديم مجمهعة من التمارين والمدائل حهل مجمهعة من الخهارزميات األساسية التيي
ينبغي فيميا وحميا وتطبيقيا بمغة .C#
أهداف تعليمية:
فييي ىييذا الفرييل مييع مجمهعيية ميين التمييارين التطبيقييية التييي ترمييز عمييى مييا تعممييو ي ل يتعامييل الطال ي
الفرهل الدابقة من المادة.
-2-
تمارين ومدائل لممناقذة والحل:الفرل الدابع )1( مقرر البرمجة
using System;
namespace Excersise
{
class ApplicationEuclide
{
static void Main(string[] args)
{
Console.Write("First Number : ");
int p = Int32.Parse(Console.ReadLine());
if (p * q != 0)
Console.WriteLine("mgcd of " + p + " and " + q + " = " + mgcd(p, q));
else
Console.WriteLine("One of the numbers is null !");
}
-3-
تمارين ومدائل لممناقذة والحل:الفرل الدابع )1( مقرر البرمجة
b = b % a;
};
r = (a != 0) ? a : b;
return r;
}
}
}
) استخدام هارزمية إسناد (قيمة حايل طرح األيغر من األكبر) إلى (العدد األكبر:2 الحل
using System;
namespace Exercice1
{
class ApplicationEgyptien
{
static void Main (string[ ] args)
{
Console.Write("First Number : ");
int p = Int32.Parse( Console.ReadLine( ) ) ;
Console.Write("Second Number : ");
int q = Int32.Parse( Console.ReadLine( ) ) ;
if ( p*q != 0 )
System.Console.WriteLine("mgcd of "+p+" and "+q+" is "+mgcd(p,q));
else
Console.WriteLine("One of the numbers is null !");
}
-4-
تمارين ومدائل لممناقذة والحل:الفرل الدابع )1( مقرر البرمجة
:التمرين الثاني
اقت ييرح. ع ييدد ول ييي م يين مجمهع يية األع ييداد الر ييحيحة المه ب ييةn برنامجي ياً ر ي ييار ولC# بمغ يية اكتي ي
.C# واكتبيا بمغة الخهارزميات قبل المباشرة بكتابة البرنامج بمغة،الخهارزمية المناسبة لتنفيذ العمل
:الحل
using System;
namespace Exercice2
{
class ApplicationPrem
{
static void Main(string[ ] args)
{
int divis, nbr, n, count = 0 ;
bool is_prem;
Console.WriteLine( 2 );
nbr = 3;
while (count < n-1)
{
divis = 2 ;
is_prem = true;
do
{
if (nbr % divis == 0) is_prem=false;
else divis = divis+1 ;
}
while ((divis <= nbr/2) && (is_prem == true));
if (is_prem)
{
count++;
-5-
الفرل الدابع :تمارين ومدائل لممناقذة والحل مقرر البرمجة ()1
التمرين الثالث:
بمغيية C#برنامج ياً لمتحق ي ميين ن سمدييمة محييارف تمتمييظ يييفة التنييا ر ،PALINDROMEي اكت ي
نيا تبقى نفديا سهاء قرناىا من اليمين إلى اليدار و من اليدار إلى اليمين.
مثالacca ،abcddcba :
اقترح الخهارزمية المناسبة لتنفيذ العمل ،واكتبيا بمغة الخهارزميات قبل المباشرة بكتابة البرنامج بمغة .C#
الحل:
;using System
namespace Excersise
{
class palindrome
{
)static String inverse(string s
{
; ;"" = string r
;int L = s.Length
)for (int i = 0; i <= L - 1; i++
;]r = r + s[L - 1 - i
;return r
}
-6-
تمارين ومدائل لممناقذة والحل:الفرل الدابع )1( مقرر البرمجة
s = Console.ReadLine();
if (s==invs)
Console.WriteLine("palindrome !");
else
Console.WriteLine("Not palindrome !");
}
}
}
:التمرين الرابع
: مثال. مل عدد يكهن مداوياً لحايل مع مكعبات األرقام التي تؤلفو،Armstrong ندعه عدد
.153 13 53 33 1 125 27
اقتي ييرح. لتحديي ييدىاC# برني ييامج بمغي يية اكت ي ي، ومميي ييا مي يين مرتبي يية المني يياتArmstrong ىني يياا عي ييدة عي ييداد
.C# واكتبيا بمغة الخهارزميات قبل المباشرة بكتابة البرنامج بمغة،الخهارزمية المناسبة لتنفيذ العمل
:الحل
using System;
namespace Armestrong
{
class ApplicationArmstrong
{
static void Main(string[] args)
{
int i, j, k, n, sumcube;
Console.WriteLine("Number of Armstrong:");
-7-
الفرل الدابع :تمارين ومدائل لممناقذة والحل مقرر البرمجة ()1
التمرين الخامس:
بمغيية C#برنامجياً يقييهم بعممييية بحييث طييي تدمدييمي عيين عنريير xضييمن ييدول Tمؤلييم ميين n اكتي
عنرر ويعطي ترتيبو في حال و هده .اقترح الخهارزمية المناسبة لتنفيذ العمل ،واكتبيا بمغية الخهارزمييات
قبل المباشرة بكتابة البرنامج بمغة .C#
تطبيقيا مبرنامج. الحل :سنقترح ىنا الخهارزمية فقط بمغة الخهارزميات ونترا لمطال
;i 1
-8-
تمارين ومدائل لممناقذة والحل:الفرل الدابع )1( مقرر البرمجة
:الحل
using System;
namespace ExampleArray
{
class ArrayFind
{
public static void Main(String[] arg)
{
int x; string Sx;
int[] T = { 12, 10, 25, 16, 40, 45, 51, 60, 75, 90, 140, 120 };
int i, ord, N;
N = T.Length;
// Display Table
for ( i = 0; i <= N - 1; i++)
Console.WriteLine("[" + i + "]\t" + T[i]);
// Read x
Console.Write(" choose number of the table: ");
Sx = Console.ReadLine(); x = Int32.Parse(Sx);
// Find x
i = 1;
while ((i < N) && x != T[i])
i = i + 1;
if (i < N)
{
ord = i;
Console.WriteLine("the element exists, order:" + ord);
}
else
Console.WriteLine("element not found");
}
}
}
-9-
الفرل الدابع :تمارين ومدائل لممناقذة والحل مقرر البرمجة ()1
التمرين الدادس:
ترتيبياً ترياعدياً ويحتيهي عميى Nعنرير ،ولييكن xعنرير مين ىيذا الجيدول. ليكن ليدينا يدول Tمرتي
اشرح ىدف وعمل الخهارزمية التالية ،وطبقيا مبرنامج بمغة .C#
;Bottom1
;TopN
; Order-1
repeat
;Middle(Bottom + Top) div 2
if x = T[Middle] then
;OrderMiddle
else
if T[Middle] < x then
;BottomMiddle + 1
else
;TopMiddle-1
end_if
end_if
) ]while ( x ≠ T[Middle
- 10 -
تمارين ومدائل لممناقذة والحل:الفرل الدابع )1( مقرر البرمجة
:الحل
using System;
namespace ExampleArray
{
class ArrayFind
{
N=T.Length;
// Display Table
for (int i = 0; i <= N-1; i++)
Console.WriteLine("["+i+"]\t"+T[i]);
// Read x
Console.Write(" choose number of the table: ");
Sx = Console.ReadLine(); x = Int32.Parse(Sx);
// Find x
ordre = -1; bottom = 1; top = N-1;
do
{
middle = (bottom + top) / 2;
if (x == T[middle])
ordre = middle;
else
if (x > T[middle])
bottom = middle + 1;
else
- 11 -
تمارين ومدائل لممناقذة والحل:الفرل الدابع )1( مقرر البرمجة
top = middle - 1;
}
while (x != T[middle]);
:التمرين الدابع
هارزمييية التريياعدي و التنييازلي حد ي رقييم ويرتبيييا بالترتي يn يقيير ييدويً ميينC# برنييامج بمغيية اكت ي
.Bubble Sort بالتعهيم الترتيي
:C# فيميا وتحهيميا إلى برنامج بمغة الخهارزمية التي يج
Algorithm Bubble_Sort;
Begin
for i=1 to n Do
for j= 2 to i Do
End_for
End_for
- 12 -
الفرل الدابع :تمارين ومدائل لممناقذة والحل مقرر البرمجة ()1
End_Bubble_Sort
التمرين الثامن:
هارزمييية التريياعدي و التنييازلي حد ي برنييامج بمغيية C#يقيير ييدويً ميين nرقييم ويرتبيييا بالترتي ي اكت ي
بالحذر .Sort by Insertion الترتيي
فيميا وتحهيميا إلى برنامج بمغة :C# الخهارزمية التي يج
;Algorithm Sort_by_Insertion
Begin
; ] v = Tab[ i
; j= i
; Tab[ j ] = v
End_for
End_Sort_by_Insertion
- 13 -