Programozás Alapjai
1. Miért programozzunk? Programnyelvek. Hello world - Az első programunk készítése.
Tajkov Zoltán
2024.03.04.
Hogyan tanuljunk?
- Órai alkalmakon aktív részvétel
- Feltöltött jegyzet alapos átnézése, értelmezése
- Gyakorló feladatok elvégzése
- Gyakorolni... gyakorolni... gyakorolni...
Források:
- Elsődleges forrás a jegyzet
- Másodlagos a felvétel
- Harmadlagos a jegyzetben található linkek
Teljesítés
Egy darab projektszoftver elkészítése, dokumentálása és bemutatása.

Programozás Alapjai - 01
Miért programozzunk?
Tények és tévhitek
- A programozás száraz, monoton
- A programozás nehéz
- Matekzseninek kell lenni
- Mérnöki szaktudást igényel
- 10 hét múlva programozó leszel
Programozás Alapjai - 01
Mire jó egy számítógép?

Add össze az első ezer páros számot!
Mi van a képen?

Programokészítés
- Specifikálás (miből?, mit?)
- Tervezés (adatszerkezet és algoritmus)
- Kódolás (számítógépi megvalósítás (implementáció) )
- Tesztelés, hibakeresés és javítás
- Dokumentálás (fejlesztői, felhasználói)
- Üzemeltetés, karbantartás
Programozás Alapjai - 01
Kódolás (implementáció)
Programozás Alapjai - 01
Adatok és algoritmusok
számítógépes program = adatok + algoritmusok
Programozás Alapjai - 01
Algoritmusok
- Recept! Egy folyamat, mely egyszerű lépések meghatározott sorozatával általános megoldást ad egy adott problémára.
Eratoszthenész szitája
- Írjuk fel a számokat egymás alá 2-től ameddig a prímtesztet elvégezni kívánjuk. Ez lesz az A lista.
- Kezdjünk egy B listát 2-vel, az első prím számmal.
- Húzzuk le 2-t és az összes többszörösét az A listáról.
- Az első át nem húzott szám az A listán a következő prím. Írjuk fel a B listára.
- Húzzuk át az így megtalált következő prímet és az összes többszörösét.
- Ismételjük a 3–5. lépéseket, amíg az A listán nincs minden szám áthúzva.
Programozás Alapjai - 01
Algoritmusok
Eratoszthenész szitája
- Írjuk fel a számokat egymás alá 2-től ameddig a prímtesztet elvégezni kívánjuk. Ez lesz az A lista.
- Kezdjünk egy B listát 2-vel, az első prím számmal.
- Húzzuk le 2-t és az összes többszörösét az A listáról.
- Az első át nem húzott szám az A listán a következő prím. Írjuk fel a B listára.
- Húzzuk át az így megtalált következő prímet és az összes többszörösét.
- Ismételjük a 3–5. lépéseket, amíg az A listán nincs minden szám áthúzva.

Programozás Alapjai - 01
Algoritmusok
- Jól specifikált
- Végrehajtható
- Véges
- Általános megoldást ad
Programozás Alapjai - 01
Hogyan kommunikálunk a számítógéppel?
Programnyelvek
- Feladatuk az algoritmus számítógép számára érthető formátumban történő megadása.
- Probléma: A „könnyű” használhatóság miatt a programozási nyelveknek hasonlítaniuk kell az ember által használt nyelvhez (angol), de ugyanakkor egyértelműnek és könnyen átfordíthatónak kell lenni a számítógép által beszélt „0” és „1” jelekből álló nyelvre (gépi kód).
- Eredmény: Rengeteg programozási nyelv van. Gyakorlatilag minden feladatra található megfelelő, illetve nem megfelelő programozási nyelv
Programozás Alapjai - 01
Programnyelvek
C ("Daddy")

- Mérföldkő
- Innen számítjuk a programozási nyelveket
- Kicsi, tömör, egyszerű, erős
- Windows, Unix, első böngészők, Python
Programozás Alapjai - 01
Programnyelvek
Python 1994
- Magas szintű és általános célú programozási nyelv
- Többelvű: imperatív; funkcionális és objektumorientált
- Interpretált
- Interaktív módban is használható
- Nagybetű ≠ kisbetű
- A kulcsszavak csupa kisbetűsek
- A blokkok behúzással (azonos darabszámú szóközökkel) jelölhetők ki
- Az utasításlezáró jel a sor vége
- A fejlesztői környezet számos platformra elérhető
Programozás Alapjai - 01
Programnyelvek
Interpretáció
1. Forráskód
#include <stdio.h>
int main() {
int number;
printf("Enter an integer: ");
// reads and stores input
scanf("%d", &number);
// displays output
printf("You entered: %d", number);
return 0;
}
Programozás Alapjai - 01
Programnyelvek
Interpretáció
1. Forráskód
#include <stdio.h>
int main() {
int number;
printf("Enter an integer: ");
// reads and stores input
scanf("%d", &number);
// displays output
printf("You entered: %d", number);
return 0;
}


3. Futtató
2. Fordító
Programozás Alapjai - 01
Programnyelvek
Interpretáció
#include <stdio.h>
int main() {
int number;
printf("Enter an integer: ");
// reads and stores input
scanf("%d", &number);
// displays output
printf("You entered: %d", number);
return 0;
}
Előfordítunk
ByteCode
Interpreter
Eredmény
Programozás Alapjai - 01
Programnyelvek
Fejlesztői rendszer
Programozás Alapjai - 01
Tervezett Tematika
| Alkalom | Dátum | Téma |
|---|---|---|
| 1. | 03.04. | Miért programozzunk? Programnyelvek. Hello world - Az első programunk készítése |
| 2. | 03.11. | Hogy gondolkodik a számítógép? (Bináris számrendszer). Adatok struktúrába rendezése. Adattípusok |
| 3. | 03.18. | Algoritmikus gondolkodás. Ciklusok, elágazások |
| 4. | 03.25. | Függvények definiálása. Fájlműveletek |
| 5. | 04.08. | Osztályok: első lépés az objektum orientált programozás felé. Projektfeladatok megbeszélése |
| 6. | 04.15 | NumPy, vektorok és mátrixok. Véletlen számok. Regresszió |
| 7. | 04.22. | Adatvizualizáció Matplotlib-bel. Ábrázolási fajták (plot, scatter, piechart, barplot, hisztogram) |
| 8. | 04.29. | JSON, CSV, pandas, statiszitka |
| 9. | 05.06. | Adatelemzés, idősorok elemzése |
| 10. | 05.13 | Modulok. Package-k. Tesztelés. ChatGPT |
Programozás Alapjai
By novidad21
Programozás Alapjai
- 520