الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لخبراء الباسكال و الخوارزميات لم اعرف الخطأ في بريمجي الصغير هذا

بدأه يونس الجزاائر في 13 مارس 2011 · 5 رد · 974 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته

هذا البرنامج الصغير

عبارة عن محاولة مني للقيام بالتالي

تحويل قيمة من نوع char الى integer

حيث تحتمل هذه القيمة من '0' الى '9' لكن النتيجة انو يحولها دائما الى 0

البرنامج عمل عادي دون استعمال procedure لكن عند استعمالها ظهر المشكل

الكود هو الآتي

program ok;
  var c,i:char; j,x:integer;
  procedure tointeger(c:char;x:integer);
    begin
      j:=0;
      for i:='0' to '9' do begin if i=c then x:=j; j:=j+1; end;
    end;
begin
  readln(c);
  tointeger(c,x);
  writeln(x);
  readln;
end.
#2

السلام عليكم

المشكلة في عملية تمرير الوسيط x.

إجعل التمرير عن طريق Refrence او address او كما يسمى passage par variable بالفرنسية:

 procedure tointeger(c:char;var x:integer);

تم تعديل هذه المشاركة بواسطة DATA_SNIPER في 14 مارس 2011 في 09:12

infected.png

مدونة علوم الحاسب

#3

بارك الله فيك أخي تماما هذا هو المشكل و تم الحل

انا درست البروسيدير كألغوريتم و لم ادرسه بعد في الباسكال

ممكن من فضلك تشرحلي متى نفصل بين المتغيرات بـ var و متى لا نفعل في كل من الدوال و البروسيديير

و جزاك الله الف خير من مدة و انا ابحث عن المشكل ^^

#4

اخي في الألغوريتم نكتب e/ ثم نعرف و s/ ثم نعرف يعني entée و sortie هل هذا ما فعلت في الباسكال يعني فيالباسكال نكتب المدخلات مباشرة و المخرجات نسبقها ب var ام اني مخطئ ؟

#5

وفيك بارك الله.

نستعمل var عندما نريد تمرير المتغير كما هو،اي ان اي تعديل على ذلك المتغير داخل الإجراء(proceudre) يؤثر على المتغير في البرنامج كله.

وغالبا ما تستعمل هته الطريقة بدل إستعمال طريقو القيمة المرجعة من طرف دالة ما.

لمعرفة المزيد يمكنك أن تجد الكثير من الدروس في جوجل:

اقتباس
Passage des paramètres dans PASCAL

http://www.bonneville.nom.fr/enseignement/pascal/cours/procedures-et-fonctions-1-16.htm

تم تعديل هذه المشاركة بواسطة DATA_SNIPER في 14 مارس 2011 في 17:22

infected.png

مدونة علوم الحاسب

#6
DATA_SNIPER كتب:

السلام عليكم

المشكلة في عملية تمرير الوسيط x.

إجعل التمرير عن طريق Refrence او address او كما يسمى passage par variable بالفرنسية:

 procedure tointeger(c:char;var x:integer);

اخي العزيز صحيح ماذكره الاخ الفاضل حول اضافة var وذلك لاننا نحتاج ارجاع قيمة x الر البرنامج الرئيسي لهذا يجب سبقها بــ var لغرض جعل المتغير x يعمل input اولى ثم يعمل output للقيمة النهائية

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…