Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 18 kết quả

Đề tài: Cách định nghĩa phép tính với ký tự trong lập trình C?

  1. #1
    Ngày gia nhập
    10 2011
    Bài viết
    17

    Mặc định Cách định nghĩa phép tính với ký tự trong lập trình C?

    Các bạn ơi,cho mình hỏi với.Trong C,làm thế nào để định nghĩa được phép tính với các ký tự??
    VD: 'U' + 'V' = 'D'
    'V' + 'D' = 'C' nhớ 'U'
    ( Giống phép cộng tay với số nguyên ý,nhưng với ký tự thì mình nghĩ mãi ko ra

  2. #2
    Ngày gia nhập
    10 2011
    Bài viết
    17

    Không ai trả lời ah .Thôi vậy,mình đưa hẳn đề bài ra vậy.Đây là bài Cowculations trên UVa.onlinejudge.com.Mình đã dịch sang TV.Các bạn giúp mình với
    "
    Bò Biết Tính Toán

    Nhà nhân chủng học nổi tiếng - Tiến sĩ Vine Bo phát hiện ra một nền văn hóa bò nguyên thủy. Hàng trăm bảng tính đã được khai quật trên một đồng cỏ ở đâu đó gần Dallas. Tiến sĩ Vine quyết định giải mã bí ẩn của những bảng tính này khi ông nhận ra chúng biểu diễn các tính toán toán học. Ông nói “Tôi đã luôn luôn ngờ rằng bò thông minh hơn, và đây là bằng chứng. Bước đột phá lớn này cho thấy chúng không chỉ biết đếm và còn biết làm toán nữa. Nhưng bây giờ tôi có hàng trăm bảng tính và ai đó hãy giúp đỡ để chứng minh giả thuyết của tôi”.
    Bạn hãy viết một chương trình giúp Tiến sĩ Vine kiểm chứng giả thuyết của ông. Ông mô tả cách diễn giải bảng tính như sau. Mỗi bảng có sáu dòng và mỗi dòng chứa một chuỗi ghi các biểu tượng của bò. Hai dòng đầu tiên biểu diễn số kiểu bò, ba dòng tiếp theo biểu diễn các thao tác kiểu bò trên hai con số trên và dòng thứ sáu biểu diễn kết quả:
    Số kiểu bò được biểu diễn qua 4 biểu tượng: V U C và D. Các số nằm trên hai dòng đầu tiên của bảng luôn luôn là một chuỗi 5 phần tử, và con số trên dòng thứ sáu của bảng luôn luôn là một chuỗi 8 phần tử cấu thành từ 4 biểu tượng này.
    Để diễn giải các phép toán kiểu bò, chúng ta sử dụng hai con số, giả sử gọi là num1 và num2. Ban đầu num1 là con số trên dòng 1 và num2 là con số trên dòng 2 của bảng. Tuy nhiên, giá trị của num2 có thể thay đổi - phụ thuộc vào kết quả của thao tác. Có bốn thao tác, biểu diễn qua các ký hiệu A, R, L, và N.

    Thao tác A gán num2 giá trị tổng của num1 và num2, sử dụng bảng sau đây:


    Giá trị đầu tiên trong mỗi ô kết quả thể hiện kết quả của phép cộng, giá trị thứ hai trong ô kết quả thể hiện giá trị nhớ. Ví dụ: UAV = U và CAC = V, nhớ U Ví dụ về phép cộng kiểu bò là:

    VUCDV A VUCDV = VDUCV
    DVVCU A CVUCU = UUVCVC
    Thao tác R khiến các biểu tượng trong num2 dịch chuyển sang phải một vị trí, biểu tượng ngoài cùng bên phải bị mất và biểu tượng V được đặt vào vị trí ngoài cùng bên trái. Ví dụ VVCDU sẽ trở thành VVVCD.
    Thao tác L khiến các biểu tượng của num2 dịch chuyển sang trái một vị trí, và V được đặt vào vị trí ngoài cùng bên phải. Ví dụ VVCDU sẽ trở thành VVCDUV.
    N là thao tác không làm gì, không thay đổi giá trị của num2.
    Sau khi thực hiện xong các thao tác trên num1 và num2, giá trị cuối cùng của num2 sẽ trở thành giá trị trên dòng thứ sáu của bảng. Nếu giá trị cuối cùng của num2 chưa có đủ 8 biểu tượng thì người ta đệm thêm các biểu tượng V vào bên trái cho đủ (VDCCC trở thành VVVVDCCC).
    Tiến sĩ Vine nói “Tôi xác nhận tất cả các bảng phù hợp với giả thuyết: về định dạng của bảng, số lượng các dòng và biểu tượng, kiểu biểu tượng… Nhưng tôi cần phải được xác nhận rằng kết quả các thao tác toán học được mô tả từ dòng 1 đến dòng 5 thực sự đúng là nhóm biểu tượng trên dòng 6”.

    Dữ liệu vào
    Dòng đầu tiên là một số nguyên N từ 1 đến 10 mô tả số lượng bảng.
    6*N dòng tiếp theo là nội dung các dòng trong từng bảng như mô tả ở trên.
    Kết quả
    Có N +2 dòng kết quả.
    Dòng đầu tiên là COWCULATIONS OUTPUT.
    Sau đó là N dòng đầu ra (mỗi dòng ứng với một bảng), trên dòng này ghi YES hoặc NO (phụ thuộc vào việc các dòng trong bảng có tuân theo giả thuyết của Tiến sĩ Vine không).
    Dòng cuối cùng ghi END OF OUTPUT.
    Sample Input
    5
    VVVVU
    VVVVU
    A
    A
    A
    VVVVVVUV
    VVCCV
    VVDCC
    L
    R
    A
    VVVVUCVC
    VVCCV
    VVDCC
    R
    L
    A
    VVVVUCVV
    VVUUU
    VVVVU
    A
    N
    N
    VVVVVUCU
    DDDDD
    VVVVU
    A
    L
    L
    UVVVVVVV
    Sample Output
    COWCULATIONS OUTPUT
    YES
    YES
    YES
    NO
    YES
    END OF OUTPUT
    "

  3. #3
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Bạn biết hệ 2, hệ 8, hệ 10 và hệ 16 chứ? Bản chất của chúng là gì ?
    Bây giờ ta dựa trên bản chất đó mà xây dựng hệ 4 để đáp ứng dc các phép toán kia của bạn .

    Giả sử ta có hệ 4 với miền trị cơ bản là 1 dãy có thứ tự như sau :A ={0,1 , 2 , 3 } . Quy ước A(1)=0. Luật sinh là A(i+1) = A(i)+1 với mọi i <4 .
    Trên đó ta định nghĩa phép toán + như sau: Với mọi a thuộc A , a+1 được thực hiện bởi luật sinh kia nếu a<3 và a+1 = 0 , nhớ 1 (tức là dc 10) nếu a=3
    Giờ bạn muốn nó biến thành các kí tự U V D C gì đấy thì tùy bạn đặt tên lại cho nó đúng theo giả thiết của bài .
    Đấy là cách xây dựng tập số cơ số mới

    Còn để thực hiện bài thi Olympic trên thì còn nhiều thứ khác lạ liên quan nữa chứ
    Phép dịch tương tự dịch bit cơ số 2 đã biết , dịch trái dịch phải ... blah blah
    Đã được chỉnh sửa lần cuối bởi clchicken : 23-11-2011 lúc 11:44 PM.
    Um Mani Padme Hum...!!

  4. #4
    Ngày gia nhập
    10 2011
    Bài viết
    9

    Không cho bảng tính cộng hả bạn ??? Mình phải tự suy ra à ???

    Thí dụ V+D=?
    TRÊN CON ĐƯỜNG ĐI ĐẾN THÀNH CÔNG KHÔNG CÓ DẤU CHÂN CỦA KẺ LƯỜI BIẾNG !!

    KHI ĐÃ THÀNH CÔNG THÌ ĐỪNG NÊN NGỦ QUÊN TRÊN CHIẾN THẮNG :

  5. #5
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Trích dẫn Nguyên bản được gửi bởi lamnhat Xem bài viết
    Không cho bảng tính cộng hả bạn ??? Mình phải tự suy ra à ???

    Thí dụ V+D=?
    V+D hay V A D = D
    Um Mani Padme Hum...!!

  6. #6
    Ngày gia nhập
    10 2011
    Bài viết
    17

    Mặc định Cách định nghĩa phép tính với ký tự trong lập trình C?

    Hay thật.Mình hiểu rồi.Nhưng mà chuyển xong hệ cơ số rồi thì làm thế nào để biểu diễn các phép tính R và L.Nếu để nguyên xâu thì mình còn xử lý được chứ....

  7. #7
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Trích dẫn Nguyên bản được gửi bởi minhtuan.a0 Xem bài viết
    Hay thật.Mình hiểu rồi.Nhưng mà chuyển xong hệ cơ số rồi thì làm thế nào để biểu diễn các phép tính R và L.Nếu để nguyên xâu thì mình còn xử lý được chứ....
    , để thực sự có được chữ V ở đầu sau khi dịch "bit" thì bạn phải mô tả hệ cơ số mới đó trên kiểu chuỗi . (nếu bạn thấy thực sự cần thiết cho việc hiển thị)
    Còn về mặt logic và tính toán thì chỉ cần làm tốt công tác + và * 2 số trên hệ 4 mới tạo. Làm sao ra kết quả chính xác là dc .
    Ví dụ như : 000987 thì nó cũng là 987 thôi đúng ko . Chỉ là về mặt hiển thị thôi

    Nhưng phép dịch "bit" về bên trái thì đáng chú ý : Vì V nằm ở sau số sẽ có ý nghĩa

    ___
    CHuyển sang số hay xâu nó cũng vậy, bản chất tập số mới như thế nào là do bạn định nghĩa, bạn quy ước. Chữ hay số chỉ là mang ý nghĩa hình thức để ta biểu diễn .
    Thay vì tôi nói số "tám" nó có kí hiệu kiểu cái còng số 8, cụ thể là "8" .
    Giờ tôi ko thích kí hiệu nó là 8 nữa, tôi định nghĩa lại nó là ký hiệu "@" vẫn vui vẻ thôi .
    Đấy, nhưng định nghĩa làm sao cho các phép tính trên tập đấy dc đảm bảo đúng. Và ta dễ dàng mô tả cho người khác hiểu là điều quan trọng
    ___
    BTW : Bạn nên dùng sẵn kiểu số để mô tả hệ số mới, sau đó quy ước lại số nào tương ứng chữ kiểu BÒ nào là nó sẽ đơn giản hơn việc bạn tự định nghĩa lại về bản chất toàn là chữ Bò
    Đã được chỉnh sửa lần cuối bởi clchicken : 24-11-2011 lúc 09:14 AM.
    Um Mani Padme Hum...!!

  8. #8
    Ngày gia nhập
    10 2011
    Bài viết
    17

    rắc rối nhỉ .Ok,để tớ nghĩ thêm.Có gì sẽ đem code lên để mọi người cùng tham khảo.

  9. #9
    Ngày gia nhập
    06 2007
    Nơi ở
    Nhà trọ
    Bài viết
    49

    Tiếng Việt cho chủ đề này thì chắc sẽ ít, cụm từ tiếng anh để bạn search là: symbolic computing
    mình nghĩ sẽ có nhiều định hướng cho bạn khi Google cụm này

    Good luck
    ~.tmp

  10. #10
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Trích dẫn Nguyên bản được gửi bởi dungcoi Xem bài viết
    Tiếng Việt cho chủ đề này thì chắc sẽ ít, cụm từ tiếng anh để bạn search là: symbolic computing
    mình nghĩ sẽ có nhiều định hướng cho bạn khi Google cụm này

    Good luck
    Thankiu vinamilk
    Um Mani Padme Hum...!!

Các đề tài tương tự

  1. Xu thế thay đổi nghành công nghệ thông tin trong nước
    Gửi bởi anhduongtalents trong diễn đàn Kinh nghiệm CNTT
    Trả lời: 1
    Bài viết cuối: 11-06-2012, 09:06 AM
  2. Đề xuất Đề nghị xóa bài viết "Suy nghĩ của 1 lập trình viên" trong mục KN
    Gửi bởi Trinh_lam93 trong diễn đàn Ý kiến, đề xuất và khiếu nại
    Trả lời: 9
    Bài viết cuối: 28-01-2012, 12:23 AM
  3. Công nghệ mới giúp ứng dụng tinh nghệ trong ngăn ngừa và điều trị ung thư
    Gửi bởi vesim trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 31-08-2011, 02:39 PM
  4. Tuổi nghề của người trong ngành công nghệ phần mềm???
    Gửi bởi vuduykhanh trong diễn đàn Kinh nghiệm CNTT
    Trả lời: 19
    Bài viết cuối: 11-03-2010, 04:58 PM
  5. Các nghề trong lĩnh vực Công nghệ Thông tin.
    Gửi bởi tinlouis trong diễn đàn Tuyển dụng - Việc làm CNTT
    Trả lời: 3
    Bài viết cuối: 25-05-2009, 02:22 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn