IXA Tananyag

You might also like

You are on page 1of 23

Tartalom

Alapok.....................................................................................................................................2
rtkads.............................................................................................................................2
Aritmetikai opertorok........................................................................................................2
Dntsi utasts...................................................................................................................4
Ciklusok..............................................................................................................................6
1.A for ciklus szmols ciklus.....................................................................................6
2.A while s do-while ciklusok elltesztel - s htultesztel ciklus.........................6
A.Ciklusban felttel (szmols nlkl).......................................................................7
B.Ciklusban felttel szmolssal.................................................................................8
Elemi algoritmusok...............................................................................................................10
1.2 szm rtknek cserje (a, b)......................................................................................10
2.3 szm minimuma/maximuma......................................................................................10
3.Legnagyobb kzs oszt algoritmus..............................................................................11
4.Prm algoritmus..............................................................................................................11
5.Szm lebontsa szmjegyeire.....................................................................................11
Szveges llomnyok............................................................................................................17
File elksztse, lezrsa.................................................................................................17
Gyakran alkalmazott utastsok szveges llomnyok esetn..........................................18

1
Alapok

Egyszer pldk
1.Olvass be 3 szmot. rd ki a szorzatukat.
2.Olvass be 3 szmot. rd ki a mindegyik szm 10-szerest.
3.Olvass be 2 szmot. rd ki a mindegyik szm ngyzett.
4.Olvass be 3 szmot. rd ki a mindegyik szm kbt.
5.Olvasd be Janika 4 torna jegyt. Mennyi lesz a flvi tlaga?
6.Janika ma x lejt, holnap y lejt kap. rd ki, mennyi pnze van sszesen. (x, y beolvasott
egsz szmok)
7.Olvasd be egy tglalap 2 oldalnak hosszt. Mennyi a tglalap kerlete, terlete?
8.Olvasd be egy hromszg 3 oldalnak hosszt. rd ki a terlett.

rtkads
A programok rsa sorn tbbszr elfordul, hogy egy-egy kompliklt kifejezst tbbszr
kell hasznlnunk. Megknnyti a munknkat, hogy ezeket kln vltozba tesszk.
Az rtkadst az =-vel rjuk.
Mindig az egyenlsg baloldalba kerl a jobboldal eredmnye.

rtkads sorrendje:
-jobboldal elvgzse,
-balodalba belekerl a jobboldal eredmnye.
Pl.
int a=12,b=5;
int x;
f=a/b;
x=a+b;
Az a+b kifejezs eredmnye (17) belekerl x-be.

Aritmetikai opertorok
A ngy alapmveletet a szoksos szimblumokkal (+, -, *, /) vgezzk el, valamint a
maradkos osztst a % jellel. A mvelet az oszts maradkt adja vissza, csak egsz tpus
vltozk hasznlata esetn alkalmazhat. A msik ngy mvelet mind egsz, mind vals
tagok esetn is mkdik.
A / mvelet eredmnye a vltozk tpustl fgg.

Pl.
int a=12,b=5;
float f;

2
int x;
f=a/b;
x=a/b;

A programrszlet utn az f rtke a 2.000000 vals rtk lesz, az x rtke pedig 2. Teht az
eredmny tpust az tagok tpusa dnttte el.
A mveletek precedencija a matematikban megszokott.
Megj. Gykvonst az sqrt(...) fggvnnyel vgznk. Az sqrt fggvnyt a math.h-bl
hasznljuk. A gykvons eredmnye vals (%f-el rjuk ki).
Pl.
int a=16;
printf(A gyoke: %f, sqrt(a)); // vals eredmny

Pl.
int a=16, b;
b=sqrt(a);
printf(A gyoke: %d, b); // egsz eredmny
1.Olvass be 2 egsz szmot. rd ki az egsz hnyadosukat.
2.Olvass be 2 egsz szmot. rd ki az vals hnyadosukat.
3.Olvasd be 2 egsz szmot. rd ki a velk alkothat trtek rtkeit.
4.Olvasd be Janika 3 inf jegyt s flvi jegyt. rd ki a flvi tlagt.
5.Olvasd be egy derkszg hromszg kt befogjt. rd ki az tfogjt.
6.Olvasd be egy derkszg hromszg egy tfogjt s befogjt. rd ki a msik befogt.
7.Olvasd be egy ngyzet oldalt. rd ki a ngyzet kerlett s terlett.
8.Olvass be 2 egsz szmot. rd ki az utols szmjegyeiket.
9.Olvass be 2 egsz szmot. rd ki az utols szmjegyeik sszegt.
10.Olvass be 2 egsz szmot. rd ki az utols szmjegyeik szorzatt.
11.Janika s Marika egy vre betette a pnzt a bankba. Tudva azt, hogy a kamat vi 4
szzalk, mennyi pnzk lesz sszesen? Janika, Marika pnze ismert, beolvasott
termszetes szm.
12.Egy csiga napi 2 m-t csszik. rd ki, mekkora tvolsgot tesz meg x nap alatt. (x
beolvasott)

4.Olvass be egy 2 jegy szmot. rd ki a szmjegyeit kln sorba.


5.Olvass be egy 4 jegy szmot. rd ki a szmjegyeit kln sorba.

3
Dntsi utasts

1.Olvass be 2 szmot. Oszthat-e 7-el az sszegk vagy nem?


2.Olvass be 3 szmot. Oszthat-e a kzps szmmal a msik 2 szm szorzata?
3.Olvass be 2 szmot. Pratlan-e az sszegk vagy nem?
4.Olvass be 2 szmot. Oszthat-e az sszegk 5-tel vagy nem?
5.Olvass be 3 szmot. Oszthat-e a szorzatuk 7-tel vagy nem?
6.Olvass be egy szmot. 8 az utols szmjegye?
7. Olvass be egy szmot. 1-re vgzdik-e vagy nem?
8.Olvass be 3 szmot. Egyenl-e 3-mal a szorzatuk utols szmjegye vagy nem?
9.Olvass be egy vet. Szkv-e vagy nem?
10.Olvass be kt szmot. Ugyanarra a szmjegyre vgzdnek-e vagy nem?
11.Olvass be egy 3 jegy szmot. Tkrszm-e a beolvasott szm? (Tkrszm a szm
megegyezik a fordtottjval).
12.Olvass be kt szmot. Irasd ki a vals hnyadosukat. (0-val nem lehet osztani!!!)
13.Olvass be egy szmot. Irasd ki a ngyzetgykt. (Negatv szmbl nem lehet gykt
vonni!!!)
14.Olvass be egy szmot. 50 s 80 kztt van-e a szm vagy nem?
15.Olvass be egy szmot. Hromjegy, 7-tel oszthat-e a szm vagy nem?
16.Olvass be egy szmot. 4 jegy, 5-re vgzd-e a szm vagy nem?
17.Olvass be 3 szmot (a, b, c, a<c). Benne van-e b az (a, c) intervallumban?
18.Olvass be egy 2 jegy szmot, s egy szmjegyet. Benne van-e a beolvasott szmjegy a szmban?
19.Olvass be egy ngyjegy szmot (a), majd egy szmjegyet (k). Benne van-e a k az a-ban?
20.Olvass be egy 3 jegy szmot. Nvekv sorrendben vannak-e a szmjegyei vagy nem?
21.Olvass be egy 3 jegy szmot. Szigoran cskken sorrendben vannak-e a szmjegyei
22.Olvass be egy egyjegy, termszetes szmot. Prm-e a beolvasott szm vagy nem? (Prm
egyjegy szmok: 2, 3, 5, 7)
27.Olvass be 3 szmot. Szigoran nvekv sorrendben vannak-e vagy nem?
28.Olvass be 2 termszetes szmot. rd ki a kisebbiket.
29.Olvass be 2 termszetes szmot. rd ki a nagyobbat.
30.Olvass be 2 termszetes szmot. rd ki a kisebbik utols szmjegyt.
31.Olvass be 2 termszetes szmot. rd ki a nagyobbik utols szmjegyt.
32.Olvass be 2 termszetes szmot. rd ki azt a szmot, melynek nagyobb az utols
szmjegye.
33.Olvass be 2 termszetes szmot. rd ki azt a szmot, melynek kisebb az utols
szmjegye.
34.Olvass be 4 szmot. Cskken sorrendben vannak-e vagy nem?
35.Olvass be 2 szmot. Mi nagyobb: az sszegk vagy a szorzatuk?
36.Olvass be egy termszetes szmot. rd ki a neki megfelel napot. Helytelen szm esetn
rj ki hibazenetet.
Pl. 3 Szerda
11 Hibs nap!
0 Hibs nap!

4
23.Olvass be 2 termszetes szmot. 5-re vgzdik-e a kisebbik vagy nem?
24.Olvass be 2 termszetes szmot. Oszthat-e 8-cal a nagyobbik vagy nem?
25.Olvass be 2 termszetes szmot. 3-ra vgzdik-e a nagyobbik vagy nem?
26.Olvass be 2 termszetes szmot. Pros-e a nagyobbik vagy nem?

12.Olvass be hrom szmot. Alkothat-e a hrom szm hromszget?


13.Olvasd be egy hromszg hrom oldalnak hosszt. Derkszg-e a hromszg vagy
nem?
14.Olvasd be egy hromszg hrom oldalnak hosszt. Egyenlszr-e a hromszg vagy
nem?
15.Olvasd be egy hromszg hrom oldalnak hosszt. Egyenloldal-e a hromszg vagy
nem?
vagy nem?

5
Ciklusok
Ciklusokat akkor runk, amikor ugyanazokat a mveleteket akarjuk tbbszr egyms utn
elvgeztetni a gppel. Erre hrom lehetsgnk van C-ben:
-for ciklussal,
-a while(elltesztel),
-do ... while(htultesztel) ciklussal.

1.A for ciklus szmols ciklus


A for ciklus mindig egy vltoztl fgg ciklusvltoz.

A for ciklus szintaktikja:


for (utasts1; felttel; utasts2)
{
utastsok; [break;]
}
Ahol:
utasts1: kezdfelttel, egy vltozt belltunk a kezdrtkre
felttel: logikai kifejezs, a ciklus addig fut, amg a kifejezs rtke igaz - a ciklusvltzt a
vgrtkkel hasonltjuk
utasts2: ltalban ezzel lptetjk a fut vltozt.
break: ezzel az utastssal ugrunk ki a ciklusbl.
A for-ban (a ciklusokban) szerepl utastsokat ciklusmagnak nevezzk.

Itt semmi sem ktelez, brmelyik utasts kihagyhat.


Pl.
-az 1 s 20 kztti szmok kirsa: for (i=1; i<=20; i=i+1);
-az 1 s 10 kztti pros szmok kirsa: for (i=0; i<=10; i=i+2);
- vgtelen ciklus: for (i=0; ;i=i+2);
-vgtelen ciklus: for ( ; ; );

For ciklust akkor hasznlunk, ha:


-az ismtlsek szma elre ismert (kiszmolhat), vagy
-ismerjk a kezd- s vgrtket, s a ciklusvltoz mindig ugyanannyival mdosul.

2.A while s do-while ciklusok elltesztel - s htultesztel ciklus


A while s a do-while ciklusok mindig egy feltteltl fggnek ciklusfelttel. Ha ez a
felttel igaz, akkor a ciklusmag ismtldik, ellenkez esetben kiugrunk a ciklusbl.

A while ciklus szintaktikja:


while ( felttel)
{
utastsok; [break;]
}

6
A do-while ciklus szintaktikja:
do
{
utastsok; [break;]
}
while ( felttel);

Ahol: felttel: logikai kifejezs, a ciklus addig fut, amg a kifejezs rtke igaz, s lell, ha a felttel
hamis.
A klnbsg a 2 ciklus kztt az, hogy a do-while elszr vgzi el a ciklusmagot, s csak utna
ellenriz, mg a while elszr ellenriz, aztn vgzi el a ciklusmag utastsait.

Pldk:
1.rd ki az sszes hromjegy szmot.
2.rd ki az sszes hromjegy, 4-re vgzd szmot.
3.rd ki az sszes ktjegy, 9-el oszthat szmot cskken sorrendben.
4.rd ki az sszes ngyjegy, 25-re vgzd szmot cskken sorrendben.
5.rd ki a -100 s 100 kztti 4-el oszthat szmokat.
6.rd ki a negatv, 2 jegy szmokat cskken sorrendben.

A.Ciklusban felttel (szmols nlkl)


1.Olvass be kt termszetes szmot - n, m. rd ki a az n s m kztti 7-re vgzd
szmokat.
2.Olvass be kt termszetes szmot - n, m. rd ki a az m s n kztti 5-tel vagy 6-tal
oszthat szmokat. (n, m beolvasott termszetes szmok, n<m)
3.Olvass be egy termszetes szmot - n. rd ki a az 1 s n kztti 2-re vgzd szmokat.
4.Olvass be egy termszetes szmot - n. rd ki a az 1 s n kztti 5-el oszthat szmokat.
5.Olvass be egy termszetes szmot - n. rd ki a az 1 s n kztti 4-re vagy 5-re vgzd
szmokat.
6.Olvass be egy termszetes szmot - n. rd ki a az n s 1 kztti 7-el vagy 8-al oszthat
szmokat.
13.rd ki a m s n kztti 5-re vagy 6-ra vgzd szmokat. (n, m beolvasott termszetes
szmok, n<m)
14.rd ki a 3 jegy, 4-re vgzd szmokat.
15.rd ki a 4 jegy, 8-al oszthat szmokat cskken sorrendben.

16.Olvass be egy termszetes szmot - n. rd ki a az n s 1 kztti 3-ra vgzd szmokat.


17.Olvass be egy termszetes szmot - n. rd ki a az 1 s n kztti 21-el oszthat szmokat.

7
18.Olvass be kt termszetes szmot - n, m. rd ki a az n s m kztti pratlan szmokat.
(n, m beolvasott termszetes szmok, n<m)
19.Olvass be kt termszetes szmot - n, m. rd ki a az m s n kztti 1-re vgzd
szmokat. (n, m beolvasott termszetes szmok, n<m)
20.rd ki azokat a 2 jegy szmokat, melyek 4-el oszthatak.
21.rd ki azokat a 4 jegy szmokat cskken sorrendben, melyek 6-ra vgzdnek.

B.Ciklusban felttel szmolssal


7.rd ki az sszes hromjegy, 4-re vgzd szm szorzatt.
8.rd ki a ktjegy, 9-el oszthat szmok sszegt.
9.rd ki a ngyjegy, 30-ra vgzd szmok szmt.

1.Olvass be egy termszetes szmot - n. rd ki a az 1 s n kztti 3-ra vgzd szmok


sszegt.
2.Olvass be egy termszetes szmot - n. rd ki a az 1 s n kztti 9-el oszthat szmok
szorzatt.
3.Olvass be egy termszetes szmot - n. rd ki a az 1 s n kztti pros, 7-el oszthat
szmok szmt.
4.Olvass be egy termszetes szmot - n. rd ki a az 1 s n kztti 4-re vagy 5-re vgzd
szmok szorzatt.
5.Olvass be egy termszetes szmot - n. rd ki a az n s 1 kztti pratlan szmok szmt.
6.Olvass be egy termszetes szmot - n. rd ki a az n s 1 kztti 3-.mal oszthat szmok
sszegt.
7.Olvass be kt termszetes szmot - n, m. rd ki a az n s m kztti 2-re vgzd szmok
sszegt.
8.Olvass be kt termszetes szmot - n, m. rd ki a az m s n kztti 6-tal oszthat szmok
szorzatt.
9.Olvass be kt termszetes szmot - n, m. rd ki a az m s n kztti 5-tel oszthat szmok
szmt.
13.rd ki azokat a ngyjegy szmokat, amelyek kzps 2 szmjegye egymsutni szm (a
2. szmjegy kisebb mint a 3).
14.rd ki, azon ngyjegy szmok sszegt, amelyek kzps 2 szmjegye egymsutni
szm (a 2. szmjegy kisebb mint a 3).
15.rd ki azokat a ngyjegy szmokat, amelyek kzps 2 szmjegye pros.
16.rd ki azon ngyjegy szmok szorzatt, amelyek kzps 2 szmjegye pros.
17.rd ki azokat a hromjegy szmokat, amelyek prm szmjegyre vgzdnek. (prm
szmjegyek: 2, 3, 5 7)
18.rd ki azon hromjegy szmok sszegt, amelyek prm szmjegyre vgzdnek. (prm
szmjegyek: 2, 3,5 7)
19.rd ki azon ktjegy szm sszegt, amelyek tartalmaznak pratlan szmjegyet.

