โปรแกรมประยุกต์อื่นๆ

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างของภาษา C ในโปรแกรมที่พัฒนาด้วยภาษา C ทุกโปรแกรมจะมีโครงสร้างการพัฒนาไม่แตกต่างกัน ซึ่งประกอบด้วย 6 ส่วนหลัก ๆ โดยที่แต่ละส่วนจะมีหน้าที่แตกต่างกัน.
Advertisements

โครงสร้างโปรแกรมภาษา C
สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
ตัวแปรชุด การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงาน.
BC322 ครั้งที่ 10 ตัวแปรชุด (Array)
BC322 ครั้งที่ 6 Text file BC322 : computer Programming (Week6)
คำสั่ง while และ คำสั่ง do..while
การเรียงลำดับข้อมูล(Sorting)
Control Statement for while do-while.
Principles of Programming
Structure Programming
LAB # 4 Computer Programming 1 1. พิจารณาโปรแกรมต่อไปนี้
Computer Programming 1 LAB # 6 Function.
LAB # 4.
ARRAY.
Week 15 C Programming.
CE 112 บทที่ 5 การทำซ้ำในภาษา C
รับและแสดงผลข้อมูล.
โครงสร้างภาษาซี.
ตัวชี้ P O I N T E R Created By Tasanawan Soonklang
อาเรย์ (Array).
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
Arrays.
บทที่ 6 ตัวแปรอาร์เรย์ (Array of Variable)
C Programming Lecture no. 6: Function.
Selected Topics in IT (Java)
หน่วยที่ 14 การเขียนโปรแกรมย่อย
หน่วยที่ 8 อาร์กิวเมนต์ของ main
อาร์เรย์และข้อความสตริง
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงานลักษณะของฟังก์ชั่นมีความรอบรัดสั้นกว่าแบบวนลูป.
Lecture 4 องค์ประกอบภาษา C To do: Hand back assignments
การคำนวณทางคณิตศาสตร์ ตัวดำเนินการ
บทที่ 8 อาร์เรย์.
การเขียนโปรแกรมภาษาซี
Chapter 5 คำสั่งควบคุมการทำซ้ำ
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
แถวลำดับ (array) ง40202 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
คำสั่ง for ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
ปฏิบัติการครั้งที่ 10 pointer. หน่วยความจำ หน่วยความจำนั้นเสมือนเป็นช่องว่างไว้เก็บ ของที่มีหมายเลขประจำติดไว้ที่แต่ละช่อง เพื่อใช้ในการระบุตำแหน่งของช่องได้
บทที่ 5 ฟังก์ชันกับอาร์เรย์ Function & Array
การรับและพิมพ์ข้อมูลเบื้องต้น
ตัวแปรกับชนิดของข้อมูล
Week 10 การเขียนโปรแกรมเบื้องต้น #2
Week 2 Variables.
Computer Programming for Engineers
Week 12 Engineering Problem 2
Computer Programming for Engineers
Week 5 การทำซ้ำโดย while loop และ do while loop
การประมวลผลสายอักขระ
การเขียนโปรแกรมประยุกต์ใช้งาน
Week 12 Engineering Problem 2
Computer Programming for Engineers
Computer Programming for Engineers
Computer Programming for Engineers
Week 5 การทำซ้ำโดย while loop และ do while loop
Debugging in VC Computer Programming for Engineers.
Computer Programming for Engineers
ความหมาย การประกาศ และการใช้
Recursion การเรียกซ้ำ
กองซ้อน ยอดกองซ้อน (stack).
Output of C.
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Function ธนวัฒน์ แซ่ เอียบ. What is a function ฟังก์ชันในภาษา C เป็นโปรแกรมที่ถูกออกแบบมาเพื่อ ใช้แก้ปัญหางานใดงานหนึ่งโดยเฉพาะ ฟังก์ชันจะเปลี่ยน input.
การเขียนโปรแกรม (ภาษาซี)
Function. วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน.
Programming assignments ชื่องาน (subject) : program เขียนด้วยภาษา C หรือ C++ มีทั้งหมด 7 ข้อ กำหนดส่ง 29 กรกฎาคม 2554.
บทที่ 11 พอยเตอร์ C Programming C-Programming. จันทร์ดารา Surin Campus : มีอะไรบ้างในบทนี้  ตัวแปรพอยเตอร์ (Pointer) เป็นตัว แปรที่แปลกและแตกต่างไปจากตัว.
ใบสำเนางานนำเสนอ:

