วันอาทิตย์ที่ 28 มิถุนายน พ.ศ. 2552

เขียน Structure


ตัวอย่าง ของ Structure
#include
int main() {
struct date {
int day;
int month;
int year;
};
struct person {
char name[30];
char lastname[40];
int age;
char address[100];
char phoneno[10];
char position[30];
int idcode;
struct date bday;
};
struct person cus1={"varee", "yudee", 25, "bangkok", "0812345678", "sale", 7500,{25, 11, 28}}, cus2;
printf("Enter Data of Employ\n");
printf(" Name : ");
scanf(" %[^\n]",cus2.name);
printf(" Lastname : ");
scanf(" %[^\n]",cus2.lastname);
printf("Age is :");
scanf(" %d",&cus2.age);
printf(" Address : ");
scanf(" %[^\n]",cus2.address);
printf("Phone No. : ");
scanf(" %[^\n]",cus2.phoneno);
printf(" position : ");
scanf(" %[^\n]",cus2.position);
printf("idcode : ");
scanf(" %d",&cus2.idcode);
printf("Birthday is (dd/mm/yy) : ");
scanf("%d/%d/%d", &cus2.bday.day, &cus2.bday.month, &cus2.bday.year);
/*
/*
printf("\nList of Customer\n");
printf("--------------\n");
printf("\nName : %s",cus1.name);
printf("\nLastname : %s",cus1.lastname);
printf("\nAge : %d",cus1.age);
printf("\nAddress : %s",cus1.address);
printf("\nPhone No. : %s",cus1.phoneno);
printf("\nposition : %s",cus1.position);
printf("\nID-Code : %d",cus1.idcode);
printf("\nBirthday : %d\n",cus1.bday.day,cus1.bday.month,cus1.bday.year);
printf("--------------\n");
*/
printf("\nList of Customer\n");
printf("--------------\n");
printf("\nName : %s",cus2.name);
printf("\nLastname : %s",cus2.lastname);
printf("\nAge : %d",cus2.age);
printf("\nAddress : %s",cus2.address);
printf("\nPhone No. : %s",cus2.phoneno);
printf("\nposition : %s",cus2.position);
printf("\nID-Code : %d",cus2.idcode);
printf("\nBirthday : %d/%d/%d\n",cus2.bday.day,cus2.bday.month,cus2.bday.year);
printf("--------------\n");


return 0;
}

DTS: 02-24/06/2552

เรื่อง Array and Record
เรียนเกี่ยวกับเรื่อง อะเรย์ กับ เรคครอร์ดอาร์เรย์ (Array) ความหมายของอาร์เรย์ คือแถวหรือลำดับ แถวหรือลำดับของข้อมูลชนิดเดียวกันที่มีจำนวนหลายตัวนำมาเก็บในตัวแปรชื่อเดียวกัน แต่ต่างกันที่ตัวบอกลำดับ ซึ่งเรียกว่าตัวห้อยหรือตัว Subscript ของตัวแปรนั้น ประเภทของอาร์เรย์ จะมี 2 ประเภท คือ อาร์เรย์ 1 มิติ , อาร์เรย์ หลายมิติอาร์เรย์ 1 มิติเช่น float Score[40]; มีความหมายว่า คะแนนสอบของนักเรียนที่เป็นเลขทศนิยม จำนวน 40 ตัว เก็บไว้ในตัวแปรชื่อ Score char name[100][20] ; มีความหมายว่า ข้อมูลรายชื่อพนักงาน 100 คน ที่ชื่อมีความยาวไม่เกิน 20 อักษรอาร์เรย์ หลายมิติอาเรย์ หลายมิติจะเก็บข้อมูลไว้ในลักษณะของตาราง การสร้างอาเรย์ 2 มิติ การนำค่าที่ต้องการเก็บในอาเรย์เราจะต้องอ้างถึงลำดับของสมาชิกช่องนั้นๆ ทั้งลำดับในแนวนอนและลำดับในแนวตั้ง หรือจะมองในลักษณะของคู่ลำดับก็ได้ดังรูปต่อไปนี้
char name[4][5]col 1 col 2 col 3row1 name[0][0] name[0][1] name[0][2]
row2 name[1][0] name[1][1] name[1][2]
Structure
เป็นตัวแปรชนิดที่มีโครงสร้าง สามารถรวบรวมข้อมูลหลาย ๆ ชนิดเข้ามาเก็บไว้ด้วยกันกัน และช่วยในการจัดเก็บข้อมูลแบบ record
สามารถทำได้โดยคำสั่ง struct มาช่วยในการประกาศข้อมูลแบบโครงสร้าง โดยมีรูปแบบการประกาศดังนี้
struct struct_name
{
type1 name1;type2
name2;
……..
typeN nameN;}
struct_var;
struct เป็นคำสั่งที่ใช้ประกาศข้อมูลแบบโครงสร้างstruct_name เป็นชื่อข้อมูลแบบโครงสร้าง ใช้สำหรับประกาศข้อมูลแบบโครงสร้างกลุ่มอื่นให้มีโครงสร้างเหมือนกลุ่มโครงสร้างที่เคยประกาศไว้แล้วstruct_var เป็นชื่อตัวแปรโครงสร้างใช้สำหรับอ้างอิงข้อมูลภายในโครงสร้างtype1 name1, type2 name2,…,typeN nameN เป็นชนิด และชื่อตัวแปรที่ 1, 2, 3, … , N ตามลำดับ บางครั้งอาจจะเรียก name1, name2,…,nameN ว่า element 1, element 2, … , element N ตามลำดับ

