Napisz program w PASCALU, ktory wczyta liczbe w systemie binarnym, zamieni ją na dziesiętny. Wyświetli ją.Program musi sprawdzić czy liczba jest całkowita i dodatnia. Na koniec zapyta czy powtorzyc proces, jezeli tak(T) to powtórzy, jeżeli nie(N) to zakonczy program.
MIło widziane komentarze;) potem będzie mi łatwiej to zrozumieć;)
Program binarny; uses CRT; label start; var liczba: string; dlugosc, potega, i:integer; dziesietna:real; odp:char; begin start: clrscr; Writeln('Podaj liczbe w systemie binarnym:'); readln(liczba); dlugosc := length(liczba); dziesietna := 0; for i := 1 to dlugosc do begin if liczba[i] = '1' then begin dziesietna := dziesietna + exp((dlugosc - i)*ln(2)); end; end; write('Ta liczba w systemie dziesientnym to: '); Write(trunc(dziesietna)); Writeln; if (round(trunc(dziesietna))=trunc(dziesietna)) and (dziesietna > 0) then Writeln('Liczba jest calkowita i dodatnia.'); Writeln; Writeln('Powtorzyc proces? [T/N]'); odp := readkey; if (odp = 't') or (odp = 'T') then goto start else halt; readln; end.
Program binarny;
uses CRT;
label start;
var
liczba: string;
dlugosc, potega, i:integer;
dziesietna:real;
odp:char;
begin
start:
clrscr;
Writeln('Podaj liczbe w systemie binarnym:');
readln(liczba);
dlugosc := length(liczba);
dziesietna := 0;
for i := 1 to dlugosc do begin
if liczba[i] = '1' then begin
dziesietna := dziesietna + exp((dlugosc - i)*ln(2));
end;
end;
write('Ta liczba w systemie dziesientnym to: ');
Write(trunc(dziesietna));
Writeln;
if (round(trunc(dziesietna))=trunc(dziesietna)) and (dziesietna > 0) then
Writeln('Liczba jest calkowita i dodatnia.');
Writeln;
Writeln('Powtorzyc proces? [T/N]');
odp := readkey;
if (odp = 't') or (odp = 'T') then goto start else halt;
readln;
end.