program v pascale
program v pascale
neviem ci to tu patri ale potrebujem zdrojak vytvoreny v pascale ktory bude premienat cisla medzi dvojkovou , 10tkovou a 16stkovou sustavou
Tuto mas pervod z desiatkovej do dvojkovej sustavy:
Podla tohoto ak mas viac skusenosti, tak spravis aj ine prevody.. Mne sa prave nechceprogram prevodz10na2;
var desiatkove,vys,zvint,i:integer;
zvstr,zv,dvojkove:string;
begin
write('Zadaj cislo v dekadickej sustave: ');
readln(desiatkove);
vys:=desiatkove;
repeat
zvint:=vys mod 2;
vys:=vys div 2;
str(zvint,zvstr);
zv:=zv+zvstr;
until vys=0;
for i:=length(zv) downto 1 do
begin
zvstr:=zv;
dvojkove:=dvojkove+zvstr;
end;
write(desiatkove,' v desiatkovej sustave=',dvojkove,' v dvojkovej sustave');
readln;
end.
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
tu máš šestnástkovú, zachvýľku ti sem pridám aj z dvojkovej do desiatkovejpidrik napísal:zdar, z 10kovej do 2kovej mi to ide len naopak to nejake halusky pocita....a tu sesnastkovu nevim vobec , can u help me?
Kód: Vybrať všetko
program dectohex;
uses crt;
var sestnast,desat:integer;
vysledok,pomocna:string;
begin
write('Zadaj cislo v 10 sustave: ');
readln(desat);
vysledok:='';
while desat>0 do begin
sestnast:=desat mod 16;
case sestnast of
10: vysledok:='A'+vysledok;
11: vysledok:='B'+vysledok;
12: vysledok:='C'+vysledok;
13: vysledok:='D'+vysledok;
14: vysledok:='E'+vysledok;
15: vysledok:='F'+vysledok;
0..9: begin
str(sestnast,pomocna);
vysledok:=pomocna+vysledok;
end;
end;
desat:=desat div 16;
end;
writeln(vysledok);
repat until keypressed;
end.//edit:
Kód: Vybrať všetko
program bintodec;
var dva:string;
desat,I,mocnina,cislo:integer;
begin
desat:=0;
mocnina:=1;
write ('Zadaj dvojkove cislo: ');
readln(dva);
for I:=length(dva) downto 1 do begin
str(dva[I],cislo);
desat:=desat+cislo*mocnina;
mocnina:=mocnina*2;
end;
writeln(desat);
end.Tu je môj príspevok (ale neskúšal som to [mám zapnutý Linux]):
Kód: Vybrať všetko
function toint(c: Char): Integer;
var
i: Integer;
begin
case upcase(c) of
'0'..'9': i := Integer(c) - $30;
'A'..'Z': i := Integer(c) - $37;
else i := -1;
end;
toint := i;
end;
function tochar(i: Integer): Char;
var
c: Char;
begin
case i of
0..9: c := Char(i + $30);
10..35: c := Char(i + $37);
else c := '?';
end;
tochar := c;
end;
function atoi(s: String; n: Integer): Integer;
var
r: Integer;
i: Integer;
c: Integer;
begin
if ((n < 2) OR (n > 36)) then
begin
Writeln('Vstupna sustava moze byt 2-36 (', n, ')');
exit;
end;
r := 0;
for i := 1 to length(s) do
begin
c := toint(s[i]);
if (c = -1) then
begin
Writeln(n, ' nie je cislo');
exit;
end;
if (c >= n) then
begin
Writeln('Cislica musi byt v rozsahu 1-', n-1, '(', c, ')');
exit;
end;
r := r * n + c;
end;
atoi := r;
end;
function itoa(i: Integer; n: Integer): String;
var
s: String;
begin
if ((n < 2) OR (n > 36)) then
begin
Writeln('Vystupna sustava moze byt 2-36 (', n, ')');
exit;
end;
s := '';
while i > 0 do
begin
s := tochar(i mod n) + s;
i := i div n;
end;
if s = '' then itoa := '0'
else itoa := s;
end;
function convert(n: String; f, t: Integer): String;
var
i: Integer;
begin
i := atoi(n, f);
convert := itoa(i, t);
end;
begin
Writeln('16: 29a - 10: ', convert('29a', 16, 10));
Writeln('10: 666 - 2: ', convert('666', 10, 2));
end.re
som to skusal dat dokopy vsetky tie sustavy bo mam urobit taky vacsi prevodnik medzi sustavami a pri volbe z ktorej sustavy do ktorej som pouzil case k of pricom k som dal char a ked to cele skompilujem tak mi pise dole ze Warning: Variable k does not seem to be initialized
cize zaciatok programu ide ale potom hned po zadani volby to zhavaruje a uz ma to zacina srat
cize zaciatok programu ide ale potom hned po zadani volby to zhavaruje a uz ma to zacina srat
Re: re
A čo to sem nepošleš? Možno sa niekto na to pozrie a poradí ti.pidrik napísal:som to skusal dat dokopy vsetky tie sustavy bo mam urobit taky vacsi prevodnik medzi sustavami a pri volbe z ktorej sustavy do ktorej som pouzil case k of pricom k som dal char a ked to cele skompilujem tak mi pise dole ze Warning: Variable k does not seem to be initialized
cize zaciatok programu ide ale potom hned po zadani volby to zhavaruje a uz ma to zacina srat
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
re
este to nie je celkom hotove ale tu je aspon nieco
btw este by som tam chcel dat osmickovu 
Kód: Vybrať všetko
program prevod;
uses crt;
type pole=array[1..100] of integer;
var a,i,p,u,g,desat,sestnast,mocnina,cislo:integer;
k,s:char;
b:pole;
z,f,dva,vysledok,pomocna:string;
label c;
begin
writeln('+++++ Spustil si program na prevody medzi sustavami +++++');
writeln('---------------------------------------------------------------');
writeln;
c:writeln('1: prevod z desiatkovej sustavy do dvojkovej sustavy');
writeln('2: prevod z desiatkovej do sesnastkovej sustavy');
writeln('3: prevod z dvojkovej sustavy do desiatkovej sustavy');
writeln('4: prevod z dvojkovej sustavy do sesnastkovej sustavy');
writeln('5: prevod zo sesnastkovej sustavy do dvojkovej sustavy');
writeln('6: prevod zo sesnastkovej sustavy do desiatkovej sustavy');
writeln('7: koniec');
writeln;
writeln('--------------------------------------------------------------');
writeln('Zadaj svoju volbu');
case k of
'1':begin
writeln('Zadaj cislo ');
readln(a);
repeat begin
i:=i+1;
a:=a div 2;
b[i]:= a mod 2;
p:=i;
end;
until a=0;
for i:=p downto 1 do begin
write(b[i],' ');
end;
writeln(a,' v desiatkovej sustave je ',b[i],' v dvojkovej sustave');
writeln('ak chces pokracovat v programe, stlac 1');
readln(s);
if s='1' then goto c;
end;
'2':
begin
write('Zadaj cislo ');
readln(desat);
vysledok:='';
while desat>0 do begin
sestnast:=desat mod 16;
case sestnast of
10: vysledok:='A'+vysledok;
11: vysledok:='B'+vysledok;
12: vysledok:='C'+vysledok;
13: vysledok:='D'+vysledok;
14: vysledok:='E'+vysledok;
15: vysledok:='F'+vysledok;
0..9: begin
str(sestnast,pomocna);
vysledok:=pomocna+vysledok;
end;
end;
desat:=desat div 16;
end;
writeln(desat,'v sesnastkovej sustave je',vysledok);
writeln('ak chces pokracovat v programe, stlac 1');
readln(s);
if s='1' then goto c;
end;
'3':
begin
desat:=0;
mocnina:=1;
write ('Zadaj dvojkove cislo: ');
readln(dva);
for I:=length(dva) downto 1 do begin
str(dva[i],cislo);
desat:=desat+cislo*mocnina;
mocnina:=mocnina*2;
end;
writeln(dva,'v desiatkovej sustave je',desat);
writeln('ak chces pokracovat v programe, stlac 1');
readln(s);
if s='1' then goto c;
end;
end;
repeat until keypressed;
end.-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa: