Prevod z 10tkovej do 2jkovej sústavy – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Prevod z 10tkovej do 2jkovej sústavy – Pascal – Fórum – Programujte.comPrevod z 10tkovej do 2jkovej sústavy – Pascal – Fórum – Programujte.com

 

Michal
~ Anonymní uživatel
683 příspěvků
12. 4. 2016   #1
-
0
-

Ahojte, chcel by som urobiť prevod z 10tkovej do dvojkovej...čítal som si tu už nejaké príspevky a mám už predstavu.....no neviem presne či to je správne,,,,,
Chcem spraviť repeat cyklus kde sa bude ako prvé deliť zo zvyškom napr. už spomínané číslo 123 - to si dám ako premennú "a" a to budem deliť - modom,,,,, mod zo zvyškom,,,no neviem ako ten zvyšok zapisovať,,,,kam a ani ako ho zapisovať ? :( no a keď tento najdôležitejší zapís budem mať,,,spravím dalšie delenie a to bez zvyškové,,,,teda príklad,,,,,,,,123:2= 61,,,potom 61:2= 30 a tak,,,,,,a skončí to "until a<2" helpenete mi ako to mám zapísať tie zvyšky do nejakej premennej ? 

Nahlásit jako SPAM
IP: 188.121.181.–
Michal
~ Anonymní uživatel
683 příspěvků
12. 4. 2016   #2
-
0
-

Už to mááám :D 
chcem sa len pocvhálit :) 

program Project1;
uses crt;
var
  ans:string;
  a,c:integer;
  b:char;
begin
 writeln('Zadajte cislo ');
 read(a);
 clrscr;
 if a=0 then write ('0 v desiatkovej = 0 v dvojkovej')
    else
 writeln('Zvolili ste si cislo: ', a);
 readln;
 writeln('Cislo bude prevedene do desiatkovej sustavy. ');

 ans:='';
         repeat
               c:=(a mod 2);
               if c>0 then ans:=('1'+ans)
               else ans:=('0'+ans);
         a:=(a div 2);
         writeln(ans);
         until a<2 ;

 //writeln(ans);

 readkey;
end.
                    
Nahlásit jako SPAM
IP: 188.121.181.–
Michal
~ Anonymní uživatel
683 příspěvků
13. 4. 2016   #3
-
0
-

+ naopak,,,prevod z 2jkovej do 10tkovej,,,,je to vporiadku ? či sa tam dá niečo aj vylepšiť ? 

program Project1;
uses crt;
var cislo:string ; //dvojkove
    i,d:longint;   //
    a:integer;
begin
  writeln('Zadaj cislo vo dvojkovej sustave ');
  delay(1500);
  clrscr;
  read(cislo); //Dvojkové číslo
  writeln('Zadali ste cislo : ',cislo);
  d:=length(cislo);
  a:=0;
  for i:=1 to d do
      begin
        if cislo[i]='0' then a:=2*a
                        else a:=2*a+1;
      end;
  writeln(cislo, 'v dvojkovej sustave je  ', a ,'  v desiatkovej');
 readkey;
end.
       
Nahlásit jako SPAM
IP: 188.121.181.–
Mircosoft+1
Věrný člen
13. 4. 2016   #4
-
0
-

První program:

- Převádí do dvojkové soustavy, tak proč říká, že číslo převede do desítkové?

- if a=0 then write... else writeln... Nevím, jak je to myšlené. Jestli chceš jenom vypsat upozornění a pak v každém případě spustit převod, máš to dobře. Jestli chceš celý zbytek programu při nulovém čísle vynechat (tj. schovat do toho else), musel by být obalený do begin a end, jinak se provede jenom první příkaz za else (v tomhle případě to writeln).

- Cyklus until a<2 skončí předčasně a nezapočítá poslední jedničku. Podmínka má být a<1.

Druhý program:

- Převodní algoritmus je v pořádku.

- Zadávání je takové divné: nejdřív na vteřinu a půl problikne výzva k zadání čísla a potom celá obrazovka zčerná. Vyhodil bych to Delay a Clrscr.

- Dá se psát přímo for i:=1 to length(cislo) a ušetřit proměnnou d. To jen tak pro informaci, chyba to není.

A jen tak pro zajímavost: čísla jsou v počítači uložená ve dvojkovém tvaru. Převody do lidsky čitelné dvojkové soustavy a zpět se dají velice pohodlně dělat pomocí bitových operací: shl, shr (posun o určitý počet bitů doleva nebo doprava), and a or (když místo booleanu dostanou čísla, provedou příslušnou operaci na všech jeho bitech). V desítkové soustavě se násobení deseti udělá připsáním nuly na konec čísla neboli posunem o cifru doleva. Ve dvojkové soustavě se násobení dvěma udělá taky připsáním nuly na konec čísla neboli posunem o cifru (bit) doleva: číslo*2 = číslo shl 1. Dělení: číslo div 2 = číslo shr 1. Zbytek: číslo mod 2 = číslo and 1 (zbytek po dělení desítkového čísla desítkou je poslední cifra, zbytek po dělení dvojkového čísla dvojkou je poslední bit).

Nahlásit jako SPAM
IP: 212.79.106.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
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, 15 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

Moderátoři diskuze

 

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