DTS: 01-17-06-2552

เรื่อง Introduction

โครงสร้างข้อมูล คือ หน่วยข้อมูลย่อยๆ (Data Elements)เช่น การเลือกใช้ค่า n โดยชนิดของข้อมูล char ch; เป็นการกำหนดให้คอมพิวเตอร์จัดเตรียมหน่วยความจำขนาด 8 บิต int i; เป็นการกำหนดให้คอมพิวเตอร์จัดเตรียมหน่วยความจำขนาด16 บิต float average; เป็นการกำหนดให้คอมพิวเตอร์จัดเตรียมหน่วยความจำขนาด 32 บิต
ประเภทของโครงสร้างข้อมูล
1. โครงสร้างข้อมูลทางกายภาพ(Physical Data Structure)เป็นโครงสร้างข้อมูลทั่วไปที่มีใช้ในภาษาคอมพิวเตอร์ ซึ่งแบ่งออกเป็น 2 ประเภทตามลักษณะข้อมูล ดังนี้1.2 ข้อมูลเบื้องต้น (primitive data types) เป็นข้อมูลพื้นฐานซึ่งมีโครงสร้างข้อมูลไม่ซับซ้อนจะต้องมีในภาษาคอมพิวเตอร์ทุกภาษา ตัวอย่างของข้อมูลประเภทนี้ เช่น- จำนวนเต็ม (integer)- จำนวนจริง (real)- ตัวอักขระ (character)
2. โครงสร้างข้อมูลทางตรรกะ (Logical Data Structure)
เป็น โครงสร้างข้อมูลที่เกิดจากจินตนาการของผู้ใช้เพื่อใช้แก้ปัญหาในโปรแกรมที่สร้างขึ้น จำแนกได้เป็น 2 ประเภท ดังนี้
2.1 โครงสร้างข้อมูลแบบเชิงเส้น (linear data structures) เป็นชนิดข้อมูลที่ความสัมพันธ์ของข้อมูลเรียงต่อเนื่องกัน โดยข้อมูลตัวที่ 2 อยู่ต่อจาก ข้อมูลตัวที่ 1 ข้อมูลตัวที่ 3 อยู่ต่อจากข้อมูลตัวที่ 2 และข้อมูลตัวที่ n อยู่ต่อจากข้อมูลตัวที่ n - 1 ตัวอย่างโครงสร้างข้อมูลแบบเชิงเส้น เช่น
- ลิสต์ (list)
- สแตก (stack)
- คิว (queue)
- ดีคิว (deque)- สตริง (string)
2.2 โครงสร้างข้อมูลแบบไม่ใช่เชิงเส้น (non-linear data structures) เป็นชนิดข้อมูลที่ข้อมูลแต่ละตัวสามารถมีความสัมพันธ์กับข้อมูลอื่นได้หลายตัว (ดูรายละเอียดเพิ่มเติมได้ในบทที่ 7) ตัวอย่างโครงสร้างข้อมูลแบบไม่ใช่เชิงเส้น
- ทรี (tree)
- กราฟ (graph)
การแทนที่ข้อมูลในหน่วยความจำหลัก
เป็นที่ทราบกันแล้วว่าในขณะประมวลผลด้วยคอมพิวเตอร์ ข้อมูลที่ต้องการประมวลผลจะถูกนำไปเก็บในหน่วยความจำหลัก ดังนั้นเมื่อเราต้องใช้โครงสร้างข้อมูล จึงต้องมีการแทนที่ข้อมูลในหน่วยความจำหลักด้วยเช่นกัน โดยทั่วไปการเขียนโปรแกรมคอมพิวเตอร์มีการแทนที่ข้อมูลในหน่วยความจำหลักอยู่ 2 วิธี คือ1. การแทนที่ข้อมูลแบบสแตติก (static memory representation)การแทนที่ข้อมูลแบบสแตติก เป็นการแทนที่ข้อมูลที่มีการจองเนื้อที่แบบคงที่แน่นอน การแทนที่แบบนี้ต้องมีการกำหนดขนาดก่อนการใช้งาน ข้อเสียของการแทนที่ด้วยวิธีนี้ก็คือไม่สามารถปรับขนาดให้เพิ่มขึ้นหรือลดลงได้ ไม่สามารถเก็บข้อมูลเกินขนาดเนื้อที่ที่กำหนดไว้ และถ้ากำหนดขนาดเนื้อที่ไว้มากเกินจำเป็นทั้งๆ ที่มีข้อมูลอยู่จำนวนน้อยจะทำให้สูญเสียเนื้อที่โดยเปล่าประโยชน์ โครงสร้างข้อมูลที่มีการแทนที่ในหน่วยความจำหลักด้วยวิธีนี้คือ แถวลำดับ (Array)
2. การแทนที่ข้อมูลแบบไดนามิก (dynamic memory representation)การแทนที่ข้อมูลแบบไดนามิก เป็นการแทนที่ข้อมูลที่ไม่ต้องจองเนื้อที่และขนาดของเนื้อที่ก่อนการใช้งาน สามารถยืดหยุ่นได้ตามความต้องการของผู้ใช้ นั่นคือถ้าข้อมูลมีน้อยก็ใช้เนื้อที่น้อย และถ้าข้อมูลมีมากก็สามารถใช้เนื้อที่มากตามที่ใช้จริงได้ นอกจากนั้นส่วนเนื้อที่ในหน่วยความจำหลักที่ไม่ใช้แล้วสามารถส่งคืนเพื่อกลับมาใช้ใหม่ได้อีก ภาษาคอมพิวเตอร์ระดับสูงบางภาษาเท่านั้นที่สามารถแทนที่ข้อมูลด้วยวิธีนี้ เช่น ภาษาซี ภาษาปาสคาล เป็นต้น สำหรับโครงสร้างข้อมูลที่มีการแทนที่ในหน่วยความจำหลักแบบไดนามิก คือ ตัวชี้ หรือ พอยน์เตอร์ (pointer)

วันพุธที่ 24 มิถุนายน พ.ศ. 2552


ประวัติส่วนตัว




นายอานวิล อับดุลรอมัน
Mr.Anawin Abdulroman
หลักสูตร การบริหารธุรกิจ (คอมพิวเตอร์ธุรกิจ)
คณะ วิทยาการจัดการ
มหาวิทยาลัยราชภัฎสวนดุสิต
e-mail address : anawinblog@gmail.com