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

معادلة فيc++

مغلق
بدأه numo_1111 في 2 يوليو 2005 · 20 رد · 1,158 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لو سمحتوا اذا بغيت اكتب

2E+12

في c++

كيف شكل المعادلة

وشكرا

#2

int x = 2*10^12 ;

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#3

يمكن أيضا أن تكتبها بنفس الشكل الذي كتبته أنت

System Engineer

Red Hat Certified Engineer

Red Hat Certificate Number

805010381752078

#4

ستكون خارج نطاق ال int حيث ال Int يستحمل حتى 2 أس 32 فقط , لذا تحتاج لأن تكون :

long int x = 2*pow(10,12);

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#5

جزاكم الله خيرا

جربت اخر وحدة وضبطت معي لكن هي جزء من معادلة طويلة واذا اضفت اليها الجزء الاخر وهو

3*pow(10,07*pow(x,2)))

يطلع الناتج صفر دائما والمعادلة في الاصل 8 بدل 7

لكن يطلع illegal digit '8' for base '8'

مشكورين

#6

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

الناتج يطلع صفر دائما اذا حطيت pow جوا pow

#7

لما تحط 0 قبل الرقم يصبح بنظام الـ octal

يعني

08

هو 8 في الـ octal و لكن لا يوجد هكذا رقم!

#8

جزاك الله خير

لكن ماهو نظام octal

واقدر اكمل البرنامج في c++

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

وyقيمتها من المعادلة فانا سويت البرنامج بهذه الطريقة لكن يطلع الناتج صفر اذا حطيت pow جوا pow

وايضا يوجد كم حد مثلا 3E+08X2 اذا شلت الصفر عادي او لا انا اعرف ان الصفر على الشمال ماياثر لكن حتى بهذي الحالة .... اسف على الاطالة ورجوا منكم افادتي ماجورين

#9

أعتقد يصير صفر لأن الرقم يصبح كبيرا جدا (أكبر من حجم الـ long)

لو تقدر تضع الكود هنا يكون أحسن, بس أرجوك ارجك حطه ضمن [ code ]

اضغظ زر CODE في الأعلى قبل بداية الكود و بعد نهايته

تم تعديل هذه المشاركة بواسطة hasan_aljudy في 4 يوليو 2005 في 02:30

#10

اسف ,,,,,

وش معنى pow ؟؟ : )

دالة رياضية .. او لا . .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#12
#include<iostream>

#include<cmath>

using namespace std;

int main(){

long int x,y;

cout<<" enter  x"<<endl; cin>>x;

if(x>=308 && x<=323){

 y=-0.0018*pow(x,6)+

3.3377*pow(x,5)-

2646.4*pow(x,4)+

1*pow(10,06*pow(x,3))-

-3*pow(10,08*pow(x,2))+

3*pow(10,10*x)-

2*pow(10,12);

cout<<y<<endl;}

return 0;}

هذا هو الكود ومشكورين

#13

لما قتلك حطه في CODE قصدي عالشغلة كلهة, مو سطر سطر.

#include<cmath>
using namespace std;
int main()
{
    long x,y;
    cout<<" enter  x"<<endl; cin>>x;
    if(x>=308 && x<=323)
    {
        y=  -0.0018 * pow(x,6) +
            3.3377 * pow(x,5) -
            2646.4 * pow(x,4) +
            1 * pow(10, 06 * pow(x,3) ) -
            -3 * pow(10, 08* pow(x,2) ) +
            3 * pow(10, 10 * x) -
            2 * pow(10, 12);
        cout<<y<<endl;
    }
    return 0;
}

اول شي لا تحط 0 قبل الأرقام, يعني 6 اكتبهة 6 و ليس 06

ثاني شي, الـ pow هذا عنده عدة overloads, و هذا ليش مشكلة لما ترسل له ارقام, لكن لما ترسل له pow آخر فهنا مشكلة. سوي cast:

#include<iostream>
#include<cmath>
using namespace std;

int main()
{
    long x,y;
    cout<<" enter  x"<<endl; cin>>x;
    if(x>=308 && x<=323)
    {
        y=  -0.0018 * pow(x,6) +
            3.3377 * pow(x,5) -
            2646.4 * pow(x,4) +
            1 * pow(10, 6 * (long)pow(x,3) ) -
            -3 * pow(10, 8* (long)pow(x,2) ) +
            3 * pow(10, 10 * x) -
            2 * pow(10, 12);
        cout<<y<<endl;
    }
    return 0;
}

انا طبعا مش فاهم شي من هذا الكود, بس لو دخلت 310, بيعطيك 1387855225

تم تعديل هذه المشاركة بواسطة hasan_aljudy في 4 يوليو 2005 في 17:40

#14

جزاك الله خير وجعل ماقمت به في موازين حسناتك

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

مشكور

#15

هل جربت الكود اللذي وضعته؟

طيب, ما هو اصلا عمل البرنامج؟

#16

نعم انا جربت الكود

هو برنامج للاشعة الفوق بنفسجية

#17

انا الكود اشتغل عندي مثل ما قلتلك.

اذا لم تعمل عندك فمعناهة و الله اعلم ان المشكلة ليست من الكود بل من عندك, يعني ممكن خطأ في الـ compilation او انك تشغل الملف الخطأ او شي من هالقبيل.

#18

numo_1111

ما هي مواصفات جهازك ؟

نظام التشغيل ـ المعالج - الرام

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#19
#include <iostream>
#include<iostream>
#include<cmath>
using namespace std;

int main()
{
   long x,y;
   long t1,t2,t3,t4,t5,t6,t7;

   t1=-0.0018 * pow(x,6);
   t2= +3.3377 * pow(x,5);
   t3=- 2646.4 * pow(x,4);
   t4=+1 * pow(10, 6 * (long)pow(x,3) );
   t5= 3 * pow(10, 8* (long)pow(x,2) );
   t6=3 * pow(10, 10 * x);
   t7= -2* pow(10, 12);
   cout<<" enter  x"<<endl; cin>>x;
   if(x>=308 && x<=323)
   {
     y=t1+t2+t3+t4+t5+t6+t7;
    
   cout<<y<<endl;    
   }
  
    

   
   return 0;
}

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#20

هناك خطأ فادح احمد ....

قمت بحساب الارقام (التي تعتمد على x) قبل ادخال الـ x

#21

جزاكم الله كل الخير لكن انا اخطات خطا بسيط في المعادلة

اسف على ذلك

المعادلة الاصلية هي

Y=-0.0018x6+3.3377x5-2646.4x4+(1E+06)X3-(3E+08)x2+(3E+10)x-2E+12

وكتبت البرنامج بعد ذلك

واذا دخلت الرقم مثلا 315 المفروض y تساوي 1000 هذا من الرسم البياني

لكن في الكود يطلع الناتج رقم كبير جدا

واسف جدا على الاطالة واشكركم على جهودكم

#include<i#include<cmath>
using namespace std;

int main()
{
   long x,y;
   cout<<" enter  x"<<endl;
   cin>>x;

   if(x>=308 && x<=323)
   {
           y=  -0.0018*pow(x,6) + 3.3377*pow(x,5)
      - 2646.4*pow(x,4) + (1*pow(10,6))*pow(x,3)
      -(3*pow(10,8))*pow(x,2) +(3*10)*x
      -(2*pow(10,12));
    cout<<y<<endl;
       
   }

   return 0;//end program
}
ostream>

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

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