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

المساعدة فى ايجاد الاخطاء رجاءا

بدأه When can i في 22 سبتمبر 2009 · 5 رد · 527 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

#include <iostream>

#include <string>

#include <cmath>

using namespace std;

int main ()

{

int i;

double V;

double theta;

double V_theta;

double theta_rad;

double theta_array [63];

double v_theta_array [63];

double theta_rad_array [63];

const double PI = 4.0*atan(1.0);

cout << "FOURIER SERIES" << endl;

cout << "Enter value for voltage (V) : ";

cin >> V;

cout << "Claculate the voltage (theta) by the following formula" << endl;

theta = 0;

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

{

theta_rad = theta*(PI/180);

V_theta = V*((1.0/PI) + ((0.5)*(sin(theta_rad))) -((2.0/PI)*(((1.0/3.0)*(cos(2*theta_rad))) + ((1.0/15.0)*(cos(4.0*theta_rad))) +((1.0/35.0)*(cos(6*theta_rad))))));

v_theta_array = V_theta;

theta_array = theta;

theta_rad_array = theta_rad;

theta = theta + (360.0/61.0);

}

for (int j = 0; j < 3;j++)

{

cout << "angle(degrees) angle(radians) voltage(v)\t";

}

cout << "\n";

const int XMAX = 21;

for (int x = 0; x <= XMAX ; x++)

{

cout << theta_array[x]<<"\t\t" << theta_rad_array[x] <<"\t\t" << v_theta_array[x] << "\t\t\t" << theta_array[x+XMAX]<<"\t\t" << theta_rad_array[x+XMAX]<<"\t\t" << v_theta_array[x+XMAX] << "\t\t\t" << theta_array[x+2*XMAX] <<"\t\t" << theta_rad_array[x+2*XMAX] <<"\t\t" << v_theta_array[x+2*XMAX]<<"\n";

}

#2

شاشه الكونسول حجمها حوالي 80*25 تقريبا .. أي أنك اذا كتبت أكثر من العرض المسموح فسوف يتم النزول تلقائيا للسطر الثاني ..

حاليا العمود الأول لديك كبر من ذلك الحد ، عليك باختصاره حتى تستطيع عمل التنسيق بشكل جيد ،، اما اذا لم تستطع بأي شكل من الأشكال تقليل المخرج فيفضل كتابة المخرج في ملف عن طريق عمل Re-Direction للبرنامج .. مثلا لو كان اسمه a.exe فمن سطر الأوامر أكتب a.exe > a.txt وستجد أن الملف a.txt يحتوي على المخرجات بالكامل ..

هناك دوال للتنسيق أفضل من وضع الtab ، مثلا setw أو width ، شاهد المثال التالي :

 

[color= #007f00;]// Formatting I/O Using Field Width 

[color= #007f00;]#include <iostream>

[color= #0000ff;]using [color= #0000ff;]namespace std ;

 

[color= #0000ff;]int main [color= #000000;]([color= #0000ff;]int argc, [color= #0000ff;]char[color= #000000;]* argv[color= #000000;][[color= #000000;]][color= #000000;]) [color= #000000;]{

	cout [color= #000000;]<< [color= #A31515;]"Root | Sequare |     Cube" [color= #000000;]<< endl;

 

	[color= #0000ff;]for [color= #000000;]([color= #0000ff;]int i[color= #000000;]=[color= #ff0000;]1 ; i[color= #000000;]<=[color= #ff0000;]10 ; i[color= #000000;]++ [color= #000000;]) [color= #000000;]{

		cout.[color= #808000;]width[color= #000000;]( [color= #ff0000;]4 [color= #000000;]); cout [color= #000000;]<< i [color= #000000;]<< [color= #A31515;]" | " ;

		cout.[color= #808000;]width[color= #000000;]( [color= #ff0000;]7 [color= #000000;]); cout [color= #000000;]<< i[color= #000000;]*i [color= #000000;]<< [color= #A31515;]" | " ;

		cout.[color= #808000;]width[color= #000000;]( [color= #ff0000;]8 [color= #000000;]); cout [color= #000000;]<< i[color= #000000;]*i[color= #000000;]*i [color= #000000;]<< endl;

	[color= #000000;]}

 

	[color= #0000ff;]return [color= #000000;]([color= #ff0000;]0[color= #000000;]);

[color= #000000;]}

يمكنك بعد تقليل الأعمدة وتصغيرها أن تستخدمها للتنسيق ..

بالتوفيق ،،

تم تعديل هذه المشاركة بواسطة Wajdy Essam في 22 سبتمبر 2009 في 15:30

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#3

السلام عليكم

جزاكم الله خير الجزاء لكن هل رايت عندما قمت بتنفيذ البرنامج ان هناك قيمتان بالسالب تحت قيمة 360 لا اعرف لماذا يجب ان تكون قيمة 360 هى اخر قيمة فى السطر الثالث ثم هل ممكن ان تفيدنى كيف يمكن عمل باركراف لعرض القيم اقصد قيم الفولت والزاوية باستخدام شكل النجمة انا طمعان فى كرمك

والسلام عليكم اخى الكريم

#4

السلام عليكم

بعد محاولات عدة استطعت ان اصلح الاعمدة فقط اخر ثلاث اعمدة لم تضبط معى الا اذا ادخلت قيمة للفولت من خمسين او اكبر لا اعلم وكذلك استطعت ان الغى القيمتين السالبتين كل ما ارجوه منك اخى الكريم ان ترشدنى كيف اقوم بتمثيل هذه القيم كدالة باستخدام علامة النجمة

جزينم خيرا

تم تعديل هذه المشاركة بواسطة When can i في 23 سبتمبر 2009 في 01:32

#5

كيف أقوم بتمثيل القيم كدالة ؟ هل من مثال ؟

وما هي القيم التي تريد تمثيلها ؟

بالتوفيق

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#6

السلام عليكم

المطلوب الاخير فى هذا البرنامج هو ان يقوم بعرض(bar graph) النتائج الموجودة فى الجدول عن طريق جعل الفولت هو الاكسس العمودى والزاوية عبارة عن الاكسس الافقى باستخدام علامة النجمة( asterisks, *, ) من غير ذكر الارقام اى القيم ( Numerical values are NOT required on the axes (

مع جزيل الشكر

الكود الجديد هو

#include <iostream>

#include <string>

#include <cmath>

using namespace std;

int main ()

{

int i;

double V;

double theta;

double V_theta;

double theta_rad;

double theta_array [63];

double v_theta_array [63];

double theta_rad_array [63];

const double PI = 4.0*atan(1.0);

cout << "FOURIER SERIES" << endl;

cout << "Enter value for voltage (V) : ";

cin >> V;

cout << "Claculate the voltage (theta)" << endl;

theta = 0;

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

{

theta_rad = theta*(PI/180);

V_theta = V*((1.0/PI) + ((0.5)*(sin(theta_rad))) -((2.0/PI)*(((1.0/3.0)*(cos(2*theta_rad))) + ((1.0/15.0)*(cos(4.0*theta_rad))) +((1.0/35.0)*(cos(6*theta_rad))))));

v_theta_array = V_theta;

theta_array = theta;

theta_rad_array = theta_rad;

theta = theta + (360.0/60.0);

}

for (int j = 0; j < 3;j++)

{

cout << " angle(degrees) angle(radians) voltage(v)\t" ;

}

cout << "\n";

const int XMAX = 20;

for (int x = 0; x <= XMAX ; x++)

{

cout << theta_array[x] <<" \t" << theta_rad_array[x] <<" \t" << v_theta_array[x] << " \t" << theta_array[x+XMAX] <<" \t" << theta_rad_array[x+XMAX] <<" \t" << v_theta_array[x+XMAX] << " \t" << theta_array[x+2*XMAX] <<" \t" << theta_rad_array[x+2*XMAX] <<" \t" << v_theta_array[x+2*XMAX] << "\n";

}

return 0;

}

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

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

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

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

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