โปรแกรมประยุกต์อื่นๆ 259201 Computer Programming for Engineers (Week 13)

Outline ตัวอย่างเกม OX ส่วนวาดภาพ ส่วนรับอินพุต ส่วนตรวจสอบการแพ้ชนะ ส่วนสลับกันเล่น

ตัวอย่างเกม OX เริ่มต้น - ตารางเปล่า สลับกันเล่น ระบุตำแหน่ง ตรวจสอบการแพ้ชนะ วาดตารางใหม่ จนกว่าจะจบเกม O X O X

วาดตาราง Input/Output? วาดตารางอย่างไร? ตัวแปรมีกี่สถานะ? ตัวแปรแบบ 2 มิติเก็บตาราง OX ประกาศใน main Output ออกมาเป็นค่า? วาดตารางอย่างไร? ตัวแปรมีกี่สถานะ? 1 ช่องจากตัวแปร 1 ช่องจาก “|” ช่องว่าง 1 ช่องจาก “_” 1 ช่องจาก “+”

ส่วนวาดภาพ Q1: จงเขียนโปรแกรมที่มีรายละเอียดดังต่อไปนี้ ประกาศตัวแปรอาเรย์ขนาดสองมิติขนาด 3x3 กำหนดให้ค่าเริ่มต้นของตัวแปรดังกล่าวคือ 0 สุ่มค่าใดๆ ในตัวแปรดังกล่าวให้อยู่ในช่วง 0 - 2 ให้เขียนฟังก์ชันที่วาดตารางโดยนำค่าตัวแปรอาเรย์มาใช้ หากค่าในอาเรย์เป็น 1 วาด O หากค่าในอาเรย์เป็น 2 วาด X หากค่าในอาเรย์เป็น 0 วาดช่องว่าง เรียกใช้ฟังก์ชันดังกล่าว

q1.c #include<stdio.h> void print_tbl(int [3][3]); void main(void) { int table[3][3]={0,0,0,0,0,0,0,0,0}; int i, j; for (i=0; i<3; i++) for(j=0; j<3; j++) table[i][j] = rand()%3; print_tbl(table); } void print_tbl(int tbl[3][3]) { int i, j; for (i=0; i<3; i++) { for (j=0; j<3; j++) { printf(" "); if (tbl[i][j]==1) printf("o"); else if (tbl[i][j]==2) printf("x"); else if (j!=2) printf("|"); } printf("\n"); if (i!=2) printf("---+---+---\n");

ส่วนรับอินพุต การรับอินพุตจะรับผ่าน Coordinate ดังต่อไปนี้ รับทีละค่าเริ่มจากตำแหน่งแถวก่อน ตามด้วยหลัก 0,0 0,1 0,2 1,0 1,1 1,2 2,0 2,1 2,2

ส่วนรับอินพุต (Cont.) Q2: จงแก้ไขโปรแกรมจาก Q1 โดยให้เพิ่มเติมการรับอินพุตสำหรับผู้เล่น O หนึ่งครั้ง ต่อท้าย Code เดิม ดังตังอย่างต่อไปนี้ Enter O horizontal axis: 1 Enter O vertical axis: 0 ถ้าตำแหน่งดังกล่าวมี O หรือ X ไว้แล้ว ให้วนซ้ำจนกว่าผู้ใช้จะกรอกค่าถูก O X O O X

q2.c #include<stdio.h> void print_tbl(int [3][3]); void main(void) { int table[3][3]={0,0,0,0,0,0,0,0,0}; int i, j; int h, v; for (i=0; i<3; i++) for(j=0; j<3; j++) table[i][j] = rand()%3; print_tbl(table); do { printf("Enter o horizontal axis: "); scanf("%d", &h); printf("Enter o vertical axis: "); scanf("%d", &v); }while(table[h][v]==1||table[h][v]==2); table[h][v]=1; } void print_tbl(int tbl[3][3]) { int i, j; for (i=0; i<3; i++) { for (j=0; j<3; j++) { printf(" "); if (tbl[i][j]==1) printf("o"); else if (tbl[i][j]==2) printf("x"); else if (j!=2) printf("|"); } printf("\n"); if (i!=2) printf("---+---+---\n");