8
20.rd ki azon ktjegy szmokat, amelyek mindkt szmjegye pratlan.

13.Olvass be kt termszetes szmot - n, m. rd ki a az n s m kztti pratlan szmok


szmt.
14.Olvass be kt termszetes szmot - n, m. rd ki a az m s n kztti 7-re vgzd szmok
szorzatt.
15.Olvass be egy termszetes szmot - n. rd ki a az n s 1 kztti 3-mal oszthat szmok
szmt..
16.Olvass be egy termszetes szmot - n. rd ki a az n s 1 kztti 21-re vgzd szmokat.
17.Olvass be egy termszetes szmot - n. rd ki a az 1 s n kztti 1-re vagy 2-re vgzd
szmok sszegt.
18.rd ki az n s 1 kztti 2-re vagy 3-ra vgzd szmokat.
19.rd ki a n s n kztti pratlan szmok sszegt.
20.rd ki a 0 s 2*n kztti 3-mal oszthat szmok szorzatt.
21.rd ki a n s m kztti 5-tel vagy 6-tal oszthat szmok szmt.
22.rd ki a m s n kztti pros szmok szmt.
23.rd ki a m s n kztti 7-tel oszthat szmok szorzatt.

9
Elemi algoritmusok

1.2 szm rtknek cserje (a, b)


a.Segdvltoz segtsgvel
t=a;
a=b;
b=t;
b.Segdvltoz nlkl
a=a+b;
b=a-b;
a=a-b;

1.Olvass be 2 szmot. Cserld meg ket gy, hogy nvekv sorrendben legyenek.
2.Olvass be n darab szmprt. Cserld meg s rd ki a szmpr tagjait gy, hogy cskken
sorrendben legyenek.

2.3 szm minimuma/maximuma


-felhasznlunk egy j vltozt, amibe a legkisebb/legnagyobb rtk kerl majd

{Meghat. az els 2 szm min-jt}


if (a>b)
min=a;
else
min=b;
{Hasonltuk az min-t a 3. szmmal}
if (c<min)
min=c;

Megj. 3 szm maximumt, 4 szm minimumt, maximumt ugyangy szmoljuk ki.


Pldk:
1.Olvass be 3 szmot. rd ki a maximumukat.
2.Olvass be 4 szmot. rd ki a minimumukat.
3.Olvass be 4 szmot. rd ki a maximumukat.
4.Olvass be egy 3 jegy szmot. rd ki a legkisebb szmjegyt.
5.Olvass be egy 4 jegy szmot. rd ki a legnagyobb szmjegyt.
6.Olvasd be egy hromszg 3 oldalnak hosszt. rd ki a leghosszabb s legrvidebb oldalt.
7.Olvass be egy 3 jegy termszetes szmot. rd ki a lehet legnagyobb olyan ktjegy
szmot, ami az eredeti szm szmjegyt (szmjegyeit) tartalmazza.
Pl. 429, kpernyn: 99

10
3.Legnagyobb kzs oszt algoritmus
Olvass be 2 egsz szmot (a, b). Irasd ki a l.n.k.o.-jukat.

while (a!=b)
if a>b
a=a-b
else
b=b-a

printf(Lnko: %d, a);

Megj.
1.Ha szksgnk van a ksbbiekben az eredeti szmokra, a ciklus eltt el kell mentennk ket.
2.lkkt=(a*b) / lnko
3.Kt szm relatv prm, ha az lnko-juk egyenl 1-el.

4.Prm algoritmus
Olvass be egy szmot(a), dntsd el, hogy prm-e vagy nem.
osz=0;
for (i=2; i<=a/2; i=i+1)
if (a% i = 0)
osz=osz + 1;
if (osz = 0) then
printf(prm)
else
printf(nem prm);

1.Olvass be kt szmot. Prm-e a kisebbik?


2.Olvass be hrom szmot. Prm-e a nagyobbik?
3.Olvass be egy ktjegy szmot. Prm-e a fordtottja?
4.Olvass be egy ktjegy szmot. rd ki a szm s fordtottja lnko-jt.
5.Olvass be egy hromjegy szmot. Relatv prm a szm s fordtottja?
6.Olvass be 3 szmot. rd ki a legkisebb s a legnagyobb lnko-jt.
7.Olvass be egy 4 jegy szmot. Prm-e a szm utols 2 szmjegybl alkotott szm?
Pl.a:1028, kpernyn: nem (a 28 nem prm)
a:1513, kpernyn: igen (a 13 prm)

5.Szm lebontsa szmjegyeire

while a>0 do
begin
{Feldolgozzuk a utolso szamjegyet}
...a mod 10...
{Faragunk egy szamjegyet}

11
a:=a div 10
end;

