2021. december 6., hétfő

Algoritmus átültetése Pythonba

Objektumorientált programozási nyelv.


Ciklusok, while


Egy utasítás blokk ismételt végrehajtása, ciklikussal

b = 0
while (b < 9):
    b = b + 1
    print (b)


Kezdő érték 0

While (b < 9): a ciklus mind addig végrehajtódik míg b értéke kisebb mint 9, tehát amíg igaz a kifejezés. (1-től 9-ig kiírja a számokat a ciklus).

A másik sor: b = b + 1 , ez egy matematikai lehetetlenség, de nem itt.! Mit is mondtunk az egy egyenlőségjelről? A programozásban mindig értékadásra használjuk, nem egyenlőség ként működik (==).
b legyen egyenlő b+1 értékkel, leegyszerűsítve b értékét növeljük eggyel.


Fontos: 1. a while feltétele után mindig tegyünk kettőspontot, evvel kezdődik az utasítás blokk. 2. az utasítás blokk mindig beljebb kezdődjön, tartsuk a behúzást.

A zárójelek a kifejezésekben elhagyhatók az esetválasztásnál (if) és a while ciklusnál is, most csak az átláthatóság kedvéért kerültek ide.

a, b= 0, 0
while (a<10) :
    a = a + 1
    while (b<10):
        b = b + 1
        print(a*b)
    b=0


Kiíratjuk a szorzótáblát ciklusokkal. Egymásba ágyaztunk két ciklust, az elsö ciklus eggyel növeli a értékét, a második ciklus b értékéért felelős, ez addig nem adja vissza az első ciklusra a program futását míg saját maga nem végzet. Tehát 10-szer lefuttatja magát b értékét egyesével növelve, és kiírja a és b szorzatát. Az a értéke ez alatt nem változik. Ha végzett nullázza b értékét és növeli a értékét eggyel, aztán vissza kerül b ciklusba. Ez mind addig fent áll míg a ciklus feltétele hamissá nem válik.

A while ciklus elég fontos összetevő érdemes több módon kipróbálni.



For ciklus

Mint minden más programozási nyelvben úgy itt is megtalálható a for ciklus egy egyedi változata. Mi is ez a for ciklus ? Legtöbbször számláló ciklusként lehet jellemezni (pythonban léptető ciklus). Működése általánosan a kifejezésben megadott értékek határozzák meg, hogy hányszor fusson le a ciklus.

for i in range(10):
    print(i)


Első sor: létrehozunk egy egész típusú változót(i) aminek a for ciklus segítségével
a range(szám sorozat)-ban eltárolt számig, egyesével értéket adunk.
A range(10) jelentése az i egymás után 10 értéket fog kapni 0-9-ig, 10-szer hajtódik
végre a for ciklus. A range-ba több értéket is megadhatunk, ezek megváltoztatják a számsor feldolgozását.

for i in range(6,10):
    print(i)

Range(6,10) – a számsor most is 10-ig (utolsó elem a 9) megy, de a 6-ostól írja ki a számokat.

for i in range(0,41,4):
    print(i)


Itt a range arra utasít, hogy 0-tól 41-ig írjuk ki a számokat 4-esével.
A harmadik érték a lépésközöket adja.

Ugyanígy csökkenő számsort is létrehozhatunk:


for i in range(32,-17,-4):        lépés!
    print(i)


Itt 32-től -17-ig lépked -4-esével(lépésenként 4-et kivonva).


Feltételes végrehajtás

Hasznos programok írásához szinte mindig szükségünk van a feltételek ellenőrzésének képességére és arra, hogy ezek alapján megváltoztassuk a program viselkedését. A feltételes utasítások adják meg nekünk ezt a képességet. A legegyszerűbb formája ennek az if utasítás:

1
2
3
4
5
6
7
if x % 2 == 0:
    print(x, " páros szám.")
    print("Tudtad, hogy a 2 az egyetlen páros prímszám?")
