Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Autor | Správa |
---|
Registrovaný: 11.09.08 Prihlásený: 02.12.08 Príspevky: 5 Témy: 3 | 3 |
Prosím Vás, poradil by mi niekto, kde robím chybu?
Tento program na prevody...
Kód: program prevody;
uses crt;
var vic,dec,sustava1,zbytok,sustava,y,i:longint; x:integer; vysledok,cislo:string; znak:char;
begin clrscr; writeln('Napiste cislo: '); readln(cislo); writeln('Zadaj sustavu, v ktorej je toto cislo'); readln(sustava1); writeln('Zadajte sustavu, do ktorej chcete cislo prevadzat'); {od 2 do 200} readln(sustava); if sustava<2 then sustava:=2; y:=1; x:=0; for i:=1 to length(cislo) do begin znak:=cislo(.length(cislo)-x.); if ord(znak)<58 then vic:=48 else vic:=55; dec:=dec+(ord(znak)-vic)*y; y:=sustava1*y; x:=x+1; end; while dec>0 do begin zbytok:=dec mod sustava; dec:=dec div sustava; if zbytok<10 then vysledok:=chr(48+zbytok)+vysledok else vysledok:=chr(55+zbytok)+vysledok; end; writeln('Vami zadane cislo vyzera v ',sustava,'-kovej sustave takto: '); writeln(vysledok); end.
...som chcel spraviť ako podprogram - funkciu: Kód: uses crt;
var vic,dec,sustava1,zbytok,sustava,y,i:longint; x:integer; vysledok,cislo,u:string; znak,klaves:char;
FUNCTION prevod(sustava1,sustava:longint; cislo:string):string; var x:integer; i,y:longint; vic,dec,zbytok:longint; vysledok:string; znak:char;
begin if sustava<2 then sustava:=2; y:=1; x:=0; for i:=1 to length(cislo) do begin znak:=cislo(.length(cislo)-x.); if ord(znak)<58 then vic:=48 else vic:=55; dec:=dec+(ord(znak)-vic)*y; y:=sustava1*y; x:=x+1; end; while dec>0 do begin zbytok:=dec mod sustava; dec:=dec div sustava; if zbytok<10 then vysledok:=chr(48+zbytok)+vysledok else vysledok:=chr(55+zbytok)+vysledok; end; prevod:=vysledok; end; .. ale potom hlavny program: Kód: BEGIN clrscr; write('Napiste cislo: '); readln(cislo); write('Zadaj sustavu, v ktorej je toto cislo: '); readln(sustava1); write('Zadajte sustavu, do ktorej chcete cislo prevadzat: '); {od 2 do 200} readln(sustava); u:=prevod(sustava,sustava1,cislo); writeln('Vami zadane cislo vyzera v ',sustava,'-kovej sustave takto: ',u); readln; END.
vypisuje uplnu inu hodnotu ako ten prvý program bez podprogramu(kt. ju vypisuje spravne)..
napr:
5(10tkova sustava) by mal byť dvojkovej 10110
ale funkcia piše vysledok 5
asi viem, kde by mohla byť chyba, skusim to ešte poskušať sam, ale pre istotu sa pýtam.. dakujem
|
|
Registrovaný: 19.09.06 Prihlásený: 05.01.25 Príspevky: 749 Témy: 31 | 31 Bydlisko: Ružomberok&... |
Kód: uses crt;
var vic,dec,sustava1,zbytok,sustava,y,i:longint; x:integer; vysledok,cislo,u:string; znak,klaves:char;
FUNCTION prevod(sustava1,sustava:longint; cislo:string):string; var x:integer; i,y:longint; vic,dec,zbytok:longint; vysledok:string; znak:char;
begin if sustava<2 then sustava:=2; dec:=0; ////////////////////////////////////////////////////////////////////////////// y:=1; x:=0; for i:=1 to length(cislo) do begin znak:=cislo(.length(cislo)-x.); if ord(znak)<58 then vic:=48 else vic:=55; dec:=dec+(ord(znak)-vic)*y; y:=sustava1*y; x:=x+1; end; vysledok:=''; /////////////////////////////////////////////////////////////////////////////////////////// while dec>0 do begin zbytok:=dec mod sustava; dec:=dec div sustava; if zbytok<10 then vysledok:=chr(48+zbytok)+vysledok else vysledok:=chr(55+zbytok)+vysledok; end; prevod:=vysledok; end;
BEGIN clrscr; write('Napiste cislo: '); readln(cislo); write('Zadaj sustavu, v ktorej je toto cislo: '); readln(sustava); write('Zadajte sustavu, do ktorej chcete cislo prevadzat: '); {od 2 do 200} readln(sustava1); u:=prevod(sustava,sustava1,cislo); writeln('Vami zadane cislo vyzera v ',sustava1,'-kovej sustave takto: ',u); readln; END.
mal si tam myslim prehodene nacitavanie sustavy v hl. programe, nevynulovany dec a neprazdny retazec vysledok.
|
|
Registrovaný: 11.09.08 Prihlásený: 02.12.08 Príspevky: 5 Témy: 3 | 3 |
diki.. funguje
|
|
Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v Assembler, C, C++, Pascal, Java | 0 | 433 | 19.12.2014 13:18 Styracoz | | v Assembler, C, C++, Pascal, Java | 4 | 2456 | 01.03.2018 8:02 MTK | | [ Choď na stránku: 1, 2 ] v Assembler, C, C++, Pascal, Java | 40 | 1572 | 11.12.2016 22:08 viki | | v Assembler, C, C++, Pascal, Java | 2 | 1154 | 09.03.2007 14:08 misolax | | v Assembler, C, C++, Pascal, Java | 6 | 778 | 08.01.2009 17:45 majka090 | | v Assembler, C, C++, Pascal, Java | 0 | 749 | 03.05.2009 12:35 ebb | | v Kôš | 1 | 30 | 06.11.2018 14:38 werwest | | v Assembler, C, C++, Pascal, Java | 5 | 950 | 18.10.2008 19:02 redog | | v Assembler, C, C++, Pascal, Java | 7 | 667 | 09.10.2011 21:30 F3RY | | v Assembler, C, C++, Pascal, Java | 11 | 1326 | 07.04.2007 16:50 programator | | v Assembler, C, C++, Pascal, Java | 19 | 3116 | 30.04.2007 19:54 nikita | | v Assembler, C, C++, Pascal, Java | 7 | 875 | 14.05.2011 20:04 F3RY | | v Assembler, C, C++, Pascal, Java | 2 | 617 | 24.06.2010 20:17 KatjushaMan | | v Assembler, C, C++, Pascal, Java | 1 | 400 | 18.06.2013 13:36 BX | | v Assembler, C, C++, Pascal, Java | 1 | 481 | 21.12.2017 23:45 magic | | v Assembler, C, C++, Pascal, Java | 3 | 396 | 16.05.2012 22:49 nBXXL |
|