Megj.
1.Ha szksgnk van a ksbbiekben az eredeti szmra, a ciklus eltt el kell mentennk t
egy msik vltozba.
2.Ezt az algoritmust hasznljuk, ha a szm szmjegyeinek sszegt, szmjegyeinek szmt,
pros/pratlan szmjegyek sszegt/szorzatt/szmt, szm fordtottjt, stb. Akarjuk
meghatrozni.

8.Olvass be kt szmot. Egyenl-e az els szmjegyk?


9.Olvass be kt szmot. rd ki azt a szmot, melynek nagyobb az els szmjegye.
10.Olvass be kt szmot. rd ki a legels szmjegyek lnko-jt.
11.Olvass be egy szmot. Palindrom-e a szm? (palindrom szm egyenl a fordtottjval)
12.Olvass be egy szmot. rd ki a szmjegyek sszegt az els s utols szmjegy nlkl.
13.Olvass be egy szmot. rd ki azt a szmot, melyet az eredeti szm els s utols szmjegybl
kapsz.
Pl. a: 2654, eredmny: 24
14.Olvass be egy szmot. rd ki a legels 2 szmjegyt.
15.Olvass be egy szmot, majd egy szmjegyet. Megjelenik-e a szmjegy a szmban?
Pl. a: 25899, b: 9 eredmny: igen
Pl. a: 25899, b: 0 eredmny: nem
16.Olvass be egy szmot. rd ki kln sorba azokat a szmokat, melyeket az:
-els szmjegybl kapunk,
-az els 2 szmjegybl kapunk,
-...,
- az sszes szmjegybl kapunk.
Pl.78325
Eredmny:
7
78
783
7832
78325
Segtsg: fordtsd meg a szmot...
18.Olvass be egy szmot, majd egy szmjegyet - k. rd ki a szm htulrl szmolt k. szmjegyt.
Pl a: 345678, k: 3
Eredmny: 6
19.Olvass be egy szmot, majd egy szmjegyet - k. rd ki a szm k. szmjegyt.
Pl a: 345678, k: 3
Eredmny: 5
20.Olvass be egy max. 9 szmjegy termszetes szmot. Prm-e az els 2 szmjegybl alkotott
szm?
21.Olvass be egy max. 9 szmjegy termszetes szmot. Prm-e az utols 2 szmjegybl alkotott
szm?

12
22.Olvass be egy max. 9 szmjegy termszetes szmot. rd ki az els 2 szmjegybl, s az utols 2
szmjegybl alkotott szmok lnko-jt.
Pl.a: 4578961
45 s 61 lnko-ja 1
23.Olvass be egy max. 9 szmjegy termszetes szmot. rd ki, hogy az els 2 szmjegybl, s az
utols 2 szmjegybl alkotott szmok relatv prmek-e vagy nem.
24.Olvass be 2, max. 9 szmjegy termszetes szmot. rd ki az els 2 szmjegyekbl alkotott
szmok lkkt-jt.
Pl.a: 4578961
B: 4078
45 s 40 lkkt-je 360
25.Olvass be egy termszetes szmot. rd ki a szm s a szm szmjegyeinek sszegnek lkkt-jt.
26.Olvass be egy termszetes szmot. Osztja-e a legels szm az eredeti szmot?
27.Olvass be egy termszetes szmot. Osztja-e a legels 2 szmjegybl alkotott szm az eredeti
szmot?

28.Olvass be egy termszetes szmot. Helyettests minden 0-t 1-re.


29.Olvass be egy termszetes szmot. Helyettests minden 5-nl kisebb szmjegyet 7-re.
30.Olvass be egy termszetes szmot. Ird ki azt a szmot, melyet gy kapsz, hogy elhagyod az 5-nl
kisebb szmjegyeket.
31.Olvass be egy szmot, majd 2 szmjegyet c1, c2. Helyettestsd el a szmban a c1 szmjegyet c2
szmjegyre. rd ki az gy kapott szmot.
32.Olvass be 2 szmot (a,b, a<b). rd ki az a s b kztti prmeket.
33.Olvass be 2 szmot (a,b, a<b). rd ki az a s b kztti szmok fordtottjt.
34.Olvass be 2 szmot (a,b, a<b). rd ki a b s a kztti palindrmokat.
35.rd ki azokat a 3 jegy szmokat, melyekben legalbb 2 pratlan szmjegy van (lebontssal)

33.Olvass be 2 szmot (a,b, a<b). rd ki azokat az a s b kztti szmokat, amelyeknek legalbb 2


valdi osztjuk van.
34.Olvass be 2 szmot (a,b, a<b). rd ki azokat a b s a kztti szmokat, amelyeknek pontosan 3
valdi osztjuk van.
35.rd ki az els n darab legalbb 3 jegy szmot, amelyek szmjegyeinek sszege legalbb 25 (n
beolvasott).

13
Tpuspldk:

I.Sorozatok szmolsa:
rd ki a kvetkez sorozatok rtkt (n beolvasott):
1.P=5n
2.S=1*2+2+3*4+4..n
3.S=2+3+5+6+8+n

II.Olvass be n egsz szmot tpus pldk


Figyelem! Szp, rthet, vilgos beolvasst a kvetkez mdon runk:
......
write(a szamok szama:); readln(n);
for i:=1 to n do
begin
write(i, .szam:);
readln(a);
end;

1.Olvass be n egsz szmot. Hny vgzdtt 3-ra?


