Prevod z desiatkovej do dvojkovej sústavy – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Prevod z desiatkovej do dvojkovej sústavy – Delphi – Fórum – Programujte.comPrevod z desiatkovej do dvojkovej sústavy – Delphi – Fórum – Programujte.com

 

kubala
~ Anonymní uživatel
4 příspěvky
7. 6. 2007   #1
-
0
-

prosím vás vie mi niekto poradit ako ma vyzerat program, ktorý prevedie číslo z desiatkovej do dvojkovej sústavy
súrne to potrebujem

Nahlásit jako SPAM
IP: ...–
Jura
~ Anonymní uživatel
637 příspěvků
7. 6. 2007   #2
-
0
-

Například takto, nebo dalšímožnost je to ukládat do pole odzadu a odpustit si volání ReerseString.



function Dec2Bin(num: Integer): String;
begin
Result := '';
repeat
Result := Result + char(num mod 2+ord('0'));
num := num div 2;
until num = 0;
Result := ReverseString(Result);
end;

Nahlásit jako SPAM
IP: ...–
kubala
~ Anonymní uživatel
4 příspěvky
7. 6. 2007   #3
-
0
-

mate niekto iny navrh?

Nahlásit jako SPAM
IP: ...–
michal0
Newbie
7. 6. 2007   #4
-
0
-

kubala píše:#
# mate niekto iny navrh?

a čo sa ti nepáči na riešení ktoré dal Jura? Tých riešení je neurekom, môžeš to spraviť napríklad aj rekurzívne do jediného riadku:
function TForm1.dectobin(desat:integer):string;

begin
if desat>0 then result:=dectobin(desat div 2)+inttostr(desat mod 2);
end;

Nahlásit jako SPAM
IP: ...–
kubala
~ Anonymní uživatel
4 příspěvky
8. 6. 2007   #5
-
0
-

a dalo by sa to spravit aj ako procedura na tlacidlo(button)?
mam na formulary edit tlacidlo a label na vysledok, tak aby to vypocitalo po stlaceni tlacidla

Nahlásit jako SPAM
IP: ...–
Jura
~ Anonymní uživatel
637 příspěvků
8. 6. 2007   #6
-
0
-

To kubala:
To je vtip?



function Dec2Bin(num: Integer): String;
begin
Result := '';
repeat
Result := Result + char(num mod 2+ord('0'));
num := num div 2;
until num = 0;
Result := ReverseString(Result);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Caption := Dec2Bin(StrToInt(Edit1.Text));
end;

Nahlásit jako SPAM
IP: ...–
kubala
~ Anonymní uživatel
4 příspěvky
8. 6. 2007   #7
-
0
-

sorry ale nejak mi to nefunguje

Nahlásit jako SPAM
IP: ...–
Pavel Synek0
Super člen
8. 6. 2007   #8
-
0
-

No jenom takhle zkopírovat to tam asi nepude:D
Zaprvý musíš nastavit v object inspectoru událost onclick buttonu na Button1Click a zadruhý zkontroluj názvy komponent (label1 vs Label1).
Jo a eště se asi musí dát ta hlavička funkce Dec2Bin někam do toho programu, ale tim si nejsem jistej v delphi už sem dlouho nedělal.

Nahlásit jako SPAM
IP: ...–
inetMark
~ Anonymní uživatel
1 příspěvek
8. 6. 2007   #9
-
0
-

Myslim, ze ked nemas zaklady z Delphi, tak by si mal najprv ziskat tie a potom ist na takto 'narocne' veci.

Nahlásit jako SPAM
IP: ...–
michal0
Newbie
8. 6. 2007   #10
-
0
-

Otvor delphi, všetko čo tam je písané zmaž a zkopíruj tam toto:

unit Unit1;


interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
function dectobin(vstup:integer):string;
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
label1.caption:=dectobin(strtoint(edit1.text));
end;

function TForm1.dectobin(vstup:integer):string;
begin
if vstup>0 then result:=dectobin(vstup div 2)+inttostr(vstup mod 2);
end;

end.

potom na formulár vlož button, label a edit. Klikni raz na button, v object inspectore klikni na záložku events a v riadku OnClick z menu vyber Button1Click aby si priradil tlačidlu procedúru. Ak už toto nezvládneš tak fakt pochybujem že si na túto stránku prišiel sám bez pomoci rodičov

Nahlásit jako SPAM
IP: ...–
Jurdo
~ Anonymní uživatel
1 příspěvek
8. 6. 2007   #11
-
0
-

kubala píše:#
# prosím vás vie mi niekto poradit ako ma vyzerat program, ktorý prevedie číslo z desiatkovej do dvojkovej sústavy#
#súrne to potrebujem

program Sustava;
uses crt;
Function VypocetMocniny(number,mocnitel : integer) : integer;
var
k,i : integer;
begin
k := number;
For i := 1 To mocnitel - 1 Do
begin
k := k * number;
end;
IF mocnitel = 0 THEN
k := 1;
VypocetMocniny := k;
end;

Function UrcenieCifier(Var Pole : array of real;number : longint) : integer;
var
index : integer;
module : longint;
i : integer;
module2 : integer;
str_number : string;
numeral_count : integer;
begin
module := 1;
module2 := 1;
Str(number,str_number);
numeral_count := length(str_number);
For index := 1 To numeral_count Do
begin
module := module * 10;
Pole[index] := number mod module;
IF index >= 2 THEN
begin
For i := 1 To index - 1 Do
begin
Pole[index] := Pole[index] - Pole[i];
end;
module2 := module2 * 10;
Pole[index] := (Pole[index]/module2);
end;
IF Pole[index] <> 0 THEN
Pole[index] := Round(Pole[index] - 0.5);
end;
UrcenieCifier := numeral_count;
end;

Function IsBinary(number : integer) : Boolean;
var
IsTrue : Boolean;
a,temp : integer;
Pole1 : Array [1..100] of real;
begin
temp := UrcenieCifier(Pole1,number);
IsTrue := True;
For a := 2 To temp + 1 Do
begin
IF Not((Pole1[a] = 1) or (Pole1[a] = 0)) THEN
IsTrue := False;
end;
IsBinary := IsTrue;
end;
var
Pole1 : array [1..100] of real;
number,zvysok : longint;
x,temp : integer;
temp2 : integer;
binary : boolean;
zapis : string;
Cstr : string;
Cstr1 : string;
znak : char;
Cstr2 : string;
index : integer;
dlzka : integer;
menu : integer;
begin
clrscr;
writeln('Vyber aky prevod chces spravit');
writeln('1. Z dvojkovej sustavy do desiatkovej');
writeln('2. Z desiatkovej susatvy do dvojkovej');
writeln('3. Koniec');
readln(menu);
IF menu = 1 THEN
begin
Repeat
clrscr;
writeln('Zadaj cislo');
readln(number);
Until IsBinary(number);
temp2 := UrcenieCifier(Pole1,number);
For x := 2 To temp2 + 1 Do
begin
IF Pole1[x] = 1 THEN
begin
temp := temp + VypocetMocniny(2,x - 2);
end;
end;
writeln(temp);
readln;
end;
IF menu = 2 THEN
begin
writeln('Zadaj cislo');
readln(number);
Repeat
zvysok := number mod 2;
number := number div 2;
Str(zvysok,zapis);
Cstr := zapis;
Cstr1 := Cstr1 + Cstr;
Until number = 0;
dlzka := length(Cstr1);
For index := dlzka downto 1 Do
begin
Cstr2 := Cstr2 + Cstr1[index];
end;
writeln(Cstr2);
readln;
end;
IF menu = 3 THEN
end.


To je zaruceny prevod do dvojkovej a jednotkovej sustavy funguje na 100%

Nahlásit jako SPAM
IP: ...–
Duch
13. 6. 2007   #12
-
0
-

Phoenix píše:#
# No jenom takhle zkopírovat to tam asi nepude:D#
#Zaprvý musíš nastavit v object inspectoru událost onclick buttonu na Button1Click a zadruhý zkontroluj názvy komponent (label1 vs Label1).#
#Jo a eště se asi musí dát ta hlavička funkce Dec2Bin někam do toho programu, ale tim si nejsem jistej v delphi už sem dlouho nedělal.



Ja len ze, je jedno ci napise Label1, LABEL1, label1, alebo aj LaBeL1, pretoze delphi na to neberie ohlad (pokial nejde o nazov funkcie, alebo tak).

Nahlásit jako SPAM
IP: ...–
sneakfast0
Newbie
13. 6. 2007   #13
-
0
-

laco797 píše:#
#Ja len ze, je jedno ci napise Label1, LABEL1, label1, alebo aj LaBeL1, pretoze delphi na to neberie ohlad (pokial nejde o nazov funkcie, alebo tak).



i u funkci a procedur to je jedno:)

Nahlásit jako SPAM
IP: ...–
Phoenix
~ Anonymní uživatel
150 příspěvků
13. 6. 2007   #14
-
0
-

sneakfast píše:#
#

laco797 píše:#
#Ja len ze, je jedno ci napise Label1, LABEL1, label1, alebo aj LaBeL1, pretoze delphi na to neberie ohlad (pokial nejde o nazov funkcie, alebo tak).

#
##
#i u funkci a procedur to je jedno:)


Ajo:D sem zapomněl že delphi je case-insensitive.

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

Podobná vlákna

Prevod z 10 do 2 sústavy — založil Eddy777

Prevod z hexadecimalnej sustavy — založil street punk

Ciselne sustavy — založil devilfish

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý