TlačiťTlačiť Slovenčina English Hľadať RSS

© 2005 – 2024 Roman Horváth, všetky práva vyhradené. Dnes je 3. 5. 2024.

Stránka sa načítava, prosím čakajte…

Dátum: 11. 4. 2019, pred piatimi rokmi

Tento projekt nadväzuje na ikonaprojekt 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,
  • 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.