BÀI TẬP 63: GIẢI MÃ THÔNG ĐIỆP

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 dùng 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 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.

            - Dữ liệu vào: Đọc từ file văn bản GIAIMA.INP gồm hai dòng:

            + Dòng thứ nhất ghi một chuỗi ký tự có số lượng không quá 50 từ, mỗi từ 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 để 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

GIAIMA.OUT

luon chuc hoc ban gioi luon

2 4 1 6 3 5

chuc ban luon luon hoc gioi


CODE THAM KHẢO:

program Giai_Ma;

var Tex:array[1..101] of string;

    key: array[1..101] of byte;

    S,S1:string;

    n,i:byte;

    fi,fo:text;

procedure tachtu;

var s1: string; i,M: byte;

begin

        M:=0; S:=S+' '; s1:='';

        for i:=1 to length(s) do

        begin

                if (s[i]=#32) and (length(s1)>0) then

                begin

                        M:=M+1;

                        Tex[M]:=S1;

                        s1:='';

                end

                else s1:=s1+s[i];

        end;

end;

begin

        assign(fi,'GIAIMA.INP'); reset(fi);

        readln(fi,S);

        n:=0;

        while not eoln(fi) do

        begin

                n:=n+1;

                read(fi,key[n]);

        end;

        assign(fo,'GIAIMA.OUT'); rewrite(fo);

        tachtu;

        for i:=1 to n do write(fo,tex[Key[i]],' ');

        close(fi); close(fo);

end.



Nhãn:

Đăng nhận xét

[blogger]

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.
Javascript DisablePlease Enable Javascript To See All Widget