เว็บบล๊อกผลงาน (Web Blog) นักศึกษาระดับปริญญาโท คณะวิทยาศาสตร์และเทคโนโลยี สาขาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยธรรมศาสตร์

วันพฤหัสบดีที่ 18 มีนาคม พ.ศ. 2553

การใช้งาน editor

เครื่องมือที่เราใช้พัฒนาโปรแกรมที่สำคัญตัวหนึ่งก็คือ Editor นะครับ วันนี้ขอทบทวนการใช้ editor บน Linux แบบ Text mode ให้รู้จักกัน


Editor: nano editor

ตัวนี้ใช้งานง่ายหน่อย (แต่ก่อนชื่อโปรแกรม pico) มีเมนูอยู่ด้านล่าง วิธีใช้ก็คือ พิมพ์ nano แล้วตามด้วยชื่อไฟล์

  • mkdir mywork
  • cd mywork
  • nano hello.c

คำอธิบาย:
  • ctrl+o (บันทึกข้อมูล)
  • ctrl+x (ออกจากโปรแกรม)
ศึกษาเพิ่มเติมจาก Internet นะครับ


vi editor

ตัวนี้โดยส่วนตัวชอบใช้นะครับ มีประสิทธิภาพ สีสันสวยงาม มีการทำงานอยู่ 2 mode ด้วยกัน

  1. command mode - สำหรับรอรับคำสั่ง (กดปุ่ม esc เพื่อเข้า mode นี้)
  2. insert mode - สำหรับพิมพ์ (กดปุ่ม i เพื่อเข้า mode นี้ สังเกตที่ด้านล่างซ้ายจะมีคำว่า insert)


เริ่มต้นใช้งานด้วยการพิมพ์คำสั่ง vi ตามด้วยชื่อไฟล์ที่ต้องการสร้าง

  • vi hello.c
  • จากนั้นจะเข้าสู่ command mode (ไม่มีคำว่า insert ที่ด้านล่างซ้าย)
  • เริ่มเขียนโปรแกรมด้วยการเข้าสู่ insert mode ด้วยการกดปุ่ม i จากนั้นก็เขียนโปรแกรมไปตามปกติ
  • ทำการบันทึกข้อมูล เข้าสู่ command mode (กด esc คำว่า insert จะหายไป) และกด :wq (colon w q)
คำสั่งอื่น ๆ ของ vi สามารถหาอ่านเพิ่มเติมได้จาก Internet นะครับ



compiler: c compiler

  • ใช้คำสั่ง gcc ตัวอย่างทดลอง compile โปรแกรม hello.c
  • gcc hello.c (compile และ link ได้ผลลัพธ์ exe ไฟล์ a.out)

  • ls -al
  • ./a.out (รัน)
  • rm ./a.out (ลบ)
  • gcc -o hello hello.c (compile และ link ได้ผลลัพธ์ exe ไฟล์ hello)
  • ls -al
  • ./hello
  • rm ./hello
  • gcc -c hello.c (compile อย่างเดียว ผลลัพธ์ได้ obj ไฟล์ hello.o) รันไม่ได้นะจ๊ะ

  • ls -al
  • rm ./hello.o

c++ compiler

ทดลองเขียนโปรแกรม hello world ด้วยภาษา c++ (hello.cpp)

#include
using namespace std;
int main(int argc, char **argv) {
cout << "Hello, world." << endl;
return 0;
}


ทำการ compile ด้วยคำสั่ง g++ เหมือนกันกับ gcc


  • g++ hello.cpp
  • ./a.out
  • g++ -o hello hello.cpp
  • ./hello
  • g++ -c hello.cpp

กรณีศึกษา

  • มีเพื่อนสาวสามคน (jutamas, kamala, yardnapa) ทำงานด้วยกัน
  • ทั้งสามคนต้องเขียนโปรแกรมคำนวณ (5 + 2) - 4
  • Jutamas ได้รับมอบหมายให้เขียนฟังก์ชัน บวก
  • Kamala ได้รับมอบหมายให้เขียนฟังก์ชัน ลบ
  • Yardnapa ได้รับมอบหมายให้คำนวณค่าผลลัพธ์โดยใช้ฟังก์ชันจากเพื่อนสาวทั้งสอง
  • ทั้งสามสาวมีข้อตกลงในเรื่อง รูปแบบฟังก์ชัน (input, return value) และกำหนดไว้ในไฟล์ชื่อ mywork.h ซึ่งมีเนื้อหาดังนี้

// mywork.h
int myadd(int, int);
int mysub(int, int);
  • จากนั้นแต่ละคนแยกย้ายไปเขียนโปรแกรมกัน
  • Jutamas เขียนโปรแกรมได้ดังนี้

// myadd.c
int myadd(int a, int b) {
return (a+b);
}

  • Jutamas ทำการ compile โปรแกรมของตัวเอง และส่ง obj ไฟล์ให้ Yardnapa
gcc -c myadd.c


  • Kamala เขียนโปรแกรมได้ดังนี้

// mysub.c
int mysub(int a, int b) {
return (a-b);
}


  • Kamala ทำการ compile โปรแกรมของตัวเอง และส่ง obj ไฟล์ให้ Yardnapa

gcc -c mysub.c


  • Yardnapa เขียนโปรแกรมได้ดังนี้

// mywork.c
#include
#include "mywork.h"

int main(void) {
int result;
result = myadd(5, 2);
result = mysub(result, 4);
printf("%d\n", result);
return 0;
}


  • Yardnapa ทำการ compile โปรแกรมที่ตัวเองเขียน (mywork.c) และ link กับ obj ไฟล์ที่เพื่อนสาวส่งให้ (myadd.o mysub.o)

gcc -o mywork mywork.c myadd.o mysub.o

  • Yardnapa ทดลองรันโปรแกรมที่เขียนขึ้นว่าทำงานถูกต้องหรือไม่ โดยมี jutamas และ kamala ลุ้นอยู่ข้างหลัง

./mywork
3

  • ทั้งสามสาว ถอนหายใจพร้อมกัน .... เฮ้อ .... จบแล้วจ้า
credit: cs.bong.nine

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

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

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

คลังบทความของบล็อก

favourites