Tin học Giải mã

Nhật Hạ !

Học sinh chăm học
Thành viên
14 Tháng tư 2019
409
292
76
20
Quảng Nam
THCS Lê Quang Sung
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

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
[TBODY] [/TBODY]



GIAIMA.OUT

chuc ban luon luon hoc gioi
[TBODY] [/TBODY]

[TBODY] [/TBODY]
 
  • Like
Reactions: dangtiendung1201

dangtiendung1201

Cựu Mod Toán
Thành viên
24 Tháng mười hai 2018
1,272
1,359
216
21
Thái Bình
THCS Lương Thế VInh-Thành phố Thái Bình
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
[TBODY] [/TBODY]

GIAIMA.OUT
chuc ban luon luon hoc gioi
[TBODY] [/TBODY]
[TBODY] [/TBODY]
Mã:
#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[i];
        if (s[i]==' ')
        {
            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[i]-48)] << " ";
    }
    return 0;
}
Code anh viết bằng C++. Chuyển sang pascal cũng không khó lắm.
 

CuongGrove

Học sinh
Thành viên
29 Tháng mười 2019
83
36
21
21
Quảng Ngãi
THPT Trà Bồng
Cho mình hỏi là dãy số nguyên dương có liên quan gì đến cách sắp xếp vậy? Mình đọc mãi vẫn không hiểu
 
Top Bottom