Trang chủ Tin Học Lớp 8 *PASCAL(Mọi ng giải thích thuật toán cho e luon nha, với sử dụng kiến thức đừng nâng cao qa ạ...
Câu hỏi :

*PASCAL(Mọi ng giải thích thuật toán cho e luon nha, với sử dụng kiến thức đừng nâng cao qa ạ Nhập một xâu có dạng ba số một dấu chấm(VD:325.672) Tính tổng của các số đảo ngược lại (VD: Tổng=276+523)

Lời giải 1 :

`* Pascal:`

`" "`

program chaine_totale;
uses crt;
var chaine, pre, deu : string;
    indi, emp, resi, total : integer;

begin
    clrscr;
    readln(chaine);
    
    emp := pos('.', chaine);
    
    pre := '';
    for indi := emp - 1 downto 1 do 
        pre := pre + chaine[indi];
        
    deu := '';
    for indi := length(chaine) downto emp + 1 do
        deu := deu + chaine[indi];
        
    emp := abs(length(pre) - length(deu));
    
    if length(pre) > length(deu) then
        for indi := 1 to emp do
            deu := '0' + deu;
            
    if length(pre) < length(deu) then
        for indi := 1 to emp do 
            pre := '0' + pre;
    
    resi := 0;
    chaine := '';

    for indi := length(pre) downto 1 do
    begin
        total := ord(pre[indi]) + ord(deu[indi]) - 96 + resi;
        chaine := chr(total mod 10 + 48) + chaine;
        resi := total div 10;
    end;
    
    if resi <> 0 then
        chaine := chr(resi + 48) + chaine;
        
    while chaine[1] = '0' do
        delete(chaine, 1, 1);
        
    write(chaine);
    readln
end.

`" "`

`1.` Tìm vị trí của dấu chấm đầu tiên trong xâu ban đầu. Gọi vị trí này là emp. Sau đó, cắt xâu ban đầu thành hai phần: xâu thứ nhất là từ vị trí emp - 1 đến vị trí 1, xâu thứ hai là từ vị trí cuối cùng đến vị trí emp + 1

`2.` So sánh độ dài của hai xâu vừa cắt được. Nếu hai xâu có độ dài khác nhau, thì thêm kí tự 0 vào đầu xâu ngắn hơn cho đến khi hai xâu có cùng độ dài. Gọi hai xâu này là pre và deu.

`3.` Thực hiện phép cộng hai xâu pre và deu theo quy tắc cộng số thập phân. Kết quả là xâu cộng được.

_________________________________________________

`1.` 

   `*` Vị trí dấu chấm: emp := pos('.', chaine);

   `*` Xâu pre: Chứa các kí tự từ vị trí emp - 1 đến 1

    pre := '';
    for indi := emp - 1 downto 1 do 
        pre := pre + chaine[indi];

   `*` Xâu deu: Chứa các kí tự từ vị trí cuối cùng đến emp + 1

    deu := '';
    for indi := length(chaine) downto emp + 1 do
        deu := deu + chaine[indi];

`2.`

   `*` Số lượng kí tự chênh lệch giữa hai xâu: emp := abs(length(pre) - length(deu));

   `*` Thêm kí tự '0' vào xâu ngắn hơn:

    if length(pre) > length(deu) then
        for indi := 1 to emp do
            deu := '0' + deu;
            
    if length(pre) < length(deu) then
        for indi := 1 to emp do 
            pre := '0' + pre;

`3.` 

   `*` resi là biến nhớ khi cộng hai chữ số có kết quả lớn hơn 9

   `*` Tính tổng hai chữ số tại vị trí indi trong hai xâu pre và deu:

         `*` Sử dụng hàm ord để chuyển kí tự thành giá trị số nguyên tương ứng

         `*` Ví dụ, ord('0') trả về 48, ord('1') trả về 49, ... Vì vậy để tính tổng của hai chữ số, phải trừ đi 96 (48 + 48) để loại bỏ phần dư thừa. Cộng thêm biến resi vào tổng này để lấy kết quả cuối cùng. Gán kết quả này vào biến total.

         `*` Sử dụng hàm chr để chuyển giá trị phần dư của biến total thành kí tự tương ứng. Nối kí tự này vào đầu xâu chaine để lưu kết quả cộng.

         `*` Biến nhớ resi bằng phần nguyên khi chia total cho 10

         `*` Khi kết thúc vòng lặp, nếu giá trị resi khác 0 thì nối kí tự số tương ứng với giá trị resi vào đầu xâu chaine

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 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần và sang năm lại là năm cuối cấp, áp lực lớn dần. Hãy chú ý đến sức khỏe, cân bằng giữa học và nghỉ ngơi để đạt hiệu quả tốt nhất!

Nguồn :

sưu tập

Copyright © 2024 Giai BT SGK