Kezdőoldal » Számítástechnika » Programozás » Pascal. Osztható e egy szám...

Pascal. Osztható e egy szám 3-mal?

Figyelt kérdés

Ez ugyan egyszerű, de vannak megkötések:

A számnak 3 vagy több jegyűnek kell lennie.

És a programhoz a 3-mal oszthatósági szabályt kell alkalmazni, tehát egy bekért szám számjegyeinek összegét kell elosztani 3-mal, nem maga a számot. Sikerült is, viszont csak 4 számjegyig működőképes. Ötlet, mivel tudnám bármennyi számjegyű számról megállapítani?


2014. márc. 24. 22:00
1 2
 1/14 A kérdező kommentje:

Jelenleg itt tartok:

program project1;

uses crt;

var j,k,l,m,i:longint;


begin

Writeln('Kerem a szamot');

readln(i);

if i < 99 then begin

writeln('A szam kisebb 100-nal!');

readln;

halt;

end;


j:=i mod 10;

i:=i div 10;

k:=i mod 10;

i:=i div 10;

l:=i mod 10;

i:=i div 10;

m:=i mod 10;


if ((j+k+l+m) mod 3)=0 then writeln ('A szam oszthato 3-mal')

else writeln ('A szam NEM oszthato 3-mal');

readln;

end.

2014. márc. 24. 22:00
 2/14 anonim ***** válasza:
Hát nézd, amit a j, k, l, m változókkal csinálsz, eléggé motorikus nem? Szervezhetnéd ciklusba. :)
2014. márc. 24. 22:06
Hasznos számodra ez a válasz?
 3/14 A kérdező kommentje:

pl.

for f:=1 to n

n helyére egy a bekért szám számjegyeinek a darab száma kellene hogy legyen

de hogyan számolom meg hány számjegy van? vagy menjen el 1 től 100 ig oszt csőh, max fölösbe fut egy picit?

meg nem is nagyon értem hogy mit és hogy kellene ciklusba rakni

2014. márc. 24. 22:17
 4/14 Tengor ***** válasza:

x legyen a szám. Csináld addig, amíg x nem egyjegyű: x értéke legyen a számjegyeinek összege.

Ha végzett a ciklus nézd meg, hogy x 3-e, 6-e, 9-e. Így gyakorlatilag csak összeadás, és összehasonlítás műveleteket használsz.

2014. márc. 24. 22:21
Hasznos számodra ez a válasz?
 5/14 anonim ***** válasza:

Erre a legegyszerűbb módszer:

-Jegyzed meg a szám utolsó számjegyét (ami gyakorlatilag a tizes maradék)

-Ezt a számjegyet hagyd el a számból (tízzel osztás)

-Ismételd addig, amíg a számod nem nulla.

2014. márc. 24. 22:23
Hasznos számodra ez a válasz?
 6/14 A kérdező kommentje:

Tengor ötletét sikerült megcsinálnom:


program harom;

uses crt;

var j,k,l,m,i:longint;


begin

Writeln('Kerem a szamot');

readln(i);

if i < 99 then begin

writeln('A szam kisebb 100-nal!');

readln;

halt;

end;


repeat

i:=i div 10;

until i<10 ;

if i=9 then writeln('A szam oszthato 3-mal!')

else if i=6 then writeln('A szam oszthato 3-mal!')

else if i=3 then writeln('A szam oszthato 3-mal!')

else writeln('A szam NEM oszthato 3-mal!');

readln;

end.


viszont ez nem az oszhatósági szabályt használja, muszály lenne a számjegyek összegét megszereznem.


Megpróbálom Wampa ötletét is.

2014. márc. 24. 22:32
 7/14 anonim ***** válasza:

Régen tanultam a pascalt, remélem, hogy még nem kopott meg a tudásom:

Program feladat1;

var szam: longint;

var osszeg: integer;

begin

write('szam: ');

Readln(szam);

osszeg := 0;

if(szam div 100 <> 0) then begin

while(szam <> 0) do begin

osszeg := osszeg + szam mod 10;

szam := szam div 10;

end;

writeln('a szamjegyek osszege: ', osszeg);

if(osszeg mod 3 = 0) then

writeln('oszthato 3-al')

else

writeln('nem oszthato 3-al');

end else

writeln('nincs argumentum');

readln();

end.

2014. márc. 24. 22:48
Hasznos számodra ez a válasz?
 8/14 A kérdező kommentje:

Köszönöm Wampa!!!

Így sikerült! :)

Itt a végeredmény:


program harom3;

uses crt;

var k,i:longint;


begin

Writeln('Kerem a szamot');

readln(i);

if i < 99 then begin

writeln('A szam kisebb 100-nal!');

readln;

halt;

end;

k:=0;

repeat

k:=k+(i mod 10);

i:=i div 10;

until i<1;

writeln(k);

if (k mod 3)=0 then writeln('A szam oszthato 3-mal!')

else writeln('A szam NEM oszthato 3-mal!');

readln;

end.

2014. márc. 24. 22:48
 9/14 A kérdező kommentje:

hjam1029

Neked is köszi, hasonlót dobtál össze mint én, de elkéstél ;)

2014. márc. 24. 22:49
 10/14 anonim ***** válasza:
Egy kicsit. :)
2014. márc. 24. 23:00
Hasznos számodra ez a válasz?
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!