Tin học Giải mã thông điệp trong pascal

Thảo luận trong 'Tin học cấp II' bắt đầu bởi Dũng8a7, 10 Tháng hai 2020.

Lượt xem: 236

?

Ai có thể chuyển code này từ C++ sang pascal cho em đc ko ạ! Em cám ơn

  1. chuyển code

    2 vote(s)
    100.0%
  2. chuyển code

    0 vote(s)
    0.0%
Multiple votes are allowed.

  1. Dũng8a7

    Dũng8a7 Học sinh mới Thành viên

    Bài viết:
    5
    Điểm thành tích:
    6
    Nơi ở:
    Bình Phước
    Trường học/Cơ quan:
    Trường TH & THCS Lương Thế Vinh
    Sở hữu bí kíp ĐỖ ĐẠI HỌC ít nhất 24đ - Đặt chỗ ngay!

    Đọc sách & cùng chia sẻ cảm nhận về sách số 2


    Chào bạn mới. Bạn hãy đăng nhập và hỗ trợ thành viên môn học bạn học tốt. Cộng đồng sẽ hỗ trợ bạn CHÂN THÀNH khi bạn cần trợ giúp. Đừng chỉ nghĩ cho riêng mình. Hãy cho đi để cuộc sống này ý nghĩa hơn bạn nhé. Yêu thương!

    #include <iostream>
    #include <string.h>
    using namespace std;
    string a,s;
    string ans[51];
    string giaima()
    {
    int dem=1;
    for (int i=0;i<=s.length()-1;i++)
    {
    ans[dem]+=s;
    if (s==' ')
    {
    dem++;
    ans[dem-1].erase(ans[dem-1].length()-1);
    }
    }
    }
    int main() {
    getline (cin,s);
    getline (cin,a);
    giaima();
    for (int i=0;i<=a.length()-1;i+=2)
    {
    cout << ans[(int)(a-48)] << " ";
    }
    return 0;
    }
     
  2. trà nguyễn hữu nghĩa

    trà nguyễn hữu nghĩa Cựu Phó Nhóm Vật Lí |Cây bút Thơ|Thần tượng VH Thành viên

    Bài viết:
    2,925
    Điểm thành tích:
    569
    Nơi ở:
    Phú Yên
    Trường học/Cơ quan:
    Trường THPT Lương Văn Chánh

    Mình không thể hiểu thuật toán này muốn viết cái gì....chạy trên Dev C++ cũng lỗi liên tục, nhưng mình có thể giúp bạn chuyển code.
    (PS: giải thích giúp mình xem thuật toán này dùng để làm gì)
    Mã:
    uses crt;
    var a,s: string;
          ans: array[1..51] of string;
    function giaima: string;
    var dem,i: integer;
    begin
              dem := 1;
              for i := 1 to length(s) do
              begin
                        ans[dem] := ans[dem] + s;
                        if (s = ' ') then
                        begin
                                  inc(dem);
                                  delete(ans[dem-1],length(ans),1);
                        end;
              end;
    end;
    
    var i: integer;
    BEGIN
               readln(s,a);
               giaima;
               i := 1;
               while i < length(a) do
               begin
                         write(ans[ord(a[i])-48] + ' ');
                         i := i + 2;
               end;
    END.
     
    Nguyễn Thành Long vplt thích bài này.
  3. Dũng8a7

    Dũng8a7 Học sinh mới Thành viên

    Bài viết:
    5
    Điểm thành tích:
    6
    Nơi ở:
    Bình Phước
    Trường học/Cơ quan:
    Trường TH & THCS Lương Thế Vinh

    Trong thời đại ngày nay, thông tin cá nhân của mỗi người dễ dàng bị xâm nhập bởi rất nhiều công nghệ hiện đại nghe lén. Chính vì vậy, một đôi bạn muốn bảo mật thông tin cho nhau đã có sáng kiến nghĩ ra cách trao nhau những thông điệp mà người khác đọc hoặc nghe được thì không hiểu gì. Thông điệp của họ là một câu với nhiều từ được phân biệt bởi ký tự trống (dấu cách) và được sắp xếp lộn xộn để trở thành câu vô nghĩa. Để hiểu nội dung một thông điệp của người bạn gởi cho mình, hai người bạn đã quy ước trước một bộ mã là một dãy số nguyên dương có số lượng số tương ứng với số từ của thông điệp nhằm giải mã thành câu có ý nghĩa.
    Yêu cầu: Lập trình để giúp đôi bạn giải mã một thông điệp cho trước.
    - Dữ liệu vào: File văn bản GIAIMA.INP gồm 2 dòng.
    + Dòng đầu ghi một câu có không quá 255 kí tự là thông điệp được gởi đi. Trong câu này có không quá 50 từ, mỗi từ có không quá 30 kí tự.
    + Dòng thứ hai ghi bộ mã gồm một dãy các số nguyên dương đôi một khác nhau dùng để giải mã thông điệp trên.
    - Dữ liệu ra: File văn bản GIAIMA.OUT gồm một dòng ghi câu đã được giải mã từ thông điệp đã cho.
    Ví dụ:


    GIAIMA.INP

    luon chuc hoc ban gioi luon
    2 4 1 6 3 5


    GIAIMA.OUT

    chuc ban luon luon hoc gioi
    thank you anh dep zai
     
  4. trà nguyễn hữu nghĩa

    trà nguyễn hữu nghĩa Cựu Phó Nhóm Vật Lí |Cây bút Thơ|Thần tượng VH Thành viên

    Bài viết:
    2,925
    Điểm thành tích:
    569
    Nơi ở:
    Phú Yên
    Trường học/Cơ quan:
    Trường THPT Lương Văn Chánh

    vậy thì có lẽ mình đã dịch sai khá nhiều rồi đó, hoặc là thuật toán bạn gửi nó sai khá nhiều.....
    Mình chạy thử nhưng kết quả không như ý lắm :p
     
  5. trà nguyễn hữu nghĩa

    trà nguyễn hữu nghĩa Cựu Phó Nhóm Vật Lí |Cây bút Thơ|Thần tượng VH Thành viên

    Bài viết:
    2,925
    Điểm thành tích:
    569
    Nơi ở:
    Phú Yên
    Trường học/Cơ quan:
    Trường THPT Lương Văn Chánh

    Dựa vào code người ta mình chỉnh sửa lại một xíu thôi....và chạy thấy nó cũng ổn nên bạn test thử nha (Tham khảo) :D
    Mã:
    uses crt;
    var a,s: string;
            ans: array[1..50] of string;
    
    function giaima: string;
    var dem,i: integer;
            anst: array[1..50] of string;
    begin
            dem := 1;
            for i := 1 to length(s) do
            begin
                    anst[dem] := anst[dem] + s[i];
                    if (s[i] = ' ') then
                    begin
                            delete(anst[dem],length(anst[dem]),1);
                            dem := dem+1;
                    end;
            end;
            i := 1;
            dem := 1;
            while i <= length(a) do
            begin
                    ans[ord(a[i])-48] := anst[dem];
                    i:= i + 2;
                    dem := dem+1;
            end;
    end;
    
    var i,dem: integer;
    BEGIN
            clrscr;
            readln(s);
            readln(a);
            giaima;
            dem := 1;
            i := 1;
            while i <= length(a) do
            begin
                    write(ans[dem] + ' ');
                    i := i + 2;
                    dem := dem + 1;
            end;
            readln;
    END.
     
    Hồng Minh thích bài này.
  6. Dũng8a7

    Dũng8a7 Học sinh mới Thành viên

    Bài viết:
    5
    Điểm thành tích:
    6
    Nơi ở:
    Bình Phước
    Trường học/Cơ quan:
    Trường TH & THCS Lương Thế Vinh

    cảm ơn anh nhưng chạy ko đc nha anh ơi
    anh very đẹp zai như newton c40b89b85251aa0ff340.png

    nếu có thể thì anh làm dạng tệp luôn dùm e nha anh kiểu
    f:text;
    assign(f,'giaima.inp');
    reset(f);
    readln(f,s);
    readln(f,a);
    assign(f,'giaima.out');
    rewrite(f);
    thank anh nhìu
     
    Last edited by a moderator: 12 Tháng hai 2020
  7. trà nguyễn hữu nghĩa

    trà nguyễn hữu nghĩa Cựu Phó Nhóm Vật Lí |Cây bút Thơ|Thần tượng VH Thành viên

    Bài viết:
    2,925
    Điểm thành tích:
    569
    Nơi ở:
    Phú Yên
    Trường học/Cơ quan:
    Trường THPT Lương Văn Chánh

    làm tệp mình lười cực....viết ra viết vào, in đi in lại :D
    mình chạy được nha, còn bạn thế nào thì mình không biết
    upload_2020-2-11_13-31-41.png
     
  8. Dũng8a7

    Dũng8a7 Học sinh mới Thành viên

    Bài viết:
    5
    Điểm thành tích:
    6
    Nơi ở:
    Bình Phước
    Trường học/Cơ quan:
    Trường TH & THCS Lương Thế Vinh

    anh ơi anh test hộ em câu
    {luon chuc hoc ban gioi luon
    2 4 1 6 3 5} xem chay đc ko nhé
     
  9. trà nguyễn hữu nghĩa

    trà nguyễn hữu nghĩa Cựu Phó Nhóm Vật Lí |Cây bút Thơ|Thần tượng VH Thành viên

    Bài viết:
    2,925
    Điểm thành tích:
    569
    Nơi ở:
    Phú Yên
    Trường học/Cơ quan:
    Trường THPT Lương Văn Chánh

    có lẽ bộ test có vấn đề nhỉ
    từ "chuc" phải đứng số 1 chứ sao lại 4???
     
  10. bùi thị xuân mai

    bùi thị xuân mai Học sinh mới Thành viên

    Bài viết:
    33
    Điểm thành tích:
    16
    Nơi ở:
    Quảng Nam
    Trường học/Cơ quan:
    thcs võ thị sáu

    test này sai rồi bạn ạ lúc trước mình cũng làm bài này nhưng thầy mình nói là test này sai rồi
    test đúng là: luon chuc ban hoc gioi luon
    3 1 2 4 5 3
     
    trà nguyễn hữu nghĩa thích bài này.
  11. trà nguyễn hữu nghĩa

    trà nguyễn hữu nghĩa Cựu Phó Nhóm Vật Lí |Cây bút Thơ|Thần tượng VH Thành viên

    Bài viết:
    2,925
    Điểm thành tích:
    569
    Nơi ở:
    Phú Yên
    Trường học/Cơ quan:
    Trường THPT Lương Văn Chánh

    test của bạn cũng bị "nhầm" thì phải
    khi có tới 2 số "3" trong bản test kìa, còn số 6 không thấy đâu :)
     
  12. Đức Nhật

    Đức Nhật Học sinh tiêu biểu Thành viên

    Bài viết:
    1,504
    Điểm thành tích:
    504
    Nơi ở:
    Quảng Nam
    Trường học/Cơ quan:
    Phan Tây Hồ

    Mã:
    Const Fi='GIAIMA.INP';
          Fo='GIAIMA.OUT';
    Var f,g: text;
        St: String;
        A: array[1..255] of longint;
        B: array[1..255] of string;
        S,i,k: longint;
    Begin
            Assign(f,Fi); Reset(f);
            Assign(g,Fo); Rewrite(g);
            Readln(f,St);
            While St[1]=#32 do Delete(St,1,1);
            While St[length(St)]=#32 do Delete(St,length(St),1);
            While pos(#32#32,St)<>0 do Delete(St,pos(#32#32,St),1);
    
            s:=1;
            For i:=1 to length(St) do
                    If St[i]=#32 then inc(s);
            For i:=1 to s do
                    Read(f,A[i]);
    
            k:=1;
            For i:=1 to length(St) do
                    If St[i]<>#32 then B[k]:=B[k]+St[i]
                    Else inc(k);
            For i:=1 to s do
                    Write(g,B[A[i]],' ');
            Close(f);
            Close(g);
    End.
     
Chú ý: Trả lời bài viết tuân thủ NỘI QUY. Xin cảm ơn!

Draft saved Draft deleted

CHIA SẺ TRANG NÀY

-->