BÀI TOÁN CHUYỂN ĐỔI CƠ SỐ: Nhập cơ số vào, số vào và cơ số ra, đổi 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.
Trang 1BÀI TOÁN CHUYỂN ĐỔI CƠ SỐ: Nhập cơ số vào, số vào và cơ số ra, đổi
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
HƯỚNG DẪN GIẢI:
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)
CHƯƠNG TRÌNH CHI TIẾT:
6/9/2013-/var/www/html/tailieu/data_temp/document/bai-toan-chuyen-doi-co-so-tho 13707160463856/ncy1369381652.doc
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;
end