2.Olvass be n egsz szmot. rd ki a negatvak sszegt.
3.Olvass be n egsz szmot. rd ki a 10-nl nagyobbak indext.
4.Olvass be n egsz szmot. rd ki a 00-ra vgzdek szmt.
5.Olvass be n egsz szmot. rd ki a 6-tal vagy 7-tel oszthatak szorzatt.
6.Olvass be n szmprt szmot. rd ki azokat a szmprokat, amelyekben az egyik tag osztja
a msikat.
7.Olvass be n egsz szmprt. rd ki azoknak a szmproknak a helyt, amelyekben az esl
tag szigoran kisebb mint a msodik (cskkenek).
8.Olvass be n egsz szmot. rd ki a prm szmjegyre vgzd szmok sszegt.
9.Olvass be n egsz szmprt. rd ki a kisebbik tagok sszegt, a nagyobb tagok szorzatt.
10.Olvass be n egsz szmot. rd ki a 10 s 20 kztti szmok sorszmt.
11.Olvass be n egsz szmot. rd ki, hny tag nagyobb az els tagnl! (meg kell jegyezni
kln vltozba az els tagot)
12.Olvass be n egsz szmot. rd ki a pros tagok szmtani kzept.
13.Olvass be n egsz szmot. rd ki a pozitv tagok szmtani kzept.

14
III.Olvass be szmokat a beolvassig tipus pldk repeat until-al oldjuk meg

repeat
readln(a);
feldolgozzuk az a-t
..
until .; {mikor llunk meg?}

1.Olvass be szmokat az els negativ szm beolvassig. Ird ki a prosak sszegt, a


pratlanok szorzatt.
2.Olvass be szmprokat a (-1, -1) beolvassig. Ird ki minden szmpr szmtani kzept.

Min-max keresse
1.Olvass be n egsz szmot. Ird ki a legkisebb szmot.
2.Olvass be n szmprt. Ird ki a legkisebb szmpr-szorzatot.
3.Olvass be szmprokat a (-1, -1) beolvassig. Ird ki a legkisebb szmpr-tlagot.
4.Olvass be szmprokat a (0, 0) beolvassig. Ird ki a legnagyobb szmpr-sszeget.

15
Pldk dolgozatra

I.tpus
rd ki a kvetkez sorozatok rtkt (n beolvasott):
1.P=3n
2.S=1+23+3+43+n
3.S=1+3+5++n
4.S=3+6+9+.n
5.S= 1 2 3 ... n

II. tpus
1.Olvass be n egsz szmot. rd ki az egyjegyek sszegt.
2.Olvass be n egsz szmot. rd ki a ktjegyek sorszmt.
3.Olvass be n egsz szmot. Hny pozitv, hny negatv szm volt kzttk?
4.Olvass be n 3 jegy, egsz szmot. rd ki azon szmok sorszmt, amelyek kzps
szmjegye 0.
5.Olvass be n 2 jegy egsz szmot. rd ki azon szmok sszegt, amelyek szmjegyeinek
szorzata 10-nl nagyobb.

III.tpus
1.Olvass be szmokat a 0 beolvassig. rd ki azon szmok sszegt, amelyek 50 s 60
kztt vannak.
2.Olvass be 3 jegy szmokat a 0 beolvassig. rd ki azon szmok sorszmt, amelyekben
a kzps szmjegy egyenl a msik kett sszegvel.
3.Olvass be szmokat az els negatv szm beolvassig. rd ki mindegyik beolvasott szm
ngyzetgykt. (ngyzetgyk sqrt())
4.Olvass be szmprokat a (0, 0) beolvassig. rd ki mindegyik szmpr kisebbik tagjt.
5.Olvass be szmprokat a (0, 0) beolvassig. rd ki mindegyik szmpr kisebbik tagjnak
sszegt, nagyobbik tagjnak szorzatt.

16
Szveges llomnyok
A C nyelvben az adatllomnyokat tartalmuk alapjn kt csoportra oszthatjuk, szveges s
binris llomnyokra. A szveges llomnyok olvashat informcit tartalmaznak.
Sorokbl plnek fel, minden sor vgt a CR/LF karakterpr zrja.A binris llomnyok
byte-okbl felpl adtahalmazt jelentenek. A szveges llomny minden esetben
fldolgozhat, mint binris llomny, de ez fordtva mr nem igaz.
Szveges llomnyokban is lehet szmokat trolni. Ebben az esetben a szmok, mint
karakterek fogan troldni. Ha pldul egy ngy jegy szmot szveges llomnyban
trolunk, akkor ngy byte-nyi helyet foglal el, ha azonban egy binris llomnyba tesszk
le, akkor csak 2 byte kell. (Termszetesen csak akkor, ha int tpus volt)

File elksztse, lezrsa


A file kezelshez tartoz fggvnyek az stdio.h deklarcis llomnyban vannak lerva.
Minden file-hoz hozz kell rendelni egy FILE tpus mutatt (pointert), mely a
memriban a file logikai nevre mutat. Ennek formja:
FILE *fp;
Ez utn kvetkezhet a file megnyitsa:
Pl. fp=fopen(NEV.TXT,md);

Az fp mutat rtke NULL, ha az llomny megnyitsa sikertelen volt. A fizikai file nvben
teljes elrsi tvonalat is megadhatunk, ebben az esetben azonban gyelni kell a \ jel
hasznlatra:
A:\\SZOVEG\\NEV.TXT
A md paramter azt jelenti, hogy milyen mveleteket akarunk vgezni az llomnnyal.

