Ciselne sustavy – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Ciselne sustavy – Pascal – Fórum – Programujte.comCiselne sustavy – Pascal – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
devilfish0
Stálý člen
4. 10. 2009   #1
-
0
-

Zdravim, potreboval by som poradit. Mam program na premenu cislo zo sustavy do inej sustavy ale nejako mam problem s retazcom ktory ma byt vystupom, jednoducho my ho nevypise ale ked zadam kokretnu suradnicu vystupneho stringu tak ju vypise.



program system_convertor;
uses crt;
var number:string;
sys_ori,sys_new,decimal:integer;
cycle:char;

function to_decimal(sustava:integer;cislo:string):integer;
var i,vysledok,pom,stupen:integer;
begin
vysledok:=0;
stupen:=1;
for i:=Length(cislo) downto 1 do
begin
if ord(cislo[i])<=ord('9') then
begin
pom:=ord(cislo[i])-ord('0');
end
else if ord(cislo[i])>=ord('a') then
begin
pom:=ord(cislo[i])-ord('a')+10;
end;
pom:=pom*stupen;
stupen:=stupen*sustava;
vysledok:=vysledok+pom;
end;
to_decimal:=vysledok;
end;

function from_decimal(sustava:integer;cislo:integer):string;
var vysledok:string;
pom,i,j:integer;
znak:char;
begin
i:=0;
while cislo<>0 do
begin
writeln('Som v cykle!');
i:=i+1;
pom:=(cislo)mod(sustava);
cislo:=(cislo)div(sustava);
if pom<=9 then vysledok[i]:=chr(pom+ord('0'))
else if pom>=10 then vysledok[i]:=chr(ord('a')+(pom-10));
writeln(vysledok[i]);
writeln(vysledok);
end;
for j:=1 to (i)div(2) do
begin
znak:=vysledok[i-j+1];
vysledok[i-j+1]:=vysledok[j];
vysledok[j]:=znak;
end;
writeln(vysledok);
from_decimal:=vysledok;
end;

begin
clrscr;
repeat
writeln('Zadajte do programu cislo ktore chcete zamenit');
readln(number);
writeln('V akej je sustave?');
readln(sys_ori);
writeln('Do akej ho chces dat?');
readln(sys_new);
decimal:=to_decimal(sys_ori,number);
number:=from_decimal(sys_new,decimal);
if sys_ori=sys_new then writeln('A co chces prekladat ked su rovnake? Je to ',number)
else
begin
write('Vysledne cislo je ');
writeln(number);
end;

writeln('Chces to vsetko zopakovat? 1 = ano / 0 = nie');
cycle:=readkey;
until cycle=('0');
readln;
end.

Nahlásit jako SPAM
IP: 188.121.172.–
Reklama
Reklama
Mircosoft+1
Věrný člen
4. 10. 2009   #2
-
0
-

Délka řetězce je uložena v jeho nultém znaku. Když vkládáš znaky přímo na určité pozice, délka zůstává pořád stejná (nula) a počítač si myslí, že je řetězec prázdný a nic nezobrazí.

Takže máš dvě možnosti:
1) Buď pro přidávání číslic do výsledného řetězce používat standardní postup (retezec:=retezec+neco nebo retezec:=neco+retezec), pak se délka nastavuje automaticky.
2) Nebo dál vkládat znaky přímo, ale nakonec ještě délku ručně nastavit (retezec[0]:=chr(pocet_cifer);).

Nahlásit jako SPAM
IP: 93.91.144.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
devilfish0
Stálý člen
4. 10. 2009   #3
-
0
-

JJ uz mi to ide. Diky za rychlu odpoved! :smile1:

Nahlásit jako SPAM
IP: 188.121.172.–
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, 11 hostů

Podobná vlákna

Číselné soustavy — založil Polarski

Číselné řady — založil Láďa

Ciselne kombinovanie — založil XANI

Moderátoři diskuze

 

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