else:
    print(x, " páratlan szám.")
    print("Tudtad, hogy két páratlan számot összeszorozva " +
                                         "az eredmény mindig páratlan?")
Az if kulcsszó utáni logikai kifejezés a feltétel. Ha ez igaz, akkor az ezt követő mindegyik indentált utasítás végrehajtódik. Ha nem igaz, akkor az else kulcsszó utáni behúzott utasítások hajtódnak végre.

Változó típusok

int – Egész számok tárolására, 16 biten -32768-tól 32767-ig

unsigned int – Egész előjel nélküli számok tárolására 16 biten, 0-65535-ig

long – Egész számok tárolása 32 biten, -2147483648-tól 2147483647-ig

unsigned long – egész előjel nélküli számok tárolására, 0-4294967295-ig

byte – egész előjel nélküli számok tárolására 8 biten, 0-255

word – egész előjel nélküli számok tárolására 16 biten, 0-65535-ig

short – egész előjeles számok tárolására 16 biten, -32768-tól 32767-ig

float – lebegőpontos számok tárolása 32 biten,3.4028235E+38-3.4028235E+38, 6-7 tizedes pontoságú

double – dupla pontosságú lebegőpontos szám 32 biten

char – karakterek tárolására 8 biten, -128-tól 127-ig (ascll táblázat szerint)

unsigned char – számok tárolása 0-255-ig

String – karakter láncok tárolására

boolean – logikai típus 1 bites, felvehető értékei: true – false (igaz – hamis)

Arrays – tömbök, egy-egy típusú értékek halmaza, az értékekre index számokkal hívatkozunk


Összevont értékadás

i++ → i = i+1 (i értékét 1-el növeljük)
i-- → i = i-1
i+=y → i = i+y (i értékét y értékével növeljük)
i-=y → i = i-y
i*=y → i = i*y
i/=y → i = i/y

 
Logikai operátorok:

&& – és(and)

|| – vagy(or)

! – nem(not)

Matematikai függvények

min(x,y) – két szám közül a kisebbel tér vissza

max(x,y) – két szám közül a nagyobbal tér vissza

constrain(x,a,b) – x szám a és b közötti értékeivel tér vissza

abs(x) – a szám abszolút értékével tér vissza

map(szam,x1,y1,x2,y2) – változó értéktartományának arányos átkonvertálása új tartományba

pow(x,a) – számok hatványozása

sqrt(x) – szám négyzetgyöke


Program szerkezet
setup() - beállítási programrész, eszközök meghatározására, beállítására szolgál.

loop() - fő programrész, visszatérő végrehajtás.

Alap utasítások
if() - feltételes utasítás, ha a zárójelben a kifejezés értéke igaz akkor végrehajtódik

else – az if után alkalmazzuk, ha nem igaz if értéke akkor hajtódik végre, jelentése: különben.

else if() - az if feltételbe ágyazva további feltételek is megadhatók ezzel az utasítás párral.

for() - számlálós ciklus, mindaddig végrehajtódik még a kifejezés értéke igaz.

switch case – esetválasztó (többfelé ágazó feltételes ciklus)

default – a case else-je, ha egyik eset se igaz akkor hajtódik végre.

break – kilépés a ciklusból (switch-case, while).

Digitális I/O

pinMode() - digitális lábak meghatározása ki- illetve bemenetként.

digitalWrite() - érték kiadása(kiíratása) digitális lábra.

digitalRead() - érték beolvasása az adott digitális lábról.


Analóg I/O

analogRead(x) – x analóg bemenet beolvasása

analogWrite() – PWM jel digitális kimenetre

analogReference() – analóg bemenetek referencia feszültség beállítása

Idő

delay() - várakozási idő megadása ezredmásodpercben.

delayMicroseconds() – várakozási idő megadása milliomod másodpercben.

millis() – a bekapcsolás óta eltelt idő ezredmásodpercben

micros() – a bekapcsolás óta eltelt idő milliomod másodpercben.

