32
Gyakorló feladatsor Gyakorló feladatsor eljárásokra eljárásokra Készítette: Rummel Készítette: Rummel Szabolcs Szabolcs Elérhetősé: Elérhetősé: [email protected] [email protected]

Gyakorló feladatsor eljárásokra

  • Upload
    dionne

  • View
    36

  • Download
    6

Embed Size (px)

DESCRIPTION

Gyakorló feladatsor eljárásokra. Készítette: Rummel Szabolcs Elérhetősé: [email protected]. Feladat 1. Készíts amortizációt (értékcsökkenést) kiszámító programot! A program számolja ki a negyedéves értékcsökkenését az autónak, ha az értékcsökkenési kulcs: 15% - PowerPoint PPT Presentation

Citation preview

Page 1: Gyakorló feladatsor eljárásokra

Gyakorló feladatsorGyakorló feladatsoreljárásokraeljárásokra

Készítette: Rummel SzabolcsKészítette: Rummel Szabolcs

Elérhetősé: [email protected]érhetősé: [email protected]

Page 2: Gyakorló feladatsor eljárásokra

Feladat 1Feladat 1

• Készíts amortizációt Készíts amortizációt (értékcsökkenést) kiszámító (értékcsökkenést) kiszámító programot!programot!

• A program számolja ki a negyedéves A program számolja ki a negyedéves értékcsökkenését az autónak, ha az értékcsökkenését az autónak, ha az értékcsökkenési kulcs: 15%értékcsökkenési kulcs: 15%

• Az autó árát billentyűzetről kérje be a Az autó árát billentyűzetről kérje be a program!program!

Page 3: Gyakorló feladatsor eljárásokra

Feladatok az amortizációhozFeladatok az amortizációhoz

• A negyedéves értékcsökkenéseket A negyedéves értékcsökkenéseket tárolja el egy tömbben! (4 elemű tömb)tárolja el egy tömbben! (4 elemű tömb)

• Írja ki a negyedéves Írja ki a negyedéves értékcsökkenéseket! (A tömb elemeit)értékcsökkenéseket! (A tömb elemeit)

• Írja ki az egy év alatti értékcsökkenést! Írja ki az egy év alatti értékcsökkenést! (tömb elemeinek összegét)(tömb elemeinek összegét)

Page 4: Gyakorló feladatsor eljárásokra

Szükséges algoritmusokSzükséges algoritmusok

• Tömb feltöltéseTömb feltöltése

• Tömb elemeinek kiírásaTömb elemeinek kiírása

• ÖsszegképzésÖsszegképzés

Page 5: Gyakorló feladatsor eljárásokra

Tömb feltöltéseTömb feltöltése

Procedure feltolt(ar:real; var t:tombtip);Procedure feltolt(ar:real; var t:tombtip);Var i:integer;Var i:integer;BeginBeginFor i:=1 to 4 doFor i:=1 to 4 do

BeginBegint[i]:=ar-ar*0,15;t[i]:=ar-ar*0,15;ar:=ar-ar*0,15;ar:=ar-ar*0,15;

End;End;End;End;

