Kezdőoldal » Számítástechnika » Programozás » Kilences számrendszerben...

Kilences számrendszerben szeretnék felírni bármilyen számot, Pascal-ban miként kell ezt megoldani?

Figyelt kérdés
Bármilyen számrendszert lehet alkotni, ezt még tanultam, kettes számrendszer esetén értem is az elméletet, de miként működne ez kilences számrendszerben? Mivel az elméletet sem tudom, ezért neki sem tudok kezdeni, valaki tudna ötletet adni?

2015. ápr. 11. 10:41
1 2
 11/14 anonim ***** válasza:

*sóhajt* Ez érdekes lesz, de megpróbálok segíteni. Van ez a néhány sor:


repeat

if d mod 2 = 0 then eredmeny := eredmeny + '0' else eredmeny := eredmeny + '1';

d := d div 2;

until d = 0;

WriteLn(ReverseString(eredmeny));


Ebben van a kulcsa az egésznek. Először is nézzük, hogy alakítasz át egy számot kettesbe papíron. Elosztod 2-vel, a maradékot leírod. Addig teszed, amíg el nem jutsz 0-hoz. Ezután a maradékokat FORDÍTOTT SORRENDBEN írod le, és megvan a számod binárisban. Megsúgom, azért 2-vel kell osztani, mert 2-es számrendszerbe alakítasz. Tehát ha 9-esbe akarsz, akkor 9-el kell osztani.


Most nézd meg a saját programodat. Ez mit teszte le? Hogy a maradék 0-e vagy annál nagyobb. Ez működik, ha csak 0 és 1 lehet a maradék, de ha 0, 1, 2, ... , 8, akkor már egy kcisit kevésbé. Ennek megfelelően alakítsd át.



És arra, amit #7 írt: Valóban, te gondolkodgatsz, de kicst fej nélkül, nekem úgy tűnik, nem értelmezed a kódot, mert amit én írtam, az nem éppen asztrofizika, rájöhettél volna szeritnem magadtól is.

2015. ápr. 11. 12:08
Hasznos számodra ez a válasz?
 12/14 A kérdező kommentje:

Nem probléma, hogy jeleztem: véletlenül benne felejtettem a kettővel való osztást az átírt kódban és ha ezt átírom, tökéletesen működik? :-)



A kötekedést tartsd meg annak, aki csak kérdez és egyetlen betűt nem ír le csak agresszívkodik hogy kész kódot kér, a házit azonnal oldják meg neki :-)


program project1;

uses sysutils,strutils;

var

d, maradek : longint;

eredmeny : string;

begin

Write('Kerem az atalakitando szamot: ');

ReadLn(d);

eredmeny := '';

repeat

maradek := d mod 9;

if maradek > 0 then eredmeny := eredmeny + inttostr(maradek) else eredmeny := eredmeny + '0';

d := d div 9;

until d = 0;

WriteLn(ReverseString(eredmeny));

ReadLn;

end.


Most már meg vagy nyugodva?

2015. ápr. 11. 12:33
 13/14 anonim ***** válasza:
Én tökéletesen nyugodt vagyok, csak természetemből fogva szemétkedő és ironikus. Viszont elismerem, azt a jelzést nem úgy értelmeztem, ahogy kéne. Mindenesetre azért hálás vagyok neked, hogy jókedvűen és nem idegeskedve, kötekedően javítottál ki. További kellemes estét!
2015. ápr. 11. 19:37
Hasznos számodra ez a válasz?
 14/14 A kérdező kommentje:
Én is reagálhattam volna kissé lágyabban.
2015. ápr. 11. 19:43
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!