{"id":1754,"date":"2016-09-14T13:56:40","date_gmt":"2016-09-14T11:56:40","guid":{"rendered":"http:\/\/www.webotlet.hu\/?p=1754"},"modified":"2017-01-23T08:05:35","modified_gmt":"2017-01-23T07:05:35","slug":"c-programozas-4-kiiratas-alapjai","status":"publish","type":"post","link":"https:\/\/www.webotlet.hu\/?p=1754","title":{"rendered":"C++ programoz\u00e1s 4. \u2013 Ki\u00edrat\u00e1s alapjai"},"content":{"rendered":"<h1>Ki\u00edrat\u00e1s, avagy l\u00e1ssunk m\u00e1r valamit<\/h1>\n<p>A programoz\u00e1s sor\u00e1n sokszor az a feladat, hogy valamilyen eredm\u00e9nyt, vagy \u00e9pp v\u00e1ltoz\u00f3k tartalm\u00e1t \u00edrjuk ki a k\u00e9perny\u0151re. A ki\u00edrat\u00e1s egyszer\u0171 kommunik\u00e1ci\u00f3 a program \u00e9s a felhaszn\u00e1l\u00f3 k\u00f6z\u00f6tt. Ennek haszn\u00e1lata egyszer\u0171, de vannak fontos szab\u00e1lyok, melyeket be kell tartani.<\/p>\n<h4>cout<\/h4>\n<p>Kezdetben ezt az utas\u00edt\u00e1st fogjuk ki\u00edrat\u00e1sra haszn\u00e1lni, az alapvet\u0151 ig\u00e9nyeinket teljesen ki fogj\u00e1k szolg\u00e1lni. A cout val\u00f3j\u00e1ban nem egy utas\u00edt\u00e1s, b\u00e1r m\u0171k\u00f6d\u00e9s\u00e9t tekintve ak\u00e1r annak is nevezhetn\u00e9nk. Val\u00f3j\u00e1ban ez egy olyan objektum, amely a kimeneti tev\u00e9kenys\u00e9gek\u00e9rt felel, \u00e9s m\u0171k\u00f6d\u00e9se sor\u00e1n egy oper\u00e1tort, a bit eltol\u00e1s oper\u00e1tor\u00e1t (&lt;&lt;) fel\u00fcl\u00edrva val\u00f3s\u00edtja meg a k\u00e9perny\u0151re, konzolba t\u00f6rt\u00e9n\u0151 ki\u00edrat\u00e1st. Itt a &lt;&lt; kimeneti oper\u00e1tork\u00e9nt \u00e9rtelmezend\u0151.<\/p>\n<p>A C++ nyelvben a sz\u00f6vegeket id\u00e9z\u0151jelek &#8220;&#8221; k\u00f6z\u00e9 tessz\u00fck. Nem macskak\u00f6r\u00f6m, ahogy t\u00f6bbsz\u00f6r is hallottam. Na m\u00e9g egyszer: <strong>id\u00e9z\u0151jel<\/strong>. Amit ilyen jelek k\u00f6z\u00e9 \u00edrunk, azt a rendszer sz\u00f6vegnek tekinti. A ki\u00edrat\u00e1s sor\u00e1n a cout-nak ilyen sz\u00f6vegeket szoktunk megadni, de ezekhez sokszor hozz\u00e1 is f\u0171z\u00fcnk valamit. L\u00e1ssunk akkor erre p\u00e9ld\u00e1kat:<\/p>\n<pre class=\"brush: cpp; gutter: true; highlight: [5,6]; title: ; notranslate\" title=\"\">\r\nint szam1 = 10;\r\nint szam2 = 20;\r\nint osszeg;\r\nosszeg = szam1 + szam2;\r\ncout &lt;&lt; &quot;A szamok osszege:&quot; &lt;&lt; endl;\r\ncout &lt;&lt; osszeg &lt;&lt; endl;\r\n<\/pre>\n<p>A k\u00e9t kiemelt sorban l\u00e1thatod azt, hogy a cout-nak odaadhatsz egy sz\u00f6veget is, valamint egy v\u00e1ltoz\u00f3t is. A v\u00e1ltoz\u00f3t a ki\u00edrat\u00e1s sor\u00e1n \u00e1talak\u00edtja sz\u00f6vegg\u00e9, \u00edgy a megjelen\u00edt\u00e9s nem lesz gond. A k\u00e9t sort azonban \u00f6ssze is vonhatod:<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\ncout &lt;&lt; &quot;A szamok osszege: &quot; &lt;&lt; osszeg &lt;&lt; endl;\r\n<\/pre>\n<p>Fontos momentum, hogy minden egyes poz\u00edci\u00f3ba, ahol valamit hozz\u00e1 akarsz f\u0171zni az el\u0151tte l\u00e9v\u0151 dologhoz, k\u00fcl\u00f6n &lt;&lt; jelet kell haszn\u00e1lnod. Ebben az esetben az t\u00f6rt\u00e9nik, hogy az \u00f6sszeg v\u00e1ltoz\u00f3 tartalm\u00e1t, ami egy eg\u00e9sz sz\u00e1m, hozz\u00e1f\u0171zi a sz\u00f6veghez, a v\u00e9g\u00e9re illeszt egy sordob\u00e1s karaktert \u00e9s az eg\u00e9szet a standard kimenetre, konzolos alkalmaz\u00e1s eset\u00e9n a konzol kimeneti ablak\u00e1ban jelen\u00edti meg. Az endl, amelyet rendszerint a sorok v\u00e9gein l\u00e1thatsz egy \u00faj sort fog kezdeni a ki\u00edrat\u00e1skor ann\u00e1l a poz\u00edci\u00f3n\u00e1l, ahol az a ki\u00edrat\u00e1sn\u00e1l szerepel.<\/p>\n<p>Fontos, hogy az \u00e1talak\u00edt\u00e1s csak a ki\u00edrat\u00e1sra korl\u00e1toz\u00f3dik, az \u00f6sszeg v\u00e1ltoz\u00f3 tov\u00e1bbra is azt az eg\u00e9sz sz\u00e1mot tartalmazza, amivel tov\u00e1bbra is v\u00e9gezhetsz sz\u00e1m\u00edt\u00e1sokat.<\/p>\n<p>Az \u00f6sszef\u0171z\u00e9s tekintet\u00e9ben teljesen mindegy, hogy mi az \u00f6sszef\u0171z\u00e9s sorrendje, maximum a ki\u00edrat\u00e1snak nem lesz \u00e9rtelme:<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\ncout &lt;&lt; osszeg &lt;&lt; &quot; a szamok osszege.&quot; &lt;&lt; endl;\r\n<\/pre>\n<p>Egy fontos probl\u00e9m\u00e1ra felh\u00edvn\u00e1m a figyelmet, ami sokszor gondot jelent. T\u00f6m\u00f6r\u00edts\u00fck m\u00e9g a programunkat, ne sz\u00e1m\u00edtsuk ki k\u00fcl\u00f6n v\u00e1ltoz\u00f3ba az \u00f6sszeget, hanem mag\u00e1ba a ki\u00edrat\u00e1sba tegy\u00fck bele:<\/p>\n<pre class=\"brush: cpp; gutter: true; highlight: [3]; title: ; notranslate\" title=\"\">\r\nint szam1 = 10;\r\nint szam2 = 20;\r\ncout &lt;&lt; &quot;A szamok osszege: &quot; &lt;&lt; szam1 + szam2 &lt;&lt; endl;\r\n<\/pre>\n<p>N\u00e9zz\u00fck meg a k\u00f6vetkez\u0151 programot: adott egy eg\u00e9sz sz\u00e1m, \u00edrjuk ki a k\u00e9tszeres\u00e9t.<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\nint szam = 7;\r\ncout &lt;&lt; &quot;A szam ketszerese: &quot; &lt;&lt; szam*2 &lt;&lt; endl; \/\/ 14\r\n<\/pre>\n<p>A ki\u00edrat\u00e1s sor\u00e1n a sz\u00f6vegben haszn\u00e1lhatunk olyan speci\u00e1lis vez\u00e9rl\u0151 karaktereket, melyek valamilyen plusz funkci\u00f3t adnak hozz\u00e1 a ki\u00edrat\u00e1shoz. Ezekb\u0151l keveset haszn\u00e1lunk t\u00e9nylegesen, de az\u00e9rt felsorolom azokat is, amelyek haszn\u00e1lhat\u00f3k, csak gyakorlati haszna m\u00e1r nincs. Fontos, hogy ezeket a vez\u00e9rl\u0151 karaktereket minden esetben \\ jellel (backslash) vezetj\u00fck be, ami a m\u00f6g\u00f6tte elhelyezked\u0151 karakternek m\u00e1s jelent\u00e9st ad.<\/p>\n<ul>\n<li>\\n &#8211; sordob\u00e1s (\u00faj sort kezd enn\u00e9l a pontn\u00e1l)<\/li>\n<li>\\t &#8211; tabul\u00e1tor (alap\u00e9rt\u00e9k \u00e1ltal meghat\u00e1rozott mez\u0151nyit ugrik)<\/li>\n<li>\\b &#8211; backspace (balra egy karakter visszat\u00f6rl\u00e9s)<\/li>\n<li>\\r &#8211; vissza\u00e1ll a kurzor a sor elej\u00e9re, b\u00e1rmit \u00edrunk ezut\u00e1n, a sorban l\u00e9v\u0151 sz\u00f6veget t\u00f6rli<\/li>\n<li>\\a &#8211; n\u00e9h\u00e1ny termin\u00e1lon esetleg megsz\u00f3laltatja a g\u00e9p speaker-j\u00e9t<\/li>\n<li>\\\\ &#8211; maga a \\ karakter<\/li>\n<li>\\&#8221; &#8211; id\u00e9z\u0151jel<\/li>\n<\/ul>\n<p>L\u00e1ssunk erre \u00f6mlesztett p\u00e9ld\u00e1kat, minden k\u00fcl\u00f6n\u00f6sebb magyar\u00e1zat n\u00e9lk\u00fcl:<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\ncout &lt;&lt; &quot;foo\\bbar&quot; &lt;&lt; endl;\r\ncout &lt;&lt; &quot;foo\\rbar&quot; &lt;&lt; endl;\r\ncout &lt;&lt; &quot;foo\\nbar&quot; &lt;&lt; endl;\r\ncout &lt;&lt; &quot;Gyakran hasznalt vezerlo karakterek:\\n\\\\n \\\\\\\\ \\\\\\&quot;&quot; &lt;&lt; endl;\r\ncout &lt;&lt; &quot;Elso szam:\\t&quot; &lt;&lt; 10 &lt;&lt; endl;\r\ncout &lt;&lt; &quot;Masodik szam:\\t&quot; &lt;&lt; 20 &lt;&lt; endl;\r\ncout &lt;&lt; &quot;Harmadik szam:\\t&quot; &lt;&lt; 30 &lt;&lt; endl;\r\n<\/pre>\n<p>A ki\u00edrat\u00e1sba ak\u00e1r komplexebb dolgok is beleker\u00fclhetnek, erre most csak egy p\u00e9ld\u00e1t \u00edrn\u00e9k, a k\u00e9s\u0151bbi tananyagokban \u00fagyis lesz t\u00f6bb p\u00e9lda is ezekre, melyeket ez alapj\u00e1n meg fogsz \u00e9rteni. Adott k\u00e9t sz\u00e1m, \u00edrd ki a kisebb sz\u00e1m k\u00e9tszeres\u00e9t:<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nint a = 15;\r\nint b = 20;\r\ncout &lt;&lt; &quot;A kisebb ketszerese: &quot; &lt;&lt; min(a,b)*2 &lt;&lt; endl;\r\n<\/pre>\n<h4>K\u00f6vetkez\u0151 lecke: <a href=\"http:\/\/www.webotlet.hu\/?p=1735\">Oper\u00e1torok<\/a><\/h4>\n","protected":false},"excerpt":{"rendered":"<p>Ki\u00edrat\u00e1s, avagy l\u00e1ssunk m\u00e1r valamit A programoz\u00e1s sor\u00e1n sokszor az a feladat, hogy valamilyen eredm\u00e9nyt, vagy \u00e9pp v\u00e1ltoz\u00f3k tartalm\u00e1t \u00edrjuk ki a k\u00e9perny\u0151re. A ki\u00edrat\u00e1s egyszer\u0171 kommunik\u00e1ci\u00f3 a program \u00e9s a felhaszn\u00e1l\u00f3 k\u00f6z\u00f6tt. Ennek haszn\u00e1lata egyszer\u0171, de vannak fontos szab\u00e1lyok, <a class=\"more-link\" href=\"https:\/\/www.webotlet.hu\/?p=1754\">Tov\u00e1bb <span class=\"screen-reader-text\">  C++ programoz\u00e1s 4. \u2013 Ki\u00edrat\u00e1s alapjai<\/span><span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[151],"tags":[158,159,178,177,176,110,143],"class_list":["post-1754","post","type-post","status-publish","format-standard","hentry","category-cplusplus-alap-leckek","tag-c","tag-c-programozas","tag-cout","tag-kepernyore-iras","tag-kiir","tag-kiiratas","tag-programozas"],"_links":{"self":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/1754","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1754"}],"version-history":[{"count":9,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/1754\/revisions"}],"predecessor-version":[{"id":2028,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/1754\/revisions\/2028"}],"wp:attachment":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1754"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1754"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1754"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}