Az autó ára (azért longint, mertnagy számról van szó

Az értékcsökkenés kiszámolásaAz autó árából levonjuk az autó

árának 15 %-át

Az árból levonjuk az értékcsökkenést,hogy a következő negyedévben a

csökkentett árból tudjuk azértékcsökkenést számolni!

A tömb érték szerint van átadva,mert másik eljárásban használjuk

a feltöltött tömböt!

Page 6: Gyakorló feladatsor eljárásokra

Az algoritmus működéseAz algoritmus működése

Az autó ára: 140000Az autó ára: 140000Így a tömb első eleme: 1400000-Így a tömb első eleme: 1400000-

1400000*0,151400000*0,15

Az ár: 1400000-210000=1190000Az ár: 1400000-210000=1190000

A tömb második eleme: 1190000-A tömb második eleme: 1190000-1190000*0,151190000*0,15

Az ár: 1190000-178500=1011500Az ár: 1190000-178500=1011500

És így tovább!!És így tovább!!

Page 7: Gyakorló feladatsor eljárásokra

Tömb elemeinek kiírásaTömb elemeinek kiírása

Procedure kiir(t:tombtip);Procedure kiir(t:tombtip);

Var i:integer;Var i:integer;

BeginBegin

For i:=1 to 4 doFor i:=1 to 4 do

writeln(t[i]:2:0);writeln(t[i]:2:0);

End;End;

A kiíró utasítást ismételjük meg négyszerezért a tömb elemei kiíródnak

a t[1]-től t[4]-i

Page 8: Gyakorló feladatsor eljárásokra

ÖsszegképzésÖsszegképzés

Procedure osszeg(t:tombtip; var osszeg:real);Procedure osszeg(t:tombtip; var osszeg:real);

Var i:integer;Var i:integer;

BeginBegin

Osszeg:=ar*0,15;Osszeg:=ar*0,15;

For i:=1 to 3 doFor i:=1 to 3 do

osszeg:=osszeg+t[i]*0,15;osszeg:=osszeg+t[i]*0,15;

End;End;

Az osszeg változót cím szerint adjuk át,mert szeretnénk kiírni a főprogramban!

A ciklus azért megy csak háromig,Mert a t[4], már a következő év elsőNegyedévének az értékcsökkenése!

Az ár 15%-a adja az első negyedév értékcsökkenését!

Az aktuális negyedév értékcsökkenésének a kiszámítása

Page 9: Gyakorló feladatsor eljárásokra

Algoritmus működéseAlgoritmus működése

Osszeg: 1400000*0,15= 210000Osszeg: 1400000*0,15= 210000

Ciklus első lépése: Ciklus első lépése:

Osszeg: Osszeg: 210000+1190000*0,15=388500210000+1190000*0,15=388500

Ciklus második lépése:Ciklus második lépése:

Osszeg: 388500+Osszeg: 388500+1011500*0,15=5402251011500*0,15=540225

És így tovább!!És így tovább!!

Page 10: Gyakorló feladatsor eljárásokra

A főprogramA főprogram

Deklaráció:Deklaráció:Type tombtip=array[1..4] of real;Type tombtip=array[1..4] of real;Var t:tombtip;Var t:tombtip;

osszeg,ar:real;osszeg,ar:real;BEGINBEGINWriteln(‘add meg az autó árát!’);Writeln(‘add meg az autó árát!’);Readln(ar);Readln(ar);Feltolt(ar,t);Feltolt(ar,t);Kiir(t);Kiir(t);Osszeg(t,osszeg);Osszeg(t,osszeg);Writeln(‘Az értékcsökkenés összesen: ’,osszeg:2:0);Writeln(‘Az értékcsökkenés összesen: ’,osszeg:2:0);Readln;Readln;END.END.

Page 11: Gyakorló feladatsor eljárásokra

Feladat 2Feladat 2

• Készíts programot, ami kiszámolja Készíts programot, ami kiszámolja egy betét éves banki kamatát!egy betét éves banki kamatát!

• A betét összegét billentyűzetről kérje A betét összegét billentyűzetről kérje be!be!

• Írasd ki a havi betéteket!Írasd ki a havi betéteket!

• Számold ki az év végi betét Számold ki az év végi betét összegét!összegét!

Page 12: Gyakorló feladatsor eljárásokra

Szükséges algoritmusokSzükséges algoritmusok

• Tömb feltöltéseTömb feltöltése

• Tömb eleminek kiírásaTömb eleminek kiírása

• Összegképzés algoritmusaÖsszegképzés algoritmusa

Az algoritmusokat lásd az előző Az algoritmusokat lásd az előző programból!programból!

Page 13: Gyakorló feladatsor eljárásokra

Feladat 3Feladat 3

• Alakítsd át a programot, hogy a Alakítsd át a programot, hogy a kamatot is billentyűzetről kérje be!kamatot is billentyűzetről kérje be!

• Számoljon kamatos kamatot (a Számoljon kamatos kamatot (a kamatot mindig az aktuális hónapból kamatot mindig az aktuális hónapból számolja ki!)számolja ki!)

Page 14: Gyakorló feladatsor eljárásokra

Segítség a feladat 3-hozSegítség a feladat 3-hoz

Pl: a betét=1200000Pl: a betét=1200000 a kamat=6%a kamat=6% az első havi betét= 1272000az első havi betét= 1272000

A következő havi kamatot ne 1200000-A következő havi kamatot ne 1200000-ból, hanem 1272000-ből számítsd!ból, hanem 1272000-ből számítsd!

Segítségül használhatod az Segítségül használhatod az amortizációs programot (csak nem amortizációs programot (csak nem kivonni hanem összeadni kell)kivonni hanem összeadni kell)

Page 15: Gyakorló feladatsor eljárásokra

Feladat 4Feladat 4

• Készíts programot, ami kiszámolja Készíts programot, ami kiszámolja egy munkavállaló adóbevallását!egy munkavállaló adóbevallását!

• A program kérje be billentyűzetről a A program kérje be billentyűzetről a magánszemély éves fizetését!magánszemély éves fizetését!

• A személyi jövedelemadó kulcs: 18%A személyi jövedelemadó kulcs: 18%

Page 16: Gyakorló feladatsor eljárásokra

Feladat 4 megoldásFeladat 4 megoldás

Procedure ado(ber:real);Procedure ado(ber:real);

BeginBegin

Ber:=ber-ber*0,18;Ber:=ber-ber*0,18;

Writeln(‘A nettó fizetés: ‘,ber:2:0);Writeln(‘A nettó fizetés: ‘,ber:2:0);

End;End;

Levon 18%-ot a berből!

Kiírja az eljárásban a bért,így a főprogramban nem kell

még egyszer kiírni!

Page 17: Gyakorló feladatsor eljárásokra

FőprogramFőprogram

DeklarációDeklaráció

Var ber:real;Var ber:real;

BEGINBEGIN

Writeln(‘Add meg a dolgozó fizetését’);Writeln(‘Add meg a dolgozó fizetését’);

Readln(ber);Readln(ber);

Ado(ber);Ado(ber);

Readln;Readln;

END.END.

Page 18: Gyakorló feladatsor eljárásokra

Feladat 5Feladat 5

• Alakítsd át a programot, hogy ha az Alakítsd át a programot, hogy ha az éves fizetés 1700000 Ft alatt van, éves fizetés 1700000 Ft alatt van, akkor 18%-kal számoljon, ha akkor 18%-kal számoljon, ha 1700000 Ft fölött van, akkor 36%-kal 1700000 Ft fölött van, akkor 36%-kal számoljon!számoljon!

Page 19: Gyakorló feladatsor eljárásokra

Feladat 5Feladat 5• Írj eljárást, ami a TB járulékot Írj eljárást, ami a TB járulékot

kiszámolja!kiszámolja!A TB járulék: 29%A TB járulék: 29%• Írj eljárást, ami kiszámolja a Írj eljárást, ami kiszámolja a

munkavállalói járulékot!munkavállalói járulékot!A munkavállalói járulék 1,5%A munkavállalói járulék 1,5%• Adja meg a program a levonások utáni Adja meg a program a levonások utáni

éves bért! (vonja le a program az adót, éves bért! (vonja le a program az adót, a TB-t és a munkavállalói járulékot, a TB-t és a munkavállalói járulékot, majd a maradékot írja ki a képernyőre)majd a maradékot írja ki a képernyőre)

Page 20: Gyakorló feladatsor eljárásokra

Feladat 6Feladat 6

• Készíts programot, ami egy Készíts programot, ami egy számítógép bolt alkatrészeit és azok számítógép bolt alkatrészeit és azok árait tartja nyilván!árait tartja nyilván!

• Számolja ki, mennyibe kerül egy Számolja ki, mennyibe kerül egy komplett számítógép!komplett számítógép!

• Mutassa meg melyik a legdrágább és Mutassa meg melyik a legdrágább és legolcsóbb alkatrész! legolcsóbb alkatrész!

Page 21: Gyakorló feladatsor eljárásokra

Szükséges algoritmusokSzükséges algoritmusok

• Tömb feltöltéseTömb feltöltése

• Tömb kiírásaTömb kiírása

• ÖsszegképzésÖsszegképzés

• Minimum kiválasztásMinimum kiválasztás

• Maximum kiválasztásMaximum kiválasztás

Page 22: Gyakorló feladatsor eljárásokra

Deklaráció Deklaráció

Type tombtip1=array[1..5] of string;Type tombtip1=array[1..5] of string;

tombtip2=array[1..5] of integer;tombtip2=array[1..5] of integer;

Var t1:tombtip1;Var t1:tombtip1;

t2:tombtip2;t2:tombtip2;

Az első tömb az alkatrészekNevének tárolására szolgál!

A második tömb az alkatrészekÁrának tárolására szolgál!

Page 23: Gyakorló feladatsor eljárásokra

Tömb feltöltéseTömb feltöltéseProcedure feltolt(var t1:tombtip1;var Procedure feltolt(var t1:tombtip1;var

t2:tombtip2);t2:tombtip2);Var i:integer;Var i:integer;BeginBeginFor i:=1 to 5 doFor i:=1 to 5 do

beginbeginwriteln(‘Az alkatrész neve?’);writeln(‘Az alkatrész neve?’);readln(t1[i]);readln(t1[i]);writeln(‘Az alkatrész ára?’);writeln(‘Az alkatrész ára?’);readln(t2[i]);readln(t2[i]);

End;End;

Az alkatrész neve a t1 i-dikváltozóba kerül!

Az alkatrész ára a t2 i-dikváltozóba kerül!

Párhuzamosan halad a név és az ár feltöltése, azért mert egy ciklusban töltődikfel!

Page 24: Gyakorló feladatsor eljárásokra

Tömb elemeinek kiírásaTömb elemeinek kiírása

Procedure Procedure kiir(t1:tombtip1;t2:tombtip2);kiir(t1:tombtip1;t2:tombtip2);

Var i:integer;Var i:integer;

BeginBegin

For i:=1 to 5 doFor i:=1 to 5 do

writeln(t1[i],’: ‘,t2[i]);writeln(t1[i],’: ‘,t2[i]);

End;End;

Page 25: Gyakorló feladatsor eljárásokra

Összegképzés Összegképzés Procedure osszeg(t2:tombtip2);Procedure osszeg(t2:tombtip2);

Var i:integer;Var i:integer;

osszeg:longint;osszeg:longint;

BeginBegin

Osszeg:=t2[1];Osszeg:=t2[1];

For i:=2 to 5 doFor i:=2 to 5 do

osszeg:=osszeg+t2[i];osszeg:=osszeg+t2[i];

Writeln(‘Egy számítógép ’,osszeg,’ Ft-be kerül);Writeln(‘Egy számítógép ’,osszeg,’ Ft-be kerül);

End; End;

Page 26: Gyakorló feladatsor eljárásokra

Minimum kiválasztásMinimum kiválasztásProcedure mini(t1:tombtip1;t2:tombtip2);Procedure mini(t1:tombtip1;t2:tombtip2);Var i,min:integer;Var i,min:integer; nev:string;nev:string;BeginBeginMin:=t2[1];Min:=t2[1];Nev:=t1[1];Nev:=t1[1];For i:=2 to 5 doFor i:=2 to 5 do

if min<t2[i] thenif min<t2[i] thenbeginbegin

min:=t2[i];min:=t2[i];nev:=t1[i];nev:=t1[i];

end;end;writeln=(‘A legolcsóbb alkatrész: ‘,nev,’: ‘,min);writeln=(‘A legolcsóbb alkatrész: ‘,nev,’: ‘,min);End; End;

Ha kisebb, akkor bekerül a „min” változóba!

Ha változik „min” változó,akkor veleváltozzon a „nev” is!

Page 27: Gyakorló feladatsor eljárásokra

Maximum kiválasztásMaximum kiválasztás

• Az algoritmus ugyanaz csak a reláció Az algoritmus ugyanaz csak a reláció fordul meg, illetve a kiírásnál a fordul meg, illetve a kiírásnál a magyarázó szöveg más!magyarázó szöveg más!

Page 28: Gyakorló feladatsor eljárásokra

Feladat 7Feladat 7• Készíts programot, ami az otthoni Készíts programot, ami az otthoni

könyveidet, vagy CD-t, vagy DVD-t tartja könyveidet, vagy CD-t, vagy DVD-t tartja nyilván!nyilván!

• A program mondja meg melyik a A program mondja meg melyik a legdrágább, melyik legolcsóbb CD-d, legdrágább, melyik legolcsóbb CD-d, mennyit ér a gyűjteményed!mennyit ér a gyűjteményed!

• A program rendezze a gyűjteményedet A program rendezze a gyűjteményedet ABC sorrendbe!ABC sorrendbe!

• A program rendezze ár szerint növekvő A program rendezze ár szerint növekvő sorrendbe!sorrendbe!

Page 29: Gyakorló feladatsor eljárásokra

Szükséges algoritmusokSzükséges algoritmusok

• Tömb feltöltéseTömb feltöltése

• Tömb kiírásaTömb kiírása

• Minimum és maximum kiválasztásMinimum és maximum kiválasztás

• ÖsszegképzésÖsszegképzés

• RendezésRendezés

(A rendező algoritmust alkalmazhatod (A rendező algoritmust alkalmazhatod a szöveg típusú tömbnél is!)a szöveg típusú tömbnél is!)

Page 30: Gyakorló feladatsor eljárásokra

Rendezés Rendezés Procedure rendez(var t1:tombtip1);Procedure rendez(var t1:tombtip1);Var i,j:inetger;Var i,j:inetger;

cs:”olyan típus amilyen a tömb”);cs:”olyan típus amilyen a tömb”);BeginBeginFor i:=1 to n-1 doFor i:=1 to n-1 do

for j:=i+1 to n dofor j:=i+1 to n doif t[i]>t[j] thenif t[i]>t[j] then

beginbegincs:=t[i];cs:=t[i];t[i]:=t[j];t[i]:=t[j];t[j]:=cs;t[j]:=cs;

end;end;End;End;

A feltétel, ami megvizsgálja,hogy melyik a nagyobb!

Csere algoritmusa!

Page 31: Gyakorló feladatsor eljárásokra

Gondolkodj!Gondolkodj!

• Ellenőrizd, hogy a t1 rendezésével a Ellenőrizd, hogy a t1 rendezésével a t2 változik-e!t2 változik-e!

• Hogyan lehet megoldani azt a Hogyan lehet megoldani azt a problémát, hogy a t1 rendezésével a problémát, hogy a t1 rendezésével a t2 is ugyanúgy rendeződjön! Illetve t2 is ugyanúgy rendeződjön! Illetve fordítva!fordítva!

Page 32: Gyakorló feladatsor eljárásokra

Nem jut több az eszembeNem jut több az eszembe

Jó munkát kívánok!Jó munkát kívánok!