1. Gyakorlat. Rövid elméleti összefoglaló. <tárolási osztály>típus <típus > változónév <= kezdőérték><, >;



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

Java II. I A Java programozási nyelv alapelemei

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

5. Gyakorlat. struct diak {

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

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

Programozás I gyakorlat

Java II. I A Java programozási nyelv alapelemei

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

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

Programozás I gyakorlat

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

A C++ nyelvben a függvény nevek túlterhelésével biztonságosabbá tehetnénk az adatok kiírását és beolvasását.

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

3 A C programozási nyelv szintaktikai egységei

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozás 1. Dr. Iványi Péter

ANSI C++ összefoglaló

A C# PROGRAMOZÁSI NYELV

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

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

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

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

Típusok és konstansok

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

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

A C# programozási nyelv alapjai

1. Alapok. Programozás II

C++ programozási nyelv Struktúrák a C++ nyelvben Gyakorlat

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

C programozás. 1 óra Bevezetés

A C++ programozási nyelv középiskolásoknak

Pénzügyi algoritmusok

Programozási nyelvek (ADA)

Programozás 3. Dr. Iványi Péter

Bevezetés a programozásba I.

Programzás I gyakorlat

BME MOGI Gépészeti informatika 1.

Készítette: Nagy Tibor István

C programozási nyelv

Programozás C és C++ -ban

Készítette: Nagy Tibor István

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

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

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki.

Programozás C++ -ban 2007/1

2. Fejezet : Számrendszerek

Információs Technológia

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

Az alkalmazásfejlesztés, fordítás Actionscript elemei, a Macromedia Flash rendszer. 1. Az alkalmazásfejlesztés lépései

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

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

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

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

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

Szoftvertervezés és -fejlesztés I.

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

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

Programozás I. C# bevezető. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 17.

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

Objektumorientált Programozás II.

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

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

Programozás alapjai. 2. előadás

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

I. A gyökvonás. cd c) 6 d) 2 xx. 2 c) Szakaszvizsgára gyakorló feladatok 10. évfolyam. Kedves 10. osztályos diákok!

B I T M A N B I v: T M A N

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

Programozási Nyelvek (C++) Összefoglaló

Informatika terméktervezőknek

Kifejezések. Kozsik Tamás. December 11, 2016

117. AA Megoldó Alfréd AA 117.

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

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

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

Bevezetés a programozásba I.

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

1. Alapok. #!/bin/bash

Feladatok MATEMATIKÁBÓL II.

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

Programozás I. gyakorlat

Programozás C és C++ -ban

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

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

Assembly programozás: 2. gyakorlat

Kifejezések. Kozsik Tamás. December 11, 2016

A C programozási nyelv IV. Deklaráció és definíció

Programozás alapjai. 5. előadás

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

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

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Programtervezési stratégiák. Top-down tervezés. Top-down tervezés. Bottom-up tervezés. 4.

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

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

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

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

2005_01/1 Leírtunk egymás mellé hét racionális számot úgy, hogy a két szélső kivételével mindegyik eggyel nagyobb a két szomszédja szorzatánál.

Átírás:

Rövid elméleti összefoglaló 1. Gyakorlat A C++ nyelv hatékony, általános célú programozási nyelv, amely hagyományos fejlesztőeszközként és objektum-orientált programozási nyelvként egyaránt használható. Erősen típusos nyelv. Újdonságai: kivételek (exception) kezelése, valamint a paraméterezett típusok, osztályok és függvények használata (templates, sablonok). A C++ nyelv alapelemei: Az ANSI C++ szabvány a nyelv alapelemeit (nevek, számok, karakterek) tokennek nevezi. A C++ nyelv betűérzékeny, megkülönbözteti a kis- és a nagybetűket. A nyelv jelkészlete: Az angol ábécé kis- és nagybetűi s egyéb jelek (! " # % & ' ( ) * +, - /:; < = >? [ \ ] ^ _ ~) s a nem látható jelek (whitespace) (szóköz, vízszintes és függőleges tabulátor, új sor ('/n') stb.), valamint a UniCode karakterek, amelyek csak megjegyzésekben szerepelhetnek. A C++ nyelv azonosítói: A legtöbb fordító 32-karakteres neveket használ, az első karakter betű vagy _ (aláhúzásjel), melyet betű, szám, illetve aláhúzásjel követhet. A legtöbb fordító kibővíti a szabványos kulcsszavakat saját jelentéssel: try, property stb. Az Ansi C++ nyelv kulcsszavait nem lehet átdefiniálni, új jelentéssel ellátni. Konstansok: C++ nyelvben: karakteres, logikai, egész, felsorolt és lebegőpontos konstansokat használhatunk: A C++ nyelv logikai konstansai true és false lehetnek. Egyetlen mutatókonstanssal rendelkezik ez a 0 (nulla), melyet a NULL szimbólummal jelölünk. Egész konstansok: 12, 012, 0x20 (decimális, oktális, hexadecimális), 32U, 43L (U, u - unsigned, L, l - long) Felsorolt konstansok: enum minosegjo,kozepes,rossz; A minoseg típusú konstansok értékei: jo 0, kozepes 1, rossz 2 Lebegőpontos konstansok: 100.3, 2.567F, 1.78f (F, f - egyszeres pontosság), 3.456L (L, l long double nagy pontosság) 2e-3, 5.3e+10, 1E2, 1E-2 (E, e - exponens, a kitevő). Sztringkonstansok: "ez egy szövegkonstans\nkét sorban" Karakterkonstansok: 'a' egybájtos, L'2*' (két karaktert tartalmazó UniCode karakter- konstans) Megjegyzések: /* */ többsoros megjegyzés, // egysoros megjegyzés A C++ nyelv alaptípusai Adattípusok: bool, char, int, float, double Típusmódosítók: short, long tárolási hosszat, singed, unsigned előjel értelmezését szabályozzák. Típusminősítők: const (csak olvasható), volatile (másik futó folyamat is megváltoztathatja). Egyszerű változók definiálása: <tárolási osztály>típus <típus > változónév <= kezdőérték><, >; Például: unsigned int i; // előjel nélküli egész long double x = 1.523674e12; // nagypontosságú valós Tárolási osztály: auto, register, static, extern; A függvényeken belül deklarált változók alaphelyzetben automatikus (auto) változók. A register változót, ha lehetséges a fordító a számítógép regiszterébe helyezi (ha nem tudja, akkor a változó a memóriában marad). A register változó a függvény a program futási sebességét növeli. A static változót a fordító úgy helyezi el, hogy benne van a kezdőérték, tehát a kezdőértékadás nem igényel futási időt. A függvényen kívül definiált változók alapértelmezés szerint globális (más modulból elérhető - extern) tárolási osztállyal rendelkeznek. Operátorok és kifejezések: Aritmetikai operátorok: /, %, *, +, ( osztás, maradék, szorzás, összeadás, kivonás. Az operátorok felsorolása a műveletek precedenciája szerint történt, az azonos szintű precedenciákat a vonal fogja össze.) Precedencia-szabály: Műveletek precedenciája, zárójelezés. Értékadó utasítás : jobb oldal és a bal oldal fogalma. Például: a = 12.5; a = a+4; a +=4; =, *=, /=, %=, Csoportosítási szabály : a = b = c = 0; (jobbról balra szabály) A C++ program szerkezete A C++ nyelvű program egy vagy több forrásfájlban helyezkedik el, melyek kiterjesztése.cpp. A forrásprogramhoz az ún. deklarációs (include, header, fej-) állományok csatlakoznak, melyeket a #include előfordító utasítás segítségével építünk be a forrásállományba. 1

A C++ szabvány minden könyvtári elemet a közös std névterületen definiál: #include <iostream.h> // helyett használjuk a A C++ programhoz egy main() függvény tartozik, amely kijelöli a program belépési pontját azaz a program futása a main() függvény indításával kezdődik. Az adatok beolvasására a szabványos input (cin), a kiírására pedig a szabványos output (cout) adatfolyam-objektumot használjuk. A kiírás után a soremelés kétféleképpen is biztosítható: cout << "\n"; vagy cout << endl; Létezik még egy szabványos hibastream: cerr << "Hibas adat" << endl; A különféle formátum kialakításához szükséges az alábbi fejállomány beszerkesztése: Jelző ios::fixed ios::scientific ios::showpoint ios::showpos ios::right ios::left ios::adjustfield cout.precision(n) setw(n) cout << dec << x; cout << hex << x; cout << oct << x; cout.fill('*') cout.width(n) Jelentése fixpontos kiírás: cout.setf(ios::fixed) E hatványkitevővel, normál alakban Ha sem a fixed, sem a scientific nincs bekapcsolva, akkor az eredmény nagyságrendjétől függ, hogy fix- vagy lebegőpontos lesz a megjelenő érték, A tizedespont és a tizedespont utáni vezető nullák is kiírásra kerülnek, A + előjel is kiíródik a pozitív egész szám előtt, jobbra tömörít, balra tömörít, A right, left váltásánál használjuk: cout.setf(ios::left,ios::adjustfield) n az értékes jegyek száma n mezőszélességnek megfelelően jobbra tömörítve: cout<<setw(4)<<x; cout<<setw(6)<<y; decimális kiíratás, hexadecimális kiíratás, oktális kiíratás, karakterrel töltjük fel az üres helyeket jobbra, illetve balra, n a mező szélessége. //MINTA1_01 //konstansok const bool log1 = true; const bool log2 = false; const int egesz = 7; const int oktalis = 012; const int hexa = 0x20; const double a1 = 100.3; const double a2= 2.56F; const double a3= 1.78f; const double a4= 2e-3; const double a5= 5e-6; const double a6= 3e+10; const float a7= 142.67; const long double pi = 3.1415926535897932385; const char *s = "ez egy szovegkonstans\n" "ket sorban"; const char c = 'a'; int i; // deklaráció unsigned int j; short int k; long int t; double sugar = 1; long double ter; //utasítások cout <<"egesz: "<< egesz << endl; cout << oct << "oktalis: " << oktalis << endl; cout << hex << "hexadecimalis: " << hexa << endl; cout << "a1: " << a1; cout << " a2: " << a2; cout << " a3: " << a3 << endl; cout << "a4: " << a4; cout << " a5: " << a5; cout << " a6: " << a6 << endl; cout << "a7: " << a7 << endl; cout << "szoveg: " << s << endl; cout << "karakter: "<< c << endl; ter = sugar * sugar * pi; cout <<"terulet: "<< ter <<endl; cout.precision(16); cout <<"terulet: "<< ter << endl; egesz: 7 oktalis: 12 hexadecimalis: 20 a1: 100.3 a2: 2.56 a3: 1.78 a4: 0.002 a5: 5e-06 a6: 3e+10 a7: 142.67 szoveg: ez egy szovegkonstans ket sorban karakter: a terulet: 3.14159 terulet: 3.141592653589793 2

//MINTA1_02 double a=2, b=4, c, d, e, f, g; c = a * b - 2; d = a * (b - 2); e = a * b / 2; f = (a + b)/2; g = a + b/2; cout << "c: " << c << " d: " << d << " e: " << e << " f: " << f << " g: "<< g << endl; //MINTA1_03 double a = 0.00005, b = 123.4142; //fixpontos kiiratás cout.setf(ios::fixed); //MINTA1_04 double a = 0.00005, b = 123.4142; //hatványkitevős kiiratás cout.setf(ios::scientific); //MINTA1_05 double a = 1.5, b = 123.4142; // tizedespont utáni nullák kiírása cout.setf(ios::showpoint); // kiírás 5 értékes jegyre cout.precision(5); cout << a << endl; cout << b << endl; c: 6 d: 4 e: 4 f: 3 g: 4 Megjegyzés: Ha sem a fixed, sem a scientific nincs bekapcsolva, akkor a kiírás eredménye a nagyságrendtől függően fix- vagy lebegőpontos alakú lesz (lásd az első futtatási eredményt). a: 5e-05 b: 123.414 a: 0.000050 b: 123.414200 a: 5.000000e-05 b: 1.234142e+02 1.5000 123.41 3

1. Mintafeladat A mintafeladat két egész változó beolvasását, szorzatának és hányadosának számítását kétféle módon való képzését mutatja be. (Két egész szám hányadosa egész eredményt ad!) //MINTA1_06 int a, b, szorzat; double hanyad1,hanyad2; cout << "a: "; cin >> a; cout << "b: "; cin >> b; szorzat = a * b; hanyad1 = a/b; cout << "szorzat: " << szorzat << endl; cout << "a/b : " << hanyad1 << endl; hanyad2 = (double)a/b; cout << "(double)a/b: " << hanyad2; 2. Mintafeladat a: 2 b: 5 szorzat: 10 a/b : 0 (double)a/b: 0.4 Olvassunk be két valós számot (a,b)! Számítsuk ki az a változó b-edik hatványát, valamint az a változó gyökét! A cmath könyvtár beszerkesztése szükséges a pow(), és az sqrt() függvények használata miatt! //MINTA1_07 #include <cmath> double a,b,hatvany, gyok; cout << "a: "; cin >> a; cout << "b: "; cin >> b; hatvany = pow(a,b); gyok = sqrt(a); cout.precision(4); cout << "hatvanya: " << hatvany << endl; cout << "negyzet gyoke: " << gyok << endl; a: 4 b: 3 hatvanya: 64 negyzet gyoke: 2 Feladatok Ha matematikai függvényeket használunk, akkor az alábbi fejlécállomány szükséges: #include <cmath> A cin>> sorban adatot olvasunk egy változóba. (Nem kell konverzió, sem a változó címe.) cout<< írunk a képernyőre. Kiírható: "" között a szöveges információ, változó, kifejezés, függvényhívás, endl soremelés. A karakter leütésére vár. Ha van olvasás a függvényben, akkor azért kell két utasítás, mert az első az <Enter> karaktert nyeli le. 1. Olvassunk be két egész számot! Számítsuk ki a számok átlagát kétféle módon, valamint a mértani közepét! Alkalmazzuk az alábbi definíciókat (GYAK1_1): int a, b; double atlag1, atlag2, mkozep; Az átlag számítását kétféle módon hajtsuk végre, mivel két egész szám hányadosa egész eredményt adna: A számláló típusát alakítsuk át valóssá (double): atlag1 = (double)(a+b)/2; Mivel a nevező konstans, ezért oszthatunk a 2. valós számmal, így az eredmény valós lesz: atlag2 = (a+b)/2.; 4

a: 1 b: 2 1. atlag: 1.5 2. atlag: 1.5 Mertani kozep: 1.41421 2. Olvassuk be egy téglalap két oldalának hosszát, és számítsuk ki a téglalap területét és kerületét! (GYAK1_2) double a,b,ter,ker; A teglalap a oldala: 1 A teglalap b oldala: 2 A teglalap terulete: 2 A teglalap kerulete: 6 3. Olvassuk be a sugár adatát! Írjunk programot, amely kiszámítja a kör kerületét, területét, a gömb felszínét és térfogatát! (GYAK1_3) const double pi = 3.141592654; double r, korker, korter, gombfelsz, gombterf; körkerület = 2 r π körterület = r 2 π 2 4 3 π gömbfelszí n = 4 r π gömbtérfogat = r 3 Sugar: 1 Kor kerulete : 6.28319 Kor terulete : 3.14159 Gomb felszine : 12.5664 Gomb terfogata: 4.18879 4. Olvassuk be a kocka élének hosszát Írjunk programot, amely kiszámítja a kocka felszínét és térfogatát! (GYAK1_4) double kocka_el, kocka_felsz, kocka_terf; Kocka ele: 1 Kocka felszine : 6 Kocka terfogata: 1 5. Olvassuk be egy derékszögű háromszög két befogóját! Számítsuk ki az átfogót, a háromszög területét és a kerületét! (GYAK1_5) Befogo1: 3 Befogo2: 4 Atfogo: 5 Derekszogu haromszog kerulete: 12 Derekszogu haromszog terulete: 6 5