المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : مساعدة مصيرية جزاكم الله خيرا: حل اختبار في الاعلام الآلي


islam.radouane
2013-03-02, 00:47
السلام عليكم يااخواني اتمنا مساعدتكم في حل هذا الاختبار الذي سيحدد رسوبي ام نجاحي في الاعلام الالي

والاختبار قد وضعته في المذيافير


هذا هو


http://www.mediafire.com/?5hlq4bl4nuu1355

islam.radouane
2013-03-04, 00:16
ولاحتى واحد حاب يساعدني

Nafissa 0
2013-03-04, 15:31
و عليكم السلام
أردت مساعدتك لكن اختصاصي ليس اعلام آلي آآآسفة

Neo Gfx
2013-03-04, 21:03
الله غالب خويـآ لغة Pascal مازلت مابديتش نتعلم فيها

you92cef
2013-03-06, 18:07
ممكن اعرف كيف يحدد مصيرك؟ *-* هل تم تسريب الموضوع مثلا؟o_o

you92cef
2013-03-07, 10:08
بخصوص التمرين الاول فتم برمجته على اساس ان الحاسوب يختار عشوائيا اعداد تنتمي الى المجموعة
n
محصورة بين 1 و20/-/ يمكن تساوي 1 ويمكن تساوي 20/-/



program ex;
uses wincrt;
type tab=array[1..100]of integer;
var n,s,i:integer;
m:real;
p:real;
t:tab;
begin
s:=0;p:=1;i:=1;
randomize;
writeln('Entrez un entier entre 10 et 20 ');
readln(n);
if (n<10) or (n>20) then writeln('S.V.P entre 10 et 20');
while (n>=10) and (n<=20)and(i<=n) do begin
t[i]:=random(21);
if t[i]<=0 then
repeat
t[i]:=random(21);
until t[i]>=1;
writeln('t[',i,']=',t[i]);
s:=s+t[i];
p:=p*t[i];
i:=i+1;
end;
m:=s/n;
if (n>=10) and (n<=20) then begin
writeln('La somme =',s);
writeln('Le produit=',p);
writeln('La moyen=',m:3);
end;
end.


ادا لم تفهم شيء اسئل عنه وان شاء اللله نساعدك
شكرا

you92cef
2013-03-07, 10:33
البرنامج التاني
*-*في نص التمرين غير مطلوب اظهار قيم كل جدول ولكن تم اظهارها لكي نكون متاكدين انها القيم الصحيحة لكل جدول *-*
في هذا التمرين ايضا الحاسوب هو من يقوم بملء الجدول عشوائيا بقيم تنتمي الى مجموعة الاعداد
n
محصورة بين 0و1000*-*لا تساوي 1000*-**-* غير مهم هدا المجال لان التمرين لم يحدد قيم الجدول الى اي مجال تنتمي *-*

في نص التمرين لم نستخدم الدالة
mod
لانني جربت استعمالها ولكن لم تنجح مع المفروض انها تكون صحيحة ولكن لا علينا

program ex;
uses wincrt;
type tableau=array[1..100]of integer;
var n,i,x:integer;
tab,tabpos,tabneg:tableau;
begin
i:=1;
randomize;
writeln('Entrez un entier entre 15 et 30 ');
readln(n);
if (n<15) or (n>30) then writeln('S.V.P entre 15 et 30');
while (n>=15) and (n<=30)and(i<=n) do begin
tab[i]:=random(10000);
x:=tab[i];
writeln('tab[',i,']=',tab[i]);
repeat
x:=x-2;
until x<2;
if x=0 then tabpos[i]:=tab[i]
else tabneg[i]:=tab[i];
i:=i+1;
end;
if (n>=15) and(n<=30) then begin
writeln('Les elements de tabpos sont');
for i:= 1 to n do
if tabpos[i]<>0 then writeln(tabpos[i]);
writeln('Les elements de tabneg sont');
for i:= 1 to n do
if tabneg[i]<>0 then writeln(tabneg[i]);
end;
end.



كدلك اي استفسار اطرحه وسوف نجيب عنه ان شاء اللله
شكرا

you92cef
2013-03-07, 12:32
بخصوص التمرين الرابع

