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

مشكلة في تسلسل الناتج

مغلق
بدأه prof_1982 في 12 أكتوبر 2004 · 4 رد · 400 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخواني لاول مرة اكتب برنامج بلغة سي دوس ، المهم ان البرنامج يعمل دون اي مشاكل ولكن انظر الكود التالي :

# include<stdio.h>
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();

int a[5],b;


 for (int t=1;t=b;t++)
 {
 cout<<"A["<<t<<"] :";
	cin>>b;
a[t]=b;
cout <<"The A["<<t<<"] is :"<< b;

if (b = 5000) break;
      }


    getch();


}

هذا الكود من الفروض ان يقوم بعمل دوارة لخمس مرات يطلب منك ادخال رقم ، وان يضعها في المصفوفة , المشكلة الان المفترض ان يبداها من الرقم 1 ، مثل :

A[1]=333
A[2]=566
A[3]=54
...etc to A[5]

المشكلة انه يقوم بالبدء من رقم عشوائي مثل :

A[1202]

ولا اعرف من اين اتي هذا الرقم .

تحياتي لكم .

فيه مثل بيقول اللي بيطلع من كاره بينقل مقداره :) انا مالي ومال السي ههههههههه

تم تعديل هذه المشاركة بواسطة prof_1982 في 12 أكتوبر 2004 في 13:00

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

#2

الخطأ هنا

for (int t=1;t=b;t++)

حيث يعطي المتغير t قيمة 1 ثم يعطى قيمة أخرى مساوية لقيمة المتغير b والذي يعطى قيمة افتراضية في بداية البرنامج ثم يطلب البرنامج ادخاله

cin>>b;

وهذا سبب الخطأ،وهو خطأ منطقي ،ليس له علاقة باللغة المستخدمة ،سواء بالسي++ أو أي لغة برمجة أخرى.

لتعبئة خمس خانات من المصفوفة

for(i=1;i<6;i++)

{
cout<<"A["<<t<<"] :";
cin>>b;
a[t]=b;
cout <<"The A["<<t<<"] is :"<< b;

if (b = 5000) break;
     }

تم تعديل هذه المشاركة بواسطة مبرمجة فلسطينية في 12 أكتوبر 2004 في 13:58

#3

فعلا كما وضحت أختي مبرمجة فلسطينية ,,

وأضيف أن الترقيم في السي++ يحبذ أن يبتدأ بالرقم 0 وليس 1 ,, لأن الرقم صفر تكون فيه خانة مهدرة ,,,

يعني لو غيرت كود مبرمجة فلسطينية الى :

for(i=0;i<5;i++)

{
cout<<"A["<<t<<"] :";
cin>>b;
a[t]=b;
cout <<"The A["<<t<<"] is :"<< b;

if (b = 5000) break;
    }

سيعمل بدون مشاكل ,, لكن كود المبرمجة الفلسطينية سيسبب Unhandel Exception والسبب أن العنصر الساسد لم نحجز له مساحة في المصفوفة ,, لنضيف فيها ,,

......................................

وحلقات التكرار في السي++ تعمل بشكل مختلف قليلا عن بقية اللغات ,, وتزيد من مرونة التحايل فيها لتخصيص عملها بشكل أفضل ,,

خذ الرابط تحدثنا فيه عن حلقات التكرار بشكل جيد :

/index.php?showtopic=35402

وتشكر على الزيارة يامشرفنا :)

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#4

السلام عليكم

شكرا لك أخ HGB على التصحيح ، ولقد سهوت عن هذه النقطة لاني عدلت على الكود ولم انتبه ،بارك الله فيك.

#5

السلام عليكم

شكرا شكرا جزيلا للاخت مبرمجة فلسطينية ، والاخ الكريم HGB .

تحياتي لكم

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

هذا الموضوع مغلق.

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