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

مشاهدة النسخة كاملة : error-_-"



wildkitty
07-01-2007, 07:50 PM
السلام عليكم ورحمة الله


انا كاتبة برنامج يضرب رقمين باينري ببعض لاكن ذابحني يطلعلي ايرور ياريت احد يساعدني يصلحلي الإرور لنه عجزت منه

هذه اهو الكود مالي

#include<iostream.h>
#include<math.h>
void main()
{
int i;
int M[31]={0};
int n1,n2;
double sum1=0,sum2=0;
int t;
double Result;

cout<<"enter number 1\n";
cin>>n1;
cout<<"enter number 2\n";
cin>>n2;

int result;
result=n1;
i=30;
while((i>=0)&&((result)!=0))
{
M[i]=result%2;
result=result/2;
i--;

}
result=n2;
i=9;
while((i>=0)&&((result)!=0))
{
M[i]=result%2;
result=result/2;
i--;
}



for(i=31;i>=22;i--)
{
if (M[i]==0)
{
for (i=31;i>=0;i--)
M[i]=M[i-1];
}
else
{
t=0;
for (i=21;i>=10;i--)
{
sum1=M[i]*pow(2,t)+sum1;
t++;
}
t=0;
for (i=9;i>=0;i--)
{
sum2=M[i]*pow(2,t)+sum2;
t++;
}
Result=sum1+sum2;
cout<<Result;

result=Result;
i=20;
while((i>=0)&&((result)!=0))
{
M[i]=result%2;
result=result/2;
i--;
}
for (i=31;i>=0;i--)
M[i]=M[i-1];

}


{

وهذه الإيرور الي يطلعلي -_-


roject.cpp
G:\project.cpp(62) : warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
G:\project.cpp(78) : fatal error C1004: unexpected end of file found



ولكم جزيل الشكر :p

AZPC
08-01-2007, 10:49 AM
أول شي يا أخ انك تحط ال Source Code في مربع Code وليس اقتباس -كي يسهل علينا قرائته @_@


#include<iostream.h>
#include<math.h>
void main()
{
int i;
int M[31]={0};
int n1,n2;
double sum1=0,sum2=0;
int t;
double Result;

cout<<"enter number 1\n";
cin>>n1;
cout<<"enter number 2\n";
cin>>n2;

int result;
result=n1;
i=30;
while((i>=0)&&((result)!=0))
{
M[i]=result%2;
result=result/2;
i--;

}
result=n2;
i=9;
while((i>=0)&&((result)!=0))
{
M[i]=result%2;
result=result/2;
i--;
}



for(i=31;i>=22;i--)
{
if (M[i]==0)
{
for (i=31;i>=0;i--)
M[i]=M[i-1];
}
else
{
t=0;
for (i=21;i>=10;i--)
{
sum1=M[i]*pow(2,t)+sum1;
t++;
}
t=0;
for (i=9;i>=0;i--)
{
sum2=M[i]*pow(2,t)+sum2;
t++;
}
Result=sum1+sum2;
cout<<Result;

result=Result;
i=20;
while((i>=0)&&((result)!=0))
{
M[i]=result%2;
result=result/2;
i--;
}
for (i=31;i>=0;i--)
M[i]=M[i-1];

}


{

2. شي فهمنا وش تبي تسوي ؟!

واي Compiler تستخدم (&)

wildkitty
08-01-2007, 10:59 PM
ماأدري انه في شي اسمه كود انا اعرف وخبري اقتباس

انا ابي اضرب رقمين بانري ببعض بطريقة اد اند شفت ميثود
استخدم مكروسوفت فجوال سي بلس بلس

wellknownQ8
09-01-2007, 10:10 AM
و عليكم السلام و رحمة الله و بركاته


G:\project.cpp(62) : warning C4244: '=' : conversion from 'double' to 'int', possible loss of dataهذا حله يكون كالتالي:


result = (int) Result;

و ذلك لان الResult ليس integer
لذا علينا أن نجعل قيمته integer و نضعه في result

-------------
اكني مستغرب من شغله ..

لماذا استخدمت قيم الdouble !!؟
من المفترض ان تكون جميع القيم integer !

wildkitty
09-01-2007, 08:18 PM
اكني مستغرب من شغله ..

لماذا استخدمت قيم الdouble !!؟
من المفترض ان تكون جميع القيم integer !

انا كنت حاطتهم كلهم دبل بس ماكان يسير مع البور

رديته انتجر شوف الورنج الي طلع

C:\Documents and Settings\One\My Documents\project().cpp(53) : warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
C:\Documents and Settings\One\My Documents\project().cpp(59) : warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
C:\Documents and Settings\One\My Documents\project().cpp(85) : fatal error C1004: unexpected end of file found
Error executing cl.exe.

project().obj - 1 error(s), 2 warning(s)

wellknownQ8
09-01-2007, 10:45 PM
المفروض يصير ..!؟

ما علينا ..

المهم لازم تركزين على الخطأ اللي يظهر

لان البرنامج حصل له compile من غير اي اخطاء أو رسائل .. لكنه توقف فجأة و الظاهر من نفس المكان
fatal error C1004: unexpected end of file found

wellknownQ8
09-01-2007, 10:59 PM
في كلا الحالتين (double or int) البرنامج يخرج من نفسه

لذا من الأفضل عمل debug أو على الأقل وضع cout في أكثر من مكان حتى تعرفي من أين الخطأ بالضبط


#include<iostream.h>
#include<math.h>

using namespace std;

void main()
{
int i;
int M[31]={0};
int n1,n2;
int sum1=0,sum2=0;
int t;
int Result;

cout<<"enter number 1\n";
cin>>n1;
cout<<"enter number 2\n";
cin>>n2;

int result;
result=n1;
i=30;
while((i>=0)&&((result)!=0))
{
M[i]=result%2;
result=result/2;
i--;

}
result=n2;
i=9;
while((i>=0)&&((result)!=0))
{
M[i]=result%2;
result=result/2;
i--;
}



for(i=31;i>=22;i--)
{
if (M[i]==0)
{
for (i=31;i>=0;i--)
M[i]=M[i-1];
}
else
{
t=0;
for (i=21;i>=10;i--)
{
sum1=(int) (M[i]*pow(t,2)+sum1);
t++;
}
t=0;
for (i=9;i>=0;i--)
{
sum2=(int) (M[i]*pow(t,2)+sum2);
t++;
}
Result=sum1+sum2;
cout<<Result;

result=Result;
i=20;
while((i>=0)&&((result)!=0))
{
M[i]=result%2;
result=result/2;
i--;
}
for (i=31;i>=0;i--)
M[i]=M[i-1];
}
}
}

أبو هاجر الحلوة
09-01-2007, 11:16 PM
السلام عليكم و رحمة الله و بركاته
رغم أن معلوماتي في الـ C نظرية لكن غالبا ما تكون رسالة الخطأ

fatal error C1004: unexpected end of file found
مرتبطة بالحاضنات "{" و "}"
أقترح عليك مراجعة آخر حاضنة في الكود فربما كانت معكوسة أو ربما كان عدد الحاضنات الفاتحة أكبر أو أقل من الحاضنات الغالقة
شكرا

wildkitty
11-01-2007, 10:44 AM
أنا عندي مايسير رن خير شر -_-

ماعرف أسوي دي بج للحيني مبتدأه بهل أشياء :P



أبوهادر : لا ما أعتقد لنه لو كنت ناسية أو قالبه قوس كان طلع ايرور يقول انه قوس ناقس :>

شكرا على محاولتكl لمساعدتي ^_^

wildkitty
11-01-2007, 10:57 AM
أحم أحم :09:

كويتي غير معروف شوكرا على تشغيل البرنامج خذيت الكود مالي الي انت حطيته وسويتله كوبي معنه كأنه نفس الكود الي عندي بس أشتغل بس يعطي أرقام غلط :02:

حسافة توه يسير انا سلمته للدكتور وخلصت -_-

شكرا



للتصحيح ابوهاجر موهادر :ouch:

أبو هاجر الحلوة
12-01-2007, 03:48 PM
إذا أمكن ما هي طريقة اد اند شفت ميثود المذكورة أعلاه

AZPC
12-01-2007, 03:58 PM
خلاص اذن ...

خذها درس ^.^

المره الجاية ما تسوي نفس الخطأ :)

أبو هاجر الحلوة
12-01-2007, 08:15 PM
إذا أمكن ما هي طريقة اد اند شفت ميثود المذكورة أعلاه

wildkitty
19-01-2007, 07:18 PM
الله يسلمك بو هاجر طريقة اد اند شفت هي طريقة ضرب الارقام بالباينري

مثلا اخذ رقم واحولهم باينري
2: OO1O
3:OO11

2x3=6 بالديسيمل بالباينري نفس الشي

وشوف انا سويت المسأله على هل رقمين وشوف الجواب الاخير
6:O11O


:)

أبو هاجر الحلوة
20-01-2007, 12:38 AM
ما شاء الله و لو أني ودعت الـ C من زمان وذلك قبل أن أتمكن من أساسياتها
لكن إنشاء الله سأعود إليها بجدية هذه المرة لأني مقتنع بأن جماعة السي و الأسمبلي هم حقا من يستحقون صفة المبرمج ثم يأتي الأخرون
ألف شكر على الجواب
وفقك الله في مسارك العلمي و المهني

علي جنيدي
01-03-2007, 01:39 PM
يجب مراعاة قواعد هندسة البرمجيات فالقوس الذي يفتح أولا يغلق آخرا والخطأ معك هو في عد اخلاق الأقواس في حلقة while جربي إغلاقها وإن شاء الله يمشي الحال