Bevezetés a programozásba



Hasonló dokumentumok
Név:... Kód: LEVÉL INFORMATIKA TEHETSÉGGONDOZÁS 2011

Programozási tételek. Dr. Iványi Péter

Occam 1. Készítette: Szabó Éva

1. gyakorlat

Bevezetés az informatikába

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

Készítette: Nagy Tibor István

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Algoritmizálás, adatmodellezés tanítása 1. előadás

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Bemutatkozás. Bemutatkozás. Bemutatkozás. Bemutatkozás. 1. előadás. A tárgy címe: A programozás alapjai 1

Bevezetés a programozásba I.

Programozási módszertan

Operációs rendszerek gyak.

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

Bevezetés a programozásba. 5. Előadás: Tömbök

A C# programozási nyelv alapjai

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

Programzás I gyakorlat

Java II. I A Java programozási nyelv alapelemei

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

Hardverközeli programozás 1 1. gyakorlat. Kocsis Gergely

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok

Egyszerű programozási tételek

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Programozási segédlet


az Excel for Windows programban

LEGO robotok. XII. rész

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

Webprogramozás szakkör

Szoftvertervezés és -fejlesztés I.

Programozási nyelvek (ADA)

7. fejezet: Mutatók és tömbök

Számítógép architektúra

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Mindenki abból a három tantárgyból tesz szigorlatot, amelyet hallgatott.

1. Alapok. #!/bin/bash

10. gyakorlat Struktúrák, uniók, típusdefiníciók

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

Kifejezések. A programozás alapjai előadás. Operátorok. Kifejezések. Operátorok precedenciája. Operátorok precedenciája

Programozás II. előadás

BASH SCRIPT SHELL JEGYZETEK

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

Aritmetikai kifejezések lengyelformára hozása

Algoritmusok, adatszerkezetek, objektumok

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

Digitális ki-bemenetek kezelése, bitszintű műveletek

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

Programozás alapjai (ANSI C)





























1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

C++ programozási nyelv

C programozási nyelv Pointerek, tömbök, pointer aritmetika

Átírás:

Bevezetés a programozásba 1. Előadás Bevezetés, kifejezések http://digitus.itk.ppke.hu/~flugi/

Egyre precízebb A programozás természete Hozzál krumplit! Hozzál egy kiló krumplit! Hozzál egy kiló krumplit a sarki közértből! Menj el a sarki közértbe, végy egy kosarat, tegyél bele egy kiló krumplit, adj annyi pénzt a pénztárosnak, amennyibe egy kiló krumpli kerül, tedd le a kosarat, gyere ki a közértből, és hozd haza a krumplit!

A programozás Recept készítés Matek gyakorlatban Részletes megértés Módszer keresés Rendszer tervezés

A programozás Recept készítés Matek gyakorlatban Részletes megértés Módszer keresés Le Le kell írni írni lépésről lépésre a teendőket Rendszer tervezés Az Az egyes lépéseknek olyanoknak kell lenniük amit a gép megért

A programozás Recept készítés Részletes megértés Előfordul, hogy a gép által érthető Matek parancsok között nincs gyakorlatban olyan, ami egy részfeladatot megold Módszer keresés Rendszer tervezés Ilyenkor a meglevőkből kell valahogy összerakni

A programozás Recept készítés Matek gyakorlatban A számítógép eredendően matematikai műveleteket ért ért meg közvetlenül Részletes megértés Módszer keresés Van ugyan olyan program, ami nem tartalmaz matematikai kihívást, de de az az úgyis unalmas Rendszer tervezés

A programozás A programok ritkán lesznek kész egy Recept nekifutásra, több ember készítés sok napos munkája általában Matek gyakorlatban Részletes megértés Fontos, hogy előre tervezhető legyen ez ez a munka (Második félévtől aktuális) Módszer keresés Rendszer tervezés

Milyen tulajdonságok kellenek ahhoz, hogy valaki jól programozzon? Absztrakciós készség A modell helyes és használható, a fölösleg, és csak a fölösleg nem szerepel a programban Új fogalomrendszerekkel való gyors megismerkedés képessége Programozási nyelvek érdemi elsajátítása Fogalmazási készség A formalizmusok fogalmazása hasonlít az idegen vagy az anyanyelvi fogalmazásra.

