Results 1 to 7 of 7

Thread: การเขียนโปรแกรมขึ้นอยู่อัลกอลิทึ่มในการคิดมากกว่าภาษาของโปรแกรมที่นำมาใช้

  1. #1


    Angry

    การเขียนโปรแกรมขึ้นอยู่อัลกอลิทึ่มในการคิดมากกว่าภาษาของโปรแกรมที่นำมาใช้

    เพื่อเป็นการยืนยันว่าการเขียนโปรแกรมอย่าไปยึดเรื่องภาษาโปรแกรม ดังนั้นมาร่วมกันเขียนโปรแกรมจากตัวอย่าง ๆ เดียวกัน ด้วยหลาย ๆ ภาษาดีกว่าไหมครับ
    เลือกใช้ภาษาโปรแกรมได้ตามถนัดเลยนะครับ

    ผมขอตั้งโจทย์ดังนี้ละกันครับ

    - เขียนโปรแกรมค้นหา *.* ทุก ๆ Folder และ Sub Folder ใน Drive c:\ Windows


    ผมขอเริ่มที่ VB.NET ละกัน

    ทำการ Imports System.IO ไว้บนหัวบรรทัดแรกของโปรแกรมก่อนนะครับ
    ' โปรแกรมหลัก
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    DisplayFiles("c:\Windows")
    End Sub

    ' สร้างโปรแกรมย่อย DisplayFiles ขึ้นมาเพื่อค้นหาไฟล์
    Private Sub DisplayFiles(ByVal DirPath As String)
    Dim FileList As String() = Directory.GetFiles(DirPath)
    Dim DirList As String() = Directory.GetDirectories(DirPath)
    Dim FileName As String
    For Each FileName In FileList
    ListBox1.Items.Add(FileName) 'แสดงผลที่ค้นหาได้บน Control ListBox
    Next
    Dim DirectoryName As String
    For Each DirectoryName In DirList
    DisplayFiles(DirectoryName)
    Next
    End Sub



  2. #2
    Senior Member
    Join Date
    Jul 2004
    Location
    Thailand
    Posts
    211


    MASM

    .586
    .model flat, stdcall
    option casemap:none


    include c:\masm32\include\windows.inc
    include c:\masm32\include\user32.inc
    include c:\masm32\include\kernel32.inc
    include c:\masm32\include\masm32.inc

    includelib c:\masm32\lib\kernel32.lib
    includelib c:\masm32\lib\user32.lib
    includelib c:\masm32\lib\masm32.lib



    .DATA

    MsgBoxCaption db "Find Dir",0
    szWild byte '*', 0
    szCrLf byte 13, 10, 0
    szDir db "c:\",0

    .CODE



    ListDiR proc Root:dword
    local Search:WIN32_FIND_DATA
    local szDirs[2048]:byte
    local Find:dword

    invoke lstrlen, Root
    inc eax
    invoke lstrcpyn, addr szDirs, Root, eax
    invoke lstrcat, addr szDirs, addr szWild

    invoke FindFirstFile, addr szDirs, addr Search
    .if eax == -1
    ret
    .endif
    mov Find, eax

    .repeat
    mov eax,Search.dwFileAttributes
    and eax, FILE_ATTRIBUTE_DIRECTORY

    .if eax == FILE_ATTRIBUTE_DIRECTORY
    invoke szMultiCat, 2,addr szDirs,addr Search.cFileName,addr szCrLf
    .endif

    invoke lstrlen, addr szDirs
    invoke FindNextFile, Find, addr Search
    .until eax == FALSE

    invoke MessageBox, NULL,addr szDirs, addr MsgBoxCaption, 0

    invoke FindClose,Find

    ret
    ListDiR endp


    Start:
    invoke ListDiR,addr szDir
    invoke ExitProcess,0

    ret
    end Start[/b]

  3. #3
    Junior Member
    Join Date
    Sep 2008
    Posts
    16


    ในความคิดของผม ผมก็เห็นตามคุณส่วนหนึ่งน่ะครับ

    แต่ในบางครั้งการเลือกภาษาให้เหมาะกับงาน มันก็เป็นเรื่องที่ไม่ควรมองข้าม

    ถามว่า เราจะใช้ VB ดี หรือเราจะใช้ C++ ดี คงไม่มีใครฟันธงได้ว่าภาษาไหนดีกว่าภาษาไหนไปทั้งหมด

    แต่ถ้าเราเขียนเป็นหลายๆภาษาแล้ว ก็จะทำให้เราเลือกภาษาให้เหมาะกับงานที่เราจะทำได้

    สมมุติมีโปรเจ็คอยู่ หากเราต้องเร่งส่ง เราก็ควรเลือกใช้ VB เพราะคงไม่มีใครปฏิเสธว่า VB นั้นได้งานมากกว่าภาษาอื่นในเวลาที่เท่ากัน

    แต่หากเราต้องการความเร็วในการประมวลผล โดยไม่คำนึงถึงระยะเวลาที่เราจะส่งงานมากนัก ก็คงไม่มีใครปฏิเสธอีกว่า C++ ก็เหนือกว่า VB อยู่พอสมควรในเรื่องความเร็วในการประมวลผล

    จะว่าการเลือกภาษานั้นไม่จำเป็นก็ดูไม่ค่อยถูกนัก เพราะแต่ละภาษาก็ดีกันคนละแบบ ถ้าเราเขียนเป็นหลายภาษาและเลือกภาษาให้เหมาะกับงานที่เราจะทำ ก็เป็นประโยชน์อยู่ไม่น้อยเลยน่ะครับ

  4. #4


    ในฐานะ เจ้าของกระทู้ เห็นด้วยกับการแสดงความเห็นของคุณ NineEx ครับ


  5. #5
    Senior Member retool2's Avatar
    Join Date
    Aug 2008
    Location
    Under Relocation
    Posts
    178


    ผมคิดแบบนี้ครับ
    1. ความเร็วของโปรแกรมที่จะทำงานนั้นขึ้นอยู่กับ algorithm และภาษาครับ
    เพราะว่า algorithm ที่ดีย่อมหมายถึง code ที่สั้นน ทำให้ compiler ประมวลผลได้เร็วกว่า
    ยกตัวอย่างเช่น algorithm ในการหาค่า prime หรือจำนวนเฉพาะ เพิ่มเติมดูได้ที่
    http://en.wikipedia.org/wiki/Prime_number ในส่วน Primality tests
    ส่วนภาษาที่ใช้ยิ่งใกล้เคียง machine language มากเท่าไรยิ่งเร็วเท่านั้น
    http://shootout.alioth.debian.org/gp4/benc...ll&lang=all
    2. ความเร็วของการเขียนโปรแกรมจนเสร็จ(ความเร็วในการเขียนเท่ากันทุกภาษา) ขึ้นกับ ภาษาของโปรแกรม
    เช่นตัวอย่างจากภาษาที่ใช้ ไม่กี่บรรทัด เขียนเสร็จได้ไว
    3. ส่วน editor นั้นก็ช่วยเพิ่มความเร็วในการเขียนอีกต่อหนึ่ง เพราะว่ามีตัวช่วยต่างๆ
    4. ภาษากันการใช้งานมีส่วนอย่างมาก เช่น web programming, game, window gui ก็ใช้ภาษาต่างกันไป

    ขอแจมด้วยภาษาพื้นฐานเลยแล้วกันครับ ถ้าเกิดว่าใช้บน windows หรือ dos
    DOS batch ครับ
    Code:
    dir /s c:\windows > list.txt

  6. #6
    Junior Member
    Join Date
    Sep 2008
    Posts
    3


    เห็นด้วยกับความคิดของทุกท่านเลยครับ
    โดยส่วนตัวผมแล้ว จาก Exp เท่าที่มี ทำให้เห็นว่า สุดท้ายแล้วขึ้นอยู่กับงานครับ มีอยู่ช่วงเคยพยายามศึกษาหาความรู้เิพิ่มเกี่ยวกับ Algorithm
    แต่พอได้รับงานมาทำ ปรากฏว่าน้อยมากเลยที่จะได้ใช้ Algorithm ที่ไปศึกษามา ส่วนใหญ่ก็จะเป็นแค่คำสั่งทั่วไป หรือไม่ก็มี tool ให้ใช้เลย
    (หรือเป็นเพราะผม ประยุกต์ใช้ไม่เป็นก็ไม่รู้ <_< )

    อ้างอิงเพิ่มเติมจากคุณ retool2 นะครับ กรณีถ้าอยากรู้ว่าใช้เวลาไปเท่าไรครับ
    ** ส่วนตัวเห็นด้วยกับคุณ retool2 มากมาย ทั้งนี้ทั้งนั้น ขึ้นอยู่กับ Exp ของคนที่ได้รับงานมาทำด้วย อย่างกรณีโจทย์ตามตัวอย่าง ถ้าเป็นคนรุ่นใหม่ๆหน่อยไม่ค่อยรู้จัก command line พวกนี้ ก็คงคิดไม่ออก คงไปหาวิธีเขียนโปรแกรมเอา ทั้งที่มี tool หรือภาษาง่ายๆ อย่างนี้ไว้ให้ใช้อยุ่แล้ว

    @echo off
    echo Start process := %DATE%:%TIME% > C:\list.txt
    dir/s c:\windows >> C:\list.txt
    echo Process end := %DATE%:%TIME% >> C:\list.txt
    [/b]
    ~lo.ol กรรมกรห้องแอร์ ยามเฝ้่าตู้ GB (General เบ๊) ผมทั้งนั้น~
    [url="http://www.aloneza.com/image/showpic.php?picid=307"][img]http://www.aloneza.com/image/upload/307.jpg[/img][/url]

  7. #7
    Junior Member
    Join Date
    Jul 2008
    Posts
    5


    ในความคิดของผม ผมก็เห็นตามคุณส่วนหนึ่งน่ะครับ

    แต่ในบางครั้งการเลือกภาษาให้เหมาะกับงาน มันก็เป็นเรื่องที่ไม่ควรมองข้าม

    ถามว่า เราจะใช้ VB ดี หรือเราจะใช้ C++ ดี คงไม่มีใครฟันธงได้ว่าภาษาไหนดีกว่าภาษาไหนไปทั้งหมด

    แต่ถ้าเราเขียนเป็นหลายๆภาษาแล้ว ก็จะทำให้เราเลือกภาษาให้เหมาะกับงานที่เราจะทำได้

    สมมุติมีโปรเจ็คอยู่ หากเราต้องเร่งส่ง เราก็ควรเลือกใช้ VB เพราะคงไม่มีใครปฏิเสธว่า VB นั้นได้งานมากกว่าภาษาอื่นในเวลาที่เท่ากัน

    แต่หากเราต้องการความเร็วในการประมวลผล โดยไม่คำนึงถึงระยะเวลาที่เราจะส่งงานมากนัก ก็คงไม่มีใครปฏิเสธอีกว่า C++ ก็เหนือกว่า VB อยู่พอสมควรในเรื่องความเร็วในการประมวลผล

    จะว่าการเลือกภาษานั้นไม่จำเป็นก็ดูไม่ค่อยถูกนัก เพราะแต่ละภาษาก็ดีกันคนละแบบ ถ้าเราเขียนเป็นหลายภาษาและเลือกภาษาให้เหมาะกับงานที่เราจะทำ ก็เป็นประโยชน์อยู่ไม่น้อยเลยน่ะครับ
    [/b]
    เห็นด้วยกับข้อความนี้ครับ แต่อีกอย่างที่อยากจะเพิ่มติมคือ ผมเรียนวิทยาการคอมพิวเตอร์อะ
    ก่อนเรียนเขียนโปรแกรมได้บ้าง แต่ก็ไม่สามารถที่จะดัดแปลงได้ 100 %
    แล้วเมื่อเข้าเรียน ได้เรียนรุ้ถึงหลักการทำงานของคอมพิวเตอร์ ทำให้รุ้ว่าต้องสั่งทุกอย่าง
    ทำให้เมื่อเขียนโปรแกรมเราคิดมากขึ้นและรอบคอมขึ้น
    และเมื่อเรียนอัลกอลิทึ่มทำให้เริ่มคิดออกว่าจะทำอะไรก่อนอะไรหลัง
    แล้วทีนี้เวลาเห็นโปรแกรมแบบไหนก็นึกออกว่าน่าจะทำแบบไหนโดยยังไม่ได้คิดถึงว่าจะใช้ภาษาอะไร
    เมื่อได้ของเขตแล้วถึงจะคิดว่าใช้ภาษาอะไรดีที่จะได้งานที่มีทั้งคุณภาพและความเร็ว

Members who have read this thread : 0

Actions : (View-Readers)

There are no names to display.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •