Помощь - Поиск - Пользователи - Календарь
Полная версия: Двоичный-десятичный калькулятор
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
actor
Hi.
Задача: создать Двоичный-десятичный калькулятор.(перевод из2 в 10 и наобороти действия с ними)
хотелось бы узнать есть ли в паскале числа 2-ной системы(не 1-битные)б типо чтбы сразу можно было бы переводить.
THNX
мисс_граффити
Общие вопросы по математике.
volvo
А что, если двоичных чисел в Паскале нет, то и переводить сразу нельзя?

Общие вопросы по математике.
в помощь...
actor
спасибо. особенно за оперативность.
actor
след вопрос:
где проблема в коде в строках:
...
begin
if d=2
then
begin
write('1: ');
readln(BO);{почемуто эта строка вообще пропускается}
write('2: ');
readln(BT);

...
весь код:
program kursinis;
function IntToBin(bin: integer): string;
var
bin_s: string;
begin
bin_s := '';
if bin = 0 then bin_s := '0'
else
while bin <> 0 do begin
if (bin and 1) = 1 then
bin_s := '1' + bin_s
else bin_s := '0' + bin_s;

bin := bin shr 1;
end;
IntToBin := bin_s
end;

function BinToInt(bin_s: string): longint;
var
bin, mult: integer;
i: integer;
begin
mult := 1; bin := 0;
for i := length(bin_s) downto 1 do
begin
if bin_s[i] = '1' then bin := bin + mult;
mult := mult shl 1;
end;
BinToInt := bin
end;

var
a,b,c,d,e:integer;
BO, BT: string;

begin
writeln('1. Veiksmai su desimtainiais skaiciais');{int}
writeln('2. Veiksmai su dvejetainiais skaiciais');{bin}
read(d);
if d=1 {veiksmai su desimt. skaic.}
then
begin
write('1: ');
readln(a);
write('2: ');
readln(b);
writeln('veiksmai:');
writeln('1. +');
writeln('2. -');
writeln('3. *');
readln(e);
if e=1
then c:=a+b
else if e=2 then c:=a-b
else if e=3 then c:=a*b
else writeln('klaida, turejote ivesti 1,2 arba 3');
writeln('atsakymo pavidalas:');
writeln('1. desimtainis skaicius');
writeln('2. dvejetainis skaicius');
readln(e);
if e=1
then writeln('ats.: ',c)
else if e=2 then writeln('ats.:',IntToBin©){v kode natkogo znaka netu tam IntToBin( c )}
else writeln('klaida, turejote ivesti 1 arba 2');
read(e);{rezultatui pamatyti}
end
else{veiksmai su dvejet. skaic.}
begin
if d=2
then
begin
write('1: ');
readln(BO);
write('2: ');
readln(BT);
writeln('veiksmai:');
writeln('1. +');
writeln('2. -');
writeln('3. *');
readln(e);
if e=1
then c:=BinToInt(BO)+BinToInt(BT)
else if e=2 then c:=BinToInt(BO)-BinToInt(BT)
else if e=3 then c:=BinToInt(BO)*BinToInt(BT)
else writeln('klaida, turejote ivesti 1,2 arba 3');
writeln('atsakymo pavidalas:');
writeln('1. desimtainis skaicius');
writeln('2. dvejetainis skaicius');
readln(e);
if e=1
then writeln('ats.: ',c)
else if e=2 then writeln('ats.:',IntToBin©)
else writeln('klaida, turejote ivesti 1 arba 2');
read(e);{rezultatui pamatyti}
end
else writeln('klaida, turejote ivesti 1 arba 2')
end;
end.


при вводе "2" появляется 1: 2: а хотелось бы сперва 1: а потом уже после ввода двоич. числа 2:
Артемий
begin
if d=2
then
begin
writeln('1: ');
readln(BO);
write('2: ');
readln(BT);

Так?
actor
Цитата(Артемий @ 2.06.2007 9:58) *

begin
if d=2
then
begin
writeln('1: ');
readln(BO);
write('2: ');
readln(BT);

Так?


Ничего не изменилось, по прежнему не могу ввести 1-ое двоичнное число
мисс_граффити
а никак нельзя:
1) пользоваться тегами
2) перевести на русский
volvo
Цитата
begin
writeln('1. Veiksmai su desimtainiais skaiciais');{int}
writeln('2. Veiksmai su dvejetainiais skaiciais');{bin}
readLn(d);

Почему - уже объяснялось, ищи по форуму...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.