Md Lers
Ltez file megynyitsa olvassra. File mutat a file
r
elejre ll.
j file megnyitsa rsra. Ltez file esetn annak
w
tartalma elvsz. File mutat a file elejre ll.

Megj. mindegyik md jellemz kiegszthet egy + paramterrel, ez minden esetben azt


jelenti, hogy az llomnyt olvashatjuk s rhatjuk is.
Plda: egy szveges llomnyt megnyitunk rsra s olvassra:
FILE *fp;
fp=fopen(SZAMOK.TXT,r);
if (fp==NULL)

17
{
printf(Sikertelen file nyits!);
return 1;
}
A file nyitst gyakran szoktk az if-en bellre helyezni. Ekkor a szintaktikja a kvetkez:
if (!(fp=fopen(SZAMOK.TXT,w)))
{
printf(Sikertelen file nyits!);
return 1;
}
Ha a file-on elvgeztk a megfelel mveleteket akkor le kell zrni. Ezt az fclose(fp)
fggvnyhvs valstja meg.

Gyakran alkalmazott utastsok szveges llomnyok esetn


Szveges llomnyokkal kapcsolatban leggyakrabban alkalmazott fggvnyeket az albbi
tblzatban foglajuk ssze. Minden esetben a
FILE *fp;
defincikat hasznljuk
Fggvny Lers
fprintf(fp,...,vltoz(k)) Hasonl a printf-hez, eltrs az els paramterben
fscanf(fp,...,&vltoz(k)) Hasonl a scanf-hez, eltrs az els paramterben

Az albbiakban kt egyszer programot mutatunk be a szveges llomnyok kezelsre:


1.plda: beolvasunk 2 szmot a billentyzetrl, berjuk ket egy sorba, szkzzel
elvlasztva a p.txt-be
#include <stdio.h>

int main()
{
FILE *fp;
int a,b;
fp=fopen("p.txt","w");

if (fp==NULL)
{
printf("Nem sikerlt megnyitni az llomnyt");
return -1;
}

Scanf(%d %d, &a, &b);


fprintf(fp,"%d %d",a, b);
fclose(fp);
return 1;
}

18
2.plda: kiolvasunk 2 szmot a p.txt-bl, majd kirjuk a kpernyre az sszegket.

int main()
{
FILE *fp;
int a,b;
fp=fopen("p.txt","r");

if (fp==NULL)
{
printf("Nem sikerlt megnyitni az llomnyt");
return -1;
}

fscanf(fp,"%d %d",&a, &b);


printf("A ket kiolvasott szam osszege: %d",a+b);
fclose(fp);
return 1;
}
A pldban egsz rtkeket runk ki egy szveges llomnyba, majd visszaolvassuk azokat.
Megj. Uj sorokat a \n-el runk-olvasunk ki.

19
A.sor - 3 pont hivatalbl
1.Olvass be egy termszetes szmot - n. rd ki a az n s 1 kztti 3-ra vgzd szmokat.
2.Olvass be kt termszetes szmot - n, m. rd ki a az n s m kztti pratlan szmokat. (n,
m beolvasott termszetes szmok, n<m)

B.sor- 3 pont hivatalbl


1.Olvass be egy termszetes szmot - n. rd ki a az 1 s n kztti 21-el oszthat szmokat.
2.Olvass be kt termszetes szmot - n, m. rd ki a az m s n kztti 1-re vgzd
szmokat. (n, m beolvasott termszetes szmok, n<m)

A.sor - 3 pont hivatalbl


1.Olvass be egy termszetes szmot - n. rd ki a az n s 1 kztti 3-ra vgzd szmokat.
2.Olvass be kt termszetes szmot - n, m. rd ki a az n s m kztti pratlan szmokat. (n,
m beolvasott termszetes szmok, n<m)

B.sor- 3 pont hivatalbl


1.Olvass be egy termszetes szmot - n. rd ki a az 1 s n kztti 21-el oszthat szmokat.
2.Olvass be kt termszetes szmot - n, m. rd ki a az m s n kztti 1-re vgzd
szmokat. (n, m beolvasott termszetes szmok, n<m)

A.sor - 3 pont hivatalbl


1.Olvass be egy termszetes szmot - n. rd ki a az n s 1 kztti 3-ra vgzd szmokat.
2.Olvass be kt termszetes szmot - n, m. rd ki a az n s m kztti pratlan szmokat. (n,
m beolvasott termszetes szmok, n<m)

B.sor- 3 pont hivatalbl


1.Olvass be egy termszetes szmot - n. rd ki a az 1 s n kztti 21-el oszthat szmokat.
2.Olvass be kt termszetes szmot - n, m. rd ki a az m s n kztti 1-re vgzd
szmokat. (n, m beolvasott termszetes szmok, n<m)

A.sor - 3 pont hivatalbl


1.Olvass be egy termszetes szmot - n. rd ki a az n s 1 kztti 3-ra vgzd szmokat.
2.Olvass be kt termszetes szmot - n, m. rd ki a az n s m kztti pratlan szmokat. (n,
m beolvasott termszetes szmok, n<m)

B.sor- 3 pont hivatalbl


1.Olvass be egy termszetes szmot - n. rd ki a az 1 s n kztti 21-el oszthat szmokat.
2.Olvass be kt termszetes szmot - n, m. rd ki a az m s n kztti 1-re vgzd
szmokat. (n, m beolvasott termszetes szmok, n<m)

