Viết chương trình chuyển đổi hệ cơ số pascal
Nguyên tắc của phương pháp này là lấy số cần chuyển đổi chia cho 2 (kết quả chỉ lấy phần nguyên), sau đó tiếp tục lấy kết quả chia 2 (và cũng chỉ lấy phần nguyên), kết quả số nhị phân thu được là tập hợp các số dư của các phép chia. Ví dụ : Chuyển số 30 sang hệ nhị phânĐầu tiên (ở dòng 1), chúng ta lấy 30 chia 2, kết quả được 15 và số dư là 0.Kế tiếp (ở dòng 2), chúng ta lấy số 15 chia 2, kết quả được 7 và số dư là 1Tiếp theo ở dòng 3, ta lấy số 7 chia 2, kết quả được 3 và dư 1Ta tiếp tục lặp lại quá trình này cho đến khi kết quả chia 2 chúng ta được 0.Số nhị phân chúng ta thu được chính là tập hợp các số dư của các phép chia (lấy từ dưới lên).Số 30 trong hệ nhị phân sẽ là 11110– Nếu n =0 hoặc n=1 thì chuỗi S tương ứng là 0, 1Ngược lại- Lặp lại quá trình chia cho 2 như trên (sử dụng, Mod và div) và ghi kết quả vào xâu S Cách 1 var n:longint; f:text; {------- chuong trinh con tinh luy thua -------} function NP(n:longint):string; var du:longint;s,tem:string; begin tem:='';s:=''; if (n=0) or(n=1) then str(n,s) else while n<>0 do begin du:=n mod 2; n:=n div 2; str(du,tem); s:=tem+s; end; NP:=s; end; {----Than chuong trinh chinh ------} begin {----Doc file ----} assign(f,'TP_to_NP.inp'); reset(f); read(f,n);close(f); {----Mo file de ghi----} assign(f,'TP_to_NP.out'); rewrite(f); write(f,NP(n)); close(f); end. Cách 2 Program Thap_Phan_Sang_Nhi_Phan; Uses Crt; Var d:array[1..20] of byte; i,j,n:integer; Begin Clrscr; Writeln('DOI SO THAP PHAN SANG NHI PHAN:'); Write('Nhap so thap phan la n='); Readln(n); i:=1; Repeat d[i]:=n mod 2; n:=n div 2; i:=i+1; Until(n=0); Write('So nhi phan la:'); For j:=i-1 downto 1 do Write (d[j]); Readln; End. Bài 1: Chuyển 1 số từ hệ thập phân sang nhị phân.
Bài 2: Chuyển 1 số từ hệ thập phân sang bát phân.
Biểu diễn số thập phân: 253, 458, 1047, 3259 (2đ) Biểu diễn có số nhị phân: 1011, 11011, 11101,1010 (2đ) Biểu diễn các hệ số 16 (Hexa): 1AF, 2BD, 1BC, 2EF (2đ) Chuyển đổi các hệ cơ số 10 sang cơ số 2: 7, 9, 21, 27 (2đ) Chuyển đổi các hệ cơ số 10 sang hệ Hexa: 45,125, 235, 435 (2đ) Xem chi tiết- Hệ cơ số 2: Nếu như hệ thập phân dùng 10 chữ số để ghi số thì hệ cơ số 2 chỉ dùng hai chữ số là 0 và 1 để ghi số. + Đổi một số từ cơ số 2 sang cơ số 10: + Đổi một số từ cơ số 10 sang cơ số 2: - Hệ cơ số bất kỳ: - Vấn đề cộng, trừ, nhân, lũy thừa số lớn (hoặc kết quả được số lớn) được xem xét riêng ở một chuyên đề (sau khi được trang bị dữ liệu kiểu string). B. BÀI TẬP:Bài tập 8.1:Gọi abcd là một số có 4 chữ số. Hãy lập chương trình tìm tất cả các số có 4 chữ số thỏa mãn biểu thức: abcd=(ab + cd)2 Ví dụ: số 2025=(20 + 25)2. Thuật toán: Kiểm tra tất cả các số có bốn chữ số theo các cách sau: - Tách lấy hai số đầu, hai số sau của số có bốn chữ số để kiểm tra. - Kiểm tra các trường hợp có thể của mỗi chữ số. Bài tập 8.2:Viết chương trình cho nhập hai số tự nhiên N và k. Hãy cho biết chữ số thứ k tính từ trái sang phải trong số N là số mấy? nếu k lớn hơn độ dài của N hoặc k bằng 0 thì thông báo không tìm được. Ví dụ 1: Với N và k được nhập: N = 65932, k = 4 Kết quả tìm được là 3. Ví dụ 2: Với N và k được nhập: N = 65932, k = 10 Kết quả tìm được là -1 ( k lớn hơn độ dài số N). Bài tập 8.3:Một số được gọi là số bậc thang nếu biểu diễn thập phân của nó có nhiều hơn một chữ số đồng thời theo chiều từ trái qua phải, chữ số đứng sau không nhỏ hơn chữ số đứng trước. Viết chương trình in ra các số bậc thang trong đoạn [n1, n2] với n1, n2 được nhập từ bàn phím. |