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

كيف اترجم هذه المعادلة من VB الى C

مغلق
بدأه عماد الخليل في 17 أغسطس 2005 · 5 رد · 481 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اريد ترجمة المعادلة من VB الى C

هذه هي المعادلة في ال VB

V(X) = V(X - (2 ^ Int((Log(X - 0.5) / Log(2))))) - 1 / (2 ^ (1 + Int((Log(X - 0.5) / Log(2)))))

و هذا ما كتبته بال C فاين الخطأ ؟؟

v[x] = v[x-(pow(2,floor((Log10(x-0.5)/Log10(2)))))]-1/(pow(2,(1+floor((Log10(x-0.5)/Log10(2))))));

39_22.gif

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر

فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري

لقراءة القرآن الكريم و سماعه و تفسيره ........

ماذا يعني انني مسلم سني؟

قصة غريبة

ConflictResolution.gif

#2

إعذرني فالمصرف لدي فيه مشكلة ياعماد , لكن ,

بارمتر المصفوفة في سي++ يجب أن يكون عدد صحيح , والدالة pow في سي++ تعيد عدد حقيقي , و

x-(pow(2,floor((Log10(x-0.5)/Log10(2)))))]-

ستكون نتيجتها عدد حقيقي في النهاية , ومصرف السي++ لايتسامح في مثل هذه الأمور ولايتصرف برأيه الخاص , لذلك يجب أن تقسمها على سطرين وتحول النتيجة النهائية ل int وتضع كل المعادلة في int w مثلا , ثم تمرر w للمصفوفة ,

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

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#3

هيثم رسائل المصرف هي التالية بناء على المعادلة التى ذكرتها سابقا و اراك غدا ان شاء الله.

:\Program Files\Microsoft Visual Studio\MyProjects\test2\test2.cpp(22) : error C2065: 'Log10' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\test2\test2.cpp(22) : error C2108: subscript is not of integral type
C:\Program Files\Microsoft Visual Studio\MyProjects\test2\test2.cpp(22) : error C2112: pointer subtraction requires integral or pointer operand
C:\Program Files\Microsoft Visual Studio\MyProjects\test2\test2.cpp(22) : error C2440: '=' : cannot convert from 'double *' to 'double'
        There is no context in which this conversion is possible
Error executing cl.exe.

test2.exe - 4 error(s), 0 warning(s)

39_22.gif

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر

فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري

لقراءة القرآن الكريم و سماعه و تفسيره ........

ماذا يعني انني مسلم سني؟

قصة غريبة

ConflictResolution.gif

#4

طيب المشكلة من الدالة log10 , حقيقة أنا لم أستخدم ال log سابقا في سي++ , لكن ماأعرفه أنه توجد دالة log أيضا , وأظنها للأساس e وليس 10 , إن كنت تجرب ال 2003 VS.NET فالمصرف سيساعدك في التعرف على الدالة ويمكن أن ترى بارمتراتها ,

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

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#5

كلام الاخ هيثم صحيح مية فى المية

وأدى الدالة بتعويض بسيط

#include <math.h>
#include <conio>
#include <iostream>
void main()
{
 int x=12;

 int z=x-(  pow(  2,floor(   (  log10(x-0.5)/ log10(2  )))));
  cout<<z;
 getch();
}

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#6

كما ذكرت يا هيثم عملت int لناتج ال pow و كان هناك خطأ بسيط آخر log كتبتها خطأ Log و اصبحت المعادلة كالتالي حيث r هي int :

  r=pow(2,floor((log10(x-0.5)/log10(2))));
  v[x] = v[x-(r)]-1/(pow(2,(1+floor((log10(x-0.5)/log10(2))))));

و شكرا يا eng_3llam

39_22.gif

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر

فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري

لقراءة القرآن الكريم و سماعه و تفسيره ........

ماذا يعني انني مسلم سني؟

قصة غريبة

ConflictResolution.gif

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

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

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

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

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

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