`* 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
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!
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!
Copyright © 2024 Giai BT SGK