วันพฤหัสบดีที่ 7 พฤษภาคม พ.ศ. 2558

ประวัติภาษาซี


            ภาษาซีถูกออกแบบพัฒนาขึ้นโดย Dennis Ritchie เมื่อ ค.ศ. 1972 ณ ห้องปฏิบัตการเบลล์ โดยออกแบบบนระบบปฏิบัติการ UNIX บนเครื่องเมนแฟรมคอมพิวเตอร์ DEC PDP-11

            ภาษาซีถูกพัฒนามาจากภาษา B ที่พัฒนาขึ้นโดย Ken Thompson  ตั้งอยู่บนพื้นฐานของภาษา BCPL ที่พัฒนามาจาก Martin Richards

Printf คือ การแสดงผลข้อมูลสู่หน้าจอ
Scanf คือ การกรอกข้อมูลลงในช่องว่า (ทำหน้าที่รับข้อมูลจากคีย์บอร์ด)

ตัวอย่าง1. การเขียนโปรแกรมรับเลขจำนวนเต็ม 2 จำนวน และหาผลบวกของเลขทั้ง 2 จำนวน ดังรูป


  

  
              -  เมื่อเขียนโปรแกรมเสร็จแล้วสั่งให้โปรแกรม run โดยกด F11 หรือ คลิกที่ compile & run
      -   โปรแกรมจะขึ้นคำถามมาให้ ใส่ตัวเลขที่ต้องการหาค่าตัวแรกลงไปแล้ว กด enter
      -   จากนั้นโปรแกรมจะขึ้นคำถามถามตัวเลขค่าที่สองมาให้ใส่ค่าตัวเลขและกด enter
      -   โปรแกรมจะขึ้นค่าตัวเลขที่ได้ทำการบวกกันแล้วขึ้นมาให้



    ตัวอย่างที่การเขียนโปรแกรมแปลง ค.. เป็น พ.. ดังรูป



การเขียนโปรแกรมคำนวณหาพื้นที่สี่เหลี่ยมคางหมู



เมื่อเขียนโปรแกรมเสร็จแล้วสั่งให้โปรแกรม run โดยกด F11 หรือ คลิกที่ compile & run ดังรูป



การเขียนโปรแกรมรับค่าเลขและหาค่าเฉลี่ย 4 จำนวน



สั่งให้โปรแกรม run โดยกด F11 หรือ คลิกที่ compile & run


ใส่ค่าเลขที่ต้องการหาค่าเฉลี่ยให้ครบ 4 ค่า แล้วกด Enter ก็จะได้ค่าเฉลี่ยที่เราต้องการหา

การเขียนโปรแกรมเปลี่ยนภาพหน้าจอ


สั่งให้โปรแกรม run โดยกด F11 หรือ คลิกที่ compile & run



เมื่อใส่ลิ้งค์ที่อยู่ของรูปภาพที่เราต้องการนำมาเป็นภาพหน้าจอแล้ว กดปุ่ม Enter

การใช้ char
                             เป็นชนิดข้อมูลแบบตัวอักษรจะเก็บข้อมูลได้ 1 ตัวอักษร โดยจะเก็บข้อมูลในลักษณะ ASCII



      -  ตัวแปร A เก็บข้อมูลตัวอักษร a ซึ่ง a มีค่า เท่ากับ 97
      -   นำตัวแปร A มาลบกับ 83(เลขที่เรากำหนดเองจะเป็นเลขอะไรก็ได้)
      -   เมื่อเขียนโปรแกรมเสร็จแล้วสั่งให้โปรแกรม run โดยกด F11 หรือ คลิกที่ compile & run จะออกมาดังรูป



   -   โปรแกรมจะ runตัวอักษรที่ตรงกับเลขที่เราลบ
   -    ดังตัวอย่าง a =97 (97-83 = 14) ซึ่ง 14 ตรงกับเลขค่าของตัวโน๊ตโปรแกรมจึงrunตัวโน๊ตขึ้นมา

ใช้ char ในการเก็บตัวอักษร





    การนับตัวอักษรว่ามีกี่ตัว



พิมพ์ชื่อตัวเองหรือคำอะไรก็ได้ลงไปแล้วกด enter โปรแกรมก็จะขึ้นจำนวนตัวอักษรทั้งหมดมาให้





if
เราจะเรียนรู้กันคือ if แปลว่า ถ้า ซึ่งมีหน้าที่ตามชื่อของมันเลย นั่นคือ เราจะใช้ if เพื่อตรวจสอบผลของการเปรียบเทียบว่าเป็น จริง หรือ เท็จ
          รูปแบบ if (การเปรียบเทียบ)

