Kezdőoldal » Számítástechnika » Programozás » Pascal-ban egy függvényt...

Pascal-ban egy függvényt szeretnék írni, ami a kapott számban felcseréli a számjegyeket. Miként lehet ezt megoldani?

Figyelt kérdés

Matematikai műveletekkel kellene megoldani a számjegyek cseréjét és nem string-be konvertálással, "val", "str", "inttostr", "strtoint" eljárásokkal...

Ezeket a fentebbieket szeretném kizárni és csak számolással, matematikai műveletekkel szeretném a cserét megoldani, van erre valamilyen lehetőség?



2015. ápr. 15. 17:58
1 2 3
 1/30 anonim ***** válasza:
Mit jelent az, hogy felcseréli a számjegyeket? Mármint 2 jegyűnél értem, de mondjuk az 12345-nél mi a felcserélt alak?
2015. ápr. 15. 18:21
Hasznos számodra ez a válasz?
 2/30 A kérdező kommentje:

Kétjegyű számokra gondoltam.

45 -> 54

stb...

Többjegyűek esetén pedig pl. megfordítaná.

12345

54321

Egyenlőre elég lene nekem a kétjegyűekre, érdekelne, hogy matematikai műveletekkel mit lehetne elérni...

Azért nem írok semmit, mert nem tudom mit kellene írni...

A függvény deklarációját le tudnám írni és a begin és end; párosokat.

2015. ápr. 15. 18:35
 3/30 anonim ***** válasza:

Semmi értelme matekozni.

Fel kell cserélni a jegyeket sorban az elejétől a közepéig.

2015. ápr. 15. 18:40
Hasznos számodra ez a válasz?
 4/30 anonim ***** válasza:
Két számjegyű esetén: x = n%10*10 + n/10;
2015. ápr. 15. 18:59
Hasznos számodra ez a válasz?
 5/30 anonim ***** válasza:

Kétjegyűek esetén:

1. Kiszeded a tízes és egyes helyiértéken levő számokat (egészosztás és maradékképzés művelet a barátod.

2. Újraalakítod a számot, a szerepek felcserélésével (szorzás, osztás a barátod).

2015. ápr. 15. 19:01
Hasznos számodra ez a válasz?
 6/30 anonim ***** válasza:

int Reverse(int x)

{

int lenght = 0;

for(int i = x; i != 0; i /= 10, ++lenght)

;

int num = 0;

for(int j = 0; j < lenght; ++j)

{

num += (x % 10) * pow(10, lenght - j - 1);

x /= 10;

}

return num;

}

2015. ápr. 15. 19:05
Hasznos számodra ez a válasz?
 7/30 A kérdező kommentje:
Köszönöm szépen, ezek alapján már biztosan össze tudom rakni. :-)
2015. ápr. 15. 19:16
 8/30 anonim ***** válasza:
#5 vagyok, persze a 2. pontban "szorzás és összeadás"-t akartam írni.
2015. ápr. 15. 19:17
Hasznos számodra ez a válasz?
 9/30 A kérdező kommentje:

#4. válaszoló megoldását megvalósítottam.

A C kódos válaszoló megoldása is hasonló (mármint az elv), de hááát abba beletörne a bicskám, nem nagyon értem hogy mi az a length és a for ciklusok miért kellenek, illetve valószínűleg azért, mert többjegyűekre optimalizált.


Program Szamjegy_Cssere;


var

szam : integer;

Function csere (szam : integer) : integer;

var

x : integer;

begin

x := szam mod 10*10 + szam div 10;

csere := x;

end;

begin

Write('Kerem a szamot : ');

readln(szam);

writeln('a felcserelt szam: ',csere(szam));

ReadLn;

end.

2015. ápr. 15. 19:27
 10/30 A kérdező kommentje:
Szerintem amit #3 válaszoló írt, azt csak string-gel lehetne megoldani...
2015. ápr. 15. 19:29
1 2 3

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!