Algoritmizálás + kódolás C++ nyelven és Pascalban

Hasonló dokumentumok
Algoritmizálás + kódolás C++ nyelven és Pascalban

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

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

Java II. I A Java programozási nyelv alapelemei

A C# programozási nyelv alapjai

Informatika terméktervezőknek

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

Maximum kiválasztás tömbben

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Bevezetés a programozásba I.

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

Java II. I A Java programozási nyelv alapelemei

Programozás alapjai. 5. 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)

A C programozási nyelv II. Utasítások. A függvény.

A C++ Standard Template Library rövid összefoglalás

Programozás II. 2. Dr. Iványi Péter

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

Pénzügyi algoritmusok

Apple Swift kurzus 3. gyakorlat

Bevezetés a programozásba I.

Programozási alapismeretek 2009/2010

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is

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

A C programozási nyelv I. Bevezetés

Programozási tételek és C++

117. AA Megoldó Alfréd AA 117.

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

A C# PROGRAMOZÁSI NYELV

A C programozási nyelv I. Bevezetés

Programozás alapjai II. (1. ea) C++

Programozás alapjai II. (1. ea) C++

Java programozási nyelv

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE

Programozás C és C++ -ban

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

1. Alapok. Programozás II

Mintavételes szabályozás mikrovezérlő segítségével

Bevezetés a programozásba. 9. Előadás: Rekordok

Rendezések. A föltöltés nemcsak az r-re vonatkozik, hanem az s-re is. Ez használható föl a további rendezések

Szoftvertechnológia alapjai Java előadások

Bevezetés Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1

Bevezetés a C++ programozásba

Programozási alapismeretek 1. előadás

Szoftvertervezés és -fejlesztés I.

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

Programozási alapismeretek. 1. előadás. A problémamegoldás lépései. A programkészítés folyamata. Az algoritmus fogalma. Nyelvi szintek.

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

Internet programozása. 3. előadás

Programozás II. 4. Dr. Iványi Péter

Alkalmazott modul: Programozás 2. fejezet. C++ alapismeretek. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

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

Webprogramozás szakkör

Bevezetés a programozásba. 6. Előadás: C++ bevezető

Bevezetés a C++ programozási nyelvbe

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

Bevezetés a programozásba. 11. Előadás: Esettanulmány

Programozási alapismeretek 3. előadás

Bevezetés a C++ programozási nyelvbe

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

Alkalmazott modul: Programozás. C++ alapismeretek. C++ alapismeretek Történet

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

Programozás alapjai II. (2. ea) C++

Programozás alapjai II. (2. ea) C++

Programozási nyelvek (ADA)

Adminisztrációs feladatok Strukturált programok A C programnyelv elemei

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

Bevezetés a programozásba I.

BASH script programozás II. Vezérlési szerkezetek

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

PASzSz. Dr. Kotsis Domokos

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

Imperatív és procedurális programozás a Javában

Programozás II gyakorlat. 8. Operátor túlterhelés

Programozási nyelvek JAVA EA+GY 1. gyakolat

A lista eleme. mutató rész. adat rész. Listaelem létrehozása. Node Deklarálás. Létrehozás. Az elemet nekünk kell bef zni a listába

Alprogramok, paraméterátadás

Információs Technológia

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

A programozás alapjai 1 Rekurzió

1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket.

Körkörös listák. fej. utolsó. utolsó. fej

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

Komputeralgebra Rendszerek

Szelekció. Döntéshozatal

A feladat lényege egy felhasználói típusnak a zsák típusnak a megvalósítása.

Bevezetés a programozásba. 8. Előadás: Függvények 2.

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

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 3. előadás

Imperatív programozás

Programozás alapjai C nyelv 10. gyakorlat. Standard függvények. Union

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

INFORMATIKA javítókulcs 2016

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Átírás:

Algoritmizálás + kódolás nyelven és ban Motiváció A Programozási alapismeretek tárgyban az algoritmizáláshoz struktogramot, a kódoláshoz nyelvet használunk, a Közismereti informatikában (a közoktatásban elterjedt szokásoknak megfelelően) magyar kulcs-szavú pszeudokódot, illetve (Free) nyelvet. Megjegyzem: alábbiakbanteljességre nem törekszem, megelégszek azzal, hogy az egyik nyelv ismerete esetén a másik nyelvben könnyen lehessen a kezdő lépéseket megtenni. Algoritmizálás: struktogram / pszeudokód Értékadás, logikai operátorok, inkrementálás és hasonló operátorok Itt nem a különbözőség, hanem a nyomaték kedvéért sorolom föl őket. Mi fene Műveleti jel értékadás := értékazonosság =, rendezés <,,, > inkrementálás (növelés x-szel) dekrementálás (csökkentés x-szel) logikai I/O :+x : x És, Vagy, Nem Be: vált Ki: kif Szekvencia utasítás 1 ; utasítás 2 vagy utasítás 1 utasítás 2

Elágazás Ha felt akkor akkor-ág különben hamis-ág Elágazás vége Többirányú elágazás Elágazás felt 1 esetén utasítások 1 felt 2 esetén utasítások 2 egyéb esetben ut Elágazás vége Számlálós ciklus Ciklus cv=k-től v-ig cm Ciklus vége Elölfeltételes ciklus Ciklus amíg felt cm Ciklus vége Hátulfeltételes ciklus Ciklus cm amíg felt Ciklus vége

Finomításdefiníciók Eljárás EljNév(form.par.): típusdeklarációk (lokális) Eljárás vége. Függvény FvNév(form.par.):FvTíp típusdeklarációk (lokális) FvNév:=kif Függvény vége. Kódolás - (Free) Programszerkezet #include <iostream> #include <stdlib.h> #include includenév3 Program PrNév; Uses Crt, unitnév2, ; using namespace std; típusdefiníciók típusdeklarációk (programparaméterek) finomítás-fejsorok (prototípusok) int main( ) return 0; finomításdefiníciók Type típusdefiníciók Var / Const típusdeklarációk (programparaméterek) finomításdefiníciók Var / Const típusdeklarációk (főprogram lokális adatai) End.

Megjegyzések: 1. A érzékeny a kis- és nagybetűkre, a nem (bár a következetesség mindig előnyös). A ban is az azonosítókban sajátos konvenció szerint (értsd: szabályosan ) vegyesen használunk kis- és nagybetűket. (L. később.) 2. A ban is létezik a finomítás-fejsor (szintaxisa: Procedure/Function Finomítás- Név(formális paraméterek); Forward;) és a finomításdefiníció szétválasztás, de ritkán élünk vele. Típusdefiníciók struct típtíp 1 mező 1 ; típ 2 mező 2 ;;; typedef típe típt[db]; enum típért1,ért2, típ=record mező 1 :típ 1 ; mező 2 :típ 2 ; típt=array [1..db] of típe; típ=(ért1,ért2,); Megjegyzések: 1. A beli tömbök indexelése nemcsak 1-gyel kezdődő egészintervallum lehet, hanem tetszőleges ún. diszkrét típus lehet. Az 1..db helyett írható akár 0..db-1, sőt általában a..b. Fontos, hogy az index típus fordításkor meghatározottnak kell lennie! (Diszkrét az a típus, amely véges, rendezett értékhalmazzal rendelkezik, és minden értékének a legnagyobb kivételével egyértelmű a rákövetkezője, illetve a legkisebb kivételével egyértelmű a megelőzője.) 2. A felsorolási típusban előforduló értékek nem egyezhet meg semmilyen más azonosítóval (pl. számkonstansokéval). 3. A felsorolási típusbeli értékekről szabad (de nem muszáj) tudni, hogy a felsorolás sorrendjében értékük: 0, 1, 4. Természetesen a felhasznált típusok már addigra definiáltaknak kell lennie. Elemi típusok Free Bájthossz short int vagy short unsigned shortint int vagy long int vagy long double bool char string Integer Word LongInt Real Boolean Char String 2 2 4 8 1 1 256 Egy string típusú adat 1. jele (ha nem üres a string), akkor esetében a 0 indexű, ban az 1 indexű. Az indexelés a két nyelvben egyformán történik, az s[i] jelenti az s i indexű jelét.

