pascal példatár (1998, 113 oldal)

Upload: robi-nagy

Post on 09-Jul-2015

840 views

Category:

Documents


6 download

TRANSCRIPT

Forrs: http://www.doksi.hu

3

BEVEZET

A feladatgyjtemny ngy nagyobb egysgre tagolhat: I. A legalapvetbb utastsokhoz kapcsold feladatok, I - XIII. fejezet II. Programozsi ttelek, s hozzjuk kapcsold feladatok, XIV - XXVII. fejezet III. sszetettebb programozsi feladatok, XXVIII- XXIX. fejezet IV. Mintaalkalmazsok, XXX. fejezet A pldatr els rszben olyan feladatokkal foglalkozom, amelyekben a legalapvetbb utastsokkal ismertetem meg a tanulkat. Ilyenek a kir utastsok. Ezt tartalmazza az els fejezet. Termszetesen a kezdet kezdetn a program felptsvel foglalkozunk. A Crt unitot a kezdettl hasznljuk, nem kell klnsebb magyarzatokba bonyoldnunk ezzel kapcsolatban, elg ha a k zls szintjn elmondjuk tanulinknak, hogy a Turbo Pascal a kperny kezelsre vonatkoz rutinokat ebben trolja, s ha hasznlni akarjuk ket, akkor a unitot elbb meg kell nyitni. A megnyits annyit jelent, hogy a programfej alatti sorba berjuk a kvetkez utastst: Uses Crt;. Annyit elmondhatunk mg, hogy mi eleinte a Clrscr, GotoXY, TextColor, TextBackGround, stb. utastsokat hasznljuk ebbl. Ksbb a grafikai feladatok megoldsnl ugyanilyen mdon vezetjk be a Graph unitot. Az els fejezet pldiban elssorban klnbz kiratsok szerepelnek, itt terveztem megmutatni nekik a s zveg- s httrsznez utastsokat, illetve a pozcionlsi lehetsgeket. Mr itt is szerepelnek olyan jelleg feladatok, amelyekben a programrszlet szvegnek ismeretben talljk ki, mit is csinl az adott programrsz. A msodik fejezet hivatott rszben a legegyszerbb adattpusok megismertetsre, felhasznlva a matematikbl szmukra jl ismert mveleti sorrend szablyt, illetve ennek gpi megvalstst, zrjelezsi lehetsgeket. Itt ismernek meg nhny egsz tpust, a B yte, Integer, Word s a Long Int tpusokra gondoltam. A vals tpusok kzl a R eal-t tantom, mert az nem ignyel matematikai kooprocesszort vagy annak emulcijt. Itt mr ksztnk egyszer, konkrt szmokkal dolgoz matematikai problmt megold programot. Ilyen a kr terlett, kerlett szmol feladat, ahol mr a konstans fogalma is elkerl, Pi rtkt a deklarciban megadhatjuk konstansknt, de hivatkozhatunk arra is, hogy a TP magasabb verzii ismerik a Pi-t. Ekkor mr trekedhetnk a s zp, eszttikus kiratsokra, arra, hogy ha a programot ms felhasznl mkdteti, szmra is vilgos legyen, hogy az adott program mit csinl. Ekkor akr mr futtathat fjlt is kszthetnk a programunkbl. A harmadik fejezet feladatai a dek larci fontossgra, a s zm, logikai, karakter s szveg tpusok hasznlatnak elmlytsre, a megfelel tpus megvlasztsnak fontossgra szolglnak. Mr a k ezdetekre terveztem a

Forrs: http://www.doksi.hu

4

logikai tpus megtantst, hisz a ny olcosztlyos gimnziumi matematika anyagban ekkorra mr ismernek klnfle halmazelmleti s matematikai logikai fogalmakat. Ide is tettem olyan feladatokat, amelyekben a programrsz szvegbl kell kvetkeztetni a futs eredmnyre. Ezek a nehezebb feladatok, ppen ezrt mindig adok lehetsget a gpi megvalstsra, ellenrzsre. Nhny beptett fggvnyt kzls szinten megmutathatunk a tanulknak, s azokat hasznlhatjk is. A negyedik fejezet foglalkozik az adatbeolvasssal. Itt mr olyan feladatokat ksztnk, ahol a felhasznl adhat rtket a deklarlt vltozknak, vagyis nem egyetlen konkrt adatra rjuk programjainkat, hanem tetszlegesekre. Az alkalmazott adattpusok elssorban elemi tpusok: egsz, vals, karakter, logikai, illetve az sszetettek kzl a szveg tpust terveztem ide. Termszetesen itt is gyeljnk arra, hogy a pr ogram ltal megjelentett kperny eszttikus, a programszveg is tagolt, knnyen ttekinthet legyen! Ekkor mr ablakot is definilhatunk a kpernyre. Tapasztalatom szerint a gyerekek nagyon rlnek, ha v alami szp sznesen jelenik meg a kpernyn, fleg ha azt maguk alakthattk. rdemes mr ekkor kihasznlni ezt a lehetsget. Termszetesen a kperny s a szveg sznt a programok vgn mindig llttassuk velk vissza. Mr ebben a fejezetben gondoltam eljrsokra tagolni a programokat. Clszernek tartom a programokat itt hrom eljrsra bontani, beolvas, kir s tnyleges vgrehajt rszre. Itt hasznlunk elszr fprogramot. Itt beszlhetnk elszr arrl, hogy az eljrson bell is lehet deklarcis rsz, s abban helyi (loklis) vltozkat is megadhatunk, amelyek csak az eljrson bell rvnyesek, mshol hivatkozva rjuk hibazenetet kapunk. A program elejn deklarlt vltozkra azonban brhol hivatkozhatunk, mivel hatsuk mindentt rvnyes, ezek a globlis vltozk. Eleinte mi mg csak globlis vltozkkal dolgozunk, mindent a pr ogram deklarcis rszben adunk meg. Az tdik, hatodik s a het edik fejezet az ismtlsi szerkezetekkel foglalkoz feladatokat tartalmazza. Igen fontos rsz ez minden programozsi nyelvben, ezrt elgg az elejre tettem, az elgazsok el, hisz ismtl szerkezettel mr korbban a Logo nyelvben is tallkoztak a tanulk. Ebben a korban a szmlls ciklus a legrthetbb, s a leggyakrabban hasznlt, ezrt ebbl a fajtbl terveztem a l egtbb feladatot. A msik kt ciklusfajtbl kevesebb feladatot terveztem, hisz ezek a ksbbiekben gyis tbbszr elfordulnak. Ekkor mr az eljrsokban definilhatunk loklis vltozkat is, pldul a ciklusvltozk. A nyolcadik, kilencedik fejezet foglalkozik az elgazsokkal. Ide kpzeltem mg nhny, gyakran elfordul beptett fggvny megtantst (pl. abs, random stb.). A feladatgyjtemnyben osztlyoztam a feladatokat nehzsgi szintjk szerint, Knnyebbek, kzepesek s nehezek. Ebben a sorrendben a feladatok szvege eltt jelzs ll, ami a nehzsgi fokot mutatja. A jelek:

Forrs: http://www.doksi.hu

5

Knnyebb Kzepes Nehz

A feladatgyjtemny 320 feladatot s 62 mintaalkalmazst tartalmaz. Az utols nagy egysg a mintaalkalmazsok fejezete.

I. KIR UTASTSOK

1.1.rj programot, amely a kvetkezt rja a kpernyre: Els Pascal programom! 1.2.Mdostsd az elz feladatot gy, hogy a kperny kzepn egy ltalad vlasztott sznnel jelenjen meg a szveg! 1.3.A httrsznt is Te vlaszd meg az elz munkdban! 1.4.Kszts vlaszthatod. 1.5.Lesz-e lthat klnbsg a kpernyn val megjelensben az albbi kt program lefuttatsa utn? programot, amely arnyosan a kperny kzepn megjelenti teljes nevedet, iskoldat s vfolyamodat! A szneket magad

Forrs: http://www.doksi.hu

6

... Begin Write(Hello!); End.

... Begin Writeln(hello!); End.

1.6.Mi a klnbsg a kpernyn val megjelensben a kvetkez kt kis programban? Program bp1; uses crt; begin clrscr; gotoxy(35,10); write(BUDA); write(PEST); readln; end. end. Program bp2; uses crt; begin clrscr; gotoxy(35,10); writeln(BUDA); writeln(PEST); readln;

1.7.rj programot, amely a kpernyn megjelenti az osztlyod vagy csoportod matematika rai lsrendjt! 1.8.A programod a ktjel segtsgvel rajzoljon tglalapot a kpernyre! A helyet s a rajz sznt Te hatrozhatod meg! 1.9.Mdostsd az elzt gy, hogy a tglalap egyik prhuzamos oldalprjt az egyenlsgjellel, a msikat csillagokkal rajzoltatod! 1.10.Van-e klnbsg a kvetkez kt utasts kztt az 5-s szm megjelentsben a kpernyn? a. / ... Write(5); ... bett? a./ Begin b./ Begin b./ ... Write(5); ...

1.11.Az albbi kt program kzl melyik jelenti meg a kpernyn az a

Forrs: http://www.doksi.hu

7

Write(a); End;

Write(a); End;

II. SZMOK S MVELETEK

2.1.A kvetkez programban a writeln utasts mgtt szerepl mveleteket fejben vgezd el, jegyezd fel az eredmnyeket! Majd a programot gpeld be s futtasd! Mit tapasztalsz? Program muveletek; uses crt; begin writeln(100-(20-(40-80))); writeln(12*13); writeln(-25*(-25)); writeln(1000/25); writeln(1/3); writeln(12.5*3); writeln(12.5/3); readln; end. 2.2.Mi trtnne, ha minden writeln utastst write-ra cserlnl? Ki is prblhatod! Hogyan lehetne az ilyen kiratst tagoltt tenni? 2.3.Mdostsd a vals szmokkal vgzett mveletek eredmnynek kiratst gy, hogy az ne nor mlalakban, hanem meghatrozott tizedesjegy pontossggal jelenjen meg! (Ajnlott 2-3 tizedesjegy)

Forrs: http://www.doksi.hu

8

2.4.Az

elz

programot

egsztsd

ki

a

kvetkez

kt

sorral:

writeln((23+7)*5) s writeln(23+7*5)! Futtats utn mirt ms a k t eredmny? 2.5.Milyen sorrendben vgezn el a szmtgp a kvetkez mveleteket? Sorszmozd a vgrehajtst, szmold is ki az eredmnyeket! Ha idd engedi, egsztsd ki az elz programodat e sorokkal, s ellenrizd gondolatmeneted helyessgt! a./ b./ c./ (10+5)*20-100/4=.......... 10+5*20-100/4=.......... 10+5*(20-100)/4=..........

2.6.rj programot, amely kiszmtja a k vetkez mveletek eredmnyt kt tizedesjegy pontossggal! a./ b./ 6532 : (12+88) + 782 : (44+56) 3,76 + 12,53 * 27,35 - 1,45 : 12,5

2.7.Kszts egy 5 cm sugar kr kerlett s terlett meghatroz programot, amely kt tizedesjegyig szmol, s a kpernyn az is megjelenik, hogy mirl is van sz! Pl. A kr sugara: A kerlete: A terlete: 5 cm .....cm ......cm2

2.8.rj programot, amely ltalad tetszlegesen vlasztott kt vals szmmal elvgzi a ngy alapmveletet, s kirja az sszeget, klnbsget, szorzatot s hnyadost! gyelj arra, hogy kls szemll is tudja, melyik eredmny melyik mvelethez tartozik!

Forrs: http://www.doksi.hu

9

III.

VLTOZK DEKLARLSA, RTKK KIRATSA

3.1.Egsztsd ki a kvetkez deklarcikat a megadott intervallumoknak megfelelen! Tbb lehetsg esetn a legkevesebb helyfoglalst add meg! a./ b./ c./ d./ e./ f./ var a:...................................; (a, 0 a 255) var a:...................................; (a, -5000 a 5000) var a:...................................; (a, 0 a 60000) var a:...................................; (a, -106 a 106) var a:...................................; (a, -128 a 127) var a:...................................; (aR)

3.2.rtelmezd a kvetkez programrszleteket! a./ begin a:=30; b:=20; t:=a*b; write(t); end. c./ begin a:=20000; d./ b./ begin a:=15.2; b:=5; h:=15.2/5; write(h:6:2); end. begin a:=-20000;

Forrs: http://www.doksi.hu

10

b:=25; p:=a*b; write(p= ,p); end. end.

b:=40; p:=a*b; write(p= ,p);

- Mi az alapvet klnbsg az a./ s b./ feladatok kztt? - Miben klnbznek egymstl a./ , b./ s d./ feladatok? A vltozkat (a,b,t,h,p) milyen tpusnak deklarlnd a feladatokban? 3.3.rj programot, amely A= 20 s B= 10 szmok sszegt, klnbsgt s szorzatt meghatrozza, s megjelenti a kpernyn! A megjelentshez hasznld korbbi esetleg sznezs)! 3.4.Bvtsd az elz programot gy, hogy a kt rtk hnyadost is meghatrozza! Milyen hibt tapasztalsz, ha a hny ados vltozt is egsz tpusnak deklarlod? Hogyan javthat a hiba? Keress tbb megoldst! 3.5.Mindenkppen csak egsz tpussal szeretnnk dolgozni az elz feladatban. Milyen oszts kerljn ekkor vgrehajtsra? 3.6.Az elz osztst mdostsd gy, hogy az oszts maradkt jelentse meg a program! ismereteidet (cm, pozcionls,

3.7.A

kvetkez

programrszletek

mindegyiknl

add

meg

a

kvetkezket: - Milyen tpusnak kell deklarlni A, B s C -t? - Mit rnak ki az egyes programok kpernyre? a./ A:=10; B:=12 B:=A; C:=B-A; b./ A:=7; B:=3; A:=A+1; C:=A+B; c./ A:=2; B:=4; B:=B div 2; A:=A mod 2;

Forrs: http://www.doksi.hu

11

Write(C ); Write(C ); Tpus: A:. B:. C:. rtk: C=

Write(C );

C:=A*B;

. . . .

. . . .

d./

A:=5000; B:=40; A:=A-2; B:=B+1; C:=A*B; write(C );

e./

A:=5; B:=4; A:=A+1; C:=A/B; write(C );

Tpus: A:. B:. C:. rtk: C=

. . . .

. . . .

3.8.Legyen A= 3, B = 4, C = 5. Cserld fel a m emriban A, B s C vltozk rtkt a kvetkez mdon: X segdvltoz vegye fel A rtkt, B a C-t, C pedig X segtsgvel A-t! rasd ki a kezdeti s a vgllapotot! 3.9.rtelmezd a kvetkez rvid programot! Program karakter; uses crt; var betu,jel,kod:char; begin clrscr;

Forrs: http://www.doksi.hu

12

betu:=B; jel:=+; kod:= #; writeln(betu); writeln(jel); writeln(kod); readln; end. 3.10.Az elz programban a betu:=B helyett betu:=peterke szerepeljen. Mit tapasztalsz? 3.11.A Writeln(jel) utn a kvetkez sorokat iktasd be: - writeln(succ(jel)); - writeln(pred(jel)); - writeln(ord(jel)); Mit tapasztalsz? 3.12.A tzes feladatban trld a w riteln(kod) sort, helyre a writeln(chr(176)) utasts kerljn! Mi trtnik? 3.13.Az A l ogikai vltoz rtke legyen igaz, a B logikai vltoz rtke hamis. rj programot, amely meghatrozza a kvetkezket: a./ b./ c./ d./ A s B A s nem B nem A s nem B nem A s B !

3.14.Az elz feladatban vltoztasd meg A s B logikai rtkt! Az gy futtatott programokat ms nven mentsd! Lehetsgek: A - igaz A - hamis A - hamis B - igaz B - hamis B igaz

3.15.Az elz programokban az s logikai mveletet cserld vagy -ra! 3.16.A kvetkez konstans deklarcik kzl melyekben van szintaktikai hiba? A javtst a pontozott rszre rd!

Forrs: http://www.doksi.hu

13

a./ b./ c./ d./

const nagy = 350; const kicsi = 0 or 1 or 2; const elso: a const also=-500; felso= 3E+5;

................................................... ................................................... ................................................... ...................................................

IV.

ADATBEOLVASS: BEOLVAS UTASTSOK

4.1.Kszts programot, amely kt tetszleges vals szmra elvgzi a ngy alapmveletet! 4.2.Szptsd a k irsok kllemt gy, hogy a program minden fontosat jelentsen meg! 4.3.Gpeld be, majd futtasd a kvetkez programot! Mit tapasztalsz? Program beolvas; Uses crt; var b1,b2:char; Begin Clrscr; Read(b1); Read(b2); Write(b1,b2); ReadLn; End. Cserld a read utastsokat readln-re! Mi trtnik? 4.4.rj programot, amely a felhasznl ltal megadott kt tetszleges karaktert kir a kpernyre: a./ egyms mell b./ egyms al

Forrs: http://www.doksi.hu

14

4.5.Kszts programot, amely bekri a f elhasznl nevt, majd kirja a kpernyre a kvetkezt: dvzllek .....................! Az illet nv kerl a kipontozott helyre. 4.6.rj programot, amely bekr kt tetszleges szmot, majd kiszmtja s kirja a kvetkezket: a./ b./ c./ a szmok szmtani kzepe ngyzetk sszege sszegk ngyzete ! megadott rtket megjelent percekben s

4.7.Kszts mrtkegysgvlt programokat! a./ rkban msodpercekben is! b./ Msodpercben adottakat trja ra, perc, msodpercre! 4.8.Tallj ki hasonl feladatokat! Kszts hozzjuk programot! 4.9.rj programot, amely egy egyenes vonal egyenletes mozgst vgz test esetn meghatrozza a kvetkezket: a./ Az t s id ismeretben a sebessget! b./ Az t s sebessg ismeretben az idt! c./ A sebessg s id ismeretben az utat! Termszetesen ne rj minden esetben teljesen j programot, hanem az elzt mdostsd, majd a mdostottat mindig j nven mentsd el!

4.10.Hasonl feladatokat Te is kszthetsz a fizika terletrl vett ismereteid alapjn, pldul: a./ Feszltsg, ramerssg s ellenlls b./ Tmeg, trfogat s srsg c./ Feszltsg, ramerssg s teljestmny d./ Tmeg, fajh, hmrsklet-vltozs s hmennyisg stb. 4.11.Kszts raz programot, amely az ru rbl s a./ a szzalkos emelkedsbl meghatrozza az j, emelt rat b./ a szzalkos cskkensbl kiszmtja az j, cskkentett rat!

Forrs: http://www.doksi.hu

15

4.12.Kszts felszn- s trfogatszmt programokat! (Tglatestre, hengerre, gmbre stb.) 4.13.Kszts nett jvedelmet szmt programot! A program krje be az illet nevt, havi brutt jvedelmt, s azt, hogy hny szzalkkal szeretne adzni! Ezutn a pr ogram vonjon le 6%-ot nyugdjra, 4%-ot egszsgbiztostsra, majd az gy megmarad sszeget cskkentse az adott adszzalkkal! A kpernyn az illet neve s a kapott nett sszeg jelenjen meg! 4.14.Mdostsd az elz programot gy, hogy a brutt jvedelem, valamint az egyes levonsok is nevkkel s rtkkkel megjelenjenek a kpernyn! Pl. Brutt: Adkulcs: Levonsok: 6% nyugdj: 4% eg.bizt. 40% ad Nett: 3.000,- Ft. 2.000,- Ft. 18.000,-Ft. 27.000,-Ft. (A 6%+4% -kal cskkentett rtkbl szmtand) A megjelentshez definilhatsz egy megfelel mret sznes ablakot is a kpernyre. Vigyzz, hogy adott szn httrre milyen sznnel rod a szveget! (mindig 6%) (mindig 4%) Kovcs Jnos jvedelme 50.000,- Ft. (felhasznl ltal megadott) 40% (felhasznl ltal meghatrozott)

ISMTLSEK SZERVEZSE V. A SZMLLS CIKLUS

Forrs: http://www.doksi.hu

16

5.1.Kszts programot, amely t sort teler a k eresztneveddel a kpernyn! Az egyes kirsok kztt felttlenl legyen szkz! 5.2.rasd ki 1-tl 20-ig a termszetes szmokat a kpernyre: a./ egyms mell (legalbb egy szkz legyen a szmok kztt) b./ egyms al (minden szm j sorban)! 5.3.Az elz feladatot mdostsd gy, hogy a szmok cskken sorrendben jelenjenek meg! 5.4.rasd ki az angol ABC nagybetit nvekv sorrendben! 5.5.Az elz programot mdostsd gy, hogy cskken sorrendben jelenjenek meg a betk! 5.6.Mdostsd a m sodik feladat a./ rszt gy, hogy a szmok alatt a ngyzetk is szerepeljen a kpernyn! 5.7.rj programot, amely sszeadja az els szz termszetes szmot! 5.8.Mdostsd a pr ogramot gy, hogy Te dnthesd el, hny darab egymst kvet termszetes szmra szeretnd az sszeget meghatrozni! 5.9.Mdostsd az elz feladatot gy, hogy tetszleges kezdrtktl tudjon a program sszeget szmolni! 5.10.Kszts szmtani sorozat tagjait kiszmt programot! A gp az els elem, a differencia s az elemszm ismeretben rja ki a sorozat elemeit! 5.11.Az elz feladatot oldd meg mrtani sorozatra is! (Be: a 1 , q, n ); 5.12.rj programot, amely csillagokbl egy 30*10-es tglalapot rajzol a kperny kzepre! 5.13.Klnbz jelekkel rajzoltass a kpernyre alakzatokat (hromszg, kereszt, stb.)! 5.14.Kszts vastagvonalas keretet egy sznes ablak kr a kpernyre! (A szksges ASCII kd 219 = ). A keret a kperny szleitl arnyosan helyezkedjen el (pl. fellrl s alulrl 5-5 egysgre, oldalrl 10-10 egysgre)!

Forrs: http://www.doksi.hu

17

VI. AZ ELLTESZTEL CIKLUS

6.1.Kszts programot, amely 0 vgjelig elfogad vals szmokat! 6.2.Mdostsd az els programot gy, hogy a beolvasott szmok tlagt is meghatrozza! Vigyzz! A 0 ne szerepeljen az tlagok kztt! 6.3.rj programot, mellyel karaktereket olvashatunk be * vgjelig! 6.4.Mdostsd az elz programot gy, hogy a beolvasott karaktereket egy szvegg fzve rja is ki! 6.5.rassuk ki a 200-nl kisebb ngyzetszmokat! 6.6.Adjuk ssze 3 egsz szm tbbszrseit 100-ig! 6.7.Az els hny darab termszetes szmot kell sszeadnunk, hogy az sszeg kisebb legyen 1000-nl? 6.8.Mdostsd az elz programot gy, hogy az sszeget a felhasznl adhassa meg! 6.9.Az 5 termszetes szm egsz szm tbbszrseibl hny darabot kell sszegeznnk, hogy az sszeg ne lpje tl az integer tartomny fels hatrt! 6.10.Vltoztasd meg az elz programot gy, hogy a felhasznl ltal meghatrozhat rtkkel indulva, megadhat lpskzzel s sszeghatrig szmoljon! 6.11.Hny faktorilis rtke nem haladhatja meg az integer tpus fels hatrt? 6.12.100000Ft megtakartott pnzemet 15%-os ves kamatot garantl llamktvnybe fektetve mennyi id mlva ri el a pnzem a 200000Ftot? (Kamatos kamat!) 6.13.Mdostsd az elz programot gy, hogy a kiindul sszeget, a kamat mrtkt s az elrend sszeget a felhasznl adhassa meg!

Forrs: http://www.doksi.hu

18

VII.

A HTULTESZTEL CIKLUS

7.1.Krjen be a pr ogram billentyzetrl termszetes szmokat! Csak akkor fogadja el a bettt szmot, ha az 0 s 50 kztti! 7.2.rassunk vletlen szmokat a kpernyre addig, amg a gp egy bizonyos szmot el nem tall! Pldul 0 s 10 k ztti szmok esetn akkor legyen vge, ha 6-ot generl a program! 7.3.Kszts programot, mellyel karaktereket vihetnk be l talad megszabott vgjelig! 7.4.rasd ki a nevedet a kperny kzepre, tetszleges billenty lenyomsra lphessnk ki a programbl! (Ne csak az ENTER-re!) 7.5.rj programot, amelybe tanulmnyi tlagokat vihetnk be 0 vgjelig, s a program meghatrozza az tlagot! Vigyzz! A vgjel 0-t ne szmtsd hozz az tlaghoz! 7.6.Kszts programot, amely kznsges trtek tizedes trt alakjt rja ki hat tizedes jegyig! 7.7.Mdostsd az elz programot gy, hogy addig fusson, amg a szmll rtkl 0-t nem kap! 7.8.Olvassuk be egy hromszg hrom oldalnak hosszt! A beolvass addig ismtldjn, mg az adatokra nem teljesl a hromszgegyenltlensg! (Hromszg-egyenltlensg: brmely kt oldal sszege nagyobb a harmadik oldalnl!) A program adjon klnbz zeneteket is!

Forrs: http://www.doksi.hu

19

7.9.Mdostsd az elz feladatot gy, hogy a kvetkez felttel is teljesljn: a kerlet 20 s 30 kz essen!

ELGAZSOK

VIII. A KTIRNY ELGAZS

8.1.Kszts programot, amely egy beolvasott szmrl eldnti, pozitv-e! A kiratsnl hasznlj klnbz szneket! 8.2.rj programot, amely meghatrozza egy beolvasott szm abszolt rtkt! Nem hasznlhatod az abs fggvnyt! 8.3.rd meg a programot az abs fggvnnyel is! 8.4.Kszts programot, amely kt ember testmagassga ismeretben eldnti, melyikk a magasabb! 8.5.Mdostsd az elz feladatot gy, hogy egyenl magassgok esetn is jl mkdjn! 8.6.Az els feladatot alaktsd t gy, hogy a beol vasott szmrl azt is kirja, hogy 0 vagy negatv! 8.7.Dntse el a program kt beolvasott szmrl, hogy megegyez eljelek-e! 8.8.rj programot, amely kt tetszleges szmrl eldnti, melyikk a nagyobb!

Forrs: http://www.doksi.hu

20

8.9.Egsztsd ki az elz programot gy, hogy a s zmokat rja is ki nvekv sorrendben! 8.10.Az elz kt feladatot mdostsd gy, hogy hrom szmra is mkdjn! 8.11.A fejezet nyolcadik feladatt oldd meg szmok helyett nvsorba rendezend kt nvre! 8.12.Az elz feladatot mdostsd gy, hogy hrom nvre is mkdjn! 8.13.Kszts programot, amely hrom mrszmrl eldnti, szerkeszthet-e velk hromszg! 8.14.Egsztsd ki az elz programot gy, hogy ha szerkeszthet hromszg, akkor arrl mondja meg a program, hogy derkszg-e! 8.15.Bvtsd tovbb a programot! Ha szerkeszthet hromszg, akkor az hegyesszg, derkszg vagy tompaszg-e! 8.16.rj programot, amely egy beolvasott szmrl eldnti oszthat-e 15tel! 8.17.Mdostsd az elzt gy, hogy az osztt is a felhasznl adhassa meg! 8.18.Egy beolvasott letkorrl dntse el a program, hogy az illet gyerek(0-6v), iskols(7-18 v), dolgoz(19-62 v) vagy nyugdjas! 8.19.Adott egy tetszleges pont a skban koordintival, dntsk el, melyik sknegyedben van! 8.20.Bvtsd az elz programot gy, hogy tengelyen lv pontokra is jl mkdjn! 8.21.Kszts programot, amely egy beolvasott vszmrl eldnti, szkv-e! A berhat vszm sszer hatrok kztt mozogjon!

IX. A TBBIRNY ELGAZS

Forrs: http://www.doksi.hu

21

9.1.rj programot, amely szmknt bevitt osztlyzatoknak kirja a szveges megfeleljt! (Pl. 5-re a jeles szveget jelenti meg) 9.2.Kszts dolgozatot a pontszm alapjn rtkel programot! A maximlis pontszm legyen 50. A hatrok: 0-25 elgtelen 26-30 elgsges 31-39 kzepes 40-45 j 46-50 jeles A begpelt tanuli pontszm alapjn a program rja ki az osztlyzatot! 9.3.rj programot, amely bekri az osztlyzatodat, s ez alapjn kirja szleid vlemnyt! tletes megjegyzseket jelents meg a kpernyn! 9.4.Kszts programot, amely egy beolvasott karakterrl megmondja, milyen kategrij! A...Z nagybet; a...z kisbet, 0...9-ig szm, minden ms eset legyen specilis jel. 9.5.Tervezz programot, amelyben a case utasts segtsgvel menszeren vlaszthat, hogy mit szeretnnk kiratni! Olvasunk be egy egsz szmot: 1-nl magt a szmot 2-nl a szm abszolutrtkt 3-nl a szm ngyzett 4-nl a szm ellentettjt rja ki! 9.6.rj programot, amely egy beolvasott szmhoz hozzrendeli, hogy a ht melyik napja! (1 - htf, 2 - kedd, stb.) 9.7.Kszts programot, amelyben menszeren vlaszthatunk, hogy mely skidom terlett akarjuk kiszmtani! (Pl. 1- tglalap, 2- trapz, 3- kr, stb.) A korbban megrt terletszmt programjaid megfelel eljrsait tmsolhatod ebbe a programba! 9.8.Kszts programot, amely egy sztagbl ll szavakrl megmondja, hogy a sz magas vagy mly hangrend!

X.

Forrs: http://www.doksi.hu

22

FELADATOK EGYINDEXES TMBKKEL

10.1.Kszts programot, amely bekr t pozitv egsz szmot, ezeket egy tmbben trolja (felttelvizsglat legyen), majd kirja azokat a kpernyre egyms mell! 10.2.t darab vletlen szmmal tlts fel egy tmbt, majd add meg a szmok sszegt s tlagt! 10.3.Egy vektorban trold csaldod tagjainak keresztneveit, majd rasd ki ezeket a a kpernyre egyms mell szkzkkel elvlasztva! 10.4.Olvassunk be numerikus adatot egy tmbbe 0 v gjelig! A beolvasst addig ismteljk, amg a bemen adat nem megfelel, azaz a program ellenrizze, hogy szmot olvastunk-e be s nem karaktert! A program rja ki a beolvasand adat indext is! 10.5.rj programot, amely beolvasott jegyeid alapjn megadja az adott tantrgybl az tlagodat! (Maximlisan tz jegyre kszljn!) Krje be a tantrgy nevt is, s a k iratsnl azt is jelentse meg! (Pl. gy: matematikbl az tlagod: 4.3) 10.6.Krjen be a program kt vektort, szmtsa ki sszegket! 10.7.Az elz programot mdostsd gy, hogy a vektorok klnbsgt is meghatrozza! 10.8.Szmttasd ki a kt vektor skalrszorzatt is! 10.9.Mrjk meg tz gyerek testslyt, a mrt rtkeket sorban vigyk be egy tmbbe. Krds, hogy melyik gyerek slya tr el legjobban az tlagtl? 10.10rj programot, amely bekri venknt 1990 s 1997 kztt, hogy mennyi pnzt klttt ruhra Gbor s vi. Ezutn tedd lehetv annak megkrdezst, hogy mennyit kltttek egy adott vben kln-kln s egytt! A lekrdezs addig folytatdjon, amg az adott vnl nullt nem tnek!

Forrs: http://www.doksi.hu

23

10.11.Egy brtnben 100 cella van, mindegyikben egy rab l. Kezdetben a cellk zrva vannak. A brtnrnek jtszani tmad kedve: vgigmegy az sszes cella eltt, s mindegyik ajt zrjn fordt egyet. Fordtskor a nyitott cellt bezrja, a zrtat kinyitja. Ha vgigment elkezdi ellrl, s minden msodik cella zrjn fordt egyet. Aztn minden harmadikon fordt, s gy tovbb, sszesen szzszor. E zutn amelyik cella ajtaja nincs lezrva, abbl a rab elmehet. Kszts programot, amely megadja a szabadul rabok cellaszmt! Prbld ki a programot magasabb cellaszmra is (Pl. 1000)! 10.12.Olvassunk be nev eket Hossz 09 10 19 20 29 30 39 40 Darab : : : :. :. * v gjelig! A beolvasott neveket osztlyozzuk hosszuk szerint, s ksztsk el a kvetkez statisztikt:

XI. FELADATOK TBBINDEXES TMBKKEL

11.1.Tlts fel egy 3x3-mas tblzatot vletlenszeren 0 s 1 elemekkel! rasd ki! Pl. a kvetkez formban: 1 0 1 1 0 0 0 1 1

Forrs: http://www.doksi.hu

24

11.2.Mdostsd a f eladatot N * M-es tblzatra! N s M rtkt is a felhasznl adhassa meg, termszetesen sszer hatrok kztt! ( 2 1) termszetes szm legkisebb

Forrs: http://www.doksi.hu

35

16.6.Hatrozzuk meg az els 1-re vgzd ngyjegy prmszmot! 16.7.Mdostsd az elz programot gy, hogy N jegy esetre is mkdjn! (N rtke sszer hatrok kztt mozoghat!) 16.8.Hatrozzuk meg azt a legnagyobb legfeljebb hromjegy szmot, amelyben a szmjegyek sszege ngyzetszm! 16.9.rj programot, amely megadja az els 10-nl nagyobb tkletes szmot! Tkletesnek neveznk egy szmot, ha osztit (nmaga kivtelvel) sszeadva magt a szmot kapjuk, pl. 6=1+2+3. 16.10.Hnapnvvel adott dtumot alaktson a pr ogramod szmmal megadott! 16.11.Adjuk meg egy hnaprl, hogy milyen vszakba esik!

XVII. A KERESS TTELE

Ez a feladattpus sorozathoz rendel egy elemet. Megadott sorozatban kell bizonyos tulajdonsg elemet keresni. Nem biztos, hogy a m egadott sorozatban ltezik ilyen tulajdonsg elem. Ha van ilyen elem, akkor vagy magt az elemet, vagy a s orozatban elfoglalt helynek sorszmt kell a programnak meghatroznia (esetleg mindkettt). A feladattpus ltalnos megold algoritmusa: Eljrs keress: I:=1 Ciklus amg I N s X( I ) nem T tulajdonsg I:=I+1 Ciklus vge VAN:= ( I N ) Ha VAN akkor SORSZM := I

Forrs: http://www.doksi.hu

36

Eljrs vge 17.1.Kosrlabdacsapat nyilvntartsa tartalmazza a jtkosok nevt s magassgt. rjunk programot, amely megadja egy 210 cm-nl magasabb jtkos nevt! 17.2.Ismerjk N tanul nevt s szletsi hnapjt. Keressnk a csoportban egy vvesztes tanult! 17.3.Adjuk meg egy termszetes szm egy valdi osztjt! 17.4.Keressk meg egy szm legnagyobb valdi osztjt! 17.5.Adott egy vektor. Hatrozzuk meg egy negatv elemnek indext! 17.6.Egy sznhz nyilvntartsa tartalmazza, hogy mely jegyeket vsroltak mr meg. Adjunk meg kt egyms melletti szabad helyet! 17.7.Egy hzi telefonknyv a nev ek szerint rendezett. Keressnk meg benne egy adott nvhez tartoz telefonszmot! 17.8.A vradk nyilvntartsban szerepel a nv, az rtestsi cm s a vrcsoport. Egy balesetet szenvedett X vrcsoport srlthz keressnk donort!

XVIII. A MEGSZMOLS TTELE

E feladattpusban a megadott sorozatban megszmoljuk, hogy bizonyos tulajdonsg elembl hny darab van a sorozatban. Figyelem: a darabszmot a szmlls megkezdse eltt mindig 0-ra kell lltani!

Forrs: http://www.doksi.hu

37

A feladattpus ltalnos megold algoritmusa: Eljrs megszmols: DB:=0 Ciklus I=1-tl N-ig Ha X( I ) T tulajdonsg akkor DB:=DB+1 Ciklus vge Eljrs vge 18.1.Kszts programot, amely megmondja, hogy egy egsz szmokbl ll sorozatban mennyi a pozitv elemek szma! 18.2.Mdostsd az elz programot gy, hogy a negatv s 0 elemek szmt is megadja! 18.3.N tanul tlagnak ismeretben add meg a kitnek szmt! 18.4.Hatrozd meg egy szvegben elfordul A (a) betk szmt! 18.5.Szmoljuk meg, hnyszor fordul el egy adott szvegben az a nvel! 18.6.Adjuk meg egy tetszleges termszetes szm osztinak szmt! 18.7.Ismerjk egy tanulcsoport matematika dolgozatjegyeit. rasd ki a klnbz jegyek darabszmt! 18.8.Hny olyan legfeljebb hromjegy termszetes szm van, amelynek els kt jegybl alkotott szm osztja az eredeti szmnak? 18.9.llaptsuk meg egy vektorban trolt szmokrl, hogy negatv vagy pozitv elembl van-e tbb! Egyenlsg esetn is jl mkdjn a program, azaz a kirs a kvetkezhz hasonl legyen: A negatv s pozitv elemek szma egyenl. 18.10.llaptsuk meg, hogy egy termszetes szm binris alakjban hny 1-es szmjegy szerepel! 18.11.Mdostsd az elz programot gy, hogy a 0-k szmt is kirja!

Forrs: http://www.doksi.hu

38

XIX. A MAXIMUM - KIVLASZTS TTELE

Ebben a pl datpusban egy ismert sorozat elemei kzl kell a legnagyobbat kivlasztani (esetleg a l egkisebbet, ekkor minimumkivlasztsrl beszlnk). V an, amikor a l egnagyobb (legkisebb) elemre vagyunk kvncsiak, van amikor csak a s orozatban elfoglalt helynek sorszmra. Nhny esetben mind a kettt meg kell adnunk. A feladattpus ltalnos megold algoritmusa: I. Ez az eljrs a maximlis elem rtkt s sorszmt is megadja: Eljrs maximum: MAX:=X(1) SORSZM:=1 Ciklus I=2-tl N-ig Ha MAX < X( I ) akkor MAX:=X( I ) SORSZM:=I Ciklus vge Eljrs vge II. Ez az eljrs csak a m aximlis elem rtkt rja ki sorszm nlkl: Eljrs maximum: MAX:=X(1) Ciklus I=2-tl N-ig Ha X( I ) > MAX akkor MAX:=X( I ) Ciklus vge Eljrs vge A relcijel megfordtsval kapjuk a minimum-kivlaszts algoritmust.

Forrs: http://www.doksi.hu

39

19.1.Adott egy t elembl ll szmsorozat. Adjuk meg a legnagyobb elemt! 19.2.Mdostsd az elz feladatot gy, hogy a legnagyobb mellett a legkisebb elemet is kirja! 19.3.Az elz program mkdjn tnl tbb szm esetn is! 19.4.Mdostsd az elz programot gy, hogy a legnagyobb s legkisebb elemek rtkn kvl a sorszmukat is megadja! 19.5.Tlts fel 0 s 100 kztti vletlen szmokkal egy tmbt! A program rja ki a legnagyobb s legkisebb elemet! 19.6.Egy tmbben troljuk a nyri napok tlaghmrsklett. A mrseket htfi napon kezdtk. Adjuk meg a legmelegebb vasrnapot! 19.7.Melyik az a legnagyobb ngyjegy termszetes szm, amely oszthat szmjegyei sszegvel? 19.8.Tlts fel egy 3 X legnagyobb elemt! 19.9.Az elz programot mdostsd gy, hogy a legnagyobb elem indexeit is megadja! Pldul ha az els sor harmadik eleme a legnagyobb, akkor rja ki, hogy a legnagyobb elem indexe (1,3)! 3-mas tblzatot termszetes szmokkal vletlenszeren 0 s 100 kztti rtkekkel! Hatrozd meg a tblzat

Forrs: http://www.doksi.hu

40

XX. A KIVLOGATS TTELE

E pldatpusnl egy sorozat meghatrozott tulajdonsggal rendelkez elemeit kell kivlogatni. Ez trtnhet gy, hogy az adott tulajdonsggal rendelkezket kigyjtjk egy vektorba. A feladattpus ltalnos megold algoritmusa: Eljrs kivlogats(kigyjtssel): DB:=0 Ciklus I:=1-tl N-ig Ha X(I) T tulajdonsg akkor DB:=DB+1 Y(DB):=X(I) Ciklus vge Eljrs vge A megoldsban gyakran nincs szksgnk az elemek kigyjtsre, hanem azonnal kiratjuk azokat: Eljrs kivlogats(kirssal): Ciklus I=1-tl N-ig Ha X(I) T tulajdonsg akkor Kir: I, X(I) Ciklus vge Eljrs vge 20.1.Tlts fel egy tmbt -10 s +10 kztti vletlen szmokkal! Gyjtsd ki a pozitvokat! 20.2.Mdostsd az elz feladatot gy, hogy a negatv elemeket rja ki! 20.3.Vlogassuk ki egy szbl a magnhangzkat! 20.4.Adott egy szsorozat. rassuk ki a magas hangrend szavakat! 20.5.Adott egy termszetes szmokbl ll vektor. Vlogassuk ki az elemek kzl azokat, amelyek relatv prmek a 12-hz!

Forrs: http://www.doksi.hu

41

20.6.Adott N gyerek neve s szemlyi szma. Adjuk meg a fikat! 20.7.Ismerjk egy osztly rarendjt. rassuk ki, mely napokon van matematika rjuk! 20.8.Ismerjk N ember nevt s szletsi dtumt (hnap, nap). Adjuk meg a Nyilas csillagkpben szletetteket (november 22. s december 21. kztt)!

XXI. AZ UNIKPZS TTELE

E feladatokban tbb sorozatbl lltunk el egy sorozatot valamilyen szempont szerint. Az uni matematikai defincija: Az A s B halmazok unija azon elemek halmaza, melyek az A vagy B halmaznak elemei. (Azaz legalbb az egyik halmazban benne vannak.) Pl. A:={a,b,c,d,e} s B:={d,e,f,g} AB:={a,b,c,d,e,f,g} A feladattpus ltalnos megold algoritmusa: Eljrs uni: Ciklus I=1-tl N-ig UNIO(I):= X(I) Ciklus vge K:=N Ciklus J=1-tl M-ig I:=1 Ciklus amg I N s Y(J) = X(I) I:=I+1

Forrs: http://www.doksi.hu

42

Ciklus vge Ha I > N akkor K:= K+1 : UNIO(K):= Y(J) Ciklus vge Eljrs vge 21.1.Tlts fel kt tmbt (X s Y) vletlen szmokkal, mondjuk t-t elemmel. rasd ki e kt halmaz unijt! 21.2.Egy osztly tanuli kzl nhnyan matematika szakkrre, msok fizika szakkrre jrnak. Egy tmbben troljuk a m atematika szakkrsk nevt, egy msikban a f izika szakkrskt. Kszts programot, amely ezen adatok ismeretben kirja azon tanulk nevt, akik valamely szakkr munkjban rszt vesznek, azaz matematika vagy fizika szakkrre jrnak! 21.3.A V halmazba azok az emberek tartoznak, akiknek Volkswagen, az O halmazba azok, akiknek Opel gyrtmny autjuk van. Adjuk meg azon tulajdonosok halmazt (T), akiknek Volkswagen vagy Opel autjuk van! (Elkpzelhet, hogy valakinek mindkt autbl van a tulajdonban, ekkor nevk termszetesen csak egyszer szerepel a T halmazban!) 21.4.Egy vektorban troljuk egy X termszetes szm sszes osztjt, egy msikban az Y termszetes szm osztit. Add meg azon osztkat, melyek X vagy Y oszti! 21.5.Minden halfajtrl tudjuk, hogy mikor esik tilalom al a horgszata. Adjuk meg azt az idszakot, amikor brmilyen halat szabad fogni!

Forrs: http://www.doksi.hu

43

XXII. A METSZETKPZS TTELE

Az unihoz hasonlan e f eladatokban is tbb sorozathoz rendelnk valamilyen szempont szerint egy sorozatot. A metszet matematikai defincija: Az A s B halmazok metszete azon elemek halmaza, melyek az A s B halmaznak is elemei. (Azaz mindkt halmazban benne vannak.) Pl. A:={a,b,c,d,e} s B:={d,e,f,g} AB:={d,e}

A feladattpus ltalnos megold algoritmusa: Eljrs metszet: K:=0 Ciklus I=1-tl N-ig J:=1 Ciklus amg J M s X(I) = Y(J) J:=J+1 Ciklus vge Ha J M akkor K:=K+1 : METSZET(K) := X(I) Ciklus vge Eljrs vge 22.1.Tlts fel kt tmbt (X s Y) vletlen szmokkal, mondjuk t-t elemmel. rasd ki e kt halmaz metszett! 22.2.Az elz fejezet msodik feladatbl add meg azon tanulk nvsort, akik mindkt szakkr munkjban rszt vesznek! 22.3.Egy-egy tmbben troljuk kt termszetes szm sszes osztjt. Add meg a kzs osztkat! 22.4.Ismerjk kt r mveinek listjt. Van-e azonos cm alkotsuk?

Forrs: http://www.doksi.hu

44

22.5.Az elz fejezet harmadik feladatbl add meg azon tulajdonosok nvsort, akiknek mindkt tpus autbl van a tulajdonukban! 22.6.Beolvasunk kt szt. Add meg azokat a betket, amelyek mind a kt szban elfordulnak!

RENDEZSEKAz itt szerepl feladatokban valamilyen egy megadott sorozat elemeit kell bizonyos szempont szerint trendezni. Pldul nevek nvsorba rendezse, szmok nvekv vagy cskken sorrendje stb. Sokfle rendezsi mdszer ltezik. Ezek kzl ngy szerepel e feladatgyjtemnyben.

XXIII. EGYSZER CSERS RENDEZS

Ebben a rendezstpusban a sorozat els elemt sszehasonltjuk a tbbi, mgtte lv elemmel, s ha valamelyik kisebb nla, akkor felcserljk azzal. Ezzel elrjk, hogy a sorozat els helyre a legkisebb elem kerl. Ezt az eljrst folytatjuk a sorozat utols eltti tagjig, s gy minden elem elbb utbb a helyre kerl. ltalnos megold algoritmusa: Eljrs rendezs: Ciklus I=1-tl N-1-ig Ciklus J=I+1-tl N-ig Ha X(I) > X(J) akkor Csere ( X(I), X(J) )

Forrs: http://www.doksi.hu

45

Ciklus vge Ciklus vge Eljrs vge

23.1.Kszts programot, amely egy adott tmb egsz tpus elemeit nvekv sorba rendezi! 23.2Nevekre is valstsd meg az elbbi feladatot! 23.3.Hny sszehasonltst kell elvgezni: 3 elem sorba rendezsekor? 4 elem sorba rendezsekor? 5 elem sorba rendezsekor? 6 elem sorba rendezsekor? 10 elem sorba rendezsekor? N elem sorba rendezsekor?

XXIV. A MINIMUM - KIVLASZTSOS RENDEZS

Az elz mdszer hibja a sok felesleges csere. Clszerbb az aktulis els elemet a mgtte lvk kzl egyedl a legkisebb taggal cserlni. Ehhez a rendez ciklus belsejben cserk helyett egy minimumkivlasztst alkalmazunk.

Forrs: http://www.doksi.hu

46

ltalnos megold algoritmusa: Eljrs minrendezs: Ciklus I=1-tl N-1-ig MIN:=I Ciklus J=I+1-tl N-ig Ha X(MIN) > X(J) akkor MIN:=J Ciklus vge Csere ( X(I), X(MIN) ) Ciklus vge Eljrs vge 24.1.Az elz fejezet els feladatt oldd meg ezzel a rendezsi mdszerrel! 24.2.Az elz fejezet msodik feladatt oldd meg ezzel a rendezsi mdszerrel! 24.3.Hny sszehasonltst kell elvgezni: 3 elem sorba rendezsekor? 4 elem sorba rendezsekor? 5 elem sorba rendezsekor? 6 elem sorba rendezsekor? 10 elem sorba rendezsekor? N elem sorba rendezsekor?

Forrs: http://www.doksi.hu

47

XXV. A BUBORKOS RENDEZS

E rendezsi elv tlete, hogy hasonltsuk ssze a szomszdos elemeket, s ha sorrendjk nem j, akkor cserljk meg ket. Minden esetben figyeljk a legutols csere helyt, mert a kvetkez menetben csak addig kell rendezni, ugyanis ha a bels ciklus egy lefutsa alatt egyltaln nem volt csere, akkor ksz a rendezs. Ha pldul a l egutols sorozat kzepnl volt a csere, akkor ebbl tudhatjuk, hogy a sorozat kzepe utn biztosan ksz a rendezs, s gy csak az eltte lv rsszel kell foglalkozni. ltalnos megold algoritmusa: Eljrs buborkrendezs: I:=N Ciklus amg I > 1 CS:=1 Ciklus J=1-tl I-1-ig Ha X(J) > X(J+1) akkor Csere( X(J), X(J+1) ): CS:=J Ciklus vge I:=CS Ciklus vge Eljrs vge 25.1.Az els rendezsi feladatot oldd meg ezzel a mdszerrel! 25.2.A msodikat is!

Forrs: http://www.doksi.hu

48

25.3.Hny sszehasonltst kell elvgezni: 3 elem sorba rendezsekor? 4 elem sorba rendezsekor? 5 elem sorba rendezsekor? 6 elem sorba rendezsekor? 10 elem sorba rendezsekor? N elem sorba rendezsekor?

XXVI. A BEILLESZTSES RENDEZS

E rendezstpus elve: egyetlen elem mindig rendezett, s ha v an egy rendezett egyelem rszsorozatunk, akkor abba nagysg szerint helyre tehetjk a kvetkez elemet, ha nagyobb az elsnl, akkor mg, klnben el. A kvetkez beszrand elem az els el, a msodik mg vagy kzjk kerl s gy tovbb. Hatkonyabb az eljrs, ha a beillesztend elemet nem tesszk rgtn a helyre, hanem a tbbieket tologatjuk htra, s a beillesztendt a legvgn tesszk be. ltalnos megold algoritmusa: Eljrs beillesztses: Ciklus I=2-tl N-ig J:=I-1: Y:= X(I) Ciklus amg J > 0 s X(J) > Y X(J+1) := X(J): J:=J-1 Ciklus vge X(J+1):= Y Ciklus vge Eljrs vge

Forrs: http://www.doksi.hu

49

26.1.Az els rendezsi feladatot oldd meg ezzel a mdszerrel! 26.2.A msodikat is! 26.3.Hny sszehasonltst kell elvgezni: 3 elem sorba rendezsekor? 4 elem sorba rendezsekor? 5 elem sorba rendezsekor? 6 elem sorba rendezsekor? 10 elem sorba rendezsekor? N elem sorba rendezsekor?

XXVII. A SZTVLOGATS

E feladattpusban egy adott sorozat elemeit vlogatjuk kett (esetleg tbbfel) valamilyen tulajdonsg alapjn. Pldul az osztly tanulit fikra s lnyokra bontjuk, az egsz szmokat pozitvokra s negatvokra stb. A feladattpus ltalnos megold algoritmusa: Eljrs sztvlogats1: J:=0: K:=0 Ciklus I=1-tl N-ig Ha X(I) T tulajdonsg akkor J:=J+1: Y(J):=X(I) klnben K:=K+1: Z(K):=X(I) Ciklus vge Eljrs vge Ez az algoritmus az adott tulajdonsg elemeket (pl. pozitv egszek) egy vektorba teszi, a tbbieket egy msikba (negatv egszek), ezrt ez az algoritmus sztvlogats kt vektorba.

Forrs: http://www.doksi.hu

50

Ha a sztvlogatshoz nem hasznlhatunk fel jabb vektorokat, csak egyet, akkor az algoritmust gy szervezzk, hogy az adott tulajdonsg elemeket az j tmb elejtl, a nem megadott tulajdonsgakat a t mb vgrl kezdjk el betenni. Ez az algoritmus a sztvlogats egy tmbbe. Eljrs sztvlogats2: J:=0: K:=N+1 Ciklus I=1-tl N-ig Ha X(I) T tulajdonsg akkor J:=J+1: Y(J):=X(I) klnben K:=K-1: Y(K):=X(I) Ciklus vge Eljrs vge 27.1.Adott egy tmb egsz tpus elemekkel. Vlogasd szt ket pozitv, s nem pozitv elemekre kt vektorba! 27.2.Ismert a laksignylk listja, ebben a csald neve s gyermekeik szma szerepel. Vlogassuk szt ket aszerint, hogy 3-nl kevesebb, vagy legalbb 3 gyermekk van! A legalbb hrom gyermekesek elbb jutnak lakshoz, ezrt a sztvlogats egy tmbbe eljrst alkalmazd, a tmb elejtl a legalbb hrom gyermekes csaldokat tedd! 27.3.Egy tmbben troljuk az Audi s a Volkswagen t pus j autt vsrlkat Vlogassuk szt ket aszerint kt tmbbe (A s V), hogy milyen tpust vsroltak! 27.4.Ismert egy osztly tanulinak nvsora s szemlyi szma. Vlogassuk szt a fikat s a lnyokat kt vektorba! 27.5.Egy pontverseny szz rsztvevje kzl I. djat kapnak a 90%-nl tbbet, II.djat a 80%-nl tbbet, III. djat pedig a 70%-nl tbbet teljestk. A tanulk eredmnyeit egy nvsor pontszmmal egytt tartalmazza. Ksztsk el az I., II., III. helyezettek illetve a nem djazottak nvsort!

Forrs: http://www.doksi.hu

51

XXVIII. MATEMATIKAI VERSENYFELADATOK

28.1.Ha kt ktjegy szm szmjegyeit egyms utn rjuk, a kt szm sszegnek ngyzetvel egyenl szmot kapunk. rj programot, amely meghatrozza az sszes megoldst! Az abcd = ( ab + cd )2 , azaz 1000*a+100*b+10*c+d = (10*a+b+10*c+d)2 felttelt kell a programnak vizsglnia! 28.2.Melyek azok a hromjegy szmok, amelyekre rvnyesek a kvetkezk: 700 abc 800 s a 2- b2 - c2 = a - b - c ? 28.3.Hny olyan ngyjegy termszetes szm van, amelynek 10-es szmrendszerbeli alakjban a szomszdos szmjegyek klnbzek? 28.4.Egy tglalap oldalai ktjegy egsz szmok. A terlet s kerlet sszege 1996. Mekkork lehetnek a tglalap oldalai? 28.5.Egy tetszleges ktjegy szm utn rjunk egy 0-t, majd jra a ktjegy szmot. Oszthat-e az gy kapott tjegy szm 11-gyel illetve 13mal minden esetben? 28.6.Hatrozzuk meg az a, b, n szmjegyeket, ha tudjuk, hogy: ab * 1n = nab ! 28.7.Az abcd tzes szmrendszerbeli ngyjegy szmrl tudjuk, hogy

abc + ab +a = 219 s a + b + c + d =27. Melyik ez a szm? 28.8.Melyek azok az x, y termszetes szmok, melyekre: xy + yx +x*y =113? 28.9.Hatrozzuk meg azokat az abba alak ngyjegy szmokat,

amelyekre az ab - ba termszetes szm, s ab - ba = (a+b)2

Forrs: http://www.doksi.hu

52

28.10.Van-e olyan tzes szmrendszerbeli hromjegy szm, amelynek a kzps jegyt trlve, a belle gy nyert ktjegy szm az eredetinek hetede nyolcada kilencede? 28.11.Ha sszeadjuk kt egsz szm sszegt, klnbsgt, szorzatt s hnyadost, eredmnyl 500-at kapunk. Mi lehet ez a kt szm? 28.12.Add meg az sszes olyan tglalapot, melynek oldalai egsz szmok, s a terletnek mrszma pontosan hromszorosa a kerletnek. 28.13.Van-e olyan hromjegy prmszm, amelynek szmjegyeit sszeszorozva tzet kapunk? 28.14.Melyik az a legkisebb pozitv egsz szm, amelynek a ktszerese ngyzetszm, s a hromszorosa egy egsz szm harmadik hatvnya? 28.15.Hny olyan ngyzetszm van, amely 25-tel osztva 12-t ad maradkul? (Termszetesen sszer hatrok kztt!) 28.16.Hny olyan tjegy termszetes szm van, amely 9-re vgzdik s oszthat 3-mal? 28.17.Hny oldala van annak a k onvex sokszgnek, amelyre fennll, hogy bels szgeinek sszeghez hozzadva a sokszg egy kls szgt, eredmnyl 1560-ot kapunk? 28.18.Van-e olyan ngyjegy, tzes szmrendszerbeli termszetes szm, amely szmjegyeinek sszege egyenl egyrszt az utols kt jegy szorzatval, msrszt az els kt jegy alkotta ktjegy szmmal is? 28.19.Egy hromszg kerlete 19 c m, oldalai cm-ben mrve egsz szmok. Egyik oldalnak hossza a msik kt oldal szorzatval egyenl. Mekkork a hromszg oldalai? 28.20.Hrom pozitv egsz szm sszege ugyanannyi, mint a szorzatuk. Melyek lehetnek ezek a szmok? 28.21.Melyek azok a ktjegy termszetes szmok, amelyekre igaz, hogy maga a szm 17-tel nagyobb, mint szmjegyeinek a szorzata? 28.22.Van-e kt olyan ngyzetszm, amelyek klnbsge 1996? Melyek ezek? Hny ilyen pr van?

Forrs: http://www.doksi.hu

53

XXIX. VEGYES FELADATOK

29.1.Kszts programot, amely nhny skidom terlett kiszmtja! Az, hogy milyen skidommal szeretnnk dolgozni, menbl legyen vlaszthat! 29.2.Az elzhz hasonl programot kszthetsz testek felszn-s trfogatszmtsra is. 29.3.Adott kettes szmrendszerben egy tetszleges szm. rj programot, amely talaktja tzes szmrendszerbe! 29.4.Kszts programot, amely tzesbl alakt t kettesbe! 29.5.Mdostsd az elz programodat gy, hogy tzes szmrendszerbl kettes, ngyes vagy nyolcas szmrendszerbe lehessen alaktani. A program menben knlja fel a lehetsges vlasztst! 29.6.Bvtsd az elz programodat gy, hogy a tizenhatos szmrendszerbe trtn talakts is szerepeljen a menben. 29.7.rj programot, amely meghatrozza kt szm legkisebb kzs tbbszrst a legnagyobb kzs oszt ismeretben! 29.8.A sz betibl lltsd el a sz Morse kdjt! 29.9.rj programot, amellyel kistestvred vagy szomszdod gyakorolhatja az alapmveleteket az ltala ismert szmkrben! A programtl a kvetkezket vrjuk: Menbl legyen vlaszthat a mvelet; A vlasztott mvelettel legalbb tz feladatot adjon; Minden vlaszt azonnal rtkeljen; A feladatok elvgzse utn sszestett rtkelst kapjunk (pl. szzalkban) 29.10.Kszts TOTO tippeket generl programot! 29.11.Generlj ts lottszmokat !

Forrs: http://www.doksi.hu

54

29.12.Mdostsd az elz programodat gy, hogy vlasztani lehessen ts vagy hatos lottszmokat szeretnnk-e! 29.13.Guruljon egy kr a kpernyn: vzszintesen fgglegesen tlsan! 29.14.Mozogjon egy kisaut a kperny kzpvonalban vzszintesen! 29.15.Rajzoltass sakktblt a kpernyre! 29.16.Kszts kockadobst szimull programot! A dobott szm a grafikus kpernyn egy ngyzeten jelenjen meg!

Pl.

Ha 3-at dobtunk, akkor gy:

29.17.Kszts adott intervallumban Pitagoraszi szmhrmasokat keres programot! 29.18.Kszts adott intervallumban ikerprmeket keres programot! 29.19.Keressnk 1000-ig Armstrong szmokat! Az Armstrong szmok a kvetkez alakak: abc = a3 + b3 + c3 ) 29.20.rj programot, amely rmai szmokat alakt t arabb s fordtva! Menbl lehessen krni , melyik talaktsra vagyok ppen kvncsi! 29.21.Az 1901. janur elsejei nap htf volt. rj programot, amely ez alapjn meghatrozza, hogy egy tetszleges v janur elseje 1901 utn milyen napra esett! 29.22.rj programot, amely beolvas egy egsz szmot 1 s 99 kztt, majd kirja a szmot betvel! 29.23.Az iskolai bfben ktfle csokoldt lehet vsrolni, az egyik A, a msik B forintba kerl. Kszts programot, amely megmondja, hogy ha C forintrt vsroltunk csokoldt, akkor mennyit vehettnk az egyik illetve a msik fajtbl! Add meg azt is, hogy egyrtelmen meghatrozhat-e az eredmny, s ha nem, akkor az sszes megoldst megadja!

Forrs: http://www.doksi.hu

55

29.24.Kszts programot, amely beolvassa egy ember teljes nevt, majd kirja a m onogramjt! Ksztsd fel a pr ogramodat kt vezetk- illetve keresztnv esetre is. Pl. Nagy Szab Zoltn vagy Kiss Pter Csaba. 29.25.rj programot, amely az A(N) s a B (N) vektorokban szmjegyenknt a helyi rtkk nvekv sorrendjben trolt N+1 -jegy egsz szmokat sszeadja, s az eredmny a C (N+1) vektorban keletkezik. Pl. N=1, A(0)=5, A(1)=6, B(0)=3, B(1) =7 esetn az eredmny C(0)=8, C(1)=3, C(2)=1, mert 65+73=138. 29.26.rj programot, amely az A(N) s a B (N) vektorokban szmjegyenknt a helyi rtkk nvekv sorrendjben trolt N+1 -jegy egsz szmokat sszeszorozza, s az eredmny a C (2*N+1) vektorban keletkezik. Pl. N=1, A(0)=5, A(1)=6, B(0)=3, B(1) =7 esetn az eredmny C(0)=5, C(1)=4, C(2)=7, C(3)=4, mert 65*73=4745. 29.27.Kszts programot, amely a grafikus kpernyn egy kurzort kpes mozgatni a kurzormozgat billentyk (, , , ) segtsgvel! Az aktulis pozcin megjelentend kurzor brjt az 1,2,3,4 billenty brmikori lenyomsval lehessen kivlasztani! Az egyes szmokhoz tartoz kurzorkpek : 1: hromszget megrajzol, majd vzszintes , 2: , 3: , 4: + vonalakkal besatroz (a 29.28.Kszts programot, amely egy a kpernyn kijellt tetszleges hromszg belsejben a kperny minden msodik sorban egy vzszintes vonalat hz). A hromszg hrom pontjnak koordintit gy olvassuk be! 29.29.Eszperente a szveg, ha e betn kvl ms magnhangzt nem tartalmaz. rj programot, amely egy tetszleges - kezet nlkli szveget beolvas, s eszperentv alaktja! 29.30.Az elz programodat mdostsd gy, hogy olvasson be egy szveget (amely kezetes magnhangzt nem tartalmaz), s dntse el, hogy eszperente-e! Ha nem az, akkor rja ki a hibs szavakat!

Forrs: http://www.doksi.hu

56

29.31.Kszts fnyjsgot, ltalad tervezett rvid hirdetsi szveggel! Az jsg folyamatosan mkdjn, azaz ha a szveg egy betje eltnik a kpernyrl, akkor a msik oldalon lpjen be!

XXX. MINTAALKALMAZSOK

I.FEJEZET Program prog_1_2; Uses Crt; Begin Clrscr; GotoXY(30,13); TextColor(2); Write('Els Pascal programom'); ReadLn; End. II.FEJEZET Program prog_2_7; Uses Crt; Begin Clrscr; Window(5,2,75,23);TextBackGround(Magenta);Clrscr; TextColor(Black); GotoXY(15,5); WriteLn('Az 5 cm sugar kr kerlete s terlete'); GotoXY(10,10); Writeln('A kerlete: ',2*5*pi:6:2,' cm'); GotoXY(10,15); Writeln('A terlete: ',5*5*pi:6:2,' cm2'); ReadLn;

Forrs: http://www.doksi.hu

57

Clrscr; Window(1,1,80,25);TextBackGround(Black);Clrscr; TextColor(White); End. Program prog_2_8; Uses Crt; Begin Clrscr; GotoXY(20,6); TextColor(2); WriteLn('A 100 s a 20 szmokkal vgzett alapmveletek'); GotoXY(10,10); WriteLn('Az sszegk: ',100+20); GotoXY(10,13); WriteLn('A klnbsgk ',100-20); GotoXY(10,16); WriteLn('A szorzatuk: ',100*20); GotoXY(10,19); WriteLn('A hnyadosuk: ',100/20:6:0); ReadLn; End. III.FEJEZET Program prog_3_8; Uses Crt; var A,B,C,X:integer; Begin Clrscr; A:=3; B:=4; C:=5; GotoXY(10,10); WriteLn('Kezdeti llapot: ',A,' ',B,' ',C); X:=A; A:=B; B:=C; C:=X; GotoXY(10,14); Writeln('Vgllapot: ', A,' ',B,' ',C); ReadLn;

Forrs: http://www.doksi.hu

58

End. Program prog_3_13; Uses Crt; var A,B,C,D,E,F:boolean; Begin Clrscr; A:=true; B:=false; C:=A and B; D:=A and not(B); E:=not(A) and not(B); F:=not(A) and B; GotoXY(20,8); WriteLn(' A s B: ',C); GotoXY(20,10); WriteLn(' A s nem B: ',D); GotoXY(20,12); WriteLn(' nem A s nem B: ',E); GotoXY(20,14); WriteLn(' nem A s B: ',C); ReadLn; Clrscr; End.

IV.fejezet Program prog_4_6; Uses Crt; var elso,masik,szkozep,negyzosszeg,osszegnegyz:real; Procedure Beolvas; Begin Clrscr; WriteLn('Krem az els szmot: '); ReadLn(elso); WriteLn('Krem a msik szmot: '); ReadLn(masik); End; Procedure Kiszamol; Begin szkozep:=(elso+masik)/2; negyzosszeg:=sqr(elso)+sqr(masik); osszegnegyz:=sqr(elso+masik); End; Procedure Kiir;

Forrs: http://www.doksi.hu

59

Begin WriteLn('Szmtani kzepk: ',szkozep:8:2); WriteLn('Ngyzetk sszege: ',negyzosszeg:8:2); WriteLn('sszegk ngyzete: ',osszegnegyz:8:2); End; Begin Beolvas; Kiszamol; Kiir; ReadLn; End. Program prog_4_7b; Uses Crt; var sec,min,h:integer; Procedure Beolvas; Begin Write('Krem az talaktand msodpercek szmt: '); ReadLn(sec); End; Procedure Atszamol; Begin h:=sec div 3600; sec:=sec-3600*h; min:=sec div 60; sec:=sec-60*min; End; Procedure Kiir; Begin WriteLn('Az id: ',h,' ra ',min,' perc ',sec,' msodperc'); End; Begin Clrscr; Beolvas; Atszamol; Kiir; ReadLn; End. Program prog_4_14; Uses Crt; const nyugdij=0.06; ebizt=0.04; var brutto,netto,ado,nyd,eb:real; nev:string[50];

Forrs: http://www.doksi.hu

60

Procedure Beolvas; Begin Write('Krem a dolgoz nevt: ');ReadLn(nev); Write('Brutt jvedelme: ');ReadLn(brutto); Write('Hny szzalkkal adzik: ');ReadLn(ado); End; Procedure Kiszamol; Begin ado:=brutto*ado/100; nyd:=(brutto-ado)*nyugdij; eb:=(brutto-ado)*ebizt; netto:=brutto-ado-nyd-eb; End; Procedure Kiir; Begin WriteLn(nev,' nev dolgoz fizetsi jegyzke:'); WriteLn('Brutt jvedelme: ',round(brutto):8); WriteLn('Adra levons: ',round(ado):8); WriteLn('Nyugdjra levons: ',round(nyd):8); WriteLn('Egszsgbizt.levons: ',round(eb):8); WriteLn('Netto jvedelme: ',round(netto):8); End; Begin Clrscr; Beolvas; Clrscr; Kiszamol; Kiir; ReadLn; End.

V.fejezet Program prog_5_10; Uses Crt; var a,d,elem:real; n:integer; Procedure Beolvas; Begin Write('A sorozat els eleme: ');ReadLn(a); Write('A differencia: ');ReadLn(d); Write('Hnyadik elemre vagy kvncsi: ');ReadLn(n); End;

