Computer Programming การเขียนโปรแกรมคอมพิวเตอร์

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Computer Programming การเขียนโปรแกรม คอมพิวเตอร์ สัปดาห์ที่ 6 คำสั่งควบคุมการทำงานแบบ เงื่อนไขและคำสั่งควบคุมการ ทำงานแบบวนซ้ำ.
Advertisements

หลักการโปรแกรม 1 Lecture 12: อาร์เรย์หนึ่งมิติ
Array ธนวัฒน์ แซ่ เอียบ. The concept of array อาเรย์ : กลุ่มของข้อมูลที่มีชนิดเดียวกันและถูก จัดเก็บเรียงลำดับต่อเนื่องกัน ตัวแปร x สามารถจัดเก็บค่ามากกว่า.
การเขียนคำสั่งควบคุม การทำงานขั้นพื้นฐาน
หลักการโปรแกรม 1 Lecture 14: โปรแกรมย่อย ( การส่งพารามิเตอร์ แบบ pass by reference)
BC322 : Computer Programing (ครั้งที่ 1)
LAB ตัวแปร : Variables ในการเขียนโปรแกรมเราต้องการให้โปรแกรม จดจำค่าต่างๆ ไว้ เช่นเมื่อรับค่าข้อมูลจาก ผู้ใช้ หรือค่าที่ได้จากการคำนวณใดๆ ค่า.
Chapter 10 Arrays Dept of Computer Engineering Khon Kaen University.
บทที่ 4 คำสั่งควบคุม โปรแกรม. คำสั่งควบคุมโปรแกรมออกได้เป็น 2 ประเภท คือ คำสั่งแบบกำหนดเงื่อนไข (Conditional Statement) คำสั่งแบบทำงานซ้ำ (Repetitive.
การเขียนโปรแกรมภาษาปาสคาล โดยใช้โครงสร้างหลักทั้ง 3 โครงสร้าง
หน่วยที่ 6 แถวลำดับ (Array)
หลักการโปรแกรม 1 Lecture 8: การทำซ้ำ (while, do-while)
1 exit() and break C++ provides a way to leave a program early (before its natural finish) with the exit() function. The format of exit() is as follows:
ตัวแปร และชนิด ข้อมูล. ตัวแปร การกำหนดตัวแปรเป็นการใช้ ชื่อตัวแปรแทน ตำแหน่งบนหน่วยความจำ สำหรับเก็บ ข้อมูลระหว่างการ ประมวลผล ซึ่งอาจเป็นข้อมูลนำเข้า.
MEE 231 Computer Programming สัปดาห์ที่ 6 ภาษา C หลักการของโปรแกรม ชนิดของตัวแปร การดำเนินการ คำสั่งการรับค่าตัวแปร และการแสดงผล.
ARRAY & PRINTF สาขางานคอมพิวเตอร์ธุรกิจอาจารย์จิรา ภรณ์ เขตกุฎี
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
คำสั่งควบคุมการทำงาน
เกม คณิตคิดเร็ว.
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
โครงสร้างโปรแกรมภาษา C
หลักการโปรแกรม อ.ธนากร อุยพานิชย์.
รายการ(List) [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
บทที่ 5 อินพุตและเอาต์พุต
โปรแกรมย่อย อาจารย์สมเกียรติ ช่อเหมือน
แนวข้อสอบ Final (จดด่วน)
Chapter 4 ข้อความสั่ง เลือกทำ.
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
ครูวีรธรรม เทศประสิทธิ์ แผนกวิชาคอมพิวเตอร์ธุรกิจ
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
Chapter 9 ตัวชี้ pointer.
INC 161 , CPE 100 Computer Programming
Principles of Problem Solving and Basic Programming หลักการแก้ปัญหาและการเขียนโปรแกรมเบื้องต้น2(1-2-3) สัปดาห์ที่ 4 เครื่องหมาย ตรรกะศาสตร์ และการดำเนินการทางตรรกะศาสตร์
Array.
การจัดการระบบฐานข้อมูล ภาษาที่ใช้ในระบบจัดการฐานข้อมูล
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
โครงสร้างโปรแกรมภาษา C
Principles of Problem Solving and Basic Programming หลักการแก้ปัญหาและการเขียนโปรแกรมเบื้องต้น2(1-2-3) สัปดาห์ที่ 6 ผังงานและการออกแบบผังงานเพื่อแก้ปัญหาการเขียนโปรแกรมเบื้องต้น.
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
(Array, Pointer, Structure)
บทที่ 10 อาร์เรย์ (Array)
แล้วทำการเรียงลำดับข้อมูลใหม่โดยเรียงจากน้อยไปหามาก
รายการ(List) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
START INPUT R = 1 R = R Yes R*R <=2 No R = R PROCESS
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
โครงสร้างภาษา C Arduino
Principles of Problem Solving and Basic Programming หลักการแก้ปัญหาและการเขียนโปรแกรมเบื้องต้น2(1-2-3) สัปดาห์ที่ 13 การออกแบบผังงานแบบมีเงื่อนไขร่วมกับการทำงานแบบวนซ้ำ.
Principles of Problem Solving and Basic Programming หลักการแก้ปัญหาและการเขียนโปรแกรมเบื้องต้น2(1-2-3) สัปดาห์ที่ 13 การเขียนรหัสเทียม (Pseudo Code)
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop)
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Control Statement เงื่อนไขคำสั่งในโปรแกรม ภาษา C
ตัวแปรกับชนิดของข้อมูล
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
บริษัท พัฒนาวิชาการ (2535) จำกัด
BC320 Introduction to Computer Programming
การทำงานแบบมีเงื่อนไข (if, if-else, if-else-if, Nested-if)
บทที่ 9 การทำซ้ำ (Loop).
Week 5 C Programming.
ผู้ช่วยศาสตราจารย์จุฑาวุฒิ จันทรมาลี
หน่วยที่ 6 อะเรย์ของอักขระ
บทที่ 7 การประมวลผลอาร์เรย์
บทที่ 2 โครงสร้างข้อมูลแบบแถวลำดับหรืออาร์เรย์ (Array)
Chapter 3 : Array.
Array Sanchai Yeewiyom
Array: One Dimension Programming I 9.
การวิเคราะห์โจทย์ปัญหา (Problem Analysis)
Decision: Single and Double Selection (if and if-else statement)
Computer Game Programming
ใบสำเนางานนำเสนอ:

Computer Programming การเขียนโปรแกรมคอมพิวเตอร์ สัปดาห์ที่ 8 ตัวแปรแถวลำดับ (Array)

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

Review the Midterm Examination Why an Array is Essential? Outline 1 Review the Midterm Examination 2 p Why an Array is Essential? 3 One-Dimensional Array 4 Two-Dimensional Array 5 Assignment #5

C Programming Structure พรีโปรเซสเซอร์ไดเร็คทีฟ #include<file.h> type function_name(type); type variable; int main() { statement-1; ... statement-n; return 0; } type function_name(type variable) return(var); ฟังก์ชันโพรโทรไทพ์ ส่วนหัวโปรแกรม ตัวแปรชนิดโกบอล ตัวแปรชนิดโลคอล ฟังก์ชันหลัก คำสั่ง ส่วนตัวโปรแกรม ฟังก์ชันย่อย

Review the Midterm Examination Why an Array is Essential? Outline 1 Review the Midterm Examination 2 p Why an Array is Essential? 3 One-Dimensional Array 4 Two-Dimensional Array 5 Assignment #5

Why an array is essential? ถ้าต้องการเก็บค่าคะแนนสอบ (score) ของนักเรียน จำนวน 20,000 คน เราต้องใช้ตัวแปร 20,000 ตัว เพื่อใช้เก็บค่าคะแนนของนักเรียนทั้งหมด float score1, score2, score3, ..., score20000; จากข้อจำกัดของชนิดข้อมูลพื้นฐานที่มีอยู่ (char, int, float, double) เราต้องใช้ตัวแปรจำนวนมาก เพื่อเก็บข้อมูลหลายค่า ภาษาซีจึงได้กำหนดชนิดข้อมูลแบบโครงสร้างที่รวมข้อมูลพื้นฐานดังกล่าวไว้เป็นลำดับหรือเป็นกลุ่ม

The Advantage of Array อาเรย์ (array) เป็นโครงสร้างข้อมูลประกอบด้วยกลุ่มของข้อมูลชนิดเดียวกันที่เรียงกันเป็นลำดับ โดยใช้ตัวแปรเพียงตัวเดียวอ้างถึงเช่น ตัวแปร score เป็นชนิดข้อมูลแบบอาเรย์ ใช้เก็บคะแนนจำนวน 20,000 ค่าพร้อมกันได้ เช่น ดัชนีที่ใช้จะเป็นเลขจำนวนเต็ม เริ่มจาก 0 ตามลำดับ (0, 1, 2, ...) คะแนนสอบ 75.5 82.0 96.5 93.0 ... 85.0 79.5 ดัชนี 1 2 3 19,998 19,999

Example 1 Regular Format Example 1 : จงเขียนโปรแกรมเพื่อรับรหัสนักศึกษา และคะแนนสอบกลางภาควิชา Computers and Programming ของนักศึกษาห้อง 1 – 10 #include <stdio.h> #include<conio.h> int main () { char id0001[9],id0002[9],id0003[9],...,id1158[9],id1159[9]; float point0001,point0002,point0003,...,pint158,point1159; scanf ("%s",id0001); scanf ("%f",&point0001); ... scanf ("%s",id1159); scanf ("%f",&point1159); return 0; }

Example 1 in Array Format #include<stdio.h> #include<conio.h> int main() { char id [1159] [9]; float point [1159]; int i; for (i=0;i<1159;i++) scanf ("%s", id [ i ]); scanf ("%f", &point [ i ]); } return 0;

Type of Array One-dimensional Array Multi-dimensional Array 1 num[9] [0] 9 [1] -1 [2] -23 [3] 44 [4] 2 [5] 6 [6] -9 [7] -22 [8] One-dimensional Array Column Column [0] [1] [2] [0] [1] [2] [3] Row [0] Row [1] [0] Row [2] Row [1] [3] [2] Row [3] [1] [2] Depth [0] Multi-dimensional Array

Review the Midterm Examination Why an Array is essential? Outline 1 Review the Midterm Examination 2 p Why an Array is essential? 3 One-Dimensional Array 4 Two-Dimensional Array 5 Assignment #5

One-dimensional Array Variable Declaration type array_name[size]; ตัวแปรแถวลำดับ อะเรย์ หรือ อาเรย์ : “An array is a series of elements of the same type placed in contiguous memory locations that can be individually referenced by adding an index to a unique identifier.” type ชนิดของตัวแปร array_name ชื่อของตัวแปรแถวลำดับที่ประกาศหรือตั้งโดยผู้เขียนโปรแกรม size ขนาดของตัวแปรแถวลำดับที่จะใช้ (จะใช้เท่าไรให้จองเผื่อไว้ 1 ช่องสำหรับ \0 (null string))

Declaration & Assignment Examples (Memory) char student_name [5]; student_name [0] = ‘A’; student_name [2] = ‘B’; int bill [5]; int billy [5] = { 16, 2, 77, 40, 12071 }; float Point [20]; Point [19] = 3.57; double x_data [100]; x_data [99] = 9.86975; 8 bits, 2 complement 32 bits, 2 complement

Declaration & Assignment Examples (Value) char student_name [5]; student_name [0] = ‘A’; student_name [2] = ‘B’; int bill [5]; int billy [5] = { 16, 2, 77, 40, 12071 }; float Point [20]; Point [19] = 3.57; double x_data [100]; x_data [99] = 9.86975; Column [0] [1] [2] [3] [4] Row [0] A B student_name Column [0] [1] [2] [3] [4] Row [0] 16 2 77 40 127 billy Column [16] [17] [18] [19] [20] Row [0] 3.57 Point Column [96] [97] [98] [99] [100] Row [0] 9.86975 x_data

Declaration & Assignment to Array type array-name[n]={value-1,value-2,…,value-n}; type ชนิดของตัวแปร เช่น int, float, char array_name ชื่อของตัวแปรแถวลำดับที่ประกาศหรือตั้งโดยผู้เขียนโปรแกรม value-1,value-2,…,value-n เป็นข้อมูลที่จะทำการกำหนดให้กับตัวแปรแถวลำดับ โดยจะต้องเป็นข้อมูลชนิดเดียวกับ type ที่กำหนด

Declaration & Assignment Examples (cont.) #include<stdio.h> #include<conio.h> int main() { int number[3] = {23, -186, 43}; float value_2[5]={0.98,43.213,-3.47,52.08,-0.987}; char vowel[5] = {'a','e','i','o','u'}; char name[9] = {'E','n','g','i','n','e','e','r','\0'}; return 0; }

References Data in Array #include<stdio.h> int main() { int year[5] = {2552,2553,2554,2555,2556}; printf ("%d\n",year[0]); printf ("%d\n",year[1]); printf ("%d\n",year[2]); printf ("%d\n",year[3]); printf ("%d\n",year[4]); return 0; }

Example 1 Example 1 : จงเขียนผังงานและโปรแกรมเพื่อเก็บอายุของผู้ใช้งานจำนวน 20 คนโดยเก็บข้อมูลอายุในตัวแปรชนิดอาร์เรย์ Output Analysis ไม่มี Input Analysis อายุของผู้ใช้งานทั้ง 20 คนที่ป้อนเข้ามา Process Analysis สร้างตัวแปรแถวลำดับขนาด 20 เพื่อเก็บค่าอายุ โปรแกรมวนรอบเพื่อรอรับค่าจากผู้ใช้งาน Variable Define age[20] เป็นตัวแปรแถวลำดับชนิดจำนวนเต็มขนาด 20 เพื่อใช้เก็บค่าอายุ count เป็นตัวแปรชนิดจำนวนเต็มเพื่อใช้นับจำนวนรอบของ for-loop

Process & Pseudo-code Process เริ่มต้นทำงาน ทำการวนรอบเพื่อรับอายุของผู้ใช้งานทั้ง 20 คนที่ป้อนเข้ามาแล้วเก็บไว้ในตัวแปรแถวลำดับ จบการทำงาน Pseudo-code Begin For ( i = 1 && i < = 20 ) { Keep the age of users } End

True START END age[20],count count = 0 age[count] count++ count<20 False

Code of Example 1 #include<stdio.h> #include<conio.h> int main() { int age[20],count; for (count=0; count<20; count++) printf ("Enter age[%d] : ",count); scanf ("%d",&age[count]); } printf ("Finish\n"); return 0;

แล้วคำนวณส่วนสูงเฉลี่ย แล้วแสดงผลส่วนสูงของนักศึกษาทั้งหมด Example 2 Example 2 : จงเขียนผังงานและโปรแกรม เพื่อรับจำนวนนักศึกษาในห้อง หลังจากนั้น ให้โปรแกรมรอรับส่วนสูงของคน n คน แล้ววิเคราะห์ว่ามีนักศึกษาในห้องมีส่วนสูงช่วงต่างๆ จำนวนกี่คน แล้วคำนวณส่วนสูงเฉลี่ย แล้วแสดงผลส่วนสูงของนักศึกษาทั้งหมด 0 – 160 161 – 170 171 – 180 181 - 200

Problem Analysis Output Analysis จำนวนนักศึกษาที่สูงแต่ละช่วง ส่วนสูงของนักศึกษาเฉลี่ยในห้อง ส่วนสูงของนักศึกษาทั้งหมด Input Analysis จำนวนนักศึกษาทั้งหมด และส่วนสูงของแต่ละคน Process Analysis โปรแกรมรับจำนวนนักศึกษา วนรอบเพื่อรับส่วนสูงเท่ากับจำนวนนักศึกษา วนรอบเพื่อตรวจสอบช่วงส่วนสูงของนักศึกษาและหาผลรวมส่วนสูงของนักศึกษาทุกคน คำนวณหาค่าเฉลี่ย

Problem Analysis (cont.) Variable Define num เป็นจำนวนเต็มเพื่อเก็บจำนวนนักศึกษา a เป็นจำนวนเต็มเพื่อตรวจตำแหน่งตัวแปร และนับรอบ range1=0, range2=0, range3=0, range4=0 เป็นจำนวนเต็มสำหรับเก็บค่าจำนวนนักศึกษาแต่ละช่วง high[300] เป็นตัวแปรแถวลำดับชนิดทศนิยมเพื่อเก็บส่วนสูง avg = 0 เป็นจำนวนทศนิยมเพื่อเก็บค่าผลรวมและค่าเฉลี่ย

Process เริ่มต้นทำงาน ทำการรับจำนวนนักศึกษา วนรอบเท่ากับจำนวนนักศึกษาที่ป้อนเข้ามาเพื่อรับส่วนสูงของนักศึกษาแต่ละคน วนรอบเพื่อตรวจสอบจำนวนของนักศึกษาที่มีความสูงตรงกับแต่ละช่วงความสูงและหาค่าผลรวมความสูงของนักศึกษาทั้งหมด หาค่าเฉลี่ยความสูง จบการทำงาน

Pseudo Code Begin Read amount of students Repeat { Read each height of student Check and increase amount of each range Calculate the summation of height } Calculate the average height End

True num,a range1=0,range2=0 range3=0,range4=0 high[300],avg=0 high[a] a=0 START num a<num a++ False (2)

(2) a=0 False a<num True <=160 T range1++ F <=170 T range2++ avg=avg/num F <=180 T range3++ (3) F range4++ avg=avg+high[a] a++

END (3) True a<num a++ a=0 high[a] range1 range2 range3 range4 avg False

#include<stdio.h> #include<conio.h> int main() { int num,a,range1=0,range2=0,range3=0,range4=0; float high[300],avg=0; printf ("Please enter number of student : "); scanf ("%d",&num); for (a=0; a<num; a++) printf ("Student %2d : ",a+1); scanf ("%f",&high[a]); }

for (a=0; a<num; a++) { if (high[a]<=160) range1++; else if (high[a]<=170) range2++; else if (high[a]<=180) range3++; else range4++; avg = avg + high[a]; } avg = avg/num;

printf ("\n 0 - 160 : %3d",range1); printf ("\n\nAverage : %f ",avg); for (a=0; a<num; a++) { printf ("%.2f ",high[a]); } return 0;

String & Array variable char subject[11] = {"C language"}; or char subject[11] = {'C', ' ', 'l', 'a', 'n', 'g', 'u', 'a', 'g', 'e', '\0'}; C subject [0] [1] l [2] [3] [4] [5] a n g [6] [7] [8] [9] [10] u e \0 char name[9] = {"Engineer"}; [0] [1] [2] [3] [4] [5] [6] [7] [8] E n g i n e e r \0 name

Example 3 #include<stdio.h> #include<conio.h> int main () { char sentence[22]="Welcome to my country"; char word[9]={'T','h','a','i','l','a','n','d','\0'}; char not_word[4]={'l','o','v','e'}; printf ("Message1 = %s\n",sentence); printf ("Message2 = %s\n",word); printf ("Message3 = %s\n",not_word); return 0; }

Review the Midterm Examination Why an Array is essential? Outline 1 Review the Midterm Examination 2 p Why an Array is essential? 3 One-Dimensional Array 4 Two-Dimensional Array 5 Assignment #5

Multi-dimensional Array Variable Declaration type array_name[size_1][size_2]; type array_name[m][n]; type ชนิดของตัวแปร เช่น int, float, char array_name ชื่อของตัวแปรแถวลำดับที่ประกาศหรือตั้งโดยผู้เขียนโปรแกรม size_1 or m ขนาดของตัวแปรแถวลำดับที่จะใช้มิติที่ 1 (ปกติจะจองไว้สำหรับดัชนีของแถว (row)) size_2 or n ขนาดของตัวแปรแถวลำดับที่จะใช้มิติที่ 2 (ปกติจะจองไว้สำหรับดัชนีของสดมภ์ (column))

Assignment Value to Multi-dimensional Array type array-name[m][n]={value-1-1,value-1-2,…,value-1-m, value-2-1,value-2-2,…,value-2-m, …, value-n-1,value-n-2,…,value-n-m}; type ชนิดของตัวแปร เช่น int, float, char array_name ชื่อของตัวแปรแถวลำดับที่ประกาศหรือตั้งโดยผู้เขียนโปรแกรม m ขนาดของตัวแปรแถวลำดับที่จะใช้มิติที่ 1 (ปกติจะจองไว้สำหรับดัชนีของแถว (row)) n ขนาดของตัวแปรแถวลำดับที่จะใช้มิติที่ 2 (ปกติจะจองไว้สำหรับดัชนีของสดมภ์ (column)) value-1-1, value-1-2, …, value-1-n, …, …, value-n-m เป็นข้อมูลที่จะทำการกำหนดให้กับตัวแปรแถวลำดับ โดยจะต้องเป็นข้อมูลชนิดเดียวกับ type ที่กำหนด

Declaration & Assignment Examples int matrix [2][2]; matrix [0][0] = ‘2’; matrix [0][1] = ‘7’; matrix [1][0] = ‘9’; matrix [1][1] = ‘5’ double data_array [2][2]; data_array[2][2] = {1.0,2.0,3.0,4.0}; or data_array[2][2] = {{1.0,2.0},{3.0,4.0}}; or data_array[ ][2] = {{1.0,2.0},{3.0,4.0}}; Column [0] [1] Row [0] 2 7 9 5 Row [1] Column [0] [1] 1.0 2.0 3.0 4.0 [0] [1]

Declaration & Assignment Examples (cont.) double data_array [2][2]; data_array[0][0] = 1.0; data_array[0][1] = 2.0; data_array[1][0] = 3.0; data_array[1][1] = 4.0; Column [0] [1] Row [0] 1.0 2.0 3.0 4.0 Row [1]

Declaration & Assignment Examples (cont.) int num[3][4] = { 11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34 }; int num[3][4] = { 11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34 }; 31 32 33 34 21 22 23 24 11 12 13 14 31 32 21 22 11 12 num[0][0] num[1][0] num[2][0] num[0][1] num[1][1] num[2][1] 34 24 14 num[0][3] num[1][3] num[2][3] 33 23 13 num[0][2] num[1][2] num[2][2]

Declaration & Assignment Examples (cont.) float matrix[2][4] = { 0.19, -0.01, -0.23, 4.44, -4.44, 0.26, -0.09, -0.22 }; float matrix[2][4] = { 0.19, -0.01, -0.23, 4.44, -4.44, 0.26, -0.09, -0.22 }; matrix[0][0] matrix[0][1] matrix[0][2] matrix[0][3] 0.19 -0.01 -0.23 4.44 matrix[1][0] matrix[1][1] matrix[1][2] matrix[1][3] -4.44 0.26 -0.09 -0.22

Declaration & Assignment Examples (cont.) char letter[2][4] = { 'G', 'o', 'o', 'D', 'T', 'i', 'm', 'E'}; char letter[2][4] = {'G', 'o', 'o', 'D', 'T', 'i', 'm', 'E'}; letter[0][0] letter[0][1] letter[0][2] letter[0][3] G o o D T i m E letter[1][0] letter[1][1] letter[1][2] letter[1][3]

Declaration & Assignment Examples (cont.) char str[2][10] = {"Computer", "Engineer" }; char str[2][10] = {"Computer", "Engineer" }; [0][8] C o m p u t e r \0 str[0] E n g i n e e r \0 str[1] [1][8]

Multi-dimensional Example #include <stdio.h> #define WIDTH 5 #define HEIGHT 3 int square [HEIGHT][WIDTH]; int n,m; int main () { for (n=0;n<HEIGHT;n++) for (m=0;m<WIDTH;m++) square[n][m]=(n+1)*(m+1); printf("square [%d][%d] = %d\n", n, m,square[n][m] ); } return 0;

Example 4 Example 4 : จงเขียนโปรแกรมเพื่อรับค่าจำนวนเต็มในรูปแบบเมตริกซ์โดยเก็บค่าไว้ในตัวแปร แถวลำดับ ขนาด 3  3 แล้วแสดงผลเมตริกซ์ Enter numbers [0][0] : 1 Enter numbers [0][1] : 2 Enter numbers [0][2] : 3 Enter numbers [1][0] : 4 Enter numbers [1][1] : 5 Enter numbers [1][2] : 6 Enter numbers [2][0] : 7 Enter numbers [2][1] : 8 Enter numbers [2][2] : 9 ***Matrix*** 1 2 3 4 5 6 7 8 9

#include<stdio.h> #include<conio.h> int main() { int matrix[3][3],r,c; for (r=0; r<3; r++) for(c=0; c<3; c++) printf ("Enter numbers [%d][%d] : ",r,c); scanf ("%d",&matrix[r][c]); } printf ("\n*** Matrix ***\n"); printf ("%5d ",matrix[r][c]); printf ("\n"); return 0;

Example 5 Example 5 : จากตัวแปรแถวลำดับที่กำหนดให้ จงเขียนโปรแกรมหาผลรวมของจำนวนในแต่ละหลัก และผลรวมของจำนวนในแต่ละแถว โดยเก็บค่าผลรวมไว้ในตัวแปร row [ ], column [ ] int num[3][4] = { 1, 2, 3, 4, 2, 3, 4, 5, 3, 4, 5, 6 };

*** Show Matrix *** 1 2 3 4 2 3 4 5 3 4 5 6 Sum of row[0] = 10 Sum of row[1] = 14 Sum of row[2] = 18 Sum of column[0] = 6 Sum of column[1] = 9 Sum of column[2] = 12 Sum of column[3] = 15

#include<stdio.h> #include<conio.h> int main() { int num[3][4] = { 1, 2, 3, 4, 2, 3, 4, 5, 3, 4, 5, 6 }; int r,c,row[3]={0,0,0},column[4]={0,0,0,0}; /* Display Matrix */ printf ("\n*** Show Matrix ***\n\n"); for (r=0; r<3; r++) for(c=0; c<4; c++) printf ("%5d ",num[r][c]); printf ("\n\n"); }

/* Summation Matric */ for (r=0; r<3; r++) for(c=0; c<4; c++) { row[r] = row[r] + num[r][c]; column[c] = column[c] + num[r][c]; } /* Display Summation */ printf ("\n\n"); printf ("sum of row [%d] = %d\n",r,row[r]); for (c=0; c<4; c++) printf ("sum of column [%d] = %d\n",c,column[c]); return 0;

Example 6 Example 6 : จงเขียนผังงานและโปรแกรม เพื่อรับข้อความเข้ามาแล้วตรวจสอบว่ามีทั้งหมดกี่ประโยค วิเคราะห์โจทย์ เขียนขั้นตอนการทำงานอย่างละเอียด เขียนรหัสเทียม เขียนแผนภาพการไหลของข้อมูล เขียนโค้ด

message[c]==POINT || message[c]==QU START count count=0, c=0, message[100] message END message[c]!=\0 False True message[c]==POINT || message[c]==QU True count++ False c++

#include<stdio.h> #include<conio.h> int main() { char message[100]; int count=0,c=0; printf ("******************************\n"); printf ("* Program for count SENTENCE *\n"); printf ("\n(One sentence must have '.' or '?')\n"); printf ("Enter Message : "); gets(message); while (message[c]!='\0') if (message[c]=='.' || message[c]=='?') count++; c++; } printf ("\n\nYour message has %d sentence(s).\n",count); return 0;

Exchange Value in Array 99 19 1 23 15 10 -26 -9 num[10] num[0] num[1] num[2] num[3] num[4] num[5] num[6] num[7] num[8] num[9] 99 19 1 23 15 10 -26 -9 num[10] num[0] num[1] num[2] num[3] num[4] num[5] num[6] num[7] num[8] num[9] 99 -9 num[0] num[9] ? Temp temp = num [0]; -9 99 99 num[0] = num [9]; num[9] = temp;

Example 7 Example 7 : จงเขียนโปรแกรมเพื่อรับจำนวน 10 จำนวน เพื่อหาค่ามากที่สุดในจำนวนที่รับ โดยการย้ายค่ามากที่สุดไปไว้ Array ที่ตำแหน่งสุดท้าย วิเคราะห์โจทย์ เขียนขั้นตอนการทำงานอย่างละเอียด เขียนรหัสเทียม เขียนแผนภาพการไหลของข้อมูล เขียนโค้ด

19 1 23 99 15 10 -26 -9 num[10] num[0] num[1] num[2] num[3] num[4] num[5] num[6] num[7] num[8] num[9] 19 1 23 99 15 10 -26 -9 num[10] temp = num[1]; num[1]=num[2]; num[2] = temp; 1 19 23 99 15 10 -26 -9 num[10] temp = num[4]; num[4]=num[5]; num[5] = temp; 1 19 23 15 99 10 -26 -9 num[10] 1 19 23 15 10 -26 -9 99 num[10]

#include<stdio.h> #include<conio.h> #define SIZE 10 int main() { int num[SIZE],temp,n; for (n=0; n<SIZE; n++) printf ("Enter num[%d] : ",n+1); scanf ("%d",&num[n]); } for (n=0; n<SIZE-1; n++) if (num[n]>num[n+1]) temp = num[n+1]; num[n+1] = num[n]; num[n] = temp; printf ("The maximum number = %d",num[SIZE-1]); return 0;

Dynamic Array Allocation (malloc method http://www.phy225.dept.shef.ac.uk/mediawiki/index.php/Arrays,_dynamic_array_allocation

One-dimensional arrays #include <stdio.h> #include <stdlib.h> int main(void) { int i; int* i_array; // this will be the array int j; // find out how many integers are required printf("How many integers? "); scanf("%d",&i); // Now allocate memory space i_array = (int*)malloc(i*sizeof(int)); // allocate storage for the array // code that uses the new array for (j=0;j<i;j++) { i_array[j]=j; // the pointer can be used as an array printf("%d\n",i_array[j]); } free((void*) i_array); // free up memory for reuse. system("pause"); return 0; One-dimensional arrays

Multi-dimensional arrays #include <stdio.h> #include <stdlib.h> int main(void) { int i,nrows,ncols; // Define the size of the array at run time printf("Enter number of rows and number of columns "); scanf("%d %d",&nrows,&ncols); int** array; array=(int**)malloc(nrows*sizeof(int*)); for (i=0; i<nrows; i++) array[i]=(int*)malloc(ncols*sizeof(int)); func(array, nrows, ncols); // some function that uses the array .... for (i=0; i<nrows; i++) free((void*)array[i]); free((void*)array); system("pause"); return 0; }

Review the Midterm Examination Why an Array is essential? Outline 1 Review the Midterm Examination 2 p Why an Array is essential? 3 One-Dimensional Array 4 Two-Dimensional Array 5 Assignment #5

1. กำหนดให้ Matrix A มีขนาด 3x3 ดังนี้ จงเขียนโปรแกรมหา Diagonal matrix ของ A โดยให้นำผลที่ได้ใส่ลงไปใน Array A

2. จากโจทย์ข้อที่ 1) จงหา Transpose ของ Matrix A โดยให้นำผลมาใส่ใน Matrix A

3. จาก Matrix A ในข้อที่ 1 จงเขียนโปรแกรมเพื่อแสดงผลคูณของ A x A