Stránka sa načítava, prosím čakajte…
© 2005 – 2024 Roman Horváth, všetky práva vyhradené. Dnes je 3. 5. 2024.
Dátum: 11. 4. 2019, pred piatimi rokmi
Tento projekt nadväzuje na projekt z cvičenia 4. apríla 2019, len v ňom boli vykonané nasledujúce zmeny:
V súbore prevody_form_init.pp
boli odstránené vlastnosti ReadOnly := True;
z nasledujúcich prvkov:
editBinarne1
,editBinarne2
,editInvertovane1
,editInvertovane2
,editSucet
,- a
editRozdiel
.
Boli zmenené prevody z:
IntToBin((‑cislo1) xor 255, 8)
na
IntToBin((‑cislo1) xor 1023, 10)
.
Bolo zmenené telo reakcie btnPrevedClicked
na:
~
var binarne1, binarne2: string; begin memoInformacie.Text := ''; addMemoLine('Prvé zadané číslo: ', editBinarne1.Text); addMemoLine('Druhé zadané číslo: ', editBinarne2.Text); if cislo1 < 0 then binarne1 := IntToBin(--cislo1, 10) else binarne1 := IntToBin(cislo1, 10); if cislo2 < 0 then binarne2 := IntToBin(--cislo2, 10) else binarne2 := IntToBin(cislo2, 10); addMemoLine('Očakávaný tvar prvého zadaného čísla: ', binarne1); addMemoLine('Očakávaný tvar druhého zadaného čísla: ', binarne2); if editBinarne1.Text = binarne1 then addMemoLine('Zadaný tvar prvého čísla sa zhoduje.', '') else addMemoLine('Ľutujem, zadaný tvar prvého čísla sa nezhoduje.', ''); if editBinarne2.Text = binarne2 then addMemoLine('Zadaný tvar druhého čísla sa zhoduje.', '') else addMemoLine('Ľutujem, zadaný tvar druhého čísla sa nezhoduje.', ''); end;
Bonus
Prevody.pas
program prevody; const table: array [1 .. 16] of char = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'); var desiatkove: integer; sestnastkove: string; function IntToHex(number: integer): string; var output: string = ''; begin repeat output := table[1 + (number mod 16)] + output; number := number div 16; until number = 0; IntToHex := output end; function HexToInt(hex: string): integer; var number, power, i, j: integer; begin number := 0; power := 1; for i := length(hex) downto 1 do begin if (hex[i] >= 'a') and (hex[i] <= 'z') then hex[i] := char(ord(hex[i]) - 32); for j := 1 to 16 do if hex[i] = table[j] then break; if j >= 16 then begin writeln('Chyba'); break end; number := number + (power * (j - 1)); power := power * 16 end; HexToInt := number end; begin write('Zadaj desiatkové číslo: '); readln(desiatkove); writeln('Šestnástkovo: ', IntToHex(desiatkove)); write('Zadaj šestnástkové číslo: '); readln(sestnastkove); writeln('Desiatkovo: ', HexToInt(sestnastkove)) end.