Aritmetikai operátorok Free x++; x+=y; x--; x-=y; +, -, *, / int / int, int % int //természetes más egész típus esetén is Inc(x); Inc(x,y); Dec(x); Dec(x,y); +, -, *, / Integer Div Integer, Integer Mod Integer természetes más egész típus esetén is Logikai operátorok Free < <= ==!= >= > &&! < <= = <> >= > and or not Ha a logikai kifejezésében több relációi is van, akkor azokat külön-külön zárójelek közé kell zárni. Például: (0<i) and (i<=n). Adatdeklaráció Free típ vált; const típ vált=kif; Var vált:típ; Const vált:típ=kif; A deklarációk egyesíthetők, ha azonos típusúak. Pl. int a,b; ugyanaz, mint int a; int b; ban is: Var a,b:integer; ugyanaz, mint Var a:integer; b:integer; vagy Var a:integer; Var b:integer; Komment (Free)Free //a sorvégi megjegyzés /* megjegyzés akár több soron át */ //a sorvégi megjegyzés (* megjegyzés akár több soron át *) megjegyzés akár több soron át

Értékadás Free vált=kif; vált:=kif; Elágazás if (felt.) akkor-ág else különben-ág If felt then akkor-ág End else különben-ág A felt. egy logikai kifejezést jelöl. Az utasítás else-szel bevezetett része elmaradhat. Többirányú elágazás switch (kif) case ért 1 : ág 1 ; break; case ért 2 : ág 2 ; break; default különben-ág Case kif of ért 1 : ág 1 ; ért 2 : ág 2 ; else különben-ág A kif és az ért i -k azonos típusúak. A default/else ág elmaradhat. Számlálós ciklus for (int cv=k; k<=v; ++cv) Var //lokális deklaráció cv:integer; For cv:=k to v do

for (int cv=k/*lokális*/; k>=v; --cv) Var //lokális cv:integer; For cv:=k downto v do Elölfeltételes ciklus while (felt) While felt do Hátulfeltételes ciklus do while (felt) Repeat Until not felt; Finomítás-definíció függvény típ finomításnév(form.param.) return fvért; Function finomításnév(form.param.):típ; Var és/vagy Const finomításnév:=fvért; Finomítás-definíció eljárás (értéknélküli függvény) void finomításnév(form.param.) return fvért; Procedure finomításnév(form.param.):típ; Var / Const finomításnév:=fvért; Finomítás-fejsor (prototípus) típ finomításnév(form.param.); void finomításnév(form.param.); Function finomításnév(form.param.):típ; Forward; Procedure finomításnév(form.param.); Forward;

I/O //adatok a sorból: cin >> vált 1 >> vált 2 >> ; //számadatok a sorból: Read(vált 1,vált 2,); //egy adat a sor elejéről: string tmp; cin >> vált; getline(cin,tmp, \n ); //a sor végének eldobása cout << kif; //egy számadat a sor elejéről: Readln(vált); a sor végének automatikus eldobása Write(kif); cout << kif << endl; Writeln(kif); cout << setw(8) << szöveg; Write(szöveg:8);összesen 8 karakternyi cout << setw(8) << setprecision(3) << valós;/*8 széles mezőben, 3 értékes jeggyel*/ Write(valós:8:3);összesen 8 karakternyi, 3 tizedes jeggyel 1. A és a inputja lényegesen eltér egymástól, különösen a nem számtípusú adatok esetén! Erre némileg a fenti táblázat fel is hívja a figyelmet. 2. Figyelem, a setprecision(3) az értékes jegyek számát adja meg, ami korántsem biztos, hogy a tizedeseket jelenti; így a és fenti egymásmellé rendelése nem jelent pontos kódolási szabályt a két nyelv között, inkább csak ötletelés.