PDA

View Full Version : Các bác pro giúp em bài tập pascal với ạ



minkevi
30-09-2010, 10:48
viết chương trình đổi từ số thập phân sang số nhị phân và ngược lại

lehang_gb1
30-09-2010, 16:32
Đổi từ hệ thập phân sang nhị phân thì dễ rồi, chỉ dùng các phép div và mod thôi

minkevi
02-10-2010, 20:36
bác nào pro viết hộ em cái đy! em mà biết viết thì em hỏi làm rỳ! GIúp em với

toilatoi1
02-10-2010, 23:33
var h:longint;
procedure chuyen(n:longint);
begin
if n=0 then exit;
chuyen(n div 2);
write(n mod 2);
end;
BEGIN
readln(h);
if h=0 then writeln(0) else
chuyen(h);
readln
END.

lehang_gb1
07-10-2010, 10:06
chương trình chuyển từ hệ 10 sang hệ 2 đây bạn ah


Var S:string;
N,i,k,h:integer;
Begin
write('Nhap vao so N:');
Readln(N);
S:='';
while N <>0 do
Begin
k:=N mod 2;
if k=0 then S:='0'+S else S:='1'+S;
N:=N div 2;
End;
write(S);
Readln
End.



[=========> Bổ sung bài viết <=========]

Còn đây là chương trình chuyển từ hệ nhị phân sang hệ thập phân
Mình sử dụng kết hợp kiểu mảng và kiểu xâu. Ban đầu nhập vào xâu nhị phân sau đó đổi sang mảng lưu trữ các số 0 và 1 tương ứng các phần tử xâu. Mục đích đổi sang mảng để tính. Và bạn hãy nhớ lại công thức đổi, có sử dụng lũy thừa của 2 đó. Sau đó bạn đọc chương trình sẽ hiểu. Lẽ ra mình làm theo chương trình con nhưng thôi dùng kết hợp vòng For cũng được.

[=========> Bổ sung bài viết <=========]



Var S:string;
A:array[1..100] of integer;
N,i,k,gt:integer;
Begin
write('Nhap vao xau nhi phan');
Readln(S);
For i:=1 to length(s) do if S[i]='1' then A[i]:=1 else A[i]:=0;
N:=0;
For i:=1 to length(S) do
Begin
gt:=1;
For k:=1 to length(S)-i do gt:=gt*2;
N:=N+A[i]*gt;
End;
write('So thap phan la:',N);
Readln
End.