• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

Share "Pascal példatár (1998, 113 oldal)"

Copied!
113
0
0

Texto

(1)

B E V E Z E T Ő

A feladatgyűjtemény négy nagyobb egységre tagolható:

I. A legalapvetőbb utasításokhoz kapcsolódó feladatok, I - XIII. fejezet II. Programozási tételek, és hozzájuk kapcsolódó feladatok, XIV - XXVII.

fejezet

III. Összetettebb programozási feladatok, XXVIII- XXIX. fejezet IV. Mintaalkalmazások, XXX. fejezet

A példatár első részében olyan feladatokkal foglalkozom, amelyekben a legalapvetőbb utasításokkal ismertetem meg a tanulókat.

Ilyenek a kiíró utasítások. Ezt tartalmazza az első fejezet. Természetesen a kezdet kezdetén a program felépítésével foglalkozunk. A Crt unitot a kezdettől használjuk, nem kell különösebb magyarázatokba bonyolódnunk ezzel kapcsolatban, elég ha a k özlés szintjén elmondjuk tanulóinknak, hogy a Turbo Pascal a képernyő kezelésére vonatkozó rutinokat ebben tárolja, s ha használni akarjuk őket, akkor a „unitot” előbb meg kell nyitni. A megnyitás annyit jelent, hogy a programfej alatti sorba beírjuk a következő utasítást: „Uses Crt;”. Annyit elmondhatunk még, hogy mi eleinte a Clrscr, GotoXY, TextColor, TextBackGround, stb. utasításokat használjuk ebből. Később a grafikai feladatok megoldásánál ugyanilyen módon vezetjük be a „Graph unitot”.

Az első fejezet példáiban elsősorban különböző kiíratások szerepelnek, itt terveztem megmutatni nekik a szöveg- és háttérszínező utasításokat, illetve a pozícionálási lehetőségeket. Már itt is szerepelnek olyan jellegű feladatok, amelyekben a programrészlet szövegének ismeretében találják ki, mit is csinál az adott programrész.

A második fejezet hivatott részben a legegyszerűbb adattípusok megismertetésére, felhasználva a matematikából számukra jól ismert műveleti sorrend szabályt, illetve ennek gépi megvalósítását, zárójelezési lehetőségeket. Itt ismernek meg néhány egész típust, a B yte, Integer, Word és a Long Int típusokra gondoltam. A valós típusok közül a R eal-t tanítom, mert az nem igényel matematikai kooprocesszort vagy annak emulációját. Itt már készítünk egyszerű, konkrét számokkal dolgozó matematikai problémát megoldó programot. Ilyen a kör területét, kerületét számoló feladat, ahol már a konstans fogalma is előkerül, Pi értékét a deklarációban megadhatjuk konstansként, de hivatkozhatunk arra is, hogy a TP magasabb verziói ismerik a Pi-t.

Ekkor már törekedhetünk a s zép, esztétikus kiíratásokra, arra, hogy ha a programot más felhasználó működteti, számára is világos legyen, hogy az adott program mit csinál.

Ekkor akár már futtatható fájlt is készíthetünk a programunkból.

A harmadik fejezet feladatai a dek laráció fontosságára, a s zám, logikai, karakter és szöveg típusok használatának elmélyítésére, a megfelelő típus megválasztásának fontosságára szolgálnak. Már a k ezdetekre terveztem a

(2)

logikai típus megtanítását, hisz a ny olcosztályos gimnáziumi matematika anyagban ekkorra már ismernek különféle halmazelméleti és matematikai logikai fogalmakat. Ide is tettem olyan feladatokat, amelyekben a programrész szövegéből kell következtetni a futás eredményére. Ezek a nehezebb feladatok, éppen ezért mindig adok lehetőséget a gépi megvalósításra, ellenőrzésre. Néhány beépített függvényt közlés szinten megmutathatunk a tanulóknak, s azokat használhatják is.

A negyedik fejezet foglalkozik az adatbeolvasással. Itt már olyan feladatokat készítünk, ahol a felhasználó adhat értéket a deklarált változóknak, vagyis nem egyetlen konkrét adatra írjuk programjainkat, hanem tetszőlegesekre.

Az alkalmazott adattípusok elsősorban elemi típusok: egész, valós, karakter, logikai, illetve az összetettek közül a szöveg típust terveztem ide.

Természetesen itt is ügyeljünk arra, hogy a pr ogram által megjelenített képernyő esztétikus, a programszöveg is tagolt, könnyen áttekinthető legyen! Ekkor már ablakot is definiálhatunk a képernyőre. Tapasztalatom szerint a gyerekek nagyon örülnek, ha valami szép színesen jelenik meg a képernyőn, főleg ha azt maguk alakíthatták. Érdemes már ekkor kihasználni ezt a lehetőséget. Természetesen a képernyő és a szöveg színét a programok végén mindig állíttassuk velük vissza.

Már ebben a fejezetben gondoltam eljárásokra tagolni a programokat.

Célszerűnek tartom a programokat itt három eljárásra bontani, beolvasó, kiíró és tényleges végrehajtó részre. Itt használunk először főprogramot. Itt beszélhetünk először arról, hogy az eljáráson belül is lehet deklarációs rész, s abban helyi (lokális) változókat is megadhatunk, amelyek csak az eljáráson belül érvényesek, máshol hivatkozva rájuk hibaüzenetet kapunk. A program elején deklarált változókra azonban bárhol hivatkozhatunk, mivel hatásuk mindenütt érvényes, ezek a globális változók.

Eleinte mi még csak globális változókkal dolgozunk, mindent a pr ogram deklarációs részében adunk meg.

Az ötödik, hatodik és a het edik fejezet az ismétlési szerkezetekkel foglalkozó feladatokat tartalmazza. Igen fontos rész ez minden programozási nyelvben, ezért eléggé az elejére tettem, az elágazások elé, hisz ismétlő szerkezettel már korábban a Logo nyelvben is találkoztak a tanulók. Ebben a korban a számlálós ciklus a legérthetőbb, s a leggyakrabban használt, ezért ebből a fajtából terveztem a l egtöbb feladatot. A másik két ciklusfajtából kevesebb feladatot terveztem, hisz ezek a későbbiekben úgyis többször előfordulnak. Ekkor már az eljárásokban definiálhatunk lokális változókat is, például a ciklusváltozók. A nyolcadik, kilencedik fejezet foglalkozik az elágazásokkal. Ide képzeltem még néhány, gyakran előforduló beépített függvény megtanítását (pl. abs, random stb.).

A feladatgyűjteményben osztályoztam a feladatokat nehézségi szintjük szerint, Könnyebbek, közepesek és nehezek. Ebben a sorrendben a feladatok szövege előtt jelzés áll, ami a nehézségi fokot mutatja.

(3)

Könnyebb ⊇ Közepes ⊄ Nehéz ⊂

A feladatgyűjtemény 320 feladatot és 62 mintaalkalmazást tartalmaz. Az utolsó nagy egység a mintaalkalmazások fejezete.

I.

KIÍRÓ UTASÍTÁSOK

1.1.⊇Írj programot, amely a következőt írja a képernyőre: Első Pascal

programom!

1.2.⊇Módosítsd az előző feladatot úgy, hogy a képernyő közepén egy

általad választott színnel jelenjen meg a szöveg!

1.3.⊇A háttérszínt is Te válaszd meg az előző munkádban!

1.4.⊇Készíts programot, amely arányosan a képernyő közepén

megjeleníti teljes nevedet, iskoládat és évfolyamodat! A színeket magad választhatod.

1.5.⊇Lesz-e látható különbség a képernyőn való megjelenésben az alábbi

(4)

... ...

Begin Begin

Write(‘Hello!’); Writeln(‘hello!’);

End. End.

1.6.⊇Mi a különbség a képernyőn való megjelenésben a következő két kis

programban? Program bp1; Program bp2; uses crt; uses crt; begin begin clrscr; clrscr; gotoxy(35,10); gotoxy(35,10); write(‘BUDA’); writeln(‘BUDA’); write(‘PEST’); writeln(‘PEST’); readln; readln; end. end.

1.7.⊇Írj programot, amely a képernyőn megjeleníti az osztályod vagy

csoportod matematika órai ülésrendjét!

1.8.⊇A programod a kötőjel segítségével rajzoljon téglalapot a

képernyőre! A helyet és a rajz színét Te határozhatod meg!

1.9.⊇Módosítsd az előzőt úgy, hogy a téglalap egyik párhuzamos

oldalpárját az egyenlőségjellel, a másikat csillagokkal rajzoltatod!

1.10.⊇Van-e különbség a következő két utasítás között az 5-ös szám

megjelenítésében a képernyőn?

a. / ... b./ ... Write(5); Write(‘5’);

... ...

1.11.⊇Az alábbi két program közül melyik jeleníti meg a képernyőn az „a”

betűt?

a./ b./

(5)

Write(a); Write(‘a’);

End; End;

II.

SZÁMOK ÉS MŰVELETEK

2.1.⊇A következő programban a writeln utasítás mögött szereplő műveleteket

fejben végezd el, jegyezd fel az eredményeket! Majd a programot gépeld 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 történne, ha minden writeln utasítást write-ra cserélnél?

Ki is próbálhatod! Hogyan lehetne az ilyen kiíratást tagolttá tenni?

2.3.⊇Módosítsd a valós számokkal végzett műveletek eredményének

kiíratását úgy, hogy az ne nor málalakban, hanem meghatározott tizedesjegy pontossággal jelenjen meg! (Ajánlott 2-3 tizedesjegy)

(6)

2.4.⊇Az előző programot egészítsd ki a következő két sorral:

writeln((23+7)*5) és writeln(23+7*5)! Futtatás után miért más a k ét eredmény?

2.5.⊇Milyen sorrendben végezné el a számítógép a következő

műveleteket? Sorszámozd a végrehajtást, számold is ki az eredményeket! Ha időd engedi, egészítsd ki az előző programodat e sorokkal, és ellenőrizd gondolatmeneted helyességét!

a./ (10+5)*20-100/4=... b./ 10+5*20-100/4=... c./ 10+5*(20-100)/4=...

2.6.⊄Írj programot, amely kiszámítja a következő műveletek eredményét

két tizedesjegy pontossággal!

a./ 6532 : (12+88) + 782 : (44+56) b./ 3,76 + 12,53 * 27,35 - 1,45 : 12,5

2.7.⊄Készíts egy 5 cm sugarú kör kerületét és területét meghatározó

programot, amely két tizedesjegyig számol, és a képernyőn az is megjelenik, hogy miről is van szó!

Pl. A kör sugara: 5 cm A kerülete: ...cm A területe: ...cm2

2.8.⊄Írj programot, amely általad tetszőlegesen választott két valós

számmal elvégzi a négy alapműveletet, és kiírja az összeget, különbséget, szorzatot és hányadost! Ügyelj arra, hogy külső szemlélő is tudja, melyik eredmény melyik művelethez tartozik!

(7)

III.

VÁLTOZÓK DEKLARÁLÁSA, ÉRTÉKÜK KIÍRATÁSA

3.1.⊇Egészítsd ki a következő deklarációkat a megadott intervallumoknak

megfelelően! Több lehetőség esetén a legkevesebb helyfoglalásút add meg!

a./ var a:...; (a∈Ν, 0≤ a ≤ 255) b./ var a:...; (a∈Ζ, -5000≤ a ≤ 5000) c./ var a:...; (a∈Ν, 0≤ a ≤60000) d./ var a:...; (a∈Ζ, -106≤ a ≤ 106) e./ var a:...; (a∈Ζ, -128≤ a ≤ 127) f./ var a:...; (a∈R)

3.2.⊄Értelmezd a következő programrészleteket!

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

(8)

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

end. end.

- Mi az alapvető különbség az a./ és b./ feladatok között? - Miben különböznek egymástól a./ , b./ és d./ feladatok?

A változókat (a,b,t,h,p) milyen típusnak deklarálnád a feladatokban?

3.3.⊇Írj programot, amely A=20 és B=10 számok összegét, különbségét

és szorzatát meghatározza, és megjeleníti a képernyőn! A megjelenítéshez használd korábbi ismereteidet (cím, pozícionálás, esetleg színezés)!

3.4.⊄Bővítsd az előző programot úgy, hogy a két érték hányadosát is

meghatározza! Milyen hibát tapasztalsz, ha a hány ados változót is egész típusúnak deklarálod? Hogyan javítható a hiba? Keress több megoldást!

3.5.⊇Mindenképpen csak egész típussal szeretnénk dolgozni az előző

feladatban. Milyen osztás kerüljön ekkor végrehajtásra?

3.6.⊇Az előző osztást módosítsd úgy, hogy az osztás maradékát jelenítse

meg a program!

3.7.⊄A következő programrészletek mindegyikénél add meg a

következőket:

- Milyen típusúnak kell deklarálni A, B és C -t? - Mit írnak ki az egyes programok képernyőre?

a./ A:=10; b./ A:=7; c./ A:=2;

B:=12 B:=3; B:=4;

B:=A; A:=A+1; B:=B div 2; C:=B-A; C:=A+B; A:=A mod 2;

(9)

Write(C ); Write(C ); C:=A*B; Write(C ); Típus: A:………. ………. ………. B:………. ………. ………. C:………. ………. ………. Érték: C=……… ………. ……….

d./ A:=5000; e./ A:=5;

B:=40; B:=4; A:=A-2; A:=A+1; B:=B+1; C:=A/B; C:=A*B; write(C ); write(C ); Típus: A:………. ………. ………. B:………. ………. ………. C:………. ………. ………. Érték: C=……… ………. ……….

3.8.⊄Legyen A=3, B =4, C =5. Cseréld fel a m emóriában A, B és C

változók értékét a következő módon: X segédváltozó vegye fel A értékét, B a C-ét, C pedig X segítségével A-ét!

Írasd ki a kezdeti és a végállapotot!

3.9.⊄Értelmezd a következő rövid programot!

Program karakter; uses crt;

var betu,jel,kod:char; begin

(10)

betu:=’B’; jel:=’+’; kod:= ‘#’; writeln(betu); writeln(jel); writeln(kod); readln; end.

3.10.⊄Az előző programban a betu:=’B’ helyett betu:=’peterke’

szerepeljen. Mit tapasztalsz?

3.11.⊇A Writeln(jel) után a következő sorokat iktasd be:

- writeln(succ(jel)); - writeln(pred(jel)); - writeln(ord(jel)); Mit tapasztalsz?

3.12.⊇A tízes feladatban töröld a w riteln(kod) sort, helyére a

writeln(chr(176)) utasítás kerüljön! Mi történik?

3.13.⊄Az „A” l ogikai változó értéke legyen igaz, a „ B” logikai változó

értéke hamis. Írj programot, amely meghatározza a következőket: a./ A és B

b./ A és nem B c./ nem A és nem B d./ nem A és B !

3.14.⊇Az előző feladatban változtasd meg A és B logikai értékét! Az így

futtatott programokat más néven mentsd! Lehetőségek: A - igaz B - igaz

A - hamis B - hamis A - hamis B – igaz

3.15.⊇Az előző programokban az és logikai műveletet cseréld vagy -ra! 3.16.⊇A következő konstans deklarációk közül melyekben van szintaktikai

(11)

a./ const nagy = 350; ... b./ const kicsi = 0 or 1 or 2; ... c./ const elso: ‘a’ ... d./ const also=-500;

felso= 3E+5; ...

IV.

ADATBEOLVASÁS: BEOLVASÓ UTASÍTÁSOK

4.1.⊇Készíts programot, amely két tetszőleges valós számra elvégzi a

négy alapműveletet!

4.2.⊇Szépítsd a k iírások küllemét úgy, hogy a program minden fontosat

jelenítsen meg!

4.3.⊇Gépeld be, majd futtasd a következő programot! Mit tapasztalsz?

Program beolvas; Uses crt; var b1,b2:char; Begin Clrscr; Read(b1); Read(b2); Write(b1,b2); ReadLn; End.

Cseréld a read utasításokat readln-re! Mi történik?

4.4.⊇Írj programot, amely a felhasználó által megadott két tetszőleges

karaktert kiír a képernyőre: a./ egymás mellé b./ egymás alá

(12)

4.5.⊇Készíts programot, amely bekéri a f elhasználó nevét, majd kiírja a

képernyőre a következőt: Üdvözöllek ...! Az illető név kerül a kipontozott helyre.

4.6.⊇Írj programot, amely bekér két tetszőleges számot, majd kiszámítja

és kiírja a következőket:

a./ a számok számtani közepe b./ négyzetük összege

c./ összegük négyzete !

4.7.⊄Készíts mértékegységváltó programokat!

a./ Órákban megadott értéket megjelenít percekben és másodpercekben is!

b./ Másodpercben adottakat átírja óra, perc, másodpercre!

4.8.⊄Találj ki hasonló feladatokat! Készíts hozzájuk programot!

4.9.⊇Írj programot, amely egy egyenes vonalú egyenletes mozgást végző

test esetén meghatározza a következőket:

a./ Az út és idő ismeretében a sebességet! b./ Az út és sebesség ismeretében az időt! c./ A sebesség és idő ismeretében az utat!

Természetesen ne í rj minden esetben teljesen új programot, hanem az előzőt módosítsd, majd a módosítottat mindig új néven mentsd el!

4.10.⊇Hasonló feladatokat Te is készíthetsz a fizika területéről vett

ismereteid alapján, például:

a./ Feszültség, áramerősség és ellenállás b./ Tömeg, térfogat és sűrűség

c./ Feszültség, áramerősség és teljesítmény

d./ Tömeg, fajhő, hőmérséklet-változás és hőmennyiség stb.

4.11.⊄Készíts árazó programot, amely az áru árából és

a./ a százalékos emelkedésből meghatározza az új, emelt árat b./ a százalékos csökkenésből kiszámítja az új, csökkentett árat!

(13)

4.12.⊄Készíts felszín- és térfogatszámító programokat! (Téglatestre,

hengerre, gömbre stb.)

4.13.⊂Készíts nettó jövedelmet számító programot! A program kérje be az

illető nevét, havi bruttó jövedelmét, és azt, hogy hány százalékkal szeretne adózni! Ezután a pr ogram vonjon le 6%-ot nyugdíjra, 4%-ot egészségbiztosításra, majd az így megmaradó összeget csökkentse az adott adószázalékkal! A képernyőn az illető neve és a kapott nettó összeg jelenjen meg!