program affiche1 ;
uses wincrt;
procedure p( x :integer) ;
begin
writeln(x+1);
end;
Begin
p(2012);
End.




الاخطاء

program affiche1 ;
uses wincrt;
procedure p(var x :integer) ;
begin
writeln(x+1);
end.
Begin
P(2012);
End.

you92cef
2013-03-07, 12:39
البرنامج الثاني التمرين الرابع

program ex;
uses wincrt;
var i,j,z:integer;
procedure q(var x,y,z: integer);
begin
z:=x ; y:=z ; x:=y ;
end;
Begin
i:=2;
j:=3 ;
z:=4;
q(i,j,z);
writeln('201' , i) ;
end.

you92cef
2013-03-07, 12:40
التمرين الثاني حاول برمجته بنفسك بما لديك وضع محاولتك هنا لمساعدتك ولرفع مستواك
شكرا لك

islam.radouane
2013-03-08, 23:23
السلام عليكم ورحمة الله وبركاته اخي العزيز شكرا جزيلا لك

اولا اكيد لم يتم تسريب الموضوع لاني لااغش ولااطيق الغش باي طريقة كانت

ثانيا انا جربت حل التمارين لكن لم استطع كتابتها في المنتدي
بالنسبة للتمرين الاول انت حبذا لو استعملنا for une boucle وعلى حسبي هي ضرورية

you92cef
2013-03-09, 10:23
السلام عليكم ورحمة الله وبركاته اخي العزيز شكرا جزيلا لك

اولا اكيد لم يتم تسريب الموضوع لاني لااغش ولااطيق الغش باي طريقة كانت

ثانيا انا جربت حل التمارين لكن لم استطع كتابتها في المنتدي
بالنسبة للتمرين الاول انت حبذا لو استعملنا for une boucle وعلى حسبي هي ضرورية

ولا يهمك اخي هو مجرد سؤال

بخصوص الترمين الاول تم وضع شروط
من بينها ان يكون
n
ضمن المجال
[10..20]
لدلك يجب اولا التحقق من هدا الامر ادا لم يتحقق لا نقوم بقراءة عناصر الجدول
ادن هنا عندنا شرط قبل القراءة فنستعمل
boucle while
حتى لا نقرا اي عنصر في حالة مثلا ادا ادخلنا عدد لا ينتمي الى المجال
فهنا استعملنا
while (n>=10) and (n<=20)and(i<=n) do begin

ثم استعملنا العبارة
and
اي
و باللغة العربية
فلكي نقوم بالقراءة يجب اولا ان ينتمي
n
الى المجال الدي نريده فهنا نستعمل
(n>=10) and (n<=20)
فهده الكتابة تعني ان
n
يجب ان يكون ضمن المجال
في هده الحالة نحجحتاج دالة لقراءة عناصر الحجدول اي كما قلت نستدعي الدالة
for
for i:=1 to n do

ولكن بما انه لدينا دالة من قبل فمن الاحسن ان نستمر في العمل بها ومن اجل هدا عليينا ان نعرف ما تقوم به الدالة
for
حتى نضعه في الدالة
while
-----------------------
كما نعرف الدالة فور تكتب بالشكل التالي
for i:=1 to n do

اي قيمة
i
في الاول سوف تكون 1
نقوم بعمليات الدالة
ثم تلقائيا تصبح قيمة
i:=i+1
اي تصبح في هده الحالة 2
طالما ان
i<=n
نقوم بنفس العمل

ادن
في البرنامج الرئيسي اعطينا قيمة اولية ل
i
i:=1
هي القيمة الاولية التي كانت لدينا في الدالة
for
ثم وضعنا
i:=i+1
هده العملية كانت تقوم بها الدالة
for
بعد انتهاء كل العمليات
ادن يجب ان نضعها ايضا في اخر سطر داخل الدالة
while
-*- دائما عندما يكون لنا
incrementation
i:=i+1
ou
decrementation
i:=i-1
نضعها في اخر سطر-*- باستثناء بعض الحالات-*- من الدالة ما عدا دالة
for
التي تقوم به تلقائيا
بقي الامر الاخير وهو شرط التوقف
اي اننا نستمر في نفس العمل طالما ان
i<=n
وهنا وضعنا هده العبارة ضمن الدالة
while
واضفنا عبارة الربط و
and
ادن اصبحت الدالة
while im$h
while (n>=10) and (n<=20)and(i<=n) do begin

