Professional Documents
Culture Documents
IXA Tananyag
IXA Tananyag
IXA Tananyag
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)
3
Dntsi utasts
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?
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.
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.
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.
8
20.rd ki azon ktjegy szmokat, amelyek mindkt szmjegye pratlan.
9
Elemi algoritmusok
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.
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
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);
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.
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?
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
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?}
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)
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.
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.
int main()
{
FILE *fp;
int a,b;
fp=fopen("p.txt","w");
if (fp==NULL)
{
printf("Nem sikerlt megnyitni az llomnyt");
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;
}
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)
20
A.sor - Flvi dolgozat (2 pont hivatalbl)
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;
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)
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);
8.(1.5 pont)rd ki azokat a 4 jegy szmokat cskken sorrendben, melyek 7-re vgzdnek.
22
Egyb
23