4.14.⊂Módosítsd az előző programot úgy, hogy a bruttó jövedelem,

valamint az egyes levonások is nevükkel és értékükkel megjelenjenek a képernyőn!

Pl. Kovács János jövedelme

Bruttó: 50.000,- Ft. (felhasználó által megadott) Adókulcs: 40% (felhasználó által meghatározott) Levonások:

6% nyugdíj: 3.000,- Ft. (mindig 6%) 4% eg.bizt. 2.000,- Ft. (mindig 4%) 40% adó 18.000,-Ft.

Nettó: 27.000,-Ft.

(A 6%+4% -kal csökkentett értékből számítandó) A megjelenítéshez definiálhatsz egy megfelelő méretű színes ablakot

is a képernyőre. Vigyázz, hogy adott színű háttérre milyen színnel írod a szöveget!

ISMÉTLÉSEK SZERVEZÉSE

V.

(14)

5.1.⊇Készíts programot, amely öt sort teleír a k eresztneveddel a

képernyőn! Az egyes kiírások között feltétlenül legyen szóköz!

5.2.⊇Írasd ki 1-től 20-ig a természetes számokat a képernyőre: a./ egymás mellé (legalább egy szóköz legyen a számok között)

b./ egymás alá (minden szám új sorban)!

5.3.⊇Az előző feladatot módosítsd úgy, hogy a számok csökkenő

sorrendben jelenjenek meg!

5.4.⊇Írasd ki az angol ABC nagybetűit növekvő sorrendben!

5.5.⊇Az előző programot módosítsd úgy, hogy csökkenő sorrendben

jelenjenek meg a betűk!

5.6.⊄Módosítsd a második feladat a./ részét úgy, hogy a számok alatt a

négyzetük is szerepeljen a képernyőn!

5.7.⊇Írj programot, amely összeadja az első száz természetes számot! 5.8.⊄Módosítsd a pr ogramot úgy, hogy Te dönthesd el, hány darab

egymást követő természetes számra szeretnéd az összeget meghatározni!

5.9.⊄Módosítsd az előző feladatot úgy, hogy tetszőleges kezdőértéktől

tudjon a program összeget számolni!

5.10.⊄Készíts számtani sorozat tagjait kiszámító programot! A gép az első

elem, a differencia és az elemszám ismeretében írja ki a sorozat elemeit!

5.11.⊄Az előző feladatot oldd meg mértani sorozatra is! (Be: a1, q, n );

5.12.⊇Írj programot, amely csillagokból egy 30*10-es téglalapot rajzol a

képernyő közepére!

5.13.⊄Különböző jelekkel rajzoltass a képernyőre alakzatokat

(háromszög, kereszt, stb.)!

5.14.⊄Készíts vastagvonalas keretet egy színes ablak köré a képernyőre!

(A szükséges ASCII kód 219 = ν ). A keret a képernyő széleitől arányosan helyezkedjen el (pl. felülről és alulról 5-5 egységre, oldalról 10-10 egységre)!

(15)

VI.

AZ ELÖLTESZTELŐ CIKLUS

6.1.⊇Készíts programot, amely „0” végjelig elfogad valós számokat!

6.2.⊄Módosítsd az első programot úgy, hogy a beolvasott számok átlagát

is meghatározza! Vigyázz! A 0 ne szerepeljen az átlagok között!

6.3.⊄Írj programot, mellyel karaktereket olvashatunk be „*” végjelig!

6.4.⊄Módosítsd az előző programot úgy, hogy a beolvasott karaktereket

egy szöveggé fűzve írja is ki!

6.5.⊄Írassuk ki a 200-nál kisebb négyzetszámokat! 6.6.⊄Adjuk össze 3 egész számú többszöröseit 100-ig!

6.7.⊄Az első hány darab természetes számot kell összeadnunk, hogy az

összeg kisebb legyen 1000-nél?

6.8.⊄Módosítsd az előző programot úgy, hogy az összeget a felhasználó

adhassa meg!

6.9.⊂Az 5 természetes szám egész számú többszöröseiből hány darabot

kell összegeznünk, hogy az összeg ne lépje túl az integer tartomány felső határát!

6.10.⊂Változtasd meg az előző programot úgy, hogy a felhasználó által

meghatározható értékkel indulva, megadható lépésközzel és összeghatárig számoljon!

6.11.⊂Hány faktoriális értéke nem haladhatja meg az integer típus felső

határát?

6.12.⊂100000Ft megtakarított pénzemet 15%-os éves kamatot garantáló

államkötvénybe fektetve mennyi idő múlva éri el a pénzem a

200000Ft-ot?

(Kamatos kamat!)

6.13.⊂Módosítsd az előző programot úgy, hogy a kiinduló összeget, a

(16)

VII.

A HÁTULTESZTELŐ CIKLUS

7.1.⊇Kérjen be a pr ogram billentyűzetről természetes számokat! Csak

akkor fogadja el a beütött számot, ha az 0 és 50 közötti!

7.2.⊇Írassunk véletlen számokat a képernyőre addig, amíg a gép egy

bizonyos számot el nem talál! Például 0 és 10 k özötti számok esetén akkor legyen vége, ha 6-ot generál a program!

7.3.⊇Készíts programot, mellyel karaktereket vihetünk be ál talad

megszabott végjelig!

7.4.⊇Írasd ki a nevedet a képernyő közepére, tetszőleges billentyű

lenyomására léphessünk ki a programból! (Ne csak az ENTER-re!)

7.5.⊄Írj programot, amelybe tanulmányi átlagokat vihetünk be „0” végjelig,

s a program meghatározza az átlagot! Vigyázz! A végjel 0-át ne számítsd hozzá az átlaghoz!

7.6.⊄Készíts programot, amely közönséges törtek tizedes tört alakját írja

ki hat tizedes jegyig!

7.7.⊂Módosítsd az előző programot úgy, hogy addig fusson, amíg a

számláló értékül 0-át nem kap!

7.8.⊂Olvassuk be egy háromszög három oldalának hosszát! A beolvasás

addig ismétlődjön, míg az adatokra nem teljesül a háromszög-egyenlőtlenség! (Háromszög-egyenlőtlenség: bármely két oldal összege nagyobb a harmadik oldalnál!) A program adjon különböző üzeneteket is!

(17)

7.9.⊂Módosítsd az előző feladatot úgy, hogy a következő feltétel is

teljesüljön: a kerület 20 és 30 közé essen!

ELÁGAZÁSOK

VIII.

A KÉTIRÁNYÚ ELÁGAZÁS

8.1.⊇Készíts programot, amely egy beolvasott számról eldönti, pozitív-e!

A kiíratásnál használj különböző színeket!

8.2.⊇Írj programot, amely meghatározza egy beolvasott szám abszolút

értékét! Nem használhatod az abs függvényt!

8.3.⊇Írd meg a programot az abs függvénnyel is!

8.4.⊇Készíts programot, amely két ember testmagassága ismeretében

eldönti, melyikük a magasabb!

8.5.⊄Módosítsd az előző feladatot úgy, hogy egyenlő magasságok esetén

is jól működjön!

8.6.⊄Az első feladatot alakítsd át úgy, hogy a beol vasott számról azt is

kiírja, hogy 0 vagy negatív!

8.7.⊄Döntse el a program két beolvasott számról, hogy megegyező

előjelűek-e!

8.8.⊄Írj programot, amely két tetszőleges számról eldönti, melyikük a

(18)

8.9.⊄Egészítsd ki az előző programot úgy, hogy a s zámokat írja is ki

növekvő sorrendben!

8.10.⊂Az előző két feladatot módosítsd úgy, hogy három számra is

működjön!

8.11.⊄A fejezet nyolcadik feladatát oldd meg számok helyett névsorba

rendezendő két névre!

8.12.⊂Az előző feladatot módosítsd úgy, hogy három névre is működjön! 8.13.⊄Készíts programot, amely három mérőszámról eldönti,

szerkeszthető-e velük háromszög!

8.14.⊂Egészítsd ki az előző programot úgy, hogy ha szerkeszthető

háromszög, akkor arról mondja meg a program, hogy derékszögű-e!

8.15.⊂Bővítsd tovább a programot! Ha szerkeszthető háromszög, akkor

az hegyesszögű, derékszögű vagy tompaszögű-e!

8.16.⊇Írj programot, amely egy beolvasott számról eldönti osztható-e

15-tel!

8.17.⊄Módosítsd az előzőt úgy, hogy az osztót is a felhasználó adhassa

meg!

8.18.⊄Egy beolvasott életkorról döntse el a program, hogy az illető

gyerek(0-6év), iskolás(7-18 év), dolgozó(19-62 év) vagy nyugdíjas!

8.19.⊄Adott egy tetszőleges pont a síkban koordinátáival, döntsük el,

melyik síknegyedben van!

8.20.⊂Bővítsd az előző programot úgy, hogy tengelyen lévő pontokra is jól

működjön!

8.21.⊄Készíts programot, amely egy beolvasott évszámról eldönti,

szökőév-e! A beírható évszám ésszerű határok között mozogjon!

IX.

(19)

9.1.⊇Írj programot, amely számként bevitt osztályzatoknak kiírja a

szöveges megfelelőjét! (Pl. 5-re a jeles szöveget jeleníti meg)