ตัวอย่าง เช่น การถามว่ามีพี่ชาย หรือน้องชาย หรือไม่ ถ้ามีให้ถามอายุของพี่ชาย หรือน้องชาย ด้วยดังรูป


1) เขียนข้อมูลในการสอบถาม

    2) เสร็จแล้วจะมีกล่องข้อมูลขึ้นมาให้กรอกข้อมูล ตามที่เราได้ตั้งคำถามไว้ (ถ้ามีพี่ชาย จะมีข้อมูลขึ้นมาถามอีก แต่ถ้าไม่มีพี่ชายคำสั่งก็จะจบลง)

    

รูปนี้คำตอบคือ ไม่มีพี่ชาย


รูปนี้คำตอบคือมีพี่ชาย แล้วก็มีคำถามอีกข้อคือ อายุเท่าไหร่


รูปนี้ตอบคำถามเสร็จ ก็จะสิ้นสุดการสอบถาม ตามที่เราได้ตั้งคำถามไว้

If….else
        If เป็นคำสั่งที่ใช้ในการตรวจจับผลเปรียบเทียบที่เป็นจริง แต่ สำหรับผลการเปรียบที่เป็นเท็จ เราจะใช้ else ในการตรวจสอบ หรือถ้าแบบเข้าใจได้คือ else จะทำตรงกันข้ามกับ if
ตัวอย่าง เช่น ถ้าต้องการให้ผู้ใช้โปรแกรมของเรากรอก อายุ โดยอายุที่กรอกต้องมากกว่าหรือเท่ากัน  50 ปี ถ้าไม่ถึงให้แสดงว่ายังไม่แก่
1) เขียนข้อมูลที่จะถาม ว่าอายุเท่าไหร่



2) เขียนถูกต้องจะมีกล่องให้เรากรอกข้อมูล ถามเกี่ยวกับอายุ


3) ถ้าอายุยังไม่ถึง 50 จะขึ้นคำว่า You are young พร้อมกับคำว่า Good bye และสิ้นสุดลง


4) แต่ถ้าอายุเกิน  50 จะขึ้นคำว่า You are old พร้อมกับคำว่า Good bye และสิ้นสุดลง



คำสั่ง if และ else if
จากตัวอย่างที่ผ่านมา เราได้ศึกษาถึงการตรวจสอบเงื่อนไขโดยใช้ if และ else  ซึ่งจะใช้ในกรณีที่มีแค่เงื่อนไขเดียว เช่น
If (a == 0)
          printf(“OK”);
Else
          printf(“Not Ok”)
ถ้าเราต้องการเปรียบเทียบตัวแปร a กับค่าอื่นๆ เช่น a == 20,
a == 30, a == 40 สามารถทำได้โดยใส่ if ไปเรื่อยๆ เพื่อเปรียบเทียบค่าที่ต้องการ คือถ้าเงื่อนไขแรกเป็นจริงก็ทำคำสั่งในส่วนของเงื่อนไขแรกเลย แต่ถ้าเป็นเท็จก็จะไปตรวจสอบเงื่อนไขที่สอง แต่ถ้าเป็นเท็จก็ตรวจเงื่อนไขที่สามต่อไป และเป็นอย่างนี้ไปเรื่อยๆ ซึ่งมีลักษณะการเขียนแบบนี้
If (a == 20)
          printf(“ a is 20”);
else if (a == 30)
          printf(“a is 30”);
else if (a == 40)
          pritnf(“a is 40”);
else
          printf(“a is over”);

ตัวอย่าง เช่น สคริปโปรแกรมเปรียบเทียบคะแนนให้ออกมาเป็นเกรด ดังรูป
1) เขียนข้อมูลตามช่วงคะแนน ให้ออกมาเป็นเกรดแต่ละเกรดดังรูปนี้


2) เขียนเสร็จ โปรแกรมจะมีกล่องให้กรอกข้อมูลลงไป ดังรูป


3) เราใส่คะแนนไปที่ 91 ซึ่งตัดเกรดที่ A ดังรูป