20
A.sor - Flvi dolgozat (2 pont hivatalbl)

1.(0.75 pont)Olvass be 3 szmot. 2 jegy, pros-e vagy nem az sszegk?

2.(0.75 pont)Olvass be egy negatv szmot. 3 jegy-e vagy nem?

3.(0.75 pont)Az n egsz vltoz egy pontosan 5 szmjegy termszetes szmot tartalmaz. Az az
utasts, amelyik kitrli az n szmbl az els s az utols szmjegyt a kvetkez:
a. n=n%100/10; b. n=n/10%1000;
c. n=n/10%10000; d. n=n%10/1000;

4.(0.75 pont)A kvetkez C/C++ kifejezsek kzl melyik cserli le 0-ra az n egsz vltozban trolt,
legalbb kt szmjegy termszetes szm utols szmjegyt?
a. n=n*(n%10); b. n=n/10; c. n=n-n%10; d. n=n-n/10;

5.(1 pont)Olvass be egy termszetes szmot - n. rd ki a az 1 s n kztti 21-el oszthat szmokat.

6.(1 pont)Olvass be kt termszetes szmot - n, m. rd ki a az n s m kztti pratlan szmokat. (n,


m beolvasott termszetes szmok, n<m)

7.(1.5 pont)Olvass be kt termszetes szmot - n, m. rd ki a az m s n kztti 1-re vgzd


szmokat. (n, m beolvasott termszetes szmok, n<m)

8.(1.5 pont)rd ki azokat a 4 jegy szmokat cskken sorrendben, melyek 6-ra vgzdnek.

21
B.sor - Flvi dolgozat (2 pont hivatalbl)

1.(0.75 pont)Olvass be 3 szmot. 2 jegy, pratlan-e vagy nem az sszegk?

2.(0.75 pont)Olvass be egy negatv szmot. 2 jegy-e vagy nem?

3.(0.75 pont)Az n egsz vltoz egy pontosan 5 szmjegy termszetes szmot tartalmaz. Az az
utasts, amelyik kitrli az n szmbl az els s az utols szmjegyt a kvetkez:
a. n=n%100/10; b. n=n/10%10000;
c. n=n/10%1000; d. n=n%10/1000;

4.(0.75 pont)A kvetkez C/C++ kifejezsek kzl melyik cserli le 0-ra az n egsz vltozban trolt,
legalbb kt szmjegy termszetes szm utols szmjegyt?
a. n=n/10; b. n=n-n%10; c. n=n-n/10; d. n=n*(n%10);

5.(1 pont)Olvass be egy termszetes szmot - n. rd ki a az 1 s n kztti 4-re vgzd szmokat.

6.(1 pont)Olvass be kt termszetes szmot - n, m. rd ki a az n s m kztti pros szmokat. (n, m


beolvasott termszetes szmok, n<m)

7.(1.5 pont)Olvass be kt termszetes szmot - n, m. rd ki a az m s n kztti 23-al oszthat


szmokat. (n, m beolvasott termszetes szmok, n<m)

8.(1.5 pont)rd ki azokat a 4 jegy szmokat cskken sorrendben, melyek 7-re vgzdnek.

22
Egyb

1.NT/2015/I. korcsoport Sorminta


Egy sormintban sznek szerepelnek, melyeket a kezdbetikkel adunk meg: P piros,
Z zld, F fehr, S srga.
A sormintt szablyok segtsgvel lltottuk el, tbb lpsen keresztl. Ha van egy
sormintt ler karaktersorozatunk, akkor arra olyan kvetkez sormintt elllt
szablyokat alkalmazhatunk, amelyek megadjk, hogy az eredeti sormintban szerepl
karakterek helyre mit (vagy miket) kell rni.
Ismerjk a lpsenknt elll sorozatot, ki kell tallni a hozz tartoz szablyokat!
Pldul a kiindul sorozat az PZP, az els lpsben ebbl a PZZPPZ sorozatot kapjuk,
akkor a kt szably: P PZ, Z ZP.
Magyarzat: A kiindul sorozat eleje s vge is P. Emiatt az els lpsben keletkez
sorozat elejn s vgn is ugyanannak kell lenni, azaz a szably csak a P PZ lehet.
Ezutn a msik szably csak a Z ZP lehet.
Add meg a szablyokat az albbi sorozatokhoz:
A. PZP PZZPZZ PZZPZZ
B. PZP ZFSZZF SZPSPSZSZP
C. PZP PZFFPZF PZFFZZZZPZFFZZ
D. PZ PPZZ PPPPZZZZ

2. NT/2012/I. korcsoport Kitall


Az albbi algoritmus 4 paramtert kap (A,B,C,D), amelyekbl egy rtket szmol ki
(E), mindegyik paramter szveg tpus. Az A s B rtke a, b s 0 lehet, C s D
rtke pedig + vagy - .
Valami(A,B,C,D,E):
Ha A=a vagy B=a akkor p:=igaz klnben p:=hamis
Ha A=b vagy B=b akkor q:=igaz klnben q:=hamis
Ha C=+ vagy D=+ akkor r:=igaz klnben r:=hamis
Ha p akkor E:=A
Ha q akkor E:=E+B
klnben Ha q akkor E:=B
klnben E:=0
Ha r akkor E:=E++ klnben E:=E+-
Eljrs vge.
Kszts tblzatot, amely az sszes bemenetre megadja az E eredmny rtkt!

23

You might also like