ไม่เข้าใจการแยกค่าออกมาของ a=a+sum thx +1

เริ่มโดย marketting, 13 พฤศจิกายน 2012, 03:47:13

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

marketting


พอดีไม่ค่อยเข้าใจ ทฤษฏีเท่าไรครับ

sum=sum+i;
for(i=0;i<=n;i++)
sum=sum+i;             => 2*n= 2n
a = a + sum;            => จะเท่ากับเท่าไรครับ

+1 ให้งามๆ นะครับ ขอบคุณมากๆ ครับ

:wanwan017:
รับเขียนบทความคุณภาพ Click ดูก่อนที่นี่ คิว 5-7 วันจองก่อนได้
SEO-Hosting 200 IP อยากมี Network ส่วนตัวดัน Keyword ที่นี่


- รับทำ Adwords T.082-1695526 Line : thaiception
- งาน 3D ออกแบบนำเสนอ เช่น โรงแรม รีสอร์ท ร้านอาหาร ที่ท่องเที่ยว ฯลฯ

DragonB

#1
ผมก็ไม่ค่อยเก่งเท่าไหร่นะครับ น่าจะเป็น Java ปกติแล้ว for loop น่าจะมีปีกกาปิดเพื่อระบุ scope ที่แน่นอน ปกติแล้ว program จะทำงานไปทีละบรรทัด ในกรณีนี้ที่เอา code มาให้ดูเท่านี้ ผมจะถือว่าไม่มีการวนซ้ำกลับขึ้นไป บรรทัดก่อน for loop ใหม่
บรรทัดที่ 1  ถ้าสมมติ sum = 0 และ i =0 ดังนั้นผลรวมคือ sum = 0
บรรทัดที่ 2  ต่อมาเป็นการ loop ถ้าเรากำหนด n = 5 โปรแกรมจะทำบรรทัดที่ 3 และ 4 ซ้ำๆจนกว่า i จะมากกว่า 5 และจะทำ statement ด้านในก่อนจึงทำ i++
บรรทัดที่ 4 หากมีการกำหนด a = 0 จะได้ว่า a = a + sum = 0+0 = 0 สรุป a = 0
***แล้วทำ i++ จะได้ i = 1 วนเข้า loop อีกครั้งเพราะ i ยังน้อยกว่า 5

จากนั้นวนไปอีก 5 รอบ ก็จะเป็น
****i = 1 is TRUE
sum = 0+1 = 1
a = a+sum = 0 + 1 = 1
i++

****i = 2 is TRUE
sum = 1 + 2 = 3
a = a+sum = 1 + 3 = 4
i++

****i = 3 is TRUE
sum = 3 + 3 = 6
a = a+sum = 4 + 6 = 10
i++

****i = 4 is TRUE
sum = 6+4 = 10
a = a+sum = 10 + 10 = 20
i++

****i = 5 is TRUE
sum = 10+5 = 15
a = a+sum = 20 + 15 = 35
i++

****i = 6 is FALSE ไม่ทำต่อไปแล้ว  ผลลัพธ์คือ 35 ครับ ถ้าตัวแปรเป็นตามที่ผมกำหนด แต่ถ้าไม่ใช่ ผลลัพธ์ก็ไม่ใช่ 35

marketting

อ้างถึงจาก: DragonB ใน 13 พฤศจิกายน 2012, 04:16:04
ผมก็ไม่ค่อยเก่งเท่าไหร่นะครับ น่าจะเป็น Java ปกติแล้ว for loop น่าจะมีปีกกาปิดเพื่อระบุ scope ที่แน่นอน ปกติแล้ว program จะทำงานไปทีละบรรทัด ในกรณีนี้ที่เอา code มาให้ดูเท่านี้ ผมจะถือว่าไม่มีการวนซ้ำกลับขึ้นไป บรรทัดก่อน for loop ใหม่
บรรทัดที่ 1  ถ้าสมมติ sum = 0 และ i =0 ดังนั้นผลรวมคือ sum = 0
บรรทัดที่ 2  ต่อมาเป็นการ loop ถ้าเรากำหนด n = 5 โปรแกรมจะทำบรรทัดที่ 3 และ 4 ซ้ำๆจนกว่า i จะน้อยกว่า 5 และจะทำ statement ด้านในก่อนจึงทำ i++
บรรทัดที่ 4 หากมีการกำหนด a = 0 จะได้ว่า a = 0 จาก a = 0+0
***แล้วทำ i++ จะได้ i = 1 วนเข้า loop อีกครั้งเพราะ i ยังน้อยกว่า 5