คำสั่ง switch…case
การใช้คำสั่ง switch case จะคล้ายกับคำสั่ง if else if แต่จะง่ายกว่าและดูเข้าใจได้ง่ายกว่า คำสั่ง switch ใช้ได้ดีกับการตรวจของค่าตัวแปรนั้นดังเช่น
          switch (ค่าตัวแปร)
{        
          case ค่าที่ 1 : สิ่งที่ต้องการให้ทำ
          case ค่าที่ 2 : สิ่งที่ต้องการให้ทำ
          case ค่าที่ 3 : สิ่งที่ต้องการให้ทำ
         
          default : สิ่งที่ต้องการให้ทำ ถ้าอยู่นอกเหนือจากข้างบน
}

ตัวอย่างเช่น สอบถามเรื่องเพศ ดังรูป

1) เขียนข้อมูลสอบถามเรื่องเพศ



2) เสร็จแล้วจะมีกล่องข้อมูลมาสอบถามว่าเรา male or female ดังรูป


3) กรอกข้อมูลลงไป ตามที่ข้อมูลสอบถามมา (กรอกเสร็จก็จะออกมาดังรูป)




MATLAB


             MATLAB มาจากคำว่า  Matrix Laboratory เป็นโปรแกรมสำหรับช่วยงานคำนวณทางคณิตศาสตร์มีชื่อเสียงมากในปัจจุบัน และเป็นที่นิยมสูงสุดทางการศึกษาและอุตสาหกรรม การทำงานของ MATLAB ทำงานลักษณะการตอบสนองกับผู้ใช้ Interactive สำหรับคำนวณเชิงตัวเลข และการแสดงผลข้อมูล (data visualization) รวมทั้งมีความสามารถในการจัดรูปคำสั่งในลักษณะการเขียนโปรแกรมเพื่อใช้งานต่างๆ ทั้งทางวิทยาศาสตร์ และวิศวกรรม 
การใช้งานเบื้องต้น MATLAB
            ทดลองสร้าง row vector ที่มีสมาชิกประกอบด้วย 1,2,3,4,5 และกำหนดค่าให้ตัวแปร x
>>x = [1 2 3 4 5]
X =
          1 2 3 4 5

ใช้เครื่องหมาย = สำหรับกำหนดค่าจากทางด้านขวามือไปที่ตัวแปรทางซ้ายมือเป็นชนิดเวกเตอร์ โดยใช้เครื่องหมาย bracket [] ซึ่งภายใน bracket จะระบุสมาชิก 5 จำนวน แบ่งแยกออกจากกันด้วยเครื่องหมาย ช่องว่าง Space หรืออาจใช้ comma , เช่นเดียวกับทางคณิตศาสตร์ทั่วไป 

            เวกเตอร์อีกลักษณะหนึ่งคือ Column vector จะสร้างคล้ายๆกันแต่เครื่องหมายที่จะแยกสมาชิกออกจากกันจะเปลี่ยนไปใช้เครื่องหมาย semicolon ; แทน หรือทำการสร้าง row vector ก่อนแล้วทำการ transpose ด้วยเครื่องหมาย เช่น
>> y = [6;7;8;9;10]
Y =
          6
          7
          8
          9
          10
หรือ y = [ 6 7 8 9 10]
  >> y’


 ดังรูปต่อไปนี้


การทำแนวตั้งและแนวนอน

การเลือกตำแหน่งตัวเลข


            แสดงการสร้างเวกเตอร์ และกำหนดตัวแปร โดยส่วนใหญ่ การสร้างเวกเตอร์และเมตริกซ์ จะประกอบด้วยสมาชิกที่มีค่าต่อเนื่องกันไป แทนที่จะต้องป้อนข้อมูลของสมาชิกทุกตัว MATLAB มีวิธีลัดในการทำในสะดวกขึ้นโดยใช้คำสั่ง colon : ตัวอย่างการสร้าง row vector u ที่ประกอบด้วยสมาชิก 0,1,2,3,4,5,6,7,8
>> u = [0 : 8]
 U =

          0 1 2 3 4 5 6 7 8 

ดังรูปต่อไปนี้


การเว้นจำนวนของตัวเลข


            สำหรับการสร้างเมตริกซ์ใช้หลักการสร้างคล้ายเวกเตอร์ ตัวอย่าง การสร้างเมตริกซ์ A ขนาด 3x3
 >> A = [123;345;678]
A =
           1       2        3
           3       4        5
           6       7        8
ถ้าต้องการอ้างอิงที่ตำแหน่งต่างๆ ของเมตริกซ์ต้องอ้างอิงตาม row และ column ตัวอย่างอ้างอิงค่าสมาชิกของเมตริกซ์ A ที่อยู่แถวที่ 2 คอลัมน์ที่ 3 มีค่าคือ 5
>> A(2,3)
ans =

          5

