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

تعديل على الكود

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

السوال

Convert the following do/while loop into a for loop and what the program works?

#include <iostream>

using namespace std;

int main()

{ int n;

cout << "Enter a positive integer: ";

cin >> n;

int sum=0,i=1;

do

{ sum += i*i;

}

while (i++ < n);

cout << "The sum is "<< sum << endl;

return 0;

}

محاولتى

#include <iostream>

using namespace std;

int main()

{ int n;

cout << "Enter a positive integer: ";

cin >> n;

int sum=0;

for(int i=1;i++ < n;i*i)

{

sum += i*i;

}

cout << "The sum is "<< sum << endl;

return 0;

}

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

#2

الخطأ هنا :

for(int i=1;i < n;i*i)

و الصحيح :

for(int i=1;i < n;i++)

لأنه في حل البرنامج كتب :

while (i++ < n)

تم تعديل هذه المشاركة بواسطة yahya91 في 22 أبريل 2010 في 19:04

1
#3

جربت مثل ماقلت بس مايطلع نفس الاوت بوت اللكود الاول لان المفترض لو ادخل رقم 2 راح يطبع خمسه وهنا يطبع 4

#4

كلامك صحيح

لأن الـ

do..while

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

أخذ

i=1

sum=sum+i*i

من أجل أول قيمة للـi

sum=0+1*1

بعد زيادة الـi أي i=2

sum=1+2*2=5

وهنا توقف حسب الشرط .

للذك نكتب :

for(int i=1;i<=n;i++)

ولاحظ هنا

i<=n

لكي نضمن زيادة واحدة مساوية لمثيلتها الـdo

تم تعديل هذه المشاركة بواسطة yahya91 في 22 أبريل 2010 في 18:56

#5

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

#6

السلآم عليكم ,,

ممكن سؤآل اذا سمحتم ,,

آلبرنآمج هنآ آيش جآلس يعمل؟ / يعني وش يحسب ب الضبط؟ / هل يحسب الفكتوريآل..!؟

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