اي يجب ان يكون
n
ينتمي الى المجال
ويكون
i
اصغر او يساوي
n
-------------
اي سؤال تفضل بطرحه
شكرا



-----------------

islam.radouane
2013-03-09, 13:24
شكرا جزال الله خيراا

بالنسبة للتمرين الثاني

لم افهم لماذا وضعت repeat

ولما افيشيت البروكرام وجت


0=1]tab

entrez les elements de tabps
entrez les elements de tabneg

اهذا صحيح مثلا !!!

اما التمرين الثالت فهو اصعب تمرين والله جربت مرات ولم اصل الى نتيجة
كتابة factorielle و puissance و كذا الجمع سهل لكن لم اتمكن من الربط بينهم
خويا من فضلك الفايسبوك نتاعك لاني نحتاجك ولن انسى لك هذا الخير مدى الحياة

you92cef
2013-03-09, 17:36
بخصوص البرنامج الثاني فهو شغال بنسبة 100/100 ولكن الحاسوب هو من يقوم باعطاء هده الاعداد -*- لان هدف البرنامج ليس اننا نحن من نقراه بل ان نرتبهم في جدولين جدول للاعداد الزوجية وجدول للاعداد الفردية -*-

بخصوص


repeat
x:=x-2;
until x<2;
if x=0 then tabpos[i]:=tab[i]
else tabneg[i]:=tab[i];


فهده تقوم بعمل الدالة
mod
للاسف جرب استعمال الدالة
mod
ولكن لم تنجح -*- كان هناك خلل-*-

ادن الدالة
repeat
تقوم بكل مرة بوضع قيمة العنصر في
x
-*- نسخ -*-
مثلا
ادا كانت قيمة
t[12]:=7
فاننا نضع القيمة 7 في المتغير

x
x:=t[i]

ندخل الى البوكل
7>2
donc on fait
-2
on a 5
-2
3
-2
1
1 اصغر من 2 نخرج من البوكل
بما انه لدينا واحد ال>ي هو مغاير للصفر فالعدد فردي ادن نضعه في الجدول المخصص للاعداد الفردية ونفس الامر ادا كانت النتيجة مثلا 0 نضعه في الجدول المخصص لاعداد الزوجية
لان القسمة التي نعبر عنها ب
mod div
ما هي الا عمليات طرح متتالية

ادن الدالة

repeat
x:=x-2;
until x<2;
if x=0 then tabpos[i]:=tab[i]
else tabneg[i]:=tab[i];


تقوم بعمل مقارنة ما ادا كانت القيمة فردية او زوجية ولكي لا نخسر قيمة العنصر

t[i]

ننسخ القيمة في المتغير
x
-----------------------

you92cef
2013-03-09, 17:59
بخصوص وسائط الدردشة فلا امتلك اي حساب فيها الوسيلة الوحيدة للتواصل معي هي المنتدى عبر المواضيع او عبر الرسائل الخاصة-*- قد يتاخر الرد بسبب الجامعة -*-

للاسف احيانا اقوم بكتابة شرح كامل وعريض ولكن بسبب بعض مشاكل منتديات الجلفة عند اعتماد المشاركة ينقطع الاتصال بالسيرفر فيضيع كل شيء هنا تصاب بحالة من الملل لانه عليك القيام بنفس العمل لعدة مرات

http://www.djelfa.info/vb/images/icons/wah.gif

بخصوص العاملي والاس فللاسف لدي عمل كثير علي القيام به وليس لدي وقت كافي ولكن ساحاول ان اشرح

بحسب التعريف لدينا

n!:=n*(n-1)!
مثلا
5!:=5*4!
نفس الامر بالنسبة للاس
x**n:= x* x**n-1
** تعني الاس
مثلا
x**5:=x*x**4
اكس اس 5 تساوي اكس مضروب في اكس اس 4

--------------
ادن في كل مرة لحساب الاس او العاملي الجديد ناخد القيمة الحايلة ونضربها في القيمة السابقة للاس او العاملي القديم

