Download as pdf or txt
Download as pdf or txt
You are on page 1of 36

A programozs alapjai, elmlete

Egy gyors ttekints

Nagy Andrs nagy.andras1106@gmail.com


Mi a programozs?
Tbb problma megoldsnak megvalstsa egy
programozsi nyelven.
Algoritmusok
Algoritmus (eljrs): egy problma megoldsra
szolgl mdszer.
Plda algoritmusra
Nagyszer plda algoritmusra pldul a GPS-es
navigci:

Haladjon egyenesen 35 km-t.


Aztn forduljon balra.
Majd haladjon egyenesen 500 m-t.
Vgl forduljon jobbra.
A feladatlers eszkzei
1. Folyamatbra

START

BE: x x>0? KI: x-1

STOP KI: x+1


Kitr: vltozk kezelse
Egy sszehasonlts vagy rtkads bal oldaln mindig a
vltoz szerepel, aminek rtket adunk, a jobb oldalra
a berand rtk kerl.
Pl.:
X=1 X=X+1
X=2 X=X-1
X=Y
X=Y-2
Logikai kapcsolk
Ezek kerlhetnek kt rtk kz:

< Kisebb > Nagyobb

<= Kisebb vagy egyenl >= Nagyobb vagy egyenl

= (=) Egyenl

<> Kisebb vagy nagyobb


rtk bekrse, kiratsa
Az elbbi pldban mr ltszott:
BE: x a billentyzetrl olvasunk be egy
rtket
KI: x x rtket kirjuk a kpernyre
Szelekci
Egyszeren megfogalmazva, feltesznk egy krdst, a
vlasztl fggen pedig msknt cseleksznk.

x>0? KI: x-1

STOP
A feladatlers eszkzei
2. Stuktogram
A feladatlers eszkzei
3. Pszeudokd

Eljrs
BE: x
Ha x=0 akkor KI: x nulla
Ha x>0 akkor KI: x pozitv
Klnben KI: x negatv
Eljrs vge
Feladat
rjunk algoritmust, amely egy tglalap adatai alapjn
megadja a tglalap kerlett, illetve terlett!
Feladat megoldsa
Eljrs
BE: a, b
KI: 2*(a+b)
KI: a*b
Eljrs vge
Mg egy feladat
rjunk algoritmust, amely bekri egy hromszg oldalait,
s megmondja, hogy rvnyes hromszgrl van e sz!
(Egy hromszg akkor rvnyes, ha brmely kt
oldalnak sszege nagyobb mint a harmadik oldal.
Egyb esetben nem ltezik a hromszg.)
Feladat megoldsa
Eljrs
BE: a,b,c
Ha a+b > c akkor
Ha a+c > b akkor
Ha b+c > a akkor KI: rvnyes hromszg
Eljrs vge
J megolds tovbb
Eljrs
BE: a,b,c
Ha (a+b > c) S (a+c > b) S (b+c>a) akkor
KI: rvnyes
Eljrs vge
Logikai kapcsolk
Alapveten hrom logikai kapcsol van:
- S (&)
- VAGY (|)
- NEGLT (!)

S: mindkt felttel igaz


VAGY: a felttelek kzl az egyik igaz
NEGLT: a felttel hamissgt vizsgljuk
Logikai kapcsolk - S
Vgrehajtdik-e a helyn lv utasts?

A=1 B=3 C=5

Ha (B>A) & (C>A) akkor B>A, 3>1, IGAZ


C>A, 5>1, IGAZ

Ha (B>A) & (B>C) akkor B>A, 3>1, IGAZ


B>C, 3>5, HAMIS
Logikai kapcsolk - VAGY
Vgrehajtdik-e a helyn lv utasts?

A=1 B=3 C=5

Ha (B>A | C>A) akkor B>A, 3>1, IGAZ


C>A, 5>1, IGAZ

Ha (B>A | B>C) akkor B>A, 3>1, IGAZ


B>C, 3>5, HAMIS
Logikai kapcsolk S/VAGY
Az albbi tblzat sszefoglalja a kt kapcsol
mkdst:

Felttel 1 Felttel 2 S VAGY


HAMIS HAMIS HAMIS HAMIS
HAMIS IGAZ HAMIS IGAZ
IGAZ HAMIS HAMIS IGAZ
IGAZ IGAZ IGAZ IGAZ
Logikai kapcsolk - NEGLS
A=1 B=3 C=5

Ha !(A>B) akkor A>B, 1>3, HAMIS

Ha !(B>A) akkor B>A, 3>1, IGAZ

Felttel NEGLT
HAMIS IGAZ
IGAZ HAMIS
Ciklusok
Olyan programrszletek, amelyek tbbszr
kerlnek/kerlhetnek vgrehajtsra (feltteltl
fggen).

Legkevesebb
A ciklus fajtja A futsok szma
hnyszor fut le?
lehet, hogy egyszer
Elltesztel elre nem ismert
sem
Feltteles
Htultesztel elre nem ismert legalbb egyszer

lehet, hogy egyszer


Szmlls elre ismert
sem
Elltesztel ciklus

Pszeudo-kddal:

Ismteld, amg a felttel igaz


Utastsok
Ciklus vge
Htultesztel ciklus

Pszeudo-kddal:

Ismteld
Utastsok
Amg a felttel igaz
Szmlls ciklus
A: kezdrtk
B: feltteles rtk
C: lptk
D: utastsok

Pszeudo-kd:
Kezdrtk megadsa;
Ismteld, amg A<B (vagy ms);
Utastsok;
A=A+1;
Ciklus vge;
Plda
Krjnk be szmokat, rjuk ki ket, amg a bert szm
nem nulla. Nullnl a program kilp.
Megolds
Elltesztel ciklussal megoldhat feladat.

Eljrs;
Amg (BE: x <> 0)
KI: x;
Ciklus vge
Eljrs vge;
Megolds Htultesztel ciklussal
Eljrs;
Csinld
BE: x;
KI: x;
Amg (x <> 0);
Eljrs vge;
Plda II.
rassuk ki az els 100 szm sszegt, nulltl kezdve!
Megolds
Eljrs
osszeg=0;
For (i=1; i<100; i=i+1)
osszeg=osszeg+i;
Ciklus vge
KI: osszeg;
Eljrs vge;
Krds
Mi trtnik, az albbi eljrsnl, ha a bemeneti rtknl
a kvetkez rtkeket adjuk meg: 0, 1, kutya

Eljrs
BE: x;
Ha x >= 0, akkor KI: pozitv;
Egybknt KI: negatv;
Eljrs vge;
Adattpusok
- Szveges (string): kutya, a kutya
- Karakter: A, a, g
- Egsz szm (integer): 1, 12, 54
- Vals szm (real, double, float): 3.14, 9.86
- Logikai (boolean): igaz, hamis
A tmb
Egy adatszerkezet, ugyanolyan adattpus elemek
egyms utn n-szer. Ez az n-darabszm tmb.
Pl.: 10 elemszm egsz szmokat tartalmaz tmb:
index Tmb(index)
0 21
1 32
2 0
3 12
4 20
5 4
6 24
7 3
8 65
9 33
Plda
Tltsk fel a T, 100 elem tmbt az els szz szmmal!

Eljrs Index T[index]

0 0
For (i=0; i<100; i=i+1)
1 1
T[i]=i; 2 2

Ciklus vge; 3 3

Eljrs vge;

98 98

99 99
Plda II.
Az elz plda feladatt vgezzk el, m ezttal nem
szeretnnk ha nullval kezddne a szmsor!

Index T[index]
Eljrs
0 1
For (i=0; i<100; i=i+1) 1 2

T[i]=i+1; 2 3

Ciklus vge; 3 4


Eljrs vge; 98 99

99 100
Plda II. hibs megoldsa
Mi trtnne ha az eljrson az albbi mdostst
vgeznnk el?
Index T[index]

0 NULL
Eljrs 1 1

For (i=1; i<101; i=i+1) 2 2

T[i]=i; 3 3


Ciklus vge;
98 98
Eljrs vge; 99 99

100 100

You might also like