Mivel fogunk foglalkozni a félévben? Az alapvető fogalmakat tisztázzuk kifejezések vezérlőszerkezetek változók, típusok, rekordok, tömbök függvények Megtanuljuk a legegyszerűbb vezérlőszerkezeteket, két nyelven is Félév végére C++ nyelven függvényekkel, fájlkezeléssel, tömbökkel dolgozó programot fogtok tudni írni

Adminisztratív tudnivalók Pluszmínusz: félév végére legalább 0-ban kell állni A kérdések mindig a teljes félév anyagából lesznek, ezért a vége felé nehezedik, érdemes már most tanulni Papíros ZH: programvázlatot kell tudni írni, hibát keresni, kiegészíteni, értelmezni Géptermi ZH: rövid idő alatt működő C++ programot kell írni. Egy pótzh, ami vagy papíros, vagy géptermi. Csak gyakorlati jegy van, a géptermi ZH kétszeres súllyal számít bele. Az előadás kötelező, ellentétben az olyan tárgyakkal, ahol nem csak gyakorlati jegy van.

Bevezetés a programozásba Kifejezések

Kifejezések 1 + 1 Ezt mindenki érti. Tudjuk, hogy ezek számok, és hogy a számokat össze lehet adni

Kifejezések 1 + 1??? Értelmezési hiba

Kifejezések: a helyes kifejezés Olyan műveleti jeleket és értékeket tartalmaz, amiknek van együtt jelentése Típusnak fogjuk nevezni az értékhalmaz és a művelethalmaz együttesét Magának a kifejezésnek is van típusa, például az 1+1 egy szám típusú kifejezés Összetett kifejezéseket is lehet fogalmazni, például 8+3*(3+7), ilyenkor fontos, hogy helyes részkifejezésekből álljon.

Típusok típusértékhalmaz műveletek egész egész számok aritmetika, hasonlítások valós számok aritmetika, hasonlítások karakter betűk, számjegyek, hasonlítások, konverziók szöveg karaktersorozatok összefűzés, hasonlítások logikai igaz, hamis ÉS, VAGY, NEM, Ezeken kívül még sokféle típus létezik, ezek szinte minden nyelvben megtalálhatóak

Példa PROGRAM kifejezés KI: KI: 8+3*(3+7) PROGRAM_VÉGE

Kifejezések: szintaxisfa 8+3*(3+7) 88 ++ 3*(3+7) 33 ** 3+7 33 ++ 77

Kifejezések: szintaxisfa (8+3)*(3+7) 8+3 ** 3+7 88 ++ 33 33 ++ 77

Változók Amit a matekban ismeretlennek hívnak, csak ismert Névvel jelölt, adott típushoz tartozó elem Tehát a változónak van Neve Típusa Az 1+x csak akkor értelmes kifejezés, ha x olyan változó, amihez van olyan művelet, hogy számmal összeadás. Például x szám.

Változók Ahhoz, hogy egy programban/kifejezésben változót használhassunk, először jeleznünk kell Ezt deklarációnak nevezik VÁLTOZÓK: x: EGÉSZ... 1+x... Innentől a programnyelvet értelmező rendszer ismeri az x nevet, és megfelelő módon kezeli A legalapvetőbb művelete minden változónak az értékadás

Változók, értékadás VÁLTOZÓK: a: EGÉSZ a := 1 Az értékadás a változó tartalmát megváltoztatja egy kifejezés eredményére: a := 8+3*(3+7) a := a + 1 a := b + c + d Az alábbi kifejezés csak akkor értelmes, ha b, c és d már deklarált változók, amiknek megfelelő a típusuk

Kimenet, bemenet Változókat értékadáson kívül a külvilággal való kapcsolattartásra használhatunk A bemenet (input) jelentése (egyelőre) az, hogy a program felhasználója ad értéket a változónak A kimenet (output) jelentése (egyelőre) az, hogy egy kifejezés eredményét megörökítjük a külvilágnak, például képernyőre írással VÁLTOZÓK: a :EGÉSZ BE: a KI: a+1

Példa PROGRAM i/o i/o VÁLTOZÓK: a: a: EGÉSZ EGÉSZ BE: BE: a KI: KI: a + 1 PROGRAM_VÉGE