Véletlen szám

random() – véletlen szám generálás

randomSeed() – véletlen szám generálás kezdő érték megadása

Kommunikáció

Soros adatátvitel

Serial.begin() - soros kommunikáció átviteli sebességének beállítása

Serial.print() - kiíratás soremelés nélkül

Serial.println() - kiíratás soremeléssel

Serial.available() - változás érzékelése (soros monitor beviteli mező, vagy más beviteli forrás)

Serial.read() - bevitt érték kiolvasása 


Az összehasonlítás műveleti jelei

== egyenlő. (Nem ugyan az mint az = ! Ezt a programozásban értékadásra használják.)

!= jelentése nem egyenlő. pl.: a != b A kifejezés igaz ha a nem egyenlő b
< kisebb
> nagyobb
< = kisebb vagy egyenlő
>= nagyobb vagy egyenlő.


https://www.youtube.com/watch?v=o5g4IAQhKrY&list=PLV4qkjTKNvniW6IYOn1kyS7klkS1CJt66


Szójegyzék
ág (branch)
A programvezérlés egyik lehetséges útvonala, amelyet egy feltétel határoz meg.
beágyazás (nesting)
Egy programszerkezet egy másikon belül úgy, mint egy feltételes utasítás egy másik feltételes utasítás egyik ágában.
blokk (block)
Egymás utáni utasítások sorozata ugyanazzal az indentálással.
Boole algebra (Boolean algebra)
Logikai kifejezések újrarendezésére szolgáló néhány szabály.
Boolean érték (Boolean value)
Pontosan két logikai érték: True vagyis igaz és False vagyis hamis. Ezek típusa bool. A Boolean kifejezés kiértékelése során a Python parancsértelmező Boolean értéket állít elő eredményként.
Boolean kifejezés (Boolean expression)
Egy kifejezés, ami vagy igaz, vagy hamis.
feltétel (condition)
A Boolean kifejezés egy feltételes utasítás fejrészében, amely meghatározza, hogy melyik ág legyen végrehajtva.
feltételes utasítás (conditional statement)
Egy utasítás, amely befolyásolja a programvezérlést egy feltétel révén. Pythonban az ehhez használt kulcsszavak: if, elif és else.
igazságtábla (truth table)
Logikai értékek tömör táblázata, amely leírja egy logikai operátor szemantikáját.
kód csomagolása függvénybe (wrapping code in a function)
Gyakran így hívják azt a folyamatot, melynek során utasítások sorozatát egy fejrésszel látjuk el, hogy egy függvényt kapjunk. Ez nagyon hasznos, mert többszörösen tudjuk használni az utasításokat. Azért is fontos, mert megengedi a programozónak, hogy kifejezze mentális blokkjait és hogy hogyan darabolja fel a problémát kisebb részekre.
láncolt feltételes utasítás (chained conditional)
Feltételes elágazás több, mint két lehetséges program-végrehajtási úttal. Pythonban a láncolt feltételes utasítás if ... elif ... else szerkezetként írható le.
logikai érték (logical value)
A Boolean érték másik megnevezése.
logikai kifejezés (logical expression)
Lásd: Boolean kifejezés.
logikai operátor (logical operator)
Boolean kifejezéseket összekötő operátorok egyike: and, or és a not.
összehasonlító operátor (comparison operator)
Két érték összehasonlítására használt hat operátor egyike: ==, !=, >, <, >=, and <=.
prompt (prompt)
Egy vizuális megoldás, ami azt mondja a felhasználónak, hogy a rendszer készen áll bemenet fogadására.
típuskonverzió (type conversion)
Egy explicit függvény, amely vesz egy adott típusú értéket és előállítja a megfelelő másik típusú értéket.
törzs (body)
Utasításblokk az összetett utasításokban a fejrész után.

https://okt.sed.hu/szkriptnyelvek/gyakorlat/python/basic-python/

Nincsenek megjegyzések:

Megjegyzés küldése