จากนั้นวนไปอีก 5 รอบ ก็จะเป็น
****i = 1 is TRUE
sum = 0+1 = 1
a = a+sum = 0 + 1 = 1
i++

****i = 2 is TRUE
sum = 1 + 2 = 3
a = a+sum = 1 + 3 = 4
i++

****i = 3 is TRUE
sum = 3 + 3 = 6
a = a+sum = 4 + 6 = 10
i++

****i = 4 is TRUE
sum = 6+4 = 10
a = a+sum = 10 + 10 = 20
i++

****i = 5 is TRUE
sum = 10+5 = 15
a = a+sum = 20 + 15 = 35
i++

****i = 6 is FALSE ไม่ทำต่อไปแล้ว  ผลลัพธ์คือ 35 ครับ ถ้าตัวแปรเป็นตามที่ผมกำหนด แต่ถ้าไม่ใช่ ผลลัพธ์ก็ไม่ใช่ 35


กำหนดว่า =>  sum = 0 , a = 1 ,  n=5
sum=sum+i;
for(i=0;i<=n;i++)
sum=sum+i;             => 2*n= 2n
a = a + sum;            => จะเท่ากับเท่าไรครับ
รับเขียนบทความคุณภาพ Click ดูก่อนที่นี่ คิว 5-7 วันจองก่อนได้
SEO-Hosting 200 IP อยากมี Network ส่วนตัวดัน Keyword ที่นี่


- รับทำ Adwords T.082-1695526 Line : thaiception
- งาน 3D ออกแบบนำเสนอ เช่น โรงแรม รีสอร์ท ร้านอาหาร ที่ท่องเที่ยว ฯลฯ

iLhay

sum=sum+i;
// Start for
for(i=0;i<=n;i++)
sum=sum+i;
// End for
a = a + sum;

ทีนี้ก็ไล่เอาเองครับ เพราะคุณไม่ declare variables มาให้
[direct=https://bangmod.cloud/wordpress-hosting/]Wordpress Hosting

[/direct]
[direct=https://bangmod.cloud/wordpress-hosting/]Wordpress Hosting[/direct] เริ่มต้นปีละ 790 บาท NVMe SSD เร็ว 9000MB/s เร็วกว่านี้ไม่มีอีกแล้ว
[direct=https://bangmod.cloud/cloud-server]Cloud Server[/direct] เริ่มต้นเพียงเดือนละ 159 บาท พร้อมใช้ภายใน 1 นาที ผ่านระบบอัตโนมัติมีทั้ง Linux / Windows / DirectAdmin
สอบถามข้อมูลและแจ้งปัญหา 02-105-4417 ตลอด 24 ชั่วโมง

Maxio

อ้างถึงจาก: marketting ใน 13 พฤศจิกายน 2012, 04:18:44

กำหนดว่า =>  sum = 0 , a = 1 ,  n=5
sum=sum+i;
for(i=0;i<=n;i++)
sum=sum+i;             => 2*n= 2n
a = a + sum;            => จะเท่ากับเท่าไรครับ
ถ้าลูป for ไม่มีปีกกา มันจะวนลูปแค่ sum =sum+i นะครับ แล้วในลูป i ไม่ได้กำหนด type ถ้าเป็นจาวา คอมไพล์ไม่ผ่าน ไม่แน่ใจภาษาอื่นเป็นไหม
อีกอย่างถ้ามี sum=sum+i ก่อน ลูป for จะ error นะครับ เพราะไม่ได้ประกาศตัวแปร i มาก่อน

**จริงๆค่า sum=sum+i ในลูป ก็เหมือนบวกเลข 1+2+3+4+5.. ไปเรื่อยเป็นจำนวน nครั้งนะครับ


ถ้าเป็น

for(int i = 0; i <= n; i++)
    sum=sum+i;     
    a = a + sum;

ผลลัพธ์ sum = 15 , a =16

จะวนลูปเฉพาะ sum =sum+1 เมื่อวนจน i มากกว่า n ก็จะออกลูป แล้วนำ sum มาบวกกับ a


for(int i=0;i<=n;i++) {
    sum=sum+i;     
    a = a + sum;
}
ผลลัพธ์ sum = 15 , a =36

อันนี้จะวนลูปและบวกค่า a ด้วย ผลลัพธ์จะต่างกับอันบนครับ ต่างกันแค่ใส่สโคปเอง (ปีกกา)