9.2.⊇Készíts dolgozatot a pontszám alapján értékelő programot!

A maximális pontszám legyen 50. A határok: 0-25 elégtelen

26-30 elégséges 31-39 közepes 40-45 jó 46-50 jeles

A begépelt tanulói pontszám alapján a program írja ki az osztályzatot!

9.3.⊇Írj programot, amely bekéri az osztályzatodat, és ez alapján kiírja

szüleid véleményét! Ötletes megjegyzéseket jeleníts meg a képernyőn!

9.4.⊄Készíts programot, amely egy beolvasott karakterről megmondja,

milyen kategóriájú! A...Z → nagybetű; a...z → kisbetű, 0...9-ig szám, minden más eset legyen speciális jel.

9.5.⊄Tervezz programot, amelyben a case utasítás segítségével menüszerűen

választható, hogy mit szeretnénk kiíratni! Olvasunk be egy egész számot:

1-nél magát a számot

2-nél a szám abszolutértékét 3-nál a szám négyzetét

4-nél a szám ellentettjét írja ki!

9.6.⊄Írj programot, amely egy beolvasott számhoz hozzárendeli, hogy a hét

melyik napja! (1 - hétfő, 2 - kedd, stb.)

9.7.⊂Készíts programot, amelyben menüszerűen választhatunk, hogy mely

síkidom területét akarjuk kiszámítani!

(Pl. 1- téglalap, 2- trapéz, 3- kör, stb.) A korábban megírt területszámító programjaid megfelelő eljárásait átmásolhatod ebbe a programba!

9.8.⊄Készíts programot, amely egy szótagból álló szavakról megmondja, hogy

a szó magas vagy mély hangrendű!

(20)

FELADATOK EGYINDEXES TÖMBÖKKEL

10.1.⊇Készíts programot, amely bekér öt pozitív egész számot, ezeket

egy tömbben tárolja (feltételvizsgálat legyen), majd kiírja azokat a képernyőre egymás mellé!

10.2.⊇Öt darab véletlen számmal tölts fel egy tömböt, majd add meg a

számok összegét és átlagát!

10.3.⊇Egy vektorban tárold családod tagjainak keresztneveit, majd írasd

ki ezeket a a képernyőre egymás mellé szóközökkel elválasztva!

10.4.⊄Olvassunk be numerikus adatot egy tömbbe 0 v égjelig! A

beolvasást addig ismételjük, amíg a bemenő adat nem megfelelő, azaz a program ellenőrizze, hogy számot olvastunk-e be és nem karaktert! A program írja ki a beolvasandó adat indexét is!

10.5.⊄Írj programot, amely beolvasott jegyeid alapján megadja az adott

tantárgyból az átlagodat! (Maximálisan tíz jegyre készüljön!) Kérje be a tantárgy nevét is, s a k iíratásnál azt is jelenítse meg! (Pl. így: matematikából az átlagod: 4.3)

10.6.⊄Kérjen be a program két vektort, számítsa ki összegüket!

10.7.⊇Az előző programot módosítsd úgy, hogy a vektorok különbségét is

meghatározza!

10.8.⊂Számíttasd ki a két vektor skalárszorzatát is!

10.9.⊂Mérjük meg tíz gyerek testsúlyát, a mért értékeket sorban vigyük be

egy tömbbe. Kérdés, hogy melyik gyerek súlya tér el legjobban az átlagtól?

10.10⊄Írj programot, amely bekéri évenként 1990 és 1997 között, hogy

mennyi pénzt költött ruhára Gábor és Évi. Ezután tedd lehetővé annak megkérdezését, hogy mennyit költöttek egy adott évben külön-külön és együtt! A lekérdezés addig folytatódjon, amíg az adott évnél nullát nem ütnek!

(21)

10.11.⊂Egy börtönben 100 cella van, mindegyikben egy rab ül. Kezdetben

a cellák zárva vannak. A börtönőrnek játszani támad kedve: végigmegy az összes cella előtt, és mindegyik ajtó zárján fordít egyet. Fordításkor a nyitott cellát bezárja, a zártat kinyitja. Ha végigment elkezdi elölről, és minden második cella zárján fordít egyet. Aztán minden harmadikon fordít, és így tovább, összesen százszor. E zután amelyik cella ajtaja nincs lezárva, abból a rab elmehet. Készíts programot, amely megadja a szabaduló rabok cellaszámát! Próbáld ki a programot magasabb cellaszámra is (Pl. 1000)!

10.12.⊂Olvassunk be nev eket ‘ *’ v égjelig! A beolvasott neveket

osztályozzuk hosszuk szerint, és készítsük el a következő statisztikát: Hossz Darab 0 – 9 :……… 10 –19 :……… 20 – 29 :……… 30 – 39 :………. 40 - :……….

XI.

FELADATOK TÖBBINDEXES TÖMBÖKKEL

11.1.⊂Tölts fel egy 3x3-mas táblázatot véletlenszerűen 0 és 1 elemekkel!

Írasd ki! Pl. a következő formában: 1 1 0 0 0 1 1 0 1

(22)

11.2.⊂Módosítsd a f eladatot N * M-es táblázatra! N és M értékét is a

felhasználó adhassa meg, természetesen ésszerű határok között! ( 2 <= N,M <= 10)

11.3.⊂Az előző táblázatban a 0 elemeket cseréld 5-re!

11.4.⊄Írj programot, amely beolvassa öt ismerősöd nevét és

telefonszámát, majd kiírja ezeket a képernyőre a következő módon:

Név Telefonszám XXXX YYYY

11.5.⊄Módosítsd az előző programot úgy, hogy az ismerőseid nevén kívül

a lakcímük is megjelenjen a képernyőn!

11.6.⊂Készíts programot, amely a teljes hetes szorzótáblát megjeleníti a

képernyőn!

11.7.⊂Módosítsd az előző programot úgy, hogy a felhasználó adhassa

meg ésszerű határok között, hogy melyik szorzótáblát szeretné látni!

11.8.⊂Legyenek A és B N * M-es táblázatok. Töltsd fel őket 0 és 10

közötti természetes számokkal véletlenszerűen! Az így kapott táblázat neve mátrix. Határozd meg e két mátrix:

a./ összegét b./ különbségét

Az összeadás és kivonás szabálya:

a b e f a + e b + f + =

c d g h c + g d + h

11.9.⊂Készíts programot, amelyben beolvashatjuk tanulók nevét és

születési évét, majd ezen adatok felhasználásával ezeket kiírja táblázatos formában a képernyőre!

(23)

11.10.⊂Módosítsd az előző programot úgy, hogy írók nevét, könyvük

címét és a kiadási évet olvashassuk be! Hogyan változik a r ekord szerkezete ekkor?

11.11.⊂Készíts hasonló feladatokat Te is! Például a bar átaidra

vonatkozóan:

név, lakcím, telefonszám, kedvenc étele stb. szerepelhetnek benne.

XII.

ELEMI GRAFIKAI FELADATOK I.

12.1.⊇Készítsünk szövegesről grafikus képernyőre átváltó keretprogramot! Ezt a programot a továbbiakban mindig felhasználhatod.

12.2.⊇Rajzoltass zöld színnel pontokat a képernyő következő helyeire:

A(160,320) B(480,320) C(420,160) D(220,160)!

12.3.⊇Az előző feladat pontjait kösd össze szakasszal! Milyen négyszöget

kaptál?

12.4.⊇A LINE utasítás felhasználásával rajzolj a képernyőre különböző

háromszögeket! Legyen hegyesszögű, derékszögű, tompaszögű, egyenlő szárú és egyenlő oldalú is közöttük!

12.5.⊇Rajzolj a képernyőre koncentrikus köröket! Középpontjuk a

(320,240) pont, sugaraik rendre 50, 100, 150.

12.6.⊄Módosítsd az előző programot úgy, hogy a CIRCLE utasítást csak

(24)

12.7.⊇Rajzoltass a képernyő középpontjában tetszőleges számú, sugarú

és színű koncentrikus köröket! (Vigyázz a legnagyobb sugár megválasztásánál!)

12.8.⊇Írj programot, amely kirajzolja a képernyőre az olimpiai ötkarikát

különböző színekkel!

12.9.⊇Készíts programot, amely három egybevágó, különböző színű

téglalapot rajzol a képernyőre:

a./ egymás mellé arányosan elhelyezve b./ egymás alá

c./ átlósan!

12.10.⊄Módosítsd az előző programodat úgy, hogy a RECTANGLE

utasítást csak egyszer kelljen leírnod!

12.11.⊄Készítsd el három egymásba ágyazott téglalap rajzát a képernyő

közepére! A méreteket Te add meg!

12.12.⊄Módosítsd az előző feladatot úgy, hogy a téglalapok különböző

színnel kitöltöttek legyenek, a legkisebb legyen legfelül!

12.13.⊇Írasd ki a nevedet a grafikus képernyőre középre, vízszintes

irányban, az általad választott betűtípussal és mérettel!

12.14.⊇Az előző feladatot módosítsd úgy, hogy függőlegesen jelenjen

meg a neved!

12.15.⊄Írass értelmes szöveget átlósan a grafikus képernyőre!

12.16.⊄Készíts programot, amely trapézokat, paralelogrammát, téglalapot