ส่วนตรวจสอบการแพ้ชนะ ตัวอย่างการแพ้ชนะ O X O O X X X X O O

ส่วนตรวจสอบการแพ้ชนะ (Cont.) แนวนอน แนวตั้ง แนวทะแยงมุม

ส่วนตรวจสอบการแพ้ชนะ (Cont.) Q3: จงเขียนโปรแกรมที่มีรายละเอียดดังต่อไปนี้ ประกาศตัวแปรอาเรย์ขนาดสองมิติขนาด 3x3 กำหนดให้ค่าเริ่มต้นของตัวแปรดังกล่าวคือ 0 ให้เขียนฟังก์ชันตรวจสอบการแพ้ชนะในแนวนอนที่แถวที่ 0 ส่งค่า 0 กลับหากไม่มีการแพ้ชนะ ส่งค่า 1 กลับหาก o ชนะ ส่งค่า 2 กลับหาก x ชนะ ให้สมมุติค่าเพื่อทดสอบฟังก์ชันดังกล่าวในโค๊ด

q3.c // ส่วนไหนยังไม่ใช้ สามารถ comment ไว้ก่อนได้ #include<stdio.h> void print_tbl(int [3][3]); int check_winning(int [3][3]); void main(void) { int table[3][3]={0,0,0,0,0,0,0,0,0}; int winner = 0; table[0][0]=1; table[0][1]=1; table[0][2]=1; print_tbl(table); while (winner==0) { winner = check_winning(table); } if (winner==1) printf("O win\n"); else if (winner==2) printf("X win\n"); int check_winning(int tbl[3][3]) { if (tbl[0][0]==1 &&tbl[0][1]==1 &&tbl[0][2]==1) return 1; else if (tbl[0][0]==2 &&tbl[0][1]==2 &&tbl[0][2]==2) return 2; else return 0; }

ส่วนสลับกันเล่น สร้างตัวแปรสำหรับเก็บผู้เล่นปัจจุบัน 0 สำหรับผู้เล่น o 1 สำหรับผู้เล่น x สลับกันโดยใช้การประมวลผลนิพจน์ทางตรรกศาสตร์ !0 -> 1 !1 -> 0

ส่วนสลับกันเล่น (Cont.) Q4:จงแก้ไขโปรแกรมจาก Q2 และ Q3 เพื่อให้ผู้ใช้สามารถเล่นเกม OX ได้โดยมีลักษณะต่อไปนี้ เริ่มต้นด้วยตารางว่าง สลับกันเล่นได้ โดยเริ่มจาก o ก่อน สามารถป้อนตำแหน่งการใส่ o หรือ x ได้ โดยห้ามใส่ทับตำแหน่งที่มีค่า o หรือ x หากใส่ทับให้ใส่ใหม่เรื่อยๆ สามารถตรวจสอบการแพ้ชนะในแนวนอน แถวที่ 0 ได้

q4.c #include<stdio.h> void print_tbl(int [3][3]); int check_winning(int [3][3]); void main(void) { int table[3][3]={0,0,0,0,0,0,0,0,0}; int h, v, winner = 0, player=0; print_tbl(table); while (winner==0) { if (player==0) { do { printf("Enter o horizontal axis: "); scanf("%d", &h); printf("Enter o vertical axis: "); scanf("%d", &v); } while(table[h][v]==1||table[h][v]==2); table[h][v]=1; } else { printf("Enter x horizontal axis: "); printf("Enter x vertical axis: "); } while ( (table[h][v]==1||table[h][v]==2); table[h][v]=2; } winner = check_winning(table); player=!player; printf("\n"); print_tbl(table); } if (winner==1) printf("O win!\n"); else if (winner==2) printf("X win!\n");