1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây

Các ban sinh viên yêu thích lập trình Pascal, C++ ... hãy vào đây nào

Chủ đề trong 'ĐH Dân lập Hải Phòng - DHP Club' bởi GUITAR_PLAYER, 08/05/2002.

  1. 1 người đang xem box này (Thành viên: 0, Khách: 1)
  1. GUITAR_PLAYER

    GUITAR_PLAYER Thành viên mới

    Tham gia ngày:
    13/04/2002
    Bài viết:
    47
    Đã được thích:
    0
    Chào bạn Hà Anh tú
    Chúng ta đều biết việc sử lí các kí tự trong chể độ text hiên nay đều dụa trên bảng mã ASCILL mà trong bảng mã này không có sẵn các kí hiêu hoá học, toán học, vật lý
    Để có thể tạo ra các kí hiêu này trong chế độ text thì ta có thể xử dụng phần mã mở rông của bảng mã tuy nhiên tôi lại không biêt cách để can thiệp vào các mã mở rông này
    Một ví dụ điển hình là bộ phông vietres cho phép đánh tiếng việt trong turbo pascal, turbo C...(ở chế độ Dos)
    Nêu ai biêt cách sử lí các mã mở rộng của bảng mã thì hãy chỉ bảo cho anh em học hỏi
    thank
    trungguitar2000@yahoo.com
    CT 402
    trantrung
  2. haanhtu

    haanhtu Thành viên quen thuộc

    Tham gia ngày:
    21/03/2002
    Bài viết:
    521
    Đã được thích:
    0
    Nếu dùng bảng mã ASCII ta có thể tra bảng trong sách lập trình hoặc viết một đoạn để hiển thị tất cả các mã của ASCII :
    var i : byte;
    begin
    for i:=1 to 255 do
    begin
    writeln(' number ',i, ' :',chr(i));
    delay(10);
    if keypressed then readln; { dung de xem}
    end;
    end.


    nếu như phải xây dựng lại một bộ font dùng cho hoá học hoặc toán học theo tôi thì cũng hơi chuối !!!!
    Bạn nào đã sử dụng thư viện, hoặc component (do người khác viết) thì có thể dễ dàng thực hiện công việc này. Tuy nhiên tôi chưa tìm thấy thư viện nào viết riêng để giải quyết cho bài toán này cả.
    Sunlight
  3. GUITAR_PLAYER

    GUITAR_PLAYER Thành viên mới

    Tham gia ngày:
    13/04/2002
    Bài viết:
    47
    Đã được thích:
    0
    Chào bạn Hà Anh Tú
    Việc sử dụng bảng mã ascill chuẩn thì ai cũng biết rồi nhưng nó không có các kí tự mà bạn cần, mà nếu muốn tạo một thử viện chương trình thì quả thật là rât khó khăn bởi vì chỉ để tạo phông chữ tiếng việt trong chể độ đồ hoạ cũng đã khà là kì công rồi
    Trong khi đó các kí hiệu hoá học , toán học lại rất da dạng
    Tôi có một hướng giải quyết như thế này có thể tạm khắc phục dược các điều trên:(chế độ đồ hoạ)
    Bạn viết một thủ tục dạng nhử sau:
    Procedure Vietcongthuc(x,y:integer;st1,st2,st3:String);
    Var x1,y1:integer;
    Begin
    outtextxy(x,y,st1);
    x1:=x+độ rộng của xâu st1
    y1:=y-chiều cao của một kí tụ của xâu st1;{ nếu muốn viêt sô mũ Vd để viết x mũ 2}
    { y1:=y+chiều cao của một kí tụ của xâu st1;{Nếu muốn viết chỉ số Vd viết chỉ số cảu công thức hoá học}
    { Các hàm để lấy độ rộng và chiều cao của một kí tự có trong thử viên (graph.tpu)chuẩn của turbo pascal nhưng tôi không nhớ rõ bạn có thể tra cứu bằng turbo help}
    outtextxy(x1,y1,St2);
    Outtextxy(x+độ rông xâu st1,y,st3);
    End;
    Như vậy cần hai thủ tục khác nhau để viêt sô mũ va viêt chỉ số
    sau đó ban có thể viêt công thức hoá học nhử sau
    Vd để viêt H2O ta gọi
    Vietchiso(x,y, 'H' , '2' , 'O');

    để viết Y.X mũ 2
    Vietsomu(x,y, 'Y.X' , '2' ,'' );
    Bạn hãy thủ xem chúc thành công

    trantrung
    Được sửa chữa bởi - GUITAR_PLAYER vào 16/05/2002 10:11
  4. ThuyLe

    ThuyLe Thành viên mới

    Tham gia ngày:
    05/04/2002
    Bài viết:
    21
    Đã được thích:
    0
    Chào các bạn :
    - Trong chế độ TEXT muốn hiển thị các ký tự thì phải tuân theo các ký tự chuẩn ASCII của BIOS. (điều này đúng). Nhưng bạn có thể can thiệp vào bảng mã ASCII để vẽ lại các ký tự do mình thiết kế vào.
    - Ví dụ : Trong bảng mã ASCII :
    . Mã 65 là ký tự 'A'.
    . Tôi có thể thay nó bằng ký tự 'â' (chữ 'a' có dấu ' ^' ) do tôi thiết kế lấy.
    . Lúc này khi các bạn viết một dòng chữ ra màn hình ở chế độ TEXT, thì mọi ký tự chữ 'A' sẽ trở thành chữ 'â'
    - Như vậy với bảng Mã ASCII bạn có thể thiết kế lấy các ký tự toán học hay hóa hco tuỳ ý.
    - Việc thiết kế lại các ký tự trong bảng mã ASCII cũng không có gì phức tạp lắm. Mỗi ký tự là một ma trân 2 chiều (16 x 8)
    - Như vậy ta cần 16 byte để vẽ lại một ký tự :
    - Tôi xin lấy ví dụ :
    * Chữ 'â' : được thiết kế như sau :
    Binary 00000000 Hexa $00
    Binary 00000000 Hexa $00
    Binary 00000000 Hexa $00
    Binary 00110000 Hexa $30
    Binary 01111000 Hexa $78
    Binary 11001100 Hexa $CC
    Binary 00000000 Hexa $00
    Binary 01111000 Hexa $78
    Binary 11001100 Hexa $CC
    Binary 11001100 Hexa $CC
    Binary 11001100 Hexa $CC
    Binary 11001101 Hexa $CD
    Binary 00111111 Hexa $3F
    Binary 00000000 Hexa $00
    Binary 00000000 Hexa $00
    Binary 00000000 Hexa $00
    - Sau khi có một mảng 16 số như trên. Việc còn lại là gọi ngắt để đăng ký ký tự trên vào bảng mã ASCII.
    - Trong chế độ Graphics nế muốn hiển thị tiếng việt cũng không có gì khó. Dựa trên nguyên tắc vẽ ký tự bằng số bên trên (dùng cho chế độ TEXT.). Ta có thể hiển thị tiếng việt trên chế độ Graphics như trên chế độ TEXT bằng cách :
    - Dựa vào ma trân các bít như trên ta thấy bít nào =1 thì putpixel(x, y, mầu) tại vị trí cua bít đó , bít nào =0 thì bỏ qua, không vẽ.
    * Như vậy vấn đề thiết kế lại các ký tự trong bảng mã ASCII là có khả năng làm được.
    * Dựa trên nguyên tắc sử dụng bit 0,1 ta có thể hiển thị các ký tự do mình thiết kế trên chế độ đồ hoạ.
    + Bạn nào muốn lấy mã nguồn thì xin gửi mail cho tôi. Chúc các bạn thành công.
  5. GUITAR_PLAYER

    GUITAR_PLAYER Thành viên mới

    Tham gia ngày:
    13/04/2002
    Bài viết:
    47
    Đã được thích:
    0
    Chao` Lê thuỵ cách làm của ông bạn cũng hay nhưng lại không thể thể hiên được mọi kí hiệu vì chỉ có thể dùng 128 mã mở rộng mà thôi
    nếu muốn thể hiện x mũ 1 cho tới x mũ 200 thi` bó tay
    còn ở chế độ đồ hoạ thì có thể sử dụng mẫu tô do người dùng định nghĩa để viết phông chữ tiếng việt bằng cách sử dụng 64 bit điểm màu tương tự cách của ông bạn

    Còn việc sử lí ngắt thì ông thử cho ví dụ để đưa chữ "â" ở trên vào ứng với mã ASCII 128 xem nào để anh em tự viết lấy chương trình
    thank
    trantrung
    Được sửa chữa bởi - GUITAR_PLAYER vào 18/05/2002 13:27
  6. haanhtu

    haanhtu Thành viên quen thuộc

    Tham gia ngày:
    21/03/2002
    Bài viết:
    521
    Đã được thích:
    0

    Vừa qua tôi có thảo luận về Quicksort tại một số Box. Sau đây là bài post của tôi và bài post lại :
    haanhtu :
    Bạn nào biết thuật toán nào sắp xếp nhanh hơn Quicksort hoặc cải tiến Quicksort để có hiệu quả hơn xin chỉ giùm .
    cảm ơn các bạn.
    Thành viên TTVN Trả lời :
    To nho la Quicksort dua tren nguyen tac chia doi vi vay toc do cua thuat toan phu thuoc rat nhieu vao tinh chat cua day so va viec chon trung vi. Trong truong hop xau nhat cac lan chia doi deu duoc 1 ben khong co gi con 1 ben la tat ca cac phan con lai thi toi n binh phuong. De cai tien quicksort thuong ban co the chon trung vi (Thuong nguoi ta lay ba phan tu bat ky cua day so sau do chon phan tu co gia tri dung giua lam khoa. Tat nhien khi thu ban cung khong thay khac may nhung neu day so co vai chuc nghin so se thay hieu qua lien. Nho la khi chia nho moi day con <8 so thi bo quicksort ma dung kieu khac kieu nhu insertion sort.
    Ve cac thuat toan khac ban co the thu MergeSort (Xap xep tron) tuy nhien thuat toan nay can co them bo nho phu. Toc do cua MergeSort la nlog2n
    Vậy ý kiến của các bác thế nào ?
    Tôi nhớ có lần mình còn đọc được ở đâu đó người ta có cải tiến QuickSork để xắp có hiệu quả với bộ n lớn cách khác cách trên thì phải.
    haanhtu@b2vn.com
    Sunlight
  7. Sinhvien_huhong

    Sinhvien_huhong Thành viên mới

    Tham gia ngày:
    17/04/2002
    Bài viết:
    15
    Đã được thích:
    0
    to : mày có bi đao không hả ? Tại sao đang học hàng hải lại chuyển đi thể hả ? Hay bi đuổi học hả ? nhục quá con ơi thật là buồn cho bố ****** có đứa con như mày đó . Thôi mày sang đấy làm vua của bọn ngu dân lập cung hay đấy nhóc a ! Anh cũng thấy rằng chú mày tự tìm cho mình một con đường đi có thể là nói siêu ngu chứ không phải là ngu đâu . Đúng là đường quang không đi mà đi vào bãi *** nhục quá thối quá trời luôn thối như đời mày đó . Đời mày không khá được đâu mà còn giở trò viết chương trình ứng dụng tin học hả ? Thật khôi hài đó chẳng khác gì chó tập bôi son hi hi ..............................ha ha.......................... Thôi ý tưởng ngu ngốc của mày đi nhé ! Khong người ta cho mày đi CHÂU QUỲ đó nhe !
    chuc nhóc một ngày hạnh phúc và vui vẻ
  8. tamtin1

    tamtin1 Thành viên quen thuộc

    Tham gia ngày:
    31/12/2001
    Bài viết:
    156
    Đã được thích:
    0
    Tui không hiểu mấy ông dùng Pascal hay C để tạo menu để làm gì nữa. Hay là để nổi tiếng hả? Bây giờ công cụ lập trình đều toàn dùng Visual thôi, tạo menu hay đồ hoạ có phải nhanh hơn không nào? Thực ra bay giờ người ta vẫn dùng Pascal hoặc C, nhưng mà chỉ dùng để làm những bài toán trong công nghiệp thôi. Ví dụ như tại xưởng của thầy Quốc Anh (Khoa IT trường BKHN), thầy toàn dùng Pascal và C, nhưng cũng toàn làm điều khiển thôi. Như hiện tại tôi biết thì tại đó đang làm điều khiển cho nhà máy thuỷ điện Hoà Bình và 1 nhà máy ở trong Tây Nguyên.
    Nói thế có nghĩa là mỗi cái đều có lĩnh vực áp dụng riêng, tốt nhất là dùng cái có sẵn, không nên làm lại từ đầu. Tôi nói điều đó có thể nhiều người phản đối, nhưng các bạn thử nghĩ xem. Chúng ta đã giỏi bằng đội phát triển của C chưa, mà có bạn bảo là cái object menu trong C là không hay hả? Tôi không bảo các bạn mày mò làm lại từ đầu là không hay, nhưng mà hiện nay chúng ta hầu hết đều dùng lại và phát triển trên nền những cái có sẵn. Có thể các bạn chưa làm thực tế chưa biết, nhưng mà hiện nay trong IT, không ai dại gì làm lại những cái đã có sẵn đã được mọi người công nhận cả. Còn nếu muốn viết lại thì phải làm sao cho tốt hơn hẳn cái version cũ, chứ nếu chỉ tốt hơn 1 tí thì cũng chả ai dùng cả (vì lý do thói quen).
    Tôi viết bài này không phải để đả kích hay bảo các bạn không nên làm cái này cái nọ. Các bạn đang còn là sinh viên thì việc mày mò nghiên cứu là rất tốt. Điều đó sẽ rất có ích cho các bạn mai sau. Nhưng mà nói thực đến năm thứ 4 mà tạo menu bằng Pascal thì hơi buồn cười thật. Bây giờ tìm cả Hà Nội có khi chả có cty nào dùng Pascal cả (trừ chỗ thầy Quốc Anh). Tôi không chê Pascal hay C, vì tôi đã dùng Pascal và C từ lớp 10 (khoảng 9-10 năm rồi), nó rất hay. Nhưng mà các bạn nên thay đổi tí chút. hehe

    I'm sent from the hell and the heaven

  9. ThuyLe

    ThuyLe Thành viên mới

    Tham gia ngày:
    05/04/2002
    Bài viết:
    21
    Đã được thích:
    0
    Ý kiến của bạn tamtin1 rất đúng. Thực ra các ngôn ngữ Pascal hay C, C++ hiện nay chỉ được dùng làm các ngôn ngữ dạy học và nó có cấu trúc ngắn gọn, dễ hiểu. (gọi là ngôn ngữ sư phạm). Chúng được phát triển từ rất lâu. Và từ đó dến nay nhiều ngôn ngữ lập trình hướng đối tượng đã ra đời. Không thể phủ định hiệu quả của các ngôn ngữ lập trình trên DOS (Pascal, C. C++ fof DOS). Nhưng hiện nay hỏi thử ai còn dùng mấy đến cái hệ điều hành gọi là DOS. Sau khi mầy mò trên các ngôn ngữ trên DOS mất khá nhiều thời gian, công sức. Tôi nghĩ các bạn nên chuyển sang một hướng lập trình khác đó là lập trình hướng đối tượng. Các ngôn ngữ hướng đối tượng đang được sử dụng rất rộng rãi.(Visual C++, Visual Basic...).
    - Xu hướng chung hiện nay là : chúng ta học những gì phục vụ cho tương lai. Vì các công ty tin học hiện nay chủ yếu là viết ứng dụng chứ không mấy công ty viết về hệ thống mà phải dùng Assembler, C for DOS... Do vậy các bạn có thể suy nghĩ để có con đường đúng cho mình.
  10. tamtin1

    tamtin1 Thành viên quen thuộc

    Tham gia ngày:
    31/12/2001
    Bài viết:
    156
    Đã được thích:
    0
    Tôi xin lỗi, nhưng hình như VB ko phải là OO thì phải, bạn ThuyLe nhỉ. Tôi có dùng qua VB .Net nhưng mà nó cũng không phải là OO đâu. Chỉ có Java và C (những cái thông dụng) là OO thôi.

    I'm sent from the hell and the heaven

Chia sẻ trang này