és négyzetet rajzol a képernyőre arányosan elrendezve! Minden alakzatban jelenjen meg annak neve! A kép alján pedig legyen ott a készítő neve!

Valahogy így:

TRAPÉZ SZ.TRAPÉZ D.TRAPÉZ

(25)

Nagy Péter

12.17.⊇A negyedik feladatot egészítsd ki feliratokkal! Minden háromszög

alatt jelenjen meg, hogy milyen típusú!

12.18.⊇A jegyzeted alapján rajzolj különböző alakzatokat a képernyőre!

Ellipszist, körcikket, ellipsziscikket stb.

12.19.⊂Készíts egy tortát, majd egy tortaszeletet a képernyőre! A látható

lapokat fesd be más-más színnel!

12.20.⊄A sokszögrajzoló utasítás segítségével rajzolj szabályos

háromszögeket a képernyőre, majd színezd be azokat különböző színnel és mintával!

12.21.⊄Az előző feladatot módosítsd szabályos hatszögre!

12.22⊄Készíts programot, amely a F öld körüli pályán keringő Hold

(26)

12.23.⊄Az előző feladatot módosítsd úgy, hogy a Nap körül keringjen a

(27)

12.24.⊂Készíts koordináta rendszert rajzoló eljárást! A tengelyek mellett

szerepeljen a nevük, s a tengelyekre készíts beosztásokat!

12.25.⊂Az előző feladat koordináta rendszerét felhasználva ábrázold az

Y=2*X-1 elsőfokú függvény pontjait a [-10; +10] intervallumon!

12.26.⊂Módosítsd az előző feladatot úgy, hogy tetszőleges Y=A * X + B

alakú elsőfokú függvényre is működjön!

XIII.

ELEMI GRAFIKAI FELADATOK II.

Most olyan feladatok szerepelnek a példatárban, melyek megoldása során csak a következő grafikus utasításokat használhatod fel:

 képernyőtörlés  egy pont rajzolása  egy pont törlése

 adott pont rajzolt vagy rajzolatlan állapotának vizsgálata

13.1.⊂Készíts programot, amely besatírozza a képernyőt függőleges

vonalakkal!

13.2.⊂Módosítsd az előző programot úgy, hogy vízszintes vonalakkal

satírozzon!

13.3.⊂Rajzoltass a képernyőre vonalakat spirális alakban!

(28)

13.4.⊂Készíts szakaszrajzoló eljárást a pontrajzoló eljárás segítségével! 13.5.⊂Rajzoljunk a képernyőre véletlenszerűen szakaszokat!

13.6.⊂Készítsünk körrajzoló programot, a k ör Descartes-féle

koordináta-rendszerben felírt egyenletének ismeretében! (Az egyenlet: X2+ Y2 = R2 alakú)

13.7.⊂Készíts negyedkört rajzoló eljárást! A sugár legyen 100, az ívhez

tartozó kör középpontja a képernyő közepe!

13.8.⊂Módosítsd az előző programot úgy, hogy az adatokat a felhasználó

adhassa meg!

13.9.⊂Készíts programot, amely adott negyedkört rajzol a képernyőre,

majd az ENTER billentyű lenyomására azt tükrözi a tengelyekre és a középpontra, előállítva ezzel a teljes kör rajzát! Az egyes lépésekhez rendelhetsz különböző színeket!

P R O G R A M O Z Á S I T É T E L E K

A most következő fejezetek feladatainak megoldása során a feladattípus általános megoldó algoritmusát követjük. Néhány esetben ezt egészítjük ki egyéb számításokkal.

(29)

XIV.

A SOROZATSZÁMÍTÁS (ÖSSZEGZÉS) TÉTELE

Ez a feladattípus adott sorozathoz rendel egy értéket. A sorozat tagjainak meghatározza összegét, szorzatát, átlagát stb.

A feladattípus általános megoldó algoritmusa: Eljárás sorozatszámítás:

S:= kezdőérték Ciklus I=1-től N-ig

S:= S művelet X( I ) Ciklus vége

Eljárás vége

14.1.⊇Adjuk össze az első tíz természetes számot! (Az első elem 1

legyen!)

14.2.⊇Tetszőleges helyről indítva adjunk össze tíz darab szomszédos

egész számot!

14.3.⊇Az előző programodat módosítsd úgy, hogy tetszőleges, a

felhasználó által megadott számú szomszédos természetes számra működjön, 1-től indítva!

14.4.⊄Határozzuk meg N db egymást követő egész szám számtani

közepét!

14.5.⊄Egy héten keresztül mértük a déli hőmérsékletet. Írj programot,

amely ezen adatokból meghatározza a heti déli átlaghőmérsékletet!

14.6.⊄Készíts programot, amely N tanuló adott dolgozatjegyéből

meghatározza az osztály átlagát az adott tantárgyból!

14.7.⊇N napon keresztül mérjük a lehullott csapadék mennyiségét

(mm-ben). Határozzuk meg, hogy mennyi eső esett ezen időszakban!

(30)

14.9.⊄Módosítsd az előző feladatot úgy, hogy N faktoriális értéket

számoljon! Ellenőrizd N értékét, nehogy túlcsordulás legyen!

14.10.⊄Adott egy N elemű betűsorozat! Fűzzük össze egyetlen változóba

N hosszúságú szöveggé!

14.11.⊂Egy horgászverseny adatait egy táblázatban tároljuk: H(i,j) jelenti,

hogy az „i.” horgász a j. halfajtából mennyit fogott. Írj programot, amely kiszámítja, hogy a hor gászok összesen hány halat fogtak az egyes fajtákból!

14.12.⊂Írd át az előző feladatot úgy, hogy azt is megadja, hogy a

horgászok egyénenként hány halat fogtak!

XV.

AZ ELDÖNTÉS TÉTELE

Ez a f eladattípus adott sorozathoz rendel egy logikai értéket. A logikai érték „igaz”, ha a sorozatban létezik az általunk megadott tulajdonsággal rendelkező elem, és „hamis”, ha nincs a sorozatban ilyen tulajdonságú elem.

A feladattípus általános megoldó algoritmusa: Eljárás eldöntés:

I:=1

Ciklus amíg I ≤ N és X( I ) nem T tulajdonságú I:=I+1

Ciklus vége VAN:=( I ≤ N ) Eljárás vége

(31)

15.1.⊇Írj programot, amely beolvas öt pozitív egész számot, majd eldönti

van-e közöttük öttel osztható!

15.2.⊇Kosárlabda csapat tagjainak magasságát tároljuk egy tömbben.

Készíts programot, amely eldönti, van-e a c sapatnak 210 cm-nél magasabb játékosa!

15.3.⊇Egy osztály tanulóinak év végi átlagát tömbben tároljuk. Döntsd el,

hogy az osztályban van-e bukott tanuló!

15.4.⊇Ismert N autó fogyasztása (100 km/liter). Döntsd el, hogy minden

autó 8 liter alatt fogyasztott-e!

15.5.⊄Ismerjük egy osztály tanulóinak születési hónapjait. Döntsük el

van-e az osztályban évvvan-esztvan-es!

15.6.⊄Döntsük el egy számról, hogy prímszám-e!

15.7.⊂Adott egy tetszőleges, pozitív, 1-nél nagyobb egész szám. Döntsd

el, tagja-e a Fibonacci sorozatnak!

(Emlékeztető: A Fibonacci sorozat elemei : 1;1; 2; 3; 5; 8; 13; 21; ...)

15.8.⊄Egy adott, értelmes szövegről döntse el a program, hogy több

szóból áll-e!

15.9.⊂Egy bűnügyi nyilvántartásban a z sebtolvajokról négy adatot

tartanak nyilván: magasság, szemszín, hajszín, eddig letöltött büntetés. Döntsük el, van-e két olyan zsebtolvaj, akiket ez a nyilvántartás nem különböztet meg!

15.10.⊂Készíts programot, amely eldönti egy természetes számról, hogy

tökéletes szám-e! Tökéletesnek nevezünk egy számot, ha os ztóit (önmaga kivételével) összeadva magát a számot kapjuk, pl. 6=1+2+3.

(32)

XVI.

A KIVÁLASZTÁS TÉTELE

Ez a f eladattípus egy adott sorozat elemei közül kiválaszt egy bizonyos tulajdonságú elemet. A sorozat tagjai között e feladatokban biztosan van a megadott tulajdonsággal rendelkező elem.

A feladattípus általános megoldó algoritmusa: Eljárás kiválasztás:

I:=1

Ciklus amíg X( I ) nem T tulajdonságú I:=I+1

Ciklus vége SORSZÁM:=I Eljárás vége

16.1.⊄Határozzuk meg az N (>1) természetes szám legkisebb

prímosztóját!

16.2.⊄Határozzuk meg az N (>1) természetes szám legnagyobb

prímosztóját!

16.3.⊇Készíts programot, amely egy 10 elemű tömb elemei közül

kiválasztja az első 5-tel oszthatót! (A tömb elemei között biztosan legyen ilyen szám!)

16.4.⊇Ismerjük egy osztály tanulóinak születési hónapjait. Ezek között az

év minden hónapja előfordul. Írj programot, amely kiválasztja az első évvesztest.!

16.5.⊇Téli napok déli hőmérsékleteit tároljuk egy tömbben. Adjunk meg

egy napot amikor nem fagyott! (A hőmérsékletek között biztosan van 0-nál nagyobb!)

(33)

16.6.⊂Határozzuk meg az első 1-re végződő négyjegyű prímszámot! 16.7.⊄Módosítsd az előző programot úgy, hogy N jegy esetére is

működjön! (N értéke ésszerű határok között mozoghat!)

16.8.⊂Határozzuk meg azt a legnagyobb legfeljebb háromjegyű számot,

amelyben a számjegyek összege négyzetszám!

16.9.⊂Írj programot, amely megadja az első 10-nél nagyobb tökéletes

számot! Tökéletesnek nevezünk egy számot, ha osztóit (önmaga kivételével) összeadva magát a számot kapjuk, pl. 6=1+2+3.

16.10.⊄Hónapnévvel adott dátumot alakítson a pr ogramod számmal

megadottá!

16.11.⊇Adjuk meg egy hónapról, hogy milyen évszakba esik!

XVII.

A KERESÉS TÉTELE

Ez a feladattípus sorozathoz rendel egy elemet. Megadott sorozatban kell bizonyos tulajdonságú elemet keresni. Nem biztos, hogy a m egadott sorozatban létezik ilyen tulajdonságú elem. Ha van ilyen elem, akkor vagy magát az elemet, vagy a s orozatban elfoglalt helyének sorszámát kell a programnak meghatároznia (esetleg mindkettőt).

A feladattípus általános megoldó algoritmusa: Eljárás keresés:

I:=1

Ciklus amíg I ≤ N és X( I ) nem T tulajdonságú I:=I+1

Ciklus vége VAN:= ( I ≤ N )

(34)

Eljárás vége

17.1.⊇Kosárlabdacsapat nyilvántartása tartalmazza a játékosok nevét és

magasságát. Írjunk programot, amely megadja egy 210 cm-nél magasabb játékos nevét!

17.2.⊇Ismerjük N tanuló nevét és születési hónapját. Keressünk a

csoportban egy évvesztes tanulót!

17.3.⊇Adjuk meg egy természetes szám egy valódi osztóját! 17.4.⊄Keressük meg egy szám legnagyobb valódi osztóját!

17.5.⊄Adott egy vektor. Határozzuk meg egy negatív elemének indexét! 17.6.⊂Egy színház nyilvántartása tartalmazza, hogy mely jegyeket

vásároltak már meg. Adjunk meg két egymás melletti szabad helyet!

17.7.⊄Egy házi telefonkönyv a nev ek szerint rendezett. Keressünk meg

benne egy adott névhez tartozó telefonszámot!

17.8.⊂A véradók nyilvántartásában szerepel a név, az értesítési cím és a

vércsoport. Egy balesetet szenvedett X vércsoportú sérülthöz keressünk donort!

XVIII.

A MEGSZÁMOLÁS TÉTELE

E feladattípusban a megadott sorozatban megszámoljuk, hogy bizonyos tulajdonságú elemből hány darab van a sorozatban. Figyelem: a darabszámot a számlálás megkezdése előtt mindig 0-ra kell állítani!

(35)

A feladattípus általános megoldó algoritmusa: Eljárás megszámolás:

DB:=0

Ciklus I=1-től N-ig

Ha X( I ) T tulajdonságú akkor DB:=DB+1 Ciklus vége

Eljárás vége

18.1.⊇Készíts programot, amely megmondja, hogy egy egész számokból

álló sorozatban mennyi a pozitív elemek száma!

18.2.⊇Módosítsd az előző programot úgy, hogy a negatív és 0 elemek

számát is megadja!

18.3.⊇N tanuló átlagának ismeretében add meg a kitűnőek számát! 18.4.⊄Határozd meg egy szövegben előforduló A (a) betűk számát!

18.5.⊄Számoljuk meg, hányszor fordul elő egy adott szövegben az „a”

névelő!

18.6.⊄Adjuk meg egy tetszőleges természetes szám osztóinak számát! 18.7.⊄Ismerjük egy tanulócsoport matematika dolgozatjegyeit. Írasd ki a

különböző jegyek darabszámát!

18.8.⊄Hány olyan legfeljebb háromjegyű természetes szám van,

amelynek első két jegyéből alkotott szám osztója az eredeti számnak?

18.9.⊄Állapítsuk meg egy vektorban tárolt számokról, hogy negatív vagy

pozitív elemből van-e több! Egyenlőség esetén is jól működjön a program, azaz a kiírás a következőhöz hasonló legyen: „ A negatív és pozitív elemek száma egyenlő”.

18.10.⊄Állapítsuk meg, hogy egy természetes szám bináris alakjában

hány 1-es számjegy szerepel!

(36)

XIX.

A MAXIMUM - KIVÁLASZTÁS TÉTELE

Ebben a pél datípusban egy ismert sorozat elemei közül kell a legnagyobbat kiválasztani (esetleg a l egkisebbet, ekkor minimum-kiválasztásról beszélünk). Van, amikor a legnagyobb (legkisebb) elemre vagyunk kíváncsiak, van amikor csak a s orozatban elfoglalt helyének sorszámára. Néhány esetben mind a kettőt meg kell adnunk.

A feladattípus általános megoldó algoritmusa:

I. Ez az eljárás a maximális elem értékét és sorszámát is megadja: Eljárás maximum:

MAX:=X(1) SORSZÁM:=1 Ciklus I=2-től N-ig

Ha MAX < X( I ) akkor MAX:=X( I ) SORSZÁM:=I Ciklus vége

Eljárás vége

II. Ez az eljárás csak a m aximális elem értékét írja ki sorszám nélkül:

Eljárás maximum: MAX:=X(1)

Ciklus I=2-től N-ig

Ha X( I ) > MAX akkor MAX:=X( I ) Ciklus vége

Eljárás vége

(37)

19.1.⊇Adott egy öt elemből álló számsorozat. Adjuk meg a legnagyobb

elemét!

19.2.⊇Módosítsd az előző feladatot úgy, hogy a legnagyobb mellett a

legkisebb elemet is kiírja!

19.3.⊇Az előző program működjön ötnél több szám esetén is!

19.4.⊄Módosítsd az előző programot úgy, hogy a legnagyobb és

legkisebb elemek értékén kívül a sorszámukat is megadja!

19.5.⊄Tölts fel 0 és 100 közötti véletlen számokkal egy tömböt! A program

írja ki a legnagyobb és legkisebb elemet!

19.6.⊇Egy tömbben tároljuk a nyári napok átlaghőmérsékletét. A

méréseket hétfői napon kezdtük. Adjuk meg a legmelegebb vasárnapot!

19.7.⊄Melyik az a legnagyobb négyjegyű természetes szám, amely

osztható számjegyei összegével?

19.8.⊄Tölts fel egy 3 X 3-mas táblázatot természetes számokkal

véletlenszerűen 0 és 100 közötti értékekkel! Határozd meg a táblázat legnagyobb elemét!

19.9.⊄Az előző programot módosítsd úgy, hogy a legnagyobb elem

indexeit is megadja! Például ha az első sor harmadik eleme a legnagyobb, akkor írja ki, hogy a legnagyobb elem indexe (1,3)!

(38)

XX.

A KIVÁLOGATÁS TÉTELE

E példatípusnál egy sorozat meghatározott tulajdonsággal rendelkező elemeit kell kiválogatni. Ez történhet úgy, hogy az adott tulajdonsággal rendelkezőket kigyűjtjük egy vektorba.

A feladattípus általános megoldó algoritmusa: Eljárás kiválogatás(kigyűjtéssel):

DB:=0

Ciklus I:=1-től N-ig

Ha X(I) T tulajdonságú akkor DB:=DB+1 Y(DB):=X(I) Ciklus vége

Eljárás vége

A megoldásban gyakran nincs szükségünk az elemek kigyűjtésére, hanem azonnal kiíratjuk azokat:

Eljárás kiválogatás(kiírással): Ciklus I=1-től N-ig

Ha X(I) T tulajdonságú akkor Kiír: I, X(I) Ciklus vége

Eljárás vége

20.1.⊇Tölts fel egy tömböt -10 és +10 közötti véletlen számokkal! Gyűjtsd

ki a pozitívokat!

20.2.⊇Módosítsd az előző feladatot úgy, hogy a negatív elemeket írja ki! 20.3.⊄Válogassuk ki egy szóból a magánhangzókat!

20.4.⊄Adott egy szósorozat. Írassuk ki a magas hangrendű szavakat! 20.5.⊄Adott egy természetes számokból álló vektor. Válogassuk ki az

(39)

20.6.⊄Adott N gyerek neve és személyi száma. Adjuk meg a fiúkat!

20.7.⊂Ismerjük egy osztály órarendjét. Írassuk ki, mely napokon van

matematika órájuk!

20.8.⊂Ismerjük N ember nevét és születési dátumát (hónap, nap). Adjuk

meg a „Nyilas” csillagképben születetteket (november 22. és december 21. között)!

XXI.

AZ UNIÓKÉPZÉS TÉTELE

E feladatokban több sorozatból állítunk elő egy sorozatot valamilyen szempont szerint.

Az unió matematikai definíciója:

Az A és B halmazok uniója azon elemek halmaza, melyek az A vagy B halmaznak elemei. (Azaz legalább az egyik halmazban benne vannak.) Pl. A:={a,b,c,d,e} és B:={d,e,f,g} ⇒ A∪B:={a,b,c,d,e,f,g} A feladattípus általános megoldó algoritmusa:

Eljárás unió:

Ciklus I=1-től N-ig UNIO(I):= X(I) Ciklus vége

K:=N

Ciklus J=1-től M-ig I:=1

Ciklus amíg I ≤ N és Y(J) = X(I) I:=I+1

(40)

Ciklus vége

Ha I > N akkor K:= K+1 : UNIO(K):= Y(J) Ciklus vége

Eljárás vége

21.1.⊄Tölts fel két tömböt (X és Y) véletlen számokkal, mondjuk öt-öt

elemmel. Írasd ki e két halmaz unióját!

21.2.⊂Egy osztály tanulói közül néhányan matematika szakkörre, mások

fizika szakkörre járnak. Egy tömbben tároljuk a m atematika szakkörösök nevét, egy másikban a f izika szakkörösökét. Készíts programot, amely ezen adatok ismeretében kiírja azon tanulók nevét, akik valamely szakkör munkájában részt vesznek, azaz matematika vagy fizika szakkörre járnak!

21.3.⊂A V halmazba azok az emberek tartoznak, akiknek Volkswagen, az

O halmazba azok, akiknek Opel gyártmányú autójuk van. Adjuk meg azon tulajdonosok halmazát (T), akiknek Volkswagen vagy Opel autójuk van! (Elképzelhető, hogy valakinek mindkét autóból van a tulajdonában, ekkor nevük természetesen csak egyszer szerepel a T halmazban!)

21.4.⊄Egy vektorban tároljuk egy X természetes szám összes osztóját,

egy másikban az Y természetes szám osztóit. Add meg azon osztókat, melyek X vagy Y osztói!

21.5.⊂Minden halfajtáról tudjuk, hogy mikor esik tilalom alá a horgászata.

(41)

XXII.

A METSZETKÉPZÉS TÉTELE

Az unióhoz hasonlóan e f eladatokban is több sorozathoz rendelünk valamilyen szempont szerint egy sorozatot.

A metszet matematikai definíciója:

Az A és B halmazok metszete azon elemek halmaza, melyek az A és B halmaznak is elemei. (Azaz mindkét halmazban benne vannak.)

Pl. A:={a,b,c,d,e} és B:={d,e,f,g} ⇒ A∩B:={d,e}

A feladattípus általános megoldó algoritmusa: Eljárás metszet:

K:=0

Ciklus I=1-től N-ig J:=1

Ciklus amíg J ≤ M és X(I) = Y(J) J:=J+1

Ciklus vége

Ha J ≤ M akkor K:=K+1 : METSZET(K) := X(I) Ciklus vége

Eljárás vége

22.1.⊄Tölts fel két tömböt (X és Y) véletlen számokkal, mondjuk öt-öt

elemmel. Írasd ki e két halmaz metszetét!

22.2.⊂Az előző fejezet második feladatából add meg azon tanulók

névsorát, akik mindkét szakkör munkájában részt vesznek!

22.3.⊄Egy-egy tömbben tároljuk két természetes szám összes osztóját.

Add meg a közös osztókat!

(42)

22.5.⊂Az előző fejezet harmadik feladatából add meg azon tulajdonosok

névsorát, akiknek mindkét típusú autóból van a tulajdonukban!

22.6.⊄Beolvasunk két szót. Add meg azokat a betűket, amelyek mind a

két szóban előfordulnak!

RENDEZÉSEK

Az itt szereplő feladatokban valamilyen egy megadott sorozat elemeit kell bizonyos szempont szerint átrendezni. Például nevek névsorba rendezése, számok növekvő vagy csökkenő sorrendje stb. Sokféle rendezési módszer létezik. Ezek közül négy szerepel e feladatgyűjteményben.

XXIII.

EGYSZERŰ CSERÉS RENDEZÉS

Ebben a rendezéstípusban a sorozat első elemét összehasonlítjuk a többi, mögötte lévő elemmel, s ha valamelyik kisebb nála, akkor felcseréljük azzal. Ezzel elérjük, hogy a sorozat első helyére a legkisebb elem kerül. Ezt az eljárást folytatjuk a sorozat utolsó előtti tagjáig, s így minden elem előbb utóbb a helyére kerül.

Általános megoldó algoritmusa: Eljárás rendezés:

Ciklus I=1-től N-1-ig Ciklus J=I+1-től N-ig

(43)

Ciklus vége Ciklus vége Eljárás vége

23.1.⊂Készíts programot, amely egy adott tömb egész típusú elemeit

növekvő sorba rendezi!

23.2⊂Nevekre is valósítsd meg az előbbi feladatot! 23.3.⊂Hány összehasonlítást kell elvégezni:

 3 elem sorba rendezésekor?  4 elem sorba rendezésekor?  5 elem sorba rendezésekor?  6 elem sorba rendezésekor?  10 elem sorba rendezésekor?  N elem sorba rendezésekor?

XXIV.

A MINIMUM - KIVÁLASZTÁSOS RENDEZÉS

Az előző módszer hibája a sok felesleges csere. Célszerűbb az aktuális első elemet a mögötte lévők közül egyedül a legkisebb taggal cserélni. Ehhez a rendező ciklus belsejében cserék helyett egy minimum-kiválasztást alkalmazunk.

(44)

Általános megoldó algoritmusa: Eljárás minrendezés:

Ciklus I=1-től N-1-ig MIN:=I

Ciklus J=I+1-től N-ig

Ha X(MIN) > X(J) akkor MIN:=J Ciklus vége

Csere ( X(I), X(MIN) ) Ciklus vége

Eljárás vége

24.1.⊂Az előző fejezet első feladatát oldd meg ezzel a rendezési

módszerrel!

24.2.⊂Az előző fejezet második feladatát oldd meg ezzel a rendezési

módszerrel!

24.3.⊂Hány összehasonlítást kell elvégezni:

 3 elem sorba rendezésekor?  4 elem sorba rendezésekor?  5 elem sorba rendezésekor?  6 elem sorba rendezésekor?  10 elem sorba rendezésekor?  N elem sorba rendezésekor?

(45)

XXV.

A BUBORÉKOS RENDEZÉS

E rendezési elv ötlete, hogy hasonlítsuk össze a szomszédos elemeket, s ha sorrendjük nem jó, akkor cseréljük meg őket. Minden esetben figyeljük a legutolsó csere helyét, mert a következő menetben csak addig kell rendezni, ugyanis ha a belső ciklus egy lefutása alatt egyáltalán nem volt csere, akkor kész a rendezés. Ha például a legutolsó sorozat közepénél volt a csere, akkor ebből tudhatjuk, hogy a sorozat közepe után biztosan kész a rendezés, s így csak az előtte lévő résszel kell foglalkozni.

Általános megoldó algoritmusa:

Eljárás buborékrendezés: I:=N Ciklus amíg I > 1 CS:=1 Ciklus J=1-től I-1-ig Ha X(J) > X(J+1) akkor Csere( X(J), X(J+1) ): CS:=J Ciklus vége I:=CS Ciklus vége Eljárás vége

25.1.⊂Az első rendezési feladatot oldd meg ezzel a módszerrel! 25.2.⊂A másodikat is!

(46)

25.3.⊂Hány összehasonlítást kell elvégezni:

 3 elem sorba rendezésekor?  4 elem sorba rendezésekor?  5 elem sorba rendezésekor?  6 elem sorba rendezésekor?  10 elem sorba rendezésekor?  N elem sorba rendezésekor?

XXVI.

A BEILLESZTÉSES RENDEZÉS

E rendezéstípus elve: egyetlen elem mindig rendezett, s ha v an egy rendezett egyelemű részsorozatunk, akkor abba nagyság szerint helyére tehetjük a következő elemet, ha nagyobb az elsőnél, akkor mögé, különben elé. A következő beszúrandó elem az első elé, a második mögé vagy közéjük kerül és így tovább. Hatékonyabb az eljárás, ha a beillesztendő elemet nem tesszük rögtön a helyére, hanem a többieket tologatjuk hátra, s a beillesztendőt a legvégén tesszük be.

Általános megoldó algoritmusa: Eljárás beillesztéses:

Ciklus I=2-től N-ig J:=I-1: Y:= X(I)

Ciklus amíg J > 0 és X(J) > Y X(J+1) := X(J): J:=J-1 Ciklus vége X(J+1):= Y Ciklus vége Eljárás vége

(47)

26.1.⊂Az első rendezési feladatot oldd meg ezzel a módszerrel! 26.2.⊂A másodikat is!

26.3.⊂Hány összehasonlítást kell elvégezni:

 3 elem sorba rendezésekor?  4 elem sorba rendezésekor?  5 elem sorba rendezésekor?  6 elem sorba rendezésekor?  10 elem sorba rendezésekor?  N elem sorba rendezésekor?

XXVII.

A SZÉTVÁLOGATÁS

E feladattípusban egy adott sorozat elemeit válogatjuk ketté (esetleg többfelé) valamilyen tulajdonság alapján. Például az osztály tanulóit fiúkra és lányokra bontjuk, az egész számokat pozitívokra és negatívokra stb. A feladattípus általános megoldó algoritmusa:

Eljárás szétválogatás1: J:=0: K:=0

Ciklus I=1-től N-ig