Vegyes típusú kifejezések x < 5 a < egy olyan művelet, ami két számot fogad, és logikai eredményt ad: igaz vagy hamis... R x R x L, reláció Szintaxisfában: LOGIKAI EGÉSZ << EGÉSZ

Példa vegyes típusú kifejezésre PROGRAM vegytip VÁLTOZÓK: a: a: EGÉSZ EGÉSZ BE: BE: a KI: KI: 2 < a PROGRAM_VÉGE

Hibás példa PROGRAM hibás hibás VÁLTOZÓK: a: a: EGÉSZ EGÉSZ BE: BE: a KI: KI: 2 < a < 5 PROGRAM_VÉGE

Hibás példa PROGRAM hibás hibás VÁLTOZÓK: a: a: EGÉSZ EGÉSZ LOGIKAI BE: BE: a KI: KI: LOGIKAI < 5 PROGRAM_VÉGE 22 << a:egész

Hibás példa LOGIKAI PROGRAM hibás hibás VÁLTOZÓK: a: a: EGÉSZ EGÉSZ BE: BE: a KI: KI: LOGIKAI < 5 PROGRAM_VÉGE Nincs ilyen művelet! 22 << a:egész

Hibás példa PROGRAM hibás hibás VÁLTOZÓK: a: a: EGÉSZ EGÉSZ BE: BE: a KI: KI: 2 < a < 5 PROGRAM_VÉGE

Hibás példa LOGIKAI PROGRAM hibás hibás VÁLTOZÓK: a: a: EGÉSZ EGÉSZ BE: BE: a KI: KI: 2 < LOGIKAI PROGRAM_VÉGE Ilyen művelet sincs a:egész << 5

Hibás példa: megoldás PROGRAM hibás hibás VÁLTOZÓK: a: a: EGÉSZ EGÉSZ BE: BE: a KI: KI: 2 < a ÉS ÉS a < 5 PROGRAM_VÉGE LOGIKAI LOGIKAI ÉS ÉS LOGIKAI 22 << a:egész a:egész << 5

Hibás példa: megoldás PROGRAM hibás hibás VÁLTOZÓK: a: a: EGÉSZ EGÉSZ Adjunk a bemenetre 10-es értéket BE: BE: a KI: KI: 2 < a ÉS ÉS a < 5 PROGRAM_VÉGE LOGIKAI LOGIKAI ÉS ÉS LOGIKAI 22 << a:egész a:egész << 5

Hibás példa: megoldás PROGRAM hibás hibás VÁLTOZÓK: a: a: EGÉSZ EGÉSZ Adjunk a bemenetre 10-es értéket BE: BE: a KI: KI: 2 < a ÉS ÉS a < 5 PROGRAM_VÉGE LOGIKAI LOGIKAI ÉS ÉS LOGIKAI 22 << 10 10 10 10 << 5

Hibás példa: megoldás PROGRAM hibás hibás VÁLTOZÓK: a: a: EGÉSZ EGÉSZ Adjunk a bemenetre 10-es értéket BE: BE: a KI: KI: 2 < a ÉS ÉS a < 5 PROGRAM_VÉGE igaz LOGIKAI ÉS ÉS LOGIKAI 22 << 10 10 10 10 << 5

Hibás példa: megoldás PROGRAM hibás hibás VÁLTOZÓK: a: a: EGÉSZ EGÉSZ Adjunk a bemenetre 10-es értéket BE: BE: a KI: KI: 2 < a ÉS ÉS a < 5 PROGRAM_VÉGE igaz LOGIKAI ÉS ÉS hamis 22 << 10 10 10 10 << 5

Hibás példa: megoldás PROGRAM hibás hibás VÁLTOZÓK: a: a: EGÉSZ EGÉSZ Adjunk a bemenetre 10-es értéket BE: BE: a KI: KI: 2 < a ÉS ÉS a < 5 PROGRAM_VÉGE igaz hamis ÉS ÉS hamis 22 << 10 10 10 10 << 5

Kifejezések összefoglalás Egy kifejezés akkor értelmes, ha szintaxisfába szervezhető Ismerni kell az adott programnyelv típusait, műveleteit (ezek komolyabb nyelveknél bővíthetőek lesznek), precedencia szabályait A kifejezés kiértékelése a szintaxisfa aljáról felfelé küldött részeredményeken keresztül történik