- Telekom mobilszolgáltatások
- A lapkakészlet és az akku különbözteti meg a Motorola Edge 60 és Edge 60 Pro-t
- Android alkalmazások - szoftver kibeszélő topik
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Három új órát hozott a Samsung, a csúcson az Ultra
- Samsung Galaxy S21 és S21+ - húszra akartak lapot húzni
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- Google Pixel topik
- One mobilszolgáltatások
- Xiaomi 14T - nem baj, hogy nem Pro
Hirdetés
Köszönjük a sok biztatást, támogatást! Egy rövid ideig még féláron tudsz hirdetni, előfizetni!
-
Mobilarena
Új hozzászólás Aktív témák
-
Rover623
félisten
Ha parázol hogy lebux, használd ezt:
{ez a rutin a
Str szövegben megadott számot a
Base számrendszer (max. 16-os) szerint megpróbalja számmá alakitani.
Ha a string érvénytelen karaktert is tartalmaz, akkor Code = -1 és a visszaadott érték a hibát okozó karakter poziciója }
Const
_Nums : Array [0..16] Of Char = '0123456789ABCDEF'#0;
Function StrToNum (Str: PChar; Base : Word; Var Code: Integer): LongInt;
Var
I : Word; {mindenfélére...pl. ciklusváltozónak is jó lesz}
Mul, {az aktuális szorzó}
Work : LongInt; {ebben gyűlik a végeredmény}
Pozicio : PChar;
Begin
Code := 0; {legyünk optimisták...nincs hiba}
Work := 0; {0-ról indul az eredmény}
I := StrLen (Str); {milyen hosszú a szöveg?}
If (I > 0) Then Begin
{ha legalább egy karakter van a szövegben, akkor hajrá!}
Mul := 1; {a híres-neves nulladik hatvány}
StrUpper (Str); {nagybetűsítünk}
Dec(I); {merthogy a PChar 0-tól indexelődik}
For I := I Downto 0 Do Begin {végigmászunk a karaktereken}
Pozicio := StrScan (_Nums, Str [ i ] ); {beazonosítjuk a bütüt}
If (Pozicio = Nil) Then Begin
{ha nincs az engedélyezett karakterek között, akkor hiba van!}
Code := - 1;
StrToNum := I;
Exit; {hibával kilépünk}
End;{if}
{$IFOPT Q+}
{$DEFINE OVER}
{$Q-}
{$ENDIF}
Inc (Work, Mul * (Pozicio - _Nums) );{megnöveljük az eredményt}
Mul := Mul * Base;{ hatványozunk :) }
{$IFDEF OVER}
{$Q+}
{$UNDEF OVER}
{$ENDIF}
End; { For }
End; {ha volt valami a Str-ben}
StrToNum := Work;{nyilvánossá tesszük a végeredményt}
End; { StrToNum }
{a leggyakoribb függények, az általános rutint hívják meg}
Function HexaVal (HexaString: PChar; Var Code: Integer): LongInt;
Begin
HexaVal := StrToNum (HexaString, 16, Code);
End; { HexaVal }
Function BinaryVal (BinaryString: PChar; Var Code: Integer): LongInt;
Begin
BinaryVal := StrToNum (BinaryString, 2, Code);
End; { BinaryVal }
Function DecimalVal (DecimalString: PChar; Var Code: Integer): LongInt;
Begin
DecimalVal := StrToNum (DecimalString, 10, Code);
End; { DecimalVal }
Mivel rengeteg programozó van a világon, nem állítom hogy más nem oldotta meg hasonlóképpen, de vmivel kisebb az esélye...
[Szerkesztve] -
doc
nagyúr
csak azt áruld el nekem, hogy akkor mi az amit tanultatok? mert ha csak átugrod a forrásban a neked ismeretlen részeket, már akkor is megkapod a választ...
na jó, most utoljára:
FUNCTION Hex2Dec(Hex:STRING):LongInt;
VAR T1,T2,Dec : LongInt;
Error : Boolean;
BEGIN
Error:=False;
T1:=0;T2:=0;DEC:=0;
FOR T1:=1 TO LENGTH(Hex) DO
BEGIN
T2:=Length(Hex)-T1;
CASE Hex[T1] OF
'0' : DEC:=DEC+0;
'1' : DEC:=DEC+Power(16,T2);
'2' : DEC:=DEC+2*Power(16,T2);
'3' : DEC:=DEC+3*Power(16,T2);
'4' : DEC:=DEC+4*Power(16,T2);
'5' : DEC:=DEC+5*Power(16,T2);
'6' : DEC:=DEC+6*Power(16,T2);
'7' : DEC:=DEC+7*Power(16,T2);
'8' : DEC:=DEC+8*Power(16,T2);
'9' : DEC:=DEC+9*Power(16,T2);
'A','a' : DEC:=DEC+10*Power(16,T2);
'B','b' : DEC:=DEC+11*Power(16,T2);
'C','c' : DEC:=DEC+12*Power(16,T2);
'D','d' : DEC:=DEC+13*Power(16,T2);
'E','e' : DEC:=DEC+14*Power(16,T2);
'F','f' : DEC:=DEC+15*Power(16,T2);
ELSE Error:=True;
END;
END;
Hex2Dec:=Dec;
IF Error THEN Hex2Dec:=0;
END; { Hex2Dec }
amúgy ebben mi olyan van amit nem tanultatok? -
VladimirR
nagyúr
a unit az gyakorlatilag egy fuggvenykonyvtar (vagy minek hijjak), abban mindenfele fuggvenyek, eljarasok vannak
programozasi tanulmanyaid mar egeszen biztos talalkoztal unit-okkal, ha massal nem, akkor a crt, vagy meginkabb a system unit-tal
ahhoz, hogy a bennuk levo eljarasokat, fuggvenyeket hasznalni tudd, ezeket a unit-okat ''be kell hivni'' a kodba, amire a uses kulcsszo (vagymi) hasznal (system unit eseteben ez nem szukseges, az alapbol bennefoglaltatik)
az olyan fuggvenyek, eljarasok, mint peldaul az inc, dec, val, round, write, writeln, read, readln mind a system unit-ban vannak, de pl a crt unit legismertebb fuggvenyevel, a clrscr-rel is egeszen biztos talalkoztal mar
ahhoz, hogy egy clrscr-t hasznalni tudj, a program elejen be kell irnod, hogy uses crt;
ugyanigy, hogy a fenti mathcvt.tpu unit-ot hasznalni tudd, meg kell azt hivnod a kovetkezo modon: uses mathcvt
ezutan elerhetove valnak a kovetkezo fuggvenyek:
Function Power(X,Y:WORD):LongInt; - hatvanyozas
Function Bin2Dec(Bin:String):LongInt; 2-esbol 10-esbe
Function Bin2Hex(Bin:String):String; - 2-esbol 16-osba
Function Dec2Bin(Dec:LongInt):String; - 10-esbol 2-esbe
Function Dec2Hex(Dec:LongInt):String; - 10-esbol 16-osba
Function Hex2Bin(Hex:String):String; - 16-osbol 2-esbe
Function Hex2Dec(Hex:String):LongInt; - 16-osbol 10-esbe
Function Oct2Dec(Oct:String):LongInt; - 8-asbol 10-esbe
Function Dec2Oct(Dec:LongInt):String; - 10-esbol 8-asba
az elso fuggveny-nek ket parametert adsz meg, x a hatvanyalap, y a hatvany foka - a visszateresi ertek x^y lesz
a tobb fuggveny egy bemeno parametert kap (ami 10-esbol konvertalasnal longint, egyebkent string), s a megfelelo szamrendszerben levo ertekkel ter vissza (tizesbe konvertalasnal longint, egyebkent string)
tehat:
uses mathcvt;
begin
wrinteln( dec2hex( 255 ) );
wrinteln( dec2hex( 'FF' ) );
end.
ez ket sort fog kiirni, az elsoben FF lesz (ez a 255 16-os szamrendszerben), a masodikban pedig 255 (ez az FF 10-es szamrendszerben)
[Szerkesztve]
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Kingston FURY Renegade G5: Adatok villámgyorsan
- Telekom mobilszolgáltatások
- Battlefield 6
- btz: Internet fejlesztés országosan!
- Vezetékes FEJhallgatók
- Luck Dragon: Asszociációs játék. :)
- A lapkakészlet és az akku különbözteti meg a Motorola Edge 60 és Edge 60 Pro-t
- Már az MSI is figyel arra, hogy mit vár egy átlagfelhasználó a klaviatúrájától
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Gaming notebook topik
- További aktív témák...
- Telefon felvásárlás!! iPhone X/iPhone Xs/iPhone XR/iPhone Xs Max
- BESZÁMÍTÁS! ASUS Z390 i7 9700 32GB DDR4 240GB SSD 1TB HDD RTX 2070 Super 8GB NZXT H510 ADATA 600W
- HIBÁTLAN iPhone 14 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3017, 100% Akkumulátor
- Gamer Notebook! Lenovo Ideapad Gaming3! I7 10750H / GTX 1650Ti / 8GB DDR4 / 256GB SSD
- Lenovo T14 Thinkpad G2 FHD IPS i5-1145G7 vPro 4.4Ghz 16GB 512GB SSD Intel Iris XE Win11 Pro Garancia
Állásajánlatok
Cég: FOTC
Város: Budapest