من اجل هدا ولتسهيل البرنامج نقوم بوضع جدول للاعداد

type tableau=array[0..20] of real;
نقوم بعمل 3 جداول اخرى
var f,p,s:tableau


بما انه لدينا الضرب*-* لحساب القيمة الحالية نضرب القيمة التي لدينا في القيمة السابقة للعنصر مثلا

5!:= 5*4!
ف 5 هي القيمة الحالة للمتغير
i
و4!
هي القيمة السابقة للعنصر



من اجل هدا نستعمل العنصر الحيادي للضرب الدي يساوي 1
ادا كان لدينا الجمع العنصر الحيادي للجمع هو 0
بمعنا
la valeau i,itaile de produit est 1
la valeau initiale de la somme est 0

ادن
لنفترض اننا قرانا
n:=5
و قرءنا
x

ادن نقوم بعمل دالة لحساب العاملي
+
القيمة الاولية للعاملي هي 1 -*- لان العاملي هو ضرب-*-
اي

f[o]:=1
for i:= 1 to 5 do
t[i]:= i*t[i-1]
اظن انها مفهومة
طبقنا التعريف
n!:=n*(n-1)!
كل مرة نقوم بحساب العاملي نخزنه في الجدول
f

نفس الامر بالنسبة للاس نفس الطريقة ولكن نخزنها في الجدول
p


لحد الان اظن ان كل شيء مفهوم

الان نقتقل للجمع
la somme

من اجل هدا علينا ان نقسم

p[i]/f[i]
مفهوم
مثلا
x**2/2!

x**3/3!
.هكدا

هده القيم نخزنها في الجدول
s

for i:=1 to 5 do
s[i]:=p[i]/f[i]

مفهوم لحد الان

اخيرا علينا ان نجمع عناصر الجدول
s
نضع
somme:=1

نضع العدد واحد 1
في المتغير 1
في هده الحالة -*- واضح

for i:=1 to 5 do
somme:=somme+t[i]

اخيرا نظهر
somme
-----------------------
الان بقي عليك برمجته بنفسك فقط وهو سهل جدا ويمكنك اختصار لي بوكل قدر الامكان ولكن هدا ادا اردت وادا لم ترد واحببت ترك عدد لي بوكل كما هو فالبرنامج صحيح

you92cef
2013-03-09, 18:08
صور لعمل البرنامج الثاني
http://im31.gulfup.com/RHMTZ.png

http://im31.gulfup.com/fq4VI.png

you92cef
2013-03-09, 18:21
يوجد خطا في التمرين الثاني للاسف لم اقسم عنصار الجدول بحسب ما هو مطلوب
المطلوب اننا نقسمهم الى اعداد موجبة واعداد سالبة
بينما البرنامج الدي قدمته لك يقسمهم الى زوجية وفردية

سيتم تعديل البرنامج
اسف على الخطا الغير مقصود
شكرا

you92cef
2013-03-09, 18:54
تصحيح البرنامج الثاني


program ex;
uses wincrt;
type tableau=array[1..100]of integer;
var tabpos,tabneg:tableau;
var n,i,z:integer;
begin
i:=1;
randomize;
writeln('Entrez un entier entre 15 et 30 ');
readln(n);

if (n<15) or(n>30) then writeln('S.V.P ENTRE 15 ET 30')
else
for i:=1 to n do begin
z:=random(10);
if z mod 2=0 then
tabpos[i]:=random(10000)
else
tabneg[i]:=-random(10000);
end;
if (n>=15) and(n<=30) then begin
writeln('Les element de tabpos sont');
for i:=1 to n do begin
if tabpos[i]<>0 then
writeln(tabpos[i]);
end;
writeln('Les element de tabneg sont');
for i:=1 to n do begin
if tabneg[i]<>0 then
writeln(tabneg[i]);
end;
end;
end.

islam.radouane
2013-03-09, 22:32
خويااا بارك الله فيك

والله غير انت راجل ونص

يارب يفرحك ويدخلك الجنة

انا عندي ضعف كبير في هذه المادة رغم ان مستواي جيد في المواد الاخرى

بالنسبة للتمرين الثالت والله حاولت ولكني فشلت في تركيب الجمع

وشكرااا