Forrs: http://www.doksi.hu

61

Procedure Meghataroz; Begin elem:=a+(n-1)*d; End; Procedure Kiir; Begin WriteLn('A sorozat ',n,'. eleme: ',elem:8:2); End; Begin Clrscr; Window(20,5,60,20); Beolvas; Meghataroz; Kiir; ReadLn; End. Program prog_5_12; Uses Crt; var i,j,a,b:byte; Begin Clrscr; a:=25; b:=7; For j:=1 to 10 do Begin GotoXY(a,b); For i:=1 to 30 do Begin Write('*'); End; b:=b+1; End; ReadLn; End. VI.fejezet Program prog_6_8; Uses crt; var i,osszeg,maximum:integer; Begin Clrscr; Write('Meddig szeretnd szmolni az sszeget (min. 2 s max. 32767): ');

Forrs: http://www.doksi.hu

62

ReadLn(maximum); i:=0; osszeg:=0; while osszegb) and (b+c>a) and (ker>20) and (kermag2 Then Write('Az els ember a magasabb') Else If mag1=mag2 Then Write('Egyenl magassgak') Else Write('A msodik ember a magasabb'); ReadLn; End. Program prog_8_10; Uses Crt; var szam1,szam2,szam3:integer; Begin Clrscr; GotoXY(29,6); Write('Szmok sszehasonltsa'); GotoXY(20,10); Write('Krem az els szmot: ');ReadLn(szam1); GotoXY(20,12); Write('Krem a msodik szmot: ');ReadLn(szam2); GotoXY(20,14); Write('Krem a harmadik szmot: ');ReadLn(szam3); GotoXY(20,18); If szam1>szam2 then begin if szam1>szam3 then Write('Az els a legnagyobb') else Write('A harmadik a legnagyobb'); end else if szam2>szam3 then Write('A msodik a legnagyobb') Else Write('A harmadik a legnagyobb'); ReadLn; End. Program prog_8_15; Uses Crt; var a,b,c,x,y,z:integer;

Forrs: http://www.doksi.hu

65

Begin Clrscr; Write('A hromszg els oldala: ');ReadLn(a); Write('A haromszg msodik oldala: ');ReadLn(b); Write('A haromszg harmadik oldala: ');ReadLn(c); If (a+b>c) and (a+c>b) and (b+c>a) then Begin WriteLn('Hromszg oldalai az adatok'); x:=sqr(a);y:=sqr(b);z:=sqr(c); If (x+y=z) or (x+z=y) or (y+z=x) Then WriteLn('A hromszg derkszg') Else If (x+y>z) and (x+z>y) and (y+z>x) Then WriteLn('A hromszg hegyesszg') Else WriteLn('A hromszg tompaszg') End Else WriteLn('Ezek nem hromszg adatai!'); ReadLn; End. IX.fejezet Program prog_9_2; Uses Crt; var pontszam:byte; Begin Clrscr; GotoXY(4,8); Write('Krem az elrt pontszmot (0=2) and (sor=2) and (oszlop=2) and (sor=2) and (oszlop=1) and (n=1) and (n0) and (r0) and (d=1) and (n=n then Begin

Forrs: http://www.doksi.hu

80

End; End; Begin Beolvas; Szamol; Nyit; Rajzol; ReadLn; Zar; End.

y1:=y1+d; q:=q-1; End;

Program prog_13_9; Uses Crt,Graph; var a,b,r:integer; Procedure Nyit; var gm,gd:integer; Begin DetectGraph(gd,gm); InitGraph(gd,gm,'c:\tp\bgi'); End; Procedure Zar; Begin CloseGraph; end; Procedure Tengelyek; Begin line(0,240,640,240); line(320,0,320,480); SetTextStyle(0,0,2); OutTextXY(300,10,'Y'); OutTextXY(610,255,'X'); OutTextXY(600,10,'I.'); OutTextXY(40,10,'II.'); OutTextXY(40,460,'III.'); OutTextXY(590,460,'IV.'); End; Procedure Rajzol1(r:integer); var x,y:integer; Begin a:=320;b:=240; x:=0; y:=r;

Forrs: http://www.doksi.hu

81

while y>0 do Begin putpixel(x+a,-y+b,2); if (x+1)*(x+1)+y*y