Kezdőoldal » Számítástechnika » Programozás » Pascalan hogyan lehet megszámo...

Pascalan hogyan lehet megszámolni egy szám számjegyeit?

Figyelt kérdés

2013. nov. 2. 16:51
 1/5 zsomkovacs ***** válasza:

Két módszer is van. Az első az, hogy megszámolod, hogy hányszor kell 10-el osztani, hogy 0-t kapj:


Function jegyek(x: LongInt): Byte;

Var

n: LongInt;

s: Byte;

Begin

If x=0 Then

jegyek:=1

Else

Begin

s:=0;

n:=x;

While n<>0 Do

Begin

s:=s+1;

n:=Trunc(n/10);

End;

jegyek:=s;

End;

End;


A második pedig logaritmusazonosságok alapján megy:


Function jegyek(x: LongInt): Byte;

Begin

If x=0 Then

jegyek:=1

Else

jegyek:=Round(Ln(x)/Ln(10));

End;

2013. nov. 2. 17:01
Hasznos számodra ez a válasz?
 2/5 coopper ***** válasza:

Akkor még én a két módszer mellé irnék egy harmadikat is :


Átalakitod szöveggé a számot, és megnézed a szöveg hosszát :


str (x,s);

writeln (len (s));


ahol x a szám és s egy string változó.


Sok sikert.

Üdv.

2013. nov. 2. 17:08
Hasznos számodra ez a válasz?
 3/5 A kérdező kommentje:
Köszönöm szépen! Megpróbálom.
2013. nov. 2. 17:31
 4/5 zsomkovacs ***** válasza:
coopper: Majdnem jó. Negatív számoknál le kell vonni belőle 1-et. Az én második példámnál pedig jegyek:=Round(Ln(Abs(x))/Ln(10)+1) a helyes parancs. Amit először írtam, hibás értéket ad, negatív számokra meg elszáll. Bocsánat, fáradt vagyok.
2013. nov. 2. 17:35
Hasznos számodra ez a válasz?
 5/5 coopper ***** válasza:

Ha negativ számok is játszanak, akkor egyszerübb a szám abszolult értékét átalakitani szöveggé, igy nem kell feltételhez kötni :


str (abs (x),s);


Sok sikert.

Üdv.

2013. nov. 2. 18:00
Hasznos számodra ez a válasz?

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!