Trang chủ Tin Học Lớp 7 Lập trình nhập từ bàn phím xâu kí tự chữ cái s (|s| 100000). In ra màn hình xâu đó...
Câu hỏi :

Lập trình nhập từ bàn phím xâu kí tự chữ cái s (|s| 100000). In ra màn hình xâu đó sau khi sắp xếp vị trí các kí tự theo thứ tự: chữ cái in hoa giảm dần rồi đến chữ cái in thường giảm dần. Dữ liệu nhập: - Một xâu kí tự S duy nhất Kết quả: - in ra màn hình xâu sau khi sắp xếp(pascal nha)

Lời giải 1 :

program SortString;
var
    s: string;
    upper, lower: string;
    i: integer;
begin
    readln(s);
    upper := '';
    lower := '';
    for i := 1 to length(s) do
        if s[i] in ['A'..'Z'] then
            upper := upper + s[i]
        else if s[i] in ['a'..'z'] then
            lower := lower + s[i];
    for i := ord('Z') downto ord('A') do
        while pos(chr(i), upper) > 0 do begin
            write(chr(i));
            delete(upper, pos(chr(i), upper), 1);
        end;
    for i := ord('z') downto ord('a') do
        while pos(chr(i), lower) > 0 do begin
            write(chr(i));
            delete(lower, pos(chr(i), lower), 1);
        end;
end.

Lời giải 2 :

`* Pascal:`

program organiser;
uses crt;
var s: ansistring;
    indi, vari: longint;
    quan: array [65 .. 122] of longint;
    
begin
    clrscr;
    readln(s);
    
    for indi := 1 to length(s) do
        quan[ord(s[indi])] := quan[ord(s[indi])] + 1;
        
    for indi := 90 downto 65 do
        if quan[indi] <> 0 then 
            for vari := 1 to quan[indi] do
                write(chr(indi));
            
    for indi := 122 downto 97 do
        if quan[indi] <> 0 then 
            for vari := 1 to quan[indi] do
                write(chr(indi));
    readln
end.

`" "`

`*` Mã ASCII của kí tự 'A' là 65, 'B' là 66, ..., 'Z' là 90

`*` Mã ASCII của kí tự 'a' là 97, 'b' là 98, ..., 'z' là 122

`*` ord(s[indi]): Đưa ra thứ tự của kí tự s[indi] trong mã ASCII

`*` Phần tử quan[ord(s[indi])] mang giá trị là số lượng kí tự s[indi] trong xâu s

`*` Sau khi có số lượng của các chữ cái:

      `*` Biến đếm chạy từ 90 về 65, in kí tự mang mã ASCII tương ứng với giá trị biến đếm, số lượng in kí tự đó bằng giá trị phần tử quan với chỉ số biến đếm tương ứng

      `*` Biến đếm chạy từ 122 về 97, in kí tự mang mã ASCII tương ứng với giá trị biến đếm, số lượng in kí tự đó bằng giá trị phần tử quan với chỉ số biến đếm tương ứng

Bạn có biết?

Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 7

Lớp 7 - Năm thứ hai ở cấp trung học cơ sở, một chuỗi quay mới lại đến và chúng ta vẫn bước tiếp trên con đường học sinh. Học tập vẫn là nhiệm vụ chính, hãy luôn kiên trì và không ngừng cố gắng!

Nguồn :

sưu tập

Copyright © 2024 Giai BT SGK