7 loop
This presentation is the property of its rightful owner.
Sponsored Links
1 / 41

ครั้งที่ 7 การใช้ Loop PowerPoint PPT Presentation


  • 286 Views
  • Uploaded on
  • Presentation posted in: General

ครั้งที่ 7 การใช้ Loop. อาจารย์สายสุนีย์ เจริญสุข สาขาวิชาเทคโนโลยีสารสนเทศธุรกิจ คณะเทคโนโลยีสารสนเทศ. วัตถุประสงค์. เข้าใจหลักการควบคุมแบบวนหลูบ (Looping) สามารถใช้คำสั่งควบคุมการทำงานของโปรแกรมแบบวนหลูบได้. EAU 1/2552 : อาจารย์สายสุนีย์ เจริญสุข.

Download Presentation

ครั้งที่ 7 การใช้ Loop

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


7 loop

ครั้งที่ 7 การใช้Loop

อาจารย์สายสุนีย์ เจริญสุข

สาขาวิชาเทคโนโลยีสารสนเทศธุรกิจ

คณะเทคโนโลยีสารสนเทศ


7 loop

วัตถุประสงค์

  • เข้าใจหลักการควบคุมแบบวนหลูบ (Looping)

  • สามารถใช้คำสั่งควบคุมการทำงานของโปรแกรมแบบวนหลูบได้

EAU 1/2552 : อาจารย์สายสุนีย์ เจริญสุข

วิชา 00920212 การเขียนโปรแกรมคอมพิวเตอร์ 1


7 loop

คำสั่ง For

การใช้คำสั่ง For ใช้ในการวนซ้ำ

For(ตัวแปรใช้นับจำนวนรอบ = จำนวนรอบเริ่มต้น; เงื่อนไขการหยุดวนซ้ำ;สเต็ปขั้นของการนับ)

{

<ทำงานตามคำสั่ง>

}


For loop 1 10

ตัวอย่าง โปรแกรมการใช้คำสั่ง for loop ในการพิมพ์ค่าของเลขจำนวนเต็มจาก 1 ถึง 10 พร้อมกับหาผลบวกของเลขเหล่านั้น แล้วแสดงออกที่จอภาพ

static void Main(string[] args)

{ inti, sum = 0;

for(i=1;i<=10;i++){

Console.Write("{0}\t",i); //แต่ถ้าต้องการผลลัพธ์เรียงทีละหนึ่งจำนวนให้ใช้คำสั่ง WriteLine

sum= sum+1;

}

Console.WriteLine("Sum of all numbers from 1 to 10 is {0}",sum);

}


7 loop

ผลลัพธ์


7 loop

ตัวอย่าง โปรแกรมเมื่อคลิกปุ่ม “วนซ้ำแบบเดินหน้า” จะแสดงค่าเพิ่มขึ้นทีละหนึ่ง แต่ถ้าคลิกปุ่ม”วนซ้ำแบบถอยหลัง” จะแสดงลดค่าที่ละหนึ่ง แต่ถ้าคลิกปุ่ม “ปรับ stepการวนซ้ำ” จะแสดงค่าเพิ่มทีละ 3 ค่า


7 loop

private void btnLoopUp_Click(object sender, EventArgs e)

{ int cnt = 10;

string strOut = "วนรอบทั้งหมด =" + cnt.ToString() + "\tรอบ\r\n";

strOut += "-------------------------------------------\r\n";

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

{

strOut += "วนรอบที่ : " + i.ToString()+"\r\n";

}

txtOut.Text = strOut;

}


7 loop

private void btnLoopDown_Click(object sender, EventArgs e)

{

int cnt = 10;

string strOut = "วนรอบทั้งหมด =" + cnt.ToString() + "\tรอบ\r\n";

strOut += "-------------------------------------------\r\n";

for (int i = cnt; i >=1; i--)

{

strOut += "วนรอบที่ : " + i.ToString() + "\r\n";

}

txtOut.Text = strOut;

}


7 loop

private void btnStep_Click(object sender, EventArgs e)

{

int cnt = 10;

string strOut = "วนรอบทั้งหมด =" + cnt.ToString() + "\tรอบ\r\n";

strOut += "-------------------------------------------\r\n";

for (int i = 0; i <= 10; i+=3)

{

strOut += "วนรอบที่ : " + i.ToString() + "\r\n";

}

txtOut.Text = strOut;

}


7 loop