Ha X(I) T tulajdonságú akkor J:=J+1: Y(J):=X(I) különben K:=K+1: Z(K):=X(I) Ciklus vége

Eljárás vége

Ez az algoritmus az adott tulajdonságú elemeket (pl. pozitív egészek) egy vektorba teszi, a többieket egy másikba (negatív egészek), ezért ez az algoritmus szétválogatás két vektorba.

(48)

Ha a szétválogatáshoz nem használhatunk fel újabb vektorokat, csak egyet, akkor az algoritmust úgy szervezzük, hogy az adott tulajdonságú elemeket az új tömb elejétől, a nem megadott tulajdonságúakat a t ömb végéről kezdjük el betenni. Ez az algoritmus a szétválogatás egy tömbbe.

Eljárás szétválogatás2: J:=0: K:=N+1

Ciklus I=1-től N-ig

Ha X(I) T tulajdonságú akkor J:=J+1: Y(J):=X(I) különben K:=K-1: Y(K):=X(I) Ciklus vége

Eljárás vége

27.1.⊄Adott egy tömb egész típusú elemekkel. Válogasd szét őket pozitív,

és nem pozitív elemekre két vektorba!

27.2.⊂Ismert a lakásigénylők listája, ebben a család neve és gyermekeik

száma szerepel. Válogassuk szét őket aszerint, hogy 3-nál kevesebb, vagy legalább 3 gyermekük van! A legalább három gyermekesek előbb jutnak lakáshoz, ezért a szétválogatás egy tömbbe eljárást alkalmazd, a tömb elejétől a legalább három gyermekes családokat tedd!

27.3.⊂Egy tömbben tároljuk az Audi és a Volkswagen t ípusú új autót

vásárlókat Válogassuk szét őket aszerint két tömbbe (A és V), hogy milyen típust vásároltak!

27.4.⊂Ismert egy osztály tanulóinak névsora és személyi száma.

Válogassuk szét a fiúkat és a lányokat két vektorba!

27.5.⊂Egy pontverseny száz résztvevője közül I. díjat kapnak a 90%-nál

többet, II.díjat a 80%-nál többet, III. díjat pedig a 70%-nál többet teljesítők. A tanulók eredményeit egy névsor pontszámmal együtt tartalmazza. Készítsük el az I., II., III. helyezettek illetve a nem díjazottak névsorát!

(49)

XXVIII.

MATEMATIKAI VERSENYFELADATOK

28.1.⊄Ha két kétjegyű szám számjegyeit egymás után írjuk, a két szám

összegének négyzetével egyenlő számot kapunk. Írj programot, amely meghatározza az összes megoldást!

Az abcd = ( ab + cd )2 , azaz 1000*a+100*b+10*c+d = (10*a+b+10*c+d)2 feltételt kell a programnak vizsgálnia!

28.2.⊄Melyek azok a háromjegyű számok, amelyekre érvényesek a

következők:

700 ≤ abc ≤ 800 és a 2- b2 - c2 = a - b - c ?

28.3.⊂Hány olyan négyjegyű természetes szám van, amelynek 10-es

számrendszerbeli alakjában a szomszédos számjegyek különbözőek?

28.4.⊄Egy téglalap oldalai kétjegyű egész számok. A terület és kerület

összege 1996. Mekkorák lehetnek a téglalap oldalai?

28.5.⊄Egy tetszőleges kétjegyű szám után írjunk egy 0-át, majd újra a

kétjegyű számot. Osztható-e az így kapott ötjegyű szám 11-gyel illetve 13-mal minden esetben?

28.6.⊄Határozzuk meg az a, b, n számjegyeket, ha tudjuk, hogy:

ab * 1n = nab !

28.7.⊄Az abcd tízes számrendszerbeli négyjegyű számról tudjuk, hogy

abc + ab +a = 219 és a + b + c + d =27. Melyik ez a szám?

28.8.⊄Melyek azok az x, y természetes számok, melyekre:

xy + yx +x*y =113?

28.9.⊄Határozzuk meg azokat az abba alakú négyjegyű számokat,

(50)

28.10.⊄Van-e olyan tízes számrendszerbeli háromjegyű szám, amelynek

a középső jegyét törölve, a belőle így nyert kétjegyű szám az eredetinek  hetede ν nyolcada ν kilencede?

28.11.⊄Ha összeadjuk két egész szám összegét, különbségét, szorzatát

és hányadosát, eredményül 500-at kapunk. Mi lehet ez a két szám?

28.12.⊄Add meg az összes olyan téglalapot, melynek oldalai egész

számok, és a területének mérőszáma pontosan háromszorosa a kerületének.

28.13.⊂Van-e olyan háromjegyű prímszám, amelynek számjegyeit

összeszorozva tízet kapunk?

28.14.⊂Melyik az a legkisebb pozitív egész szám, amelynek a kétszerese

négyzetszám, és a háromszorosa egy egész szám harmadik hatványa?

28.15.⊂Hány olyan négyzetszám van, amely 25-tel osztva 12-t ad

maradékul? (Természetesen ésszerű határok között!)

28.16.⊄Hány olyan ötjegyű természetes szám van, amely 9-re végződik

és osztható 3-mal?

28.17.⊂Hány oldala van annak a k onvex sokszögnek, amelyre fennáll,

hogy belső szögeinek összegéhez hozzáadva a sokszög egy külső szögét, eredményül 1560°-ot kapunk?

28.18.⊄Van-e olyan négyjegyű, tízes számrendszerbeli természetes

szám, amely számjegyeinek összege egyenlő egyrészt az utolsó két jegy szorzatával, másrészt az első két jegy alkotta kétjegyű számmal is?

28.19.⊂Egy háromszög kerülete 19 c m, oldalai cm-ben mérve egész

számok. Egyik oldalának hossza a másik két oldal szorzatával egyenlő. Mekkorák a háromszög oldalai?

28.20.⊄Három pozitív egész szám összege ugyanannyi, mint a szorzatuk.

Melyek lehetnek ezek a számok?

28.21.⊄Melyek azok a kétjegyű természetes számok, amelyekre igaz,

hogy maga a szám 17-tel nagyobb, mint számjegyeinek a szorzata?

28.22.⊂Van-e két olyan négyzetszám, amelyek különbsége 1996? Melyek

(51)

XXIX.

V E G Y E S F E L A D A T O K

29.1.⊂Készíts programot, amely néhány síkidom területét kiszámítja! Az,

hogy milyen síkidommal szeretnénk dolgozni, menüből legyen választható!

29.2.⊄Az előzőhöz hasonló programot készíthetsz testek felszín-és

térfogatszámítására is.

29.3.⊂Adott kettes számrendszerben egy tetszőleges szám. Írj programot,

amely átalakítja tízes számrendszerbe!

29.4.⊂Készíts programot, amely tízesből alakít át kettesbe!

29.5.⊂Módosítsd az előző programodat úgy, hogy tízes számrendszerből

kettes, négyes vagy nyolcas számrendszerbe lehessen alakítani. A program menüben kínálja fel a lehetséges választást!

29.6.⊂Bővítsd az előző programodat úgy, hogy a tizenhatos

számrendszerbe történő átalakítás is szerepeljen a menüben.

29.7.⊄Írj programot, amely meghatározza két szám legkisebb közös

többszörösét a legnagyobb közös osztó ismeretében!

29.8.⊄A szó betűiből állítsd elő a szó Morse kódját!

29.9.⊄Írj programot, amellyel kistestvéred vagy szomszédod gyakorolhatja

az alapműveleteket az általa ismert számkörben! A programtól a következőket várjuk:

Menüből legyen választható a művelet;

 A választott művelettel legalább tíz feladatot adjon;  Minden választ azonnal értékeljen;

 A feladatok elvégzése után összesített értékelést kapjunk (pl. százalékban)

29.10.⊂Készíts TOTO tippeket generáló programot! 29.11.⊂Generálj ötös lottószámokat !

Referências

Documentos relacionados

 Presença na cerimónia de entrega das Bandeiras Azuis, referente às praias da Freguesia, e também da Bandeira Praia Acessível para todos (Canide Norte),

Neste trabalho é feito comparações dos resultados dos momentos fletores máximos obtidos utilizando o Método de Marcus, Método de Czerny e o programa GiD Plus (Método dos

O Manual Compras (Procedimento para Aquisição de Materiais e Serviços para Solicitantes, Compradores e Fornecedores), tem como objetivo: orientar os solicitantes e

Dentre os problemas identificados durante o pré-processamento dos dados, é importante destacar: muitos atributos estão presentes na base de dados, porém nem

Pode-se supor que na presente pesquisa, possa ter encontrado valores acima de colesterol e lipídeos totais em comparação das tabelas de composição de alimentos, visto que

II- Trabalhador jovem designa todo trabalhador com idade inferior a 18 (dezoito) anos e maior de 16 (dezesseis) anos. III- Não deverá ser exigido nem admitido o transporte manual

CONTEÚDO PROGRAMÁTICO DA PROVA PARA OS CARGOS DE PINTOR DE ESTRUTURAS METÁLICAS E TAPECEIRO: Língua Portuguesa: Substantivos; Artigos; Preposição; Pronomes; Adjetivos;

Porém, com o aumento das doses de esterco bovino no substrato acima dos picos de máximo citados para AP, DC e NF, promoveu reduções no crescimento das muda de