Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (48.98 KB, 1 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
<b>BÀI TOÁN CHUYỂN ĐỔI CƠ SỐ: Nhập cơ số vào, số vào và cơ số ra, đổi</b>
số vào ở cơ số vào thành số ra ở cơ số ra? có kiểm tra dữ liệu khi
nhập và cho phép nhập lại. Cơ số vào và cơ số ra có thể nhận giá
trị từ 2 đến 36.
Ví dụ 1: cơ số vào : 16
số vào: 1f
cơ số ra: 2
số ra : 11111
ví dụ 2: cơ số vào : 8
số vào: 149
--> dữ liệu sai và cho phép nhập lại.
<b>HƯỚNG DẪN GIẢI:</b>
1. Chuyển số vào (sv) ở cơ số vào (csv) thành số tp ở cơ số 10.
2. Chuyển số tp ở cơ số 10 thành số ra (sr) ở cơ số ra (scr).
<b>CHƯƠNG TRÌNH CHI TIẾT:</b>
uses crt;
const chuso:string='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var sv,sr:string;
csv,csr,du,i,k:0..36;
tp:longint;
kt:boolean;
begin
repeat
clrscr;
write('Nhap co so vao:');readln(csv);
write('Nhap so vao:');readln(sv);
for i:=1 to length(sv) do sv[i]:=upcase(sv[i]);
kt:=true;
for i:=1 to length(sv) do
if pos(sv[i],chuso)-1>=csv then kt:=false;
until (2<=csv)and(csv<=36)and kt;
repeat
write('Nhap co so ra:');readln(csr);
until (2<=csr)and(csr<=36);
{doi sang co so 10}
tp:=0;
for i:=1 to length(sv) do
begin
k:=pos(sv[i],chuso)-1;
tp:=tp*csv+k;
end;
{doi sang co so ra}
sr:='';
while tp >0 do
begin
du:=tp mod csr;
sr:=chuso[du+1]+sr;
tp:=tp div csr;
end;
writeln('Doi sang co so ',csr,':',sr);
readln;