(เพจ: โรงเรียนกีตาร์ไทย)


(เพจ: Guitarthai.com)
  สอบถามเรื่อง เขียนโปรแกรม ครับ  
 
นอกเรื่องเนอะ เผื่อมีผู้รู้ในนี้
ค่า string ต่างๆ ที่เรากำหนดเวลาเขียนโปรแกรม
มันคืออะไรครับ ทำไมต้องกำหนด อยากรู้ว่าจะกำหนดเพื่ออะไร
ตามรูปข้างบนที่เขาอธิบายมาผมไม่เข้าใจครับ....


The_guitar      28 มิ.ย. 56   เวลา 17:19:00       พิมพ์   แจ้งลบ      IP = 210.118.108.254
 


  คำตอบที่ 1  
 
ผมก็ไม่เก่งหรอกครับ

แต่มีเรียนมาบ้าง ^^

int เนี๊ยมันเก็บพวกจำนวนเต็มครับ สมมุติ ถ้าผมเกิดอยากเขียนโปรแกรมคำนวนค่าเฉลี่ย โดนผม input ค่า 3 ค่าคือ 2 , 5 ,13 ผมอยากหาค่าเฉลี่ยของเลข 3 ตัวนี้ มันก็จะเป็น (2+5+13)/3 ประมาณ 6.66667

ถ้าผมประกาศตัวแปรใหม่ชื่อ main ซื้อเป็นประเภท int ที่เก็บค่าเฉลี่ยของ 3 ตัวเมื่อกี้ โปรแกรมจะปริ้นเป็นแค่เลข 6 ตัวเดียวเพราะ int เก็บตัวแปรประเภทจำนวนเต็ม ซึ่งมันจะตัดทศนิยมข้างหลังทิ้งทั้งหมด

แต่ถ้า float จะเก็บจำนวนที่เป็นทศนิยม ดังนั้นถ้าจะคำนวนหาอะไรก็แล้วแต่เกิดคำตอบมีโอกาศเป็นทศนิยมเราควรใช้ float แล้วถ้าผมเกิดคิดโจทย์ใหม่ มา ให้หาค่าเฉลี่ยของ 1 , 2 , 3 คำตอบมันจะเป็น 2 แต่ถ้าตัวเก็บของเราเป็น float มันจะเป็ย 2.00 ครับ

ส่วนเรื่อง char มันเป็นการเก็บตัวแปรที่เป็นตัวหนังสือ เช่น M , A etc.

ส่วนตัวอื่น ๆ ผมก็จำไม่ได้ละครับ เพราะมันไม่ค่อยได้ใช้ครับ ส่วนเลข 8,16,32,64 bit เป็นการจองหน่วยความจำ ก็ควรเลือกใช้ให้ถูกด้วยน่ะครับ เพราะเก็บเลือกแล้วเก็บค่าของเราไม่พอหรือเกิน มันจะทำให้โปรแกรมรันช้าหรือผมลัพท์ ออกมาผิดก็ได้ครับ


ถ้าผมผิดประการใดขออภัยด้วยน่ะครับ เพราะผมไม่ได้เรียนสายคอมโดยตรงเรียน คณิตศาสตร์ประยุกต์ ซึ่งมาการเขียน c , java แบบไม่ได้ลึกมากด้วยครับ

   สมาชิกแบบพิเศษ      Thitison      28 มิ.ย. 56   เวลา 17:39:00    IP = 125.25.179.41
สมาชิกแบบพิเศษ  
 


  คำตอบที่ 2  
 
ขอบคุณมากครับคุณน้อง ^^

   The_guitar      28 มิ.ย. 56   เวลา 17:56:00    IP = 210.118.108.254
 


  คำตอบที่ 3  
 
ขออธิบาย สั้นๆนะครับ

1. เพื่อประหยัดหน่วยความจำของเครื่องครับ
หมายถึง หน่วยความจำหลัก ซึ่งก็คือ RAM นั่นเองครับ เพราะโปรแกรม Run อยู่บนหน่วยความจำหลักครับ
จากรูปจะเห็นว่า แต่ละชนิดใช้หน่วยความจำต่างกัน ในการใช้งานก็ต้องเลือกให้เหมาะสม ใช้เท่าที่จำเป็น

2. เพื่อจำแนกข้อมูล เป็นชนิดๆไป เช่น ตัวอักษร ตัวเลข ให้ง่ายต่อการนำไปใช้ เช่น จำนวนพนักงาน ก็ต้องใช้ ชนิดจำนวนเต็ม (Integer), จำนวนเงิน ก็ใช้ เป็นตัวเลขที่มีจุดทศนิยม (Float,Double)


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

หลาย bits รวมกันเป็น bytes (B)
หลาย bytes รวมกันเป็น KB (กิโลไบต์)
หลาย KB รวมกัน เป็น MB (เมกกะไบต์)
หลาย MB รวมกัน เป็น GB (จิกะไบต์)

มี RAM เป็น GB ก็หมดได้ ถ้าไม่สอยไม่ประหยัด ประในเครื่องมีโปรแกรมเป็นร้อย

สั้นๆ ให้เห็นภาพครับผม

   Jack Cable      28 มิ.ย. 56   เวลา 18:07:00    IP = 203.154.68.4
 


  คำตอบที่ 4  
 
เพิ่มเติมนะครับ ที่เรากำหนด Data Type ก็เพื่อจอง Memory ให้เหมาะสมกับงานที่ใช้หน่ะครับ เพราะมันจะเกี่ยวกับความสามารถในการประมวลผล ช้า เร็ว เต็ม แฮงค์ เหมือนเวลาเราคิดอะไรก็ Scope ความคิดให้เหมาะสมกับความคิดแต่ละเรื่อง จะได้คิดได้เร็ว ๆ

ส่วนพวกที่เป็น Unsigned ทั้งหลายนั้นจะช่วยให้เราประหยัดในการนับและการเก็บ เพราะเครื่องหมายลบ (-) ก็ถือเป็นตัวอักษรหนึ่งที่ต้องเก็บครับ และเวลานับโปรแกรมจะนับโดยเริ่มจาก 0 ไม่ใช่นับจากค่าติดลบ (ลองนึกถึงเส้นตัวเลขที่เลขศูนย์อยู่ตรงกลาง ฝั่งบวกอยู่ทางขวา ฝั่งลบอยู่ทางซ้าย นะครับ) ทำให้คิดได้เร็วขึ้น เพราะไม่สนใจฝั่งติดลบ (ในกรณีที่เราเลือกใช้ Data Type นี้ เพราะความเป็นจริงเรารู้อยู่แล้วว่ามันไม่มีทางติดลบสำหรับค่านี้)

รอท่านอื่นมาตอบบ้าง เพราะอธิบายจริง ๆ คงยาว :)

ผมไปเจอ Link บางอันน่าสนใจ อาจพอช่วยอะไรได้บ้าง

http://www.ppk.ac.th/programc/type2.htm

อันล่างนี้เป็น Power Point ลองอ่านตั้งแต่หน้า 15 นะครับ
https://www.google.co.th/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&cad=rja&ved=0CEoQFjAE&url=http%3A%2F%2Fwww.ru.ac.th%2Fouen%2Fdata%2FCT105%2FLecturePowerPoint%2F03.n.PPT&ei=5GnNUdKVO4TtrAeQmoDIAg&usg=AFQjCNEeavwSt6wgTiZLH1CEue3L3-dAyA&sig2=A86-RQXMBClTyWjpanVxLw&bvm=bv.48572450,d.bmk

สู้ ๆ ครับ :)

   kitarok      28 มิ.ย. 56   เวลา 18:11:00    IP = 124.122.200.56
 


  คำตอบที่ 5  
 
โอ้ววว กีตาร์ไทยนี่สวดยอดเลย...
ขอบคุณทุกคนมากๆ ครับ พอจะเข้าใจบ้างแล้ว

   The_guitar      28 มิ.ย. 56   เวลา 19:11:00    IP = 210.118.108.254
 


  คำตอบที่ 6  
 
ตัวแปร กำหนดไว้ เพื่อ จองพื้นที่ในหน่วย ความจำ
ที่เรียกว่า stack ในหน่วยความจำจะมี stack และ heap
อันนี้ในภาษา พวก c,pascal,assembly หากภาษาอื่นๆ เช่น
vb.net,c# จะเรียกว่า value type จองหน่วยความจำใน stack
reference type จองหน่วยความจำใน heap
แต่ อ้างตำแหน่งจาก stack

แต่ในรูป เป็นภาษาซี ยังไม่ต้องสนใจ value type,reference type
ในภาษาซี เอง ก็เก็บ function,procedure,struct ต่างๆ ใน heap นั้นแหละ
และ ใช้ stack อ้าง address เค้าเลยต้องปู พื้นฐานจาก ภาษาที่เป็น ลักษณะทำงานจากบนลงล่างอย่าง
c,pascal,assembly เพราะ ว่าเวลาไปต่อยอด java,php,asp.net,c# ต่างๆ จะ
เข้าใจได้ลึกซื้งมากขึ้น

แล้วท้ายสุด compiler จะแปร พวก ตัวแปรต่างๆ ที่เขียนไปใน โปรแกรม ในรูปของ machine code


   mpd  28 มิ.ย. 56   เวลา 20:59:00    IP = 65.126.16.155
 


  คำตอบที่ 7  
 
โอ้ ผ่านมาหลายปีละ ลืมไปแล้วด้วย 5555 ขอบคุณ จขกท.ที่ช่วยรื้อความจำคับ

   Mr.pinn      28 มิ.ย. 56   เวลา 22:32:00    IP = 49.48.150.104
 
 

Bigtone.in.th Online Music Store

Yamaha



ตั้งกระทู้ Login ก่อน Click ที่นี่
ผู้ตอบ :
รูปภาพ:  ( ไม่เกิน 150 K )
ข้อความ :
 

any comments, please e-mail   guitarthai@gmail.com (นายดู๋ดี๋)
© All rights reserved 1999 - 2015. All contents in this web site are the properties of www.guitarthai.com and Saratoon Suttaket