สแตกคือการนำสิ่งที่เข้าไปทีหลังออกมาก่อน (Last in First out) "LIFO" หรือ "เข้าหลังออกก่อน"
1.การปริ้นของเครื่องปริ้น คือ หน้ากระดาษที่สั่งคำสั่งปริ้น สมมติ มี 10หน้า ในส่วนของ"หน้าที่10" จะออกมาก่อนและเรียงลำดับไปจนถึง "หน้าที่1"
วันอังคารที่ 28 กรกฎาคม พ.ศ. 2552
Dts 5-22/7/52
สรุป สแตก
ลักษณะที่สำคัยของสแตกคือ ข้อมูลที่เราใส่หลังสุดจะถุกนำออกมาเป็นลำดับแรกสุด เรียกคุณสมบัตินี้เรียกว่า
LIFO(Last in First out) ก
ารทำงานของสแตกจะประกอบไปด้วย 3กระบวนการคือ
1. Push คือ การนำข้อมูลใส่ลงไปในสแตกและต้องทำการตรวจสอบว่าสแตกเต็มหรือไม่
2. Pop คือ การนำข้อมูลออกจากส่วนบนสุด
3. Stack Top คือ เป้นการคัดลอกข้อมูลที่อยู่บนสุดของสแตก แต่ไม่ได้นำเอาข้อมูลนั้นออกจากสแตก
ลักษณะที่สำคัยของสแตกคือ ข้อมูลที่เราใส่หลังสุดจะถุกนำออกมาเป็นลำดับแรกสุด เรียกคุณสมบัตินี้เรียกว่า
LIFO(Last in First out) ก
ารทำงานของสแตกจะประกอบไปด้วย 3กระบวนการคือ
1. Push คือ การนำข้อมูลใส่ลงไปในสแตกและต้องทำการตรวจสอบว่าสแตกเต็มหรือไม่
2. Pop คือ การนำข้อมูลออกจากส่วนบนสุด
3. Stack Top คือ เป้นการคัดลอกข้อมูลที่อยู่บนสุดของสแตก แต่ไม่ได้นำเอาข้อมูลนั้นออกจากสแตก
ตัวอย่างการ Push Stack

DtS 4-22/7/52
สรุป ลิ้งลิสต์
กระบวนการทำงาน Traverse = หน้าที่ เยือนหรือท่องไปในลิสต์เพื่อเข้าถึงและประมวลผล
กระบวนการทำง่น Retrieve Node = คือทำหน้าที่เรียกคืนและหาตำแหน่งข้อมูลจากลิสต์
ฟังก์ชั้น Empty List เป็นการทดสอบว่าข้อมูลที่นำเข้า ถ้าเป็นจริง ก็ต่อเมื่อลิสต์ว่าง และท้าเป็นเท็จ ก้อต่อเมื่อลิสต์ไม่ว่าง
ฟังก์ชั่น Full List เป็นการทดสอบว่าลิสต์เต็มหรือไม่
ฟังก์ชั่น List Count นับจำนวณข้อมูลที่อยู่ในลิสต์
กระบวนงาน Destroy list ก็คือทำลายลิสต์
กระบวนการทำงาน Traverse = หน้าที่ เยือนหรือท่องไปในลิสต์เพื่อเข้าถึงและประมวลผล
กระบวนการทำง่น Retrieve Node = คือทำหน้าที่เรียกคืนและหาตำแหน่งข้อมูลจากลิสต์
ฟังก์ชั้น Empty List เป็นการทดสอบว่าข้อมูลที่นำเข้า ถ้าเป็นจริง ก็ต่อเมื่อลิสต์ว่าง และท้าเป็นเท็จ ก้อต่อเมื่อลิสต์ไม่ว่าง
ฟังก์ชั่น Full List เป็นการทดสอบว่าลิสต์เต็มหรือไม่
ฟังก์ชั่น List Count นับจำนวณข้อมูลที่อยู่ในลิสต์
กระบวนงาน Destroy list ก็คือทำลายลิสต์
ตัวอย่าง Create
ตัวอย่าง delete
ฟังก์ชัน < stdio.h > และ < iosteam.h > ในการเขียนสูตรคูณ
แบบใช้ stdio.h
#include"stdio.h"
#include"conio.h"
void main()
{
int num1,num2;
clrscr();
printf("Please enter integer number : \n");
printf("First number : ");
scanf("%d",&num1);
printf("Second number : ");
scanf("%d",&num2);
if (num1>num2)
{
printf("Number");
printf("\nFirst number is : %d",num1);
printf("\nSecond number is : %d",num2);
printf("\nFirst number is greater than second number\a\n");
getch();
}
else
{
printf("\n\n****************************\n");
printf("****************************\n");
printf("****************************\n");
printf("Number");
printf("\nFirst number is : %d",num1);
printf("\nSecond number is : %d",num2);
printf("\nSecond number is greater than or equal first number\a\n");
}
getch();
}
แบบ iosteam.h
#include
#include
void main()
{
int num1,num2;
clrscr();
cout<< "Please enter integer number : \n";
cout<< "First number : ";
cin>>num1;
cout<< "\nSecond number : ";
cin>>num2;
if (num1>num2)
{
cout<<"Number :";
cout<<"\nFirst number is : "<< num1;
cout<<"\nSecond number is : "<< num2;
cout<<"\nFirst number is greater than second number\a\n";
getch();
}
else
{
cout<<"You enter 2 number :";
cout<<"\nFirst number is : "<< num1;
cout<<"\nSecond number is : "<< num2;
cout<<"\nSecond number is greater than or equal first number\a\n";
}
getch();
}
#include"stdio.h"
#include"conio.h"
void main()
{
int num1,num2;
clrscr();
printf("Please enter integer number : \n");
printf("First number : ");
scanf("%d",&num1);
printf("Second number : ");
scanf("%d",&num2);
if (num1>num2)
{
printf("Number");
printf("\nFirst number is : %d",num1);
printf("\nSecond number is : %d",num2);
printf("\nFirst number is greater than second number\a\n");
getch();
}
else
{
printf("\n\n****************************\n");
printf("****************************\n");
printf("****************************\n");
printf("Number");
printf("\nFirst number is : %d",num1);
printf("\nSecond number is : %d",num2);
printf("\nSecond number is greater than or equal first number\a\n");
}
getch();
}
แบบ iosteam.h
#include
#include
void main()
{
int num1,num2;
clrscr();
cout<< "Please enter integer number : \n";
cout<< "First number : ";
cin>>num1;
cout<< "\nSecond number : ";
cin>>num2;
if (num1>num2)
{
cout<<"Number :";
cout<<"\nFirst number is : "<< num1;
cout<<"\nSecond number is : "<< num2;
cout<<"\nFirst number is greater than second number\a\n";
getch();
}
else
{
cout<<"You enter 2 number :";
cout<<"\nFirst number is : "<< num1;
cout<<"\nSecond number is : "<< num2;
cout<<"\nSecond number is greater than or equal first number\a\n";
}
getch();
}
วันเสาร์ที่ 11 กรกฎาคม พ.ศ. 2552
DtS 3-1/7/52
สรุป Pointer เป็นตัวแปรชนิดหนึ่งที่ทำหน้าที่เก็บตำแหน่งของที่ อยู่(Address) ของตัวแปรที่อยู่ในหน่วยความจำ
รูปแบบของมันก็จะมีลักษณะ Type *variable-name คือ Type = ชนิดของตัวแปร // ส่วน * = เป็นเครื่องหมายที่แสดงว่าตัวแปรที่ตามหลังเครื่องหมายนี้เป็นตัวแปรพ้อยเตอร์ //variable-name = เป็นตัวแปรที่ประกาศว่าเป็นชนิดพ้อยเตอร์
ตัวอย่างเช่น count100 Address2000 คือณ ตำแหน่งที่2000 countมีค่าเท่ากับ100
สตริง (String)หรือสตริงของอักขระ (Character String) เป็นข้อมูลที่ประกอบไปด้วย ตัวอักษร อักขระ ตัวเลข
ความยาวของสตริง จะถูกกำหนดโดยขนาดของสตรีง ต้องจองเนื้อที่ให้กับ(\0) ด้วย
การกำหนดค่าให้กับสตริงนั้นให้ใช้เครื่องหมาย Double quote("")
ถ้าสมมุติต้องการสตริงสำหรับข้อมูลยาวไม่เกิน10อัขระต้องกำหนดขนาดอะเรย์11ช่อง เพื่อเก็บ null character(\0) ด้วย
แบบฝึกหัด ท้ายบทที่2
1.ให้นักศึกษากำหนดค่าของ Array1มิติ และ Array2มิติ
ตอบ ตัวอย่าง Array 1 มิติ
#include "stdio.h"
#include "conio.h"
main()
{
int a[3];
clrscr();
a[0] = 1;
a[1] = 5;
a[2] = 2;
printf("a[0] = %d\n",a[0]);
printf("a[1] = %d\n",a[1]);
printf("a[2] = %d\n",a[2]);
}
ตัวอย่าง Array 2 มิติ
Array 2 มิติ
พิจราณาตารางที่ 2 ซึ่งแสดงจำนวนของนักศึกษาในชั้นปีต่างๆ ของคณะ วิทยาศาสตร์ วิศวกรรมศาสตร์ อักษรศาสตร์ รัฐศาสตร์ และบัญชี ข้อมูลในตารางดังกล่าว จะต้องใช้กับ Array 2 มิติ
ตารางที่ 2 จำนวนนักศึกษาของคณะต่างๆ
คณะ ชั้นปี
1 2 3 4
วิทยาศาสตร์ 200 175 175 175
วิศวกรรมศาสตร์ 400 390 385 385
อักษรศาสตร์ 150 150 150 150
รัฐศาสตร์ 100 100 98 98
บัญชี 200 200 195 195
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
main()
{
char student[4];
int num_student[5][4],i,j;
char fac[20];
clrscr();
for(i=0;i<=4;++i){ printf("Faculty : "); gets(fac); for(j=0;j<=3;++j){ printf("student[%d][%d] = ",i,j); gets(student); num_student[i][j] = atoi(student); } } } 2.ให้นักศึกษาหาค่าของ A[2],A[6]จากค่า A={2,8,16,24,9,7,3,8} ตอบ
A[2]= 16, A[6]= 3
3.จากค่าของ int a[2][3]={{6,5,4},{3,2,1}};ให้นักศึกษา หาค่าของ a[1][0]และ a[0][2]
ตอบ
a[1][0] = 3, a[0][2]= 4
4.ให้นักศึกษากำหนด Structure ที่มีค่าของข้อมูลจากน้อย 6 Records
ตอบ
#include"stdio.h"
struct Data Student
{
char name[];
char surname[10];
char lastname;
int age;
int id;
int junior;
}data_s;
void input_data()
{
printf("Data Student\n");
printf("Name :");
scanf("%s",&data_s.name);
printf("surname: ");
scanf("%s",&data_s.surname);
printf("Last Name");
scanf("%s",&data_s.lastname);
printf("Age : ");
scanf("%d",&data_s.age);
printf("Id: ");
scanf("%d",&data_s.id);
printf("Junior :");
scanf("%d",&data_s.junior);
}
void show_data()
{
printf("\n\nData you\n");
printf("Name is %s\n",data_s.name);
printf("Sur Name is %s\n",data_s.surname);
printf("Lastname is %s\n",data_s.lastname);
printf("Age is %d\n",data_s.age);
printf("Id is %d\n",data_s.id);
printf("Junior is %d\n",data_s.junior);
printf("Thank You Student so cute!!");
}
main()
{
input_data();
show_data();
}
5.ให้นักศึกษาบอกความแตกต่างของการกำหนดตัวชนิด Array กับ ตัวแปร Pointer ในสภาพของการกำหนดที่อยู่ของข้อมูล
ตอบ
ความแตกต่างระหว่างตัวแปร Array และ Pointer คือตัวแปรArrayชุดที่ใช้เก็บตัวแปรชนิดเดียวกันไว้ด้วยกัน เช่น เก็บ ข้อมูล char ไว้กับ char เก็บ int ไว้กับ int ไม่สามารถเก็บข้อมูลต่างชนิดกันได้ เช่น char กับ int เรียก array อีกอย่างว่าหน่วยความจำแบ่งเป็นช่อง การกำหนดสมาชิกชิกของ array จะเขียนภายในเครื่องหมาย [ ]
แต่ ตัวแปรพอยเตอร์จะเก็บเฉพาะค่าตำแหน่ง Address ตัวแปรเท่านั้นและดัชนีที่ เก็บค่าตำแหน่งแอดเดรสของหน่วยความจำ ซึ่งตัวแปรพอยเตอร์นั้น จะมีเครื่องหมายดอกจันทร์ (*) นำหน้าเสมอ
รูปแบบของมันก็จะมีลักษณะ Type *variable-name คือ Type = ชนิดของตัวแปร // ส่วน * = เป็นเครื่องหมายที่แสดงว่าตัวแปรที่ตามหลังเครื่องหมายนี้เป็นตัวแปรพ้อยเตอร์ //variable-name = เป็นตัวแปรที่ประกาศว่าเป็นชนิดพ้อยเตอร์
ตัวอย่างเช่น count100 Address2000 คือณ ตำแหน่งที่2000 countมีค่าเท่ากับ100
สตริง (String)หรือสตริงของอักขระ (Character String) เป็นข้อมูลที่ประกอบไปด้วย ตัวอักษร อักขระ ตัวเลข
ความยาวของสตริง จะถูกกำหนดโดยขนาดของสตรีง ต้องจองเนื้อที่ให้กับ(\0) ด้วย
การกำหนดค่าให้กับสตริงนั้นให้ใช้เครื่องหมาย Double quote("")
ถ้าสมมุติต้องการสตริงสำหรับข้อมูลยาวไม่เกิน10อัขระต้องกำหนดขนาดอะเรย์11ช่อง เพื่อเก็บ null character(\0) ด้วย
แบบฝึกหัด ท้ายบทที่2
1.ให้นักศึกษากำหนดค่าของ Array1มิติ และ Array2มิติ
ตอบ ตัวอย่าง Array 1 มิติ
#include "stdio.h"
#include "conio.h"
main()
{
int a[3];
clrscr();
a[0] = 1;
a[1] = 5;
a[2] = 2;
printf("a[0] = %d\n",a[0]);
printf("a[1] = %d\n",a[1]);
printf("a[2] = %d\n",a[2]);
}
ตัวอย่าง Array 2 มิติ
Array 2 มิติ
พิจราณาตารางที่ 2 ซึ่งแสดงจำนวนของนักศึกษาในชั้นปีต่างๆ ของคณะ วิทยาศาสตร์ วิศวกรรมศาสตร์ อักษรศาสตร์ รัฐศาสตร์ และบัญชี ข้อมูลในตารางดังกล่าว จะต้องใช้กับ Array 2 มิติ
ตารางที่ 2 จำนวนนักศึกษาของคณะต่างๆ
คณะ ชั้นปี
1 2 3 4
วิทยาศาสตร์ 200 175 175 175
วิศวกรรมศาสตร์ 400 390 385 385
อักษรศาสตร์ 150 150 150 150
รัฐศาสตร์ 100 100 98 98
บัญชี 200 200 195 195
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
main()
{
char student[4];
int num_student[5][4],i,j;
char fac[20];
clrscr();
for(i=0;i<=4;++i){ printf("Faculty : "); gets(fac); for(j=0;j<=3;++j){ printf("student[%d][%d] = ",i,j); gets(student); num_student[i][j] = atoi(student); } } } 2.ให้นักศึกษาหาค่าของ A[2],A[6]จากค่า A={2,8,16,24,9,7,3,8} ตอบ
A[2]= 16, A[6]= 3
3.จากค่าของ int a[2][3]={{6,5,4},{3,2,1}};ให้นักศึกษา หาค่าของ a[1][0]และ a[0][2]
ตอบ
a[1][0] = 3, a[0][2]= 4
4.ให้นักศึกษากำหนด Structure ที่มีค่าของข้อมูลจากน้อย 6 Records
ตอบ
#include"stdio.h"
struct Data Student
{
char name[];
char surname[10];
char lastname;
int age;
int id;
int junior;
}data_s;
void input_data()
{
printf("Data Student\n");
printf("Name :");
scanf("%s",&data_s.name);
printf("surname: ");
scanf("%s",&data_s.surname);
printf("Last Name");
scanf("%s",&data_s.lastname);
printf("Age : ");
scanf("%d",&data_s.age);
printf("Id: ");
scanf("%d",&data_s.id);
printf("Junior :");
scanf("%d",&data_s.junior);
}
void show_data()
{
printf("\n\nData you\n");
printf("Name is %s\n",data_s.name);
printf("Sur Name is %s\n",data_s.surname);
printf("Lastname is %s\n",data_s.lastname);
printf("Age is %d\n",data_s.age);
printf("Id is %d\n",data_s.id);
printf("Junior is %d\n",data_s.junior);
printf("Thank You Student so cute!!");
}
main()
{
input_data();
show_data();
}
5.ให้นักศึกษาบอกความแตกต่างของการกำหนดตัวชนิด Array กับ ตัวแปร Pointer ในสภาพของการกำหนดที่อยู่ของข้อมูล
ตอบ
ความแตกต่างระหว่างตัวแปร Array และ Pointer คือตัวแปรArrayชุดที่ใช้เก็บตัวแปรชนิดเดียวกันไว้ด้วยกัน เช่น เก็บ ข้อมูล char ไว้กับ char เก็บ int ไว้กับ int ไม่สามารถเก็บข้อมูลต่างชนิดกันได้ เช่น char กับ int เรียก array อีกอย่างว่าหน่วยความจำแบ่งเป็นช่อง การกำหนดสมาชิกชิกของ array จะเขียนภายในเครื่องหมาย [ ]
แต่ ตัวแปรพอยเตอร์จะเก็บเฉพาะค่าตำแหน่ง Address ตัวแปรเท่านั้นและดัชนีที่ เก็บค่าตำแหน่งแอดเดรสของหน่วยความจำ ซึ่งตัวแปรพอยเตอร์นั้น จะมีเครื่องหมายดอกจันทร์ (*) นำหน้าเสมอ
สมัครสมาชิก:
บทความ (Atom)