ดังรูปต่อไปนี้

การทำเมตริกซ์



การทำกราฟ

การทำเครื่องคิดเลข

การใส่สี

การเปลี่ยนpanal เป็นชื่อเรา

การสร้างปุ่มเครื่องคิดเลข


ใส่ปุ่มเครื่องคิดเลขเสร็จ



การทำเครื่องหมาย+/-
% --- Executes on button press in change.
functionchange_Callback(hObject, eventdata, handles)
% hObject    handle to change (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
str=get(handles.input,'String');
s=str2double(str);
e=-(s);
t=num2str(e);
set(handles.input,'String',t);


การทำเครื่องหมาย%
% --- Executes on button press in per.
functionper_Callback(hObject, eventdata, handles)
% hObject    handle to per (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
str=get(handles.input,'String');
s=str2double(str);
per=s/100;
t=num2str(per);
set(handles.result,'String',t);

การทำเครื่องหมาย 1/x

% --- Executes on button press in inverse.
functioninverse_Callback(hObject, eventdata, handles)
% hObject    handle to inverse (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
str=get(handles.input,'String');
s=str2double(str);
div=(1/s);
t=num2str(div);
set(handles.result,'String',t);


การเครื่องหมายตัวเลข
% --- Executes on button press in one.
functionone_Callback(hObject, eventdata, handles)
% hObject    handle to one (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
str=get(handles.input,'String');
str=strcat(str,'1');
set(handles.input,'String',str);


การทำเครื่องหมายเท่ากับ
% --- Executes on button press in equal.
functionequal_Callback(hObject, eventdata, handles)
% hObject    handle to equal (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
str=get(handles.input,'String');
str=eval(str);
set(handles.result,'String',str);



การใส่เครื่องหมายเคลียร์
% --- Executes on button press in clear.
functionclear_Callback(hObject, eventdata, handles)
% hObject    handle to clear (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
set(handles.input,'String','');
set(handles.result,'String','');


Uncalibrated Stereo Image Rectification
Step by step
            Step 1 :  เขียนให้อ่านไฟล์คู่ภาพ
            Step 2  :  เลือกจุดที่น่าสนใจในคู่ภาพ
            Step 3  :  หาจุดสมมติที่ตรงกัน
            Step 4  :  ลบค่าผิดปกติโดยใช้ Epipolar Constraint
            Step 5 :  ปรับแก้คู่ภาพ

ตัวอย่างดังรูป

เรียกภาพ


เลือกfloder

จะขึ้นแถบด้านซ้ายขึ้นมาเป็นไฟล์ที่อยู่ในfloderที่เราเลือก



ถ้าไฟล์ภาพใหญ่ตัวเลขก็จะวิ่งนานขึ้น


เป็นคำสั่งที่show ลายละเอียดของภาพ


คำสั่งเพื่อเปิดไฟล์ภาพ


คำสั่งปรับภาพให้เป็นสีโทนเทา

เปิดรูปภาพ

คำสั่งเรียกดูค่าการรังสีเชิงคลื่น

figure,imhist(ชื่อรูปที่เราตั้งไว้)



คำสั่ง adjust เป็นคำสั่งปรับแก้ภาพให้ชัดเจนมากยิ่งขึ้น แต่สามารถปรับได้กับภาพสีเทาหรือขาวดำ

ทำภาพสีเป็นภาพขาวดำ
   ใส่คำสั่ง black_white = im2bw(picture) เพื่อทำเป็นภาพขาวดำ
   จากนั้นพิมพ์คำสั่ง figure,imshow(black_white) เพื่อเปิดรูปภาพ



ใส่ (;)เพื่อเบรค

จากนั้นพิมพ์ image(x) เพื่อเปิด




การทำภาพสามมิติ


ขึ้นเปนภาพสามมิติ


มีทั้งหมด 9 รูป
รูปที่สมบูรณ์สุด


การทำเครื่องอัดเสียง

การสร้างภาพถ่ายดาวเทียมโดยใช้โปรแกรมMatlab  ดังรูปต่อไปนี้


การทำภาพถ่ายดาวเทียว

การทำภาพถ่ายดาวเทียว 3 สี

การเปลี่ยนสีของภาพ

          ขอขอบคุณที่เข้ามาเยี่ยมชมบล๊อคนี้นะค่ะ หากผิดพลาดประการใดก็ขออภัยไว้นะที่นี้ด้วยนะค่ะ







ไม่มีความคิดเห็น:

แสดงความคิดเห็น