ตัวอย่าง โปรแกรมในการใช้คำสั่ง For-Loop ที่ซ้ำซ้อน ดังต่อไปนี้เช่น กรณีที่เมื่อกำหนด row= 5,Column= 7 แล้วคลิกปุ่ม “วาดตาราง” จะได้ผลลัพธ์ในTextBox ดังรูป


7 loop

private void btnTable_Click(object sender, EventArgs e)

{

txtOut.Text = "";

for (int row = 1; row <= numRow.Value; row++)

{

for (int column = 1; column <= nudColumn.Value; column++)

{

txtOut.Text += column.ToString() + "|";

}

txtOut.Text += "\r\n";

}

}


8 up textbox

เช่น กรณีที่กำหนดช่องล่างสุดเป็น 8 แล้วคลิกปุ่ม”วาดสามเหลี่ยม UP” จะได้ผลลัพธ์ในช่องTextBoxดังรูปด้านล่างนี้


7 loop

private void btnTriUp_Click(object sender, EventArgs e)

{

txtOut.Text = "";

for (int j = 1; j <= (int)nudTriRow.Value; j++)

{

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

{

txtOut.Text += i.ToString() + " ";

}

txtOut.Text += "\r\n";

}

}


8 down textbox

เช่น กรณีที่กำหนดช่องล่างสุดเป็น 8 แล้วคลิกปุ่ม”วาดสามเหลี่ยม Down” จะได้ผลลัพธ์ในช่องTextBoxดังรูปด้านล่างนี้


7 loop

private void btnTriDown_Click(object sender, EventArgs e)

{

txtOut.Text = "";

for (int j = (int)nudTriRow.Value; j >= 1; j--)

{

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

{

txtOut.Text += i.ToString() + " ";

}

txtOut.Text += "\r\n";

}

}


While loop

คำสั่ง While Loop

รูปแบบของคำสั่ง While มีลักษณะดังนี้

While(codition){

Statement 1;

Statement 2;

}

หมายเหตุ ภายในลูปจะต้องมีคำสั่งในการเพิ่ม ลด หรือเปลี่ยนแปลงค่าของตัวแปรที่ใช้ตรวจสอบเงื่อนไข เพื่อให้เป็นเท็จจะได้จบลูป


While loop 1 10

ตัวอย่าง โปรแกรมการใช้คำสั่ง While Loop ในการพิมพ์ค่าของเลขจำนวนเต็มจาก 1 ถึง 10 พร้อมกับหาผลบวกของเลขเหล่านั้น แล้วแสดงออกที่จอภาพ

static void Main(string[] args)

{

int i, sum = 0;

i = 1;/*initialization*/

while (i <= 10)/*condition*/

{

Console.Write("{0}", i);

sum = sum + i;

i++;/*increment*/

}

Console.WriteLine("\nSum of all number from 1 to 10 is {0}", sum);

}


7 loop

ผลลัพธ์ได้ดังนี้


Random

ตัวอย่าง โปรแกรมการสุ่มตัวเลขจากการ Random


7 loop

row = num;

col = 1;

while (row >= 1)

{

while (col <= row)

{

txtOut.Text += num.ToString() + " ";

col++;

}

txtOut.Text += "\r\n";

row--;

col = 1;

}

}

private void btnRandom_Click(object sender, EventArgs e)

{

Random rndObject = new Random();

int num = rndObject.Next(10);

txtOut.Text = " ";

int row = 1;

int col = 1;

while (row <= num)

{

while (col <= row)

{

txtOut.Text += num.ToString() + " ";

col++;

}

txtOut.Text += "\r\n";

row++;

col = 1;

}


Do while loop

คำสั่ง Do-While Loop

รูปแบบคำสั่ง Do-While มีลักษณะดังนี้

Do{

Statement 1;

Statement 2;

…..

Statement n;

} While(condition);


Do while loop 1 10

ตัวอย่าง โปรแกรมคำสั่ง Do-While Loop ในการพิมพ์ค่าของเลขจำนวนเต็มจาก 1 ถึง 10 พร้อมหาผลบวกของเลขเหล่านั้น แล้วแสดงผลทางจอภาพ

static void Main(string[ ] args)

{ int i, sum = 0;

i = 1;

do

{

Console.Write("{0}", i);

sum = sum + i;

i++;

} while (i <= 10);

Console.WriteLine("\nSum of all numbers from 1 to 10 is {0}", sum);

}


7 loop

ผลลัพธ์ได้ดังนี้


7 loop

ตัวอย่าง โปรแกรมในการคิดดอกเบี้ยเงินทบต้น โดยกรอกข้อมูลเงินต้น อัตราดอกเบี้ย และจำนวนปีที่ฝาก จากนั้นคลิกปุ่ม “ผลตอบแทน” จะได้ผลรับในช่อง TextBox ดังรูป


7 loop

private void btnReturn_Click(object sender, EventArgs e)

{ if ((txtBase.Text == "") || (txtInterest.Text == ""))

{

MessageBox.Show("คุณต้องระบุเงินต้นและดอกเบี้ยให้ครบถ้วน", "ผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

else

{ txtReturn.Text ="";

double dblBase = Convert.ToDouble(txtBase.Text);

double dblInterest = Convert.ToDouble(txtInterest.Text);

double dblYear = (double)nudReturn.Value;

double dblReturn = 0.0;

int i =1;

do{

dblReturn = dblBase+(dblBase * dblInterest /100);

txtReturn.Text += "ผลตอบแทนปีที่ "+ i.ToString()+"\t= " + dblReturn.ToString("#,###.##")+" บาท" +"\r\n";

dblBase = dblReturn;

i++;

}while(i<=(int)nudReturn.Value);

}

}


7 loop

ตัวอย่างโปรแกรมต่อไปนี้ เป็นการรับค่าของเลขจำนวนเต็ม 2 จำนวนจากผู้ใช้ เก็บไว้ที่ตัวแปร num1 และ num2 ตามลำดับ จากนั้นจะรับค่าซึ่งเป็นเลขจำนวนเต็มอีก 1 ค่า เก็บไว้ที่ตัวแปร choice หลังจากนั้นจะใช้คำสั่ง switch โดยใช้เลขจำนวนเต็มที่รับเข้ามาเก็บไว้ที่ตัวแปร choice เป็นตัวเปรียบเทียบ ซึ่งถ้าตรงกับกรณีใดกรณีหนึ่ง จะทำคำสั่งที่อยู่ในส่วนนั้นๆ คือ

  • ถ้าเป็นเลข 1 โปรแกรมจะพิมพ์ผลบวก(+) ของ num1 และ num2

  • ถ้าเป็นเลข 2 โปรแกรมจะพิมพ์ผลลบ(-) ของ num1 และ num2

  • ถ้าเป็นเลข 3 โปรแกรมจะพิมพ์ผลคูณ(*) ของ num1 และ num2

  • ถ้าเป็นเลข 2 โปรแกรมจะพิมพ์ผลหาร(/) ของ num1 และ num2

  • ถ้าเป็นเลขอื่นๆ โปรแกรมจะพิมพ์ข้อความว่า “Invalid Choice!....Byte Byte”


7 loop

case 1:

Console.WriteLine("{0}+{1} = {2}", num1, num2, num1 + num2);

break;

case 2:

Console.WriteLine("{0}-{1} = {2}", num1, num2, num1 - num2);

break;

case 3:

Console.WriteLine("{0}*{1} = {2}", num1, num2, num1 * num2);

break;

case 4:

Console.WriteLine("{0}/{1} = {2}", num1, num2, num1 / num2);

break;

default:

Console.WriteLine("Invalid Choice!.........Bye Bye ");

  }

}

static void Main(string[] args)

{

int num1, num2, choice;

string a, b, c;

Console.Write("num1=");

a = Console.ReadLine();

num1 = Convert.ToInt32(a);

Console.Write("num2=");

b = Console.ReadLine();

num2 = Convert.ToInt32(b);

Console.Write("Your selection is:");

c = Console.ReadLine();

choice = Convert.ToInt32(c);

switch (choice)

{


Switch

ตัวอย่าง การใช้คำสั่ง switch

  • ถ้าค่าที่อยู่ในตัวแปร choice มีค่าเท่ากับ 1 หรือ 2 หรือ 3 จะพิมพ์ข้อความว่า “You gave 1,2 or 3”

  • ถ้าค่าที่อยู่ในตัวแปร choice มีค่าเท่ากับ 4 หรือ 5 จะพิมพ์ข้อความว่า “You gave 4 or5”

  • แต่ถ้าค่าที่อยู่ในตัวแปร choice มีค่าอื่นใดคือไม่ใช่ 1,2,3,4 หรือ 5

    ส่วนของคำสั่ง switch จะไม่แสดงอะไรออกที่หน้าจอ ซึ่งโดยส่วนมากแล้วจะนิยมใส่ค่า default เอาไว้ในช่วงสุดท้าย ดังตัวอย่างต่อไปนี้


7 loop

case 1:

case 2:

case 3:

Console.WriteLine("You gave 1,2,3 ");

break;

case 4:

case 5:

Console.WriteLine("You gave 4 or 5 ");

break;

}

}

static void Main(string[ ] args)

{

int choice;

string a;

Console.Write("num =");

a = Console.ReadLine();

choice = Convert.ToInt32(a);

switch (choice)

{


Break continue goto

ตัวอย่าง โปรแกรมการใช้คำสั่ง break,continue และ goto

  • เมื่อกดปุ่ม break จะทำการสุ่มตัวเลขดังรูป


7 loop

private void btnBreak_Click(object sender, EventArgs e)

{

Random rndObject = new Random();

int num = rndObject.Next(10);

txtOut.Text = "";

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

{

txtOut.Text +="วนรอบครั้งที่"+i.ToString()+"\r\n";

if(i==num)

{

txtOut.Text +="สุ่มตัวเลขจำนวน ="+num.ToString();

break;

}

}

}


Continue

เมื่อกดปุ่ม “Continue” จะทำการสุ่มตัวเลขดังรูป


7 loop

private void btnContinue_Click(object sender, EventArgs e)

{

Random rndObject = new Random();

int num = rndObject.Next(10);

txtOut.Text = "";

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

{

txtOut.Text += "วนซ้ำรอบที่" + i.ToString() ;

if (i == num)

{

txtOut.Text += "\tตรงกับจำนวนที่สุ่ม " + "\r\n";

continue;

}

txtOut.Text += "\r\n";

}

}


7 loop

เมื่อกดปุ่ม “Goto” จะทำการสุ่มตัวเลขดังรูป


7 loop

case 5:

txtOut.Text += "ห้า:";

goto case 1;

case 6:

txtOut.Text += "หก:";

goto case 2;

case 7:

txtOut.Text += "เจ็ด:";

goto case 1;

case 8:

txtOut.Text += "แปด:";

goto case 2;

case 9:

txtOut.Text += "เก้า:";

goto case 1;

}

}

private void btnGoto_Click(object sender, EventArgs e)

{ Random rndObject = new Random();

int num = rndObject.Next(10);

switch(num)

{ case 0:

txtOut.Text += num+ "สุ่มได้เลข 0" +"\r\n";

break;

case 1:

txtOut.Text += num+"\tเลขที่สุ่มเป็นเลขคี่"+"\r\n";

break;

case 2:

txtOut.Text += num+"\tเลขที่สุ่มเป็นเลขคู่"+"\r\n";

break;

case 3:

txtOut.Text += "สาม:";

goto case 1;

case 4:

txtOut.Text += "สี่:";

goto case 2;


7 loop

แบบทดสอบ

1.กำหนดให้นักศึกษาเขียนโปรแกรมแสดงเลขคี่ ได้ผลลัพธ์ดังนี้ 1,3.5.7,9

2. กำหนดให้นักศึกษาเขียนโปรแกรมแสดงเลขคู่ โดยได้ผลลัพธ์ดังนี้0,2,4,6,8,10


7 loop

การบ้านงานกลุ่ม

  • จงเขียนโปรแกรมโดยใช้คำสั่ง for,while และ do-while ในการพิมพ์อักษรตัวใหญ่จาก Z ถึง A

  • จงเขียนโปรแกรมเพื่อรับค่าจากคีย์บอร์ดเป็นเลขจำนวนเต็ม 2 จำนวน ไว้ที่ตัวแปร a และ b โดย 0<a<10 และ 20<b<40 ถ้าค่าไม่อยู่ในช่วงดังกล่าว ให้โปรแกรมแสดง error และวนไปรับค่าใหม่ ทำการบวกเลขเฉพาะเลขคู่ที่มีค่าตั้งแต่ a ถึง b แล้วแสดงผลลัพธ์ออกทางจอภาพ

  • จงเขียนโปรแกรมแสดงตัวเลข 0 ถึง 4 เรียงออกมาเป็นรูปพีระมิด ดังแสดงหน้าถัดไป


7 loop

0

01

012

0123

01234

0123

0123

012

01

0


  • Login