Scanf C funkció leírása. §1 Általános információk a nyelvről. A programtervezés szakaszai. Alkalmazás életciklus modellek Programozási nyelv c leírás

Ezek az oktatóanyagok mindenkinek szólnak, akár kezdő a programozásban, akár széleskörű programozási tapasztalattal rendelkezik más nyelveken! Ez az anyag azoknak szól, akik szeretnék megtanulni a C / C ++ nyelveket az alapoktól a legbonyolultabb szerkezetekig.

A C++ egy programozási nyelv, ennek a programozási nyelvnek a ismerete lehetővé teszi a számítógép legmagasabb szintű kezelését. Ideális esetben azt csinálhatja a számítógéppel, amit csak akar. Oldalunk segít a C++ programozási nyelv elsajátításában.

/IDE telepítése

Az első dolog, amit meg kell tennie, mielőtt elkezdi tanulni a C++-t, hogy megbizonyosodjon arról, hogy rendelkezik egy IDE-vel – egy integrált fejlesztői környezettel (azzal a programmal, amelyben programozni fog). Ha nincs IDE-je, akkor itt van. Amikor az IDE mellett dönt, telepítse azt, és gyakorolja az egyszerű projektek létrehozását.

Bevezetés a C++-ba

A C++ nyelv olyan parancsok halmaza, amelyek megmondják a számítógépnek, hogy mit tegyen. Ezt a parancskészletet általában forráskódnak vagy csak kódnak nevezik. A parancsok vagy „függvények” vagy „kulcsszavak”. A kulcsszavak (C/C++ fenntartott szavak) a nyelv alapvető építőkövei. A függvények összetett építőelemek, mert egyszerűbb függvények alapján írják őket, ahogy az alábbi legelső programunkban is látható. Ez a függvénystruktúra egy könyv tartalmához hasonlít. A tartalomjegyzékben megjelenhetnek a könyv fejezetei, a könyvben minden fejezetnek saját, bekezdésekből álló tartalomjegyzéke, minden bekezdésnek saját albekezdései lehetnek. Bár a C++ számos gyakori függvényt és fenntartott szót tartalmaz, amelyeket használhat, továbbra is szükség van saját függvények írására.

A program melyik részében indultál? A C++-ban minden programnak van egy függvénye, ezt nevezik fő vagy főfüggvénynek, a program végrehajtása ezzel a függvénnyel kezdődik. A főfüggvényből bármilyen más függvényt is meghívhatunk, akár mi írtuk, akár – mint korábban említettük – a fordító által biztosított.

Tehát hogyan érheti el ezeket a szabványos funkciókat? Ahhoz, hogy hozzáférjen a fordítóhoz tartozó szabványos funkciókhoz, a fejlécfájlt az előfeldolgozó direktívával - #include . Miért hatásos? Nézzünk egy példát egy működő programra:

#beleértve << "Моя первая программа на С++\n"; cin.get(); }

Nézzük meg közelebbről a program elemeit. Az #include egy "előfeldolgozó" direktíva, amely arra utasítja a fordítót, hogy a végrehajtható fájl létrehozása előtt tegye be a programunkba az iostream fejlécfájl kódját. Egy fejlécfájllal a programban számos különféle funkcióhoz férhet hozzá, amelyeket a programjában használhat. Például a cout utasításhoz egy iostream szükséges. A névteret használó sor std; utasítja a fordítót, hogy olyan függvénycsoportot használjon, amely az std standard könyvtár részét képezi. Ez a sor lehetővé teszi a program számára olyan operátorok használatát is, mint például a cout. A pontosvessző a C++ szintaxis része. Azt mondja a fordítónak, hogy ez a parancs vége. Kicsit később látni fogja, hogy a pontosvessző a legtöbb parancs lezárására szolgál a C++-ban.

A program következő fontos sora az int main() . Ez a sor közli a fordítóval, hogy van egy main nevű függvény, és a függvény egy int típusú egész számot ad vissza. A göndör kapcsos zárójelek ( és ) jelzik egy függvény kezdetét (és végét). A göndör kapcsos zárójeleket más kódblokkokban is használják, de mindig ugyanazt jelentik - a blokk elejét és végét.

A C++ nyelvben a cout objektum szöveg megjelenítésére szolgál (ejtsd: "cout"). Karaktereket használ<< , известные как «оператор сдвига», чтобы указать, что отправляется к выводу на экран. Результатом вызова функции cout << является отображение текста на экране. Последовательность \n фактически рассматривается как единый символ, который обозначает новую строку (мы поговорим об этом позже более подробно). Символ \n перемещает курсор на экране на следующую строку. Опять же, обратите внимание на точку с запятой, её добавляют в конец, после каждого оператора С++.

A következő parancs a cin.get() . Ez egy másik függvényhívás, amely adatokat olvas be a bemeneti adatfolyamból, és várja az ENTER billentyű lenyomását. Ez a parancs megakadályozza, hogy a konzolablak bezáruljon az ENTER billentyű lenyomásáig. Ez időt ad arra, hogy megnézze a program kimenetét.

A fő függvény (a záró göndör kapcsos zárójel) végére érve programunk 0 értéket ad vissza az operációs rendszerre. Ez a visszatérési érték azért fontos, mert elemzésével az operációs rendszer meg tudja ítélni, hogy programunk sikeresen befejeződött-e vagy sem. A 0 visszatérési érték sikert jelent, és automatikusan visszaküldésre kerül (de csak az int adattípus esetén, más függvények megkövetelik az érték manuális visszaadását), de ha valami mást, például 1-et akarunk visszaadni, akkor azt kézzel kell megtennünk. .

#beleértve névtér használata std; int main() ( cout<<"Моя первая программа на С++\n"; cin.get(); return 1; }

Az anyag összevonásához írja be a programkódot az IDE-be, és futtassa. Miután a program lefutott, és látta a kimenetet, kísérletezzen egy kicsit a cout utasítással. Ez segít megszokni a nyelvet.

Mindenképpen kommenteld a programjaidat!

Írjon megjegyzéseket a kódhoz, hogy ne csak saját maga, hanem mások számára is érthetőbb legyen. A fordító figyelmen kívül hagyja a megjegyzéseket a kód végrehajtásakor, ami lehetővé teszi tetszőleges számú megjegyzés felhasználását a tényleges kód leírására. Megjegyzés létrehozásához használja a // gombot, amely azt mondja a fordítónak, hogy a sor többi része megjegyzés, vagy a /* karaktert, amelyet */ követ. Amikor programozni tanul, hasznos, ha megjegyzéseket tud fűzni a kód bizonyos szakaszaihoz, hogy lássa, hogyan változik a program eredménye. A kommentelés technikájáról részletesen olvashat.

Mi a teendő az ilyen típusú változókkal?

Néha zavaró lehet a több változótípus használata, amikor úgy tűnik, hogy egyes változótípusok feleslegesek. Nagyon fontos a megfelelő változótípus használata, mivel egyes változók több memóriát igényelnek, mint mások. Ezenkívül a lebegőpontos számok memóriában való tárolásának módja miatt a lebegőpontos és a dupla adattípusok "pontatlanok", és nem használhatók, ha pontos egész értéket kell tárolni.

Változók deklarálása C++ nyelven

Változó deklarálásához használja a szintaktikai típust<имя>; . Íme néhány példa a változók deklarációira:

int szám; karakter; float num_float;

Egy sorban több azonos típusú változó deklarálható, ehhez mindegyiket vesszővel kell elválasztani.

int x, y, z, d;

Ha alaposan megnézted, láthattad, hogy a változódeklarációt mindig pontosvessző követi. A konvencióról bővebben olvashat - "a változók elnevezéséről".

Gyakori hibák a változók deklarálásakor C++ nyelven

Ha olyan változót próbál meg használni, amely nincs deklarálva, akkor a program nem fog lefordítani, és hibaüzenetet kap. A C++ nyelven minden nyelvi kulcsszó, minden függvény és minden változó megkülönbözteti a kis- és nagybetűket.

Változók használata

Tehát most már tudja, hogyan kell egy változót deklarálni. Íme egy példaprogram, amely bemutatja egy változó használatát:

#beleértve névtér használata std; int main() ( int szám; cout<< "Введите число: "; cin >>szám; cin.ignore(); cout<< "Вы ввели: "<< number <<"\n"; cin.get(); }

Vessünk egy pillantást erre a programra, és tanulmányozzuk sorról sorra a kódját. Az int kulcsszó szerint ez a szám egész szám. A cin >> funkció beolvassa az értéket számban, a felhasználónak a beírt szám után entert kell nyomnia. A cin.ignore() egy olyan függvény, amely beolvas egy karaktert, és figyelmen kívül hagyja azt. Bevitelünket rendszereztük a programba, egy szám beírása után megnyomjuk az ENTER billentyűt, azt a karaktert, amely szintén átkerül a bemeneti adatfolyamba. Nincs rá szükségünk, ezért eldobjuk. Ne feledje, hogy a változó egész típusúnak lett deklarálva, ha a felhasználó decimális számot próbál beírni, az csonkolásra kerül (azaz a szám tizedes részét figyelmen kívül hagyja). Próbáljon meg tízes számot vagy karaktersorozatot beírni a példaprogram futtatásakor, a válasz a bemeneti értéktől függ.

Vegye figyelembe, hogy a változóból történő nyomtatáskor nem használunk idézőjeleket. Az idézőjelek hiánya jelzi a fordítónak, hogy van egy változó, és ezért a programnak ellenőriznie kell a változó értékét, hogy a változó nevét lecserélje az értékére a végrehajtás során. Több műszakoperátor ugyanazon a sorban teljesen elfogadható, és a kimenet ugyanabban a sorrendben történik. Külön kell választania a karakterlánc-literálokat (idézőjeles karakterláncok) és a változókat, így mindegyiknek más-más shift operátort kell megadnia<< . Попытка поставить две переменные вместе с одним оператором сдвига << выдаст сообщение об ошибке . Не забудьте поставить точку с запятой. Если вы забыли про точку с запятой, компилятор выдаст вам сообщение об ошибке при попытке скомпилировать программу.

Értékek megváltoztatása, összehasonlítása

Természetesen függetlenül attól, hogy milyen adattípust használunk, a változók kevéssé érdekesek, hacsak nem módosítható az értékük. Az alábbiakban néhány változóval együtt használt operátor látható:

  • * szorzás,
  • - kivonás,
  • + kiegészítés,
  • / osztály,
  • = megbízás,
  • == egyenlőség,
  • > több
  • < меньше.
  • != nem egyenlő
  • >= nagyobb vagy egyenlő
  • <= меньше или равно

A matematikai függvényeket végrehajtó operátorokat a hozzárendelési jeltől jobbra kell használni, hogy az eredményt a bal oldali változóhoz rendeljük.

Íme néhány példa:

A = 4*6; // használja a sor megjegyzését és pontosvesszőjét, a értéke 24 a = a + 5; // egyenlő az eredeti érték és öt összegével a == 5 // nincs hozzárendelve öt, ellenőrizze, és egyenlő 5-tel vagy nem

Gyakran használja a ==-t konstrukciókban, például feltételes utasításokban és ciklusokban.

A< 5 // Проверка, a менее пяти? a >5 // Ellenőrizze, hogy a nagyobb-e, mint öt? a == 5 // Ellenőrizze, hogy a öt? a != 5 // Ellenőrizze, hogy a nem egyenlő-e öttel? a >= 5 // Ellenőrizze, hogy a nagyobb-e vagy egyenlő-e öttel? a<= 5 // Проверка, a меньше или равно пяти?

Ezek a példák nem mutatják túl egyértelműen az összehasonlító jelek használatát, de amikor elkezdjük tanulmányozni a kiválasztási operátorokat, megérti, miért van erre szükség.

A C++ (ejtsd: c-plus-plus) egy lefordított, statikusan tipizált, általános célú programozási nyelv, amellyel bármilyen bonyolultságú program készíthető.
Ez a nyelv több mint 20 éve az első három legnépszerűbb és legkeresettebb programozási nyelv között van. (Ez a TIOBE weboldalán ellenőrizhető).
A nyelv az 1980-as évek elején keletkezett, amikor a Bell Labs alkalmazottja, Björn Stroustrup számos fejlesztést dolgozott ki a C nyelven saját igényei szerint.

Bjarne Stroustrup - a C++ nyelv megalkotója

Stroustrup úgy döntött, hogy kiterjeszti a C nyelvet a Simula nyelven elérhető funkciókkal. A C nyelv, amely a UNIX rendszer alapnyelve, amelyen a Bell számítógépek futottak, gyors, funkciókban gazdag és hordozható. Stroustrup hozzáadta az osztályokkal és objektumokkal való munka képességét. Ennek eredményeként a gyakorlati modellezési problémák elérhetőnek bizonyultak mind a fejlesztési idő (a Simula-szerű osztályok használata miatt), mind a számítási idő (a C sebessége miatt) tekintetében.
Maga a nyelv fejlesztője így mondja:



1998-ban egy szabványügyi bizottság kiadta az első nyelvi szabványt, a C++98 néven. A C++ folyamatosan fejlődik, hogy megfeleljen a modern követelményeknek. Az egyik csoport, amely a C++ nyelvet fejleszti, és javaslatokat küld a C++ szabványosítási bizottságnak a fejlesztésére. Boost, amely többek között a nyelv képességeinek fejlesztésével foglalkozik metaprogramozási funkciók hozzáadásával. A legújabb szabvány 2017-ben jelent meg, és az ún C++17. A következő szabvány nem sokáig fog várni, és várhatóan 2020-ban jelenik meg.
A C++ nyelvhez senki nem rendelkezik jogokkal, az ingyenes. 2016 márciusában Oroszországban létrehozták a WG21 C++ munkacsoportot. A csoport a C++ szabványra vonatkozó javaslatok összegyűjtése, a bizottság elé terjesztése és a Nemzetközi Szabványügyi Szervezet közgyűlésein történő megvédése céljából jött létre.
A C++ egy többparadigmás nyelv (a paradigma szóból - számítógépes programok írási stílusa), amely különféle programozási stílusok és technológiák széles skáláját tartalmazza. Gyakran objektum-orientált nyelvnek nevezik, de szigorúan véve nem ez a helyzet. A munkafolyamat során a fejlesztő abszolút szabadságot kap az eszközök kiválasztásában, hogy az egyik vagy másik megközelítéssel megoldott probléma a lehető leghatékonyabban megoldódjon. Más szóval, a C++ nem kényszeríti a programozót arra, hogy csak egy programfejlesztési stílushoz ragaszkodjon (például objektumorientált).
A C++ gazdag szabványkönyvtárral rendelkezik, amely általános konténereket és algoritmusokat, I/O-t, reguláris kifejezéseket, többszálú támogatást és egyebeket tartalmaz. A C++ számos programozási nyelvre hatással volt, többek között: Java, C#, D. Mivel a C++ a C nyelv szintaxisán alapuló nyelvek családjába tartozik, a család többi programozási nyelve könnyen elsajátítható: JavaScript , PHP, Perl, Objective-C és még sok más. stb., beleértve magát a szülőnyelvet - C. ()
Fennállása során stabil mítoszok berögzültek a C ++ nyelvben, amelyek könnyen cáfolhatók (lásd itt: 1. rész és 2. rész)

A nyelv története és a szabványok kiadása

1983

Nyelvi alkotó - Bjorn Stroustrup, a Bell Labsnál bemutatta a C++ korai verzióját („C with Classes”)

1985

A C++ első kereskedelmi kiadása, a nyelv modern nevet kap

1986

Megjelent a Bjorn Stroustrup által írt C++ könyv, a The C++ Programming Language első kiadása

1998

A nemzetközi C++ nyelvi szabványt ratifikálták: ISO/IEC 14882:1998 "Standard for the C++ Programming Language"

2003
2005

Megjelent az 1. könyvtári technikai jelentés (TR1). Bár hivatalosan nem része a szabványnak, a jelentés ismertette a szabványos könyvtár kiterjesztéseit, amelyeket a C++ nyelv következő verziójában kell tartalmaznia.

2011

Új szabvány kiadása - C++11 vagy ISO/IEC 14882:2011; az új szabvány kiegészítéseket tartalmazott a nyelv magjához és a szabványos könyvtár kiterjesztését, beleértve a TR1 nagy részét

2014

A C++14 szabvány („ISO/IEC 14882:2014(E) C++ programozási nyelv nemzetközi szabvány”) kiadása; A C++14 a C++11 kis kiterjesztésének tekinthető, amely többnyire hibajavításokat és kisebb fejlesztéseket tartalmaz.

2017

Az új szabvány kiadása a C++1z (C++17). Ez a szabvány számos változtatást és kiegészítést hozott. Például az STD tartalmazta a C11 szabvány könyvtárait, a boost::filesystemen alapuló fájlrendszert és a kísérleti TS I könyvtár nagy részét.

2020

A C++20 a C++ programozási nyelv ISO/IEC szabványának informális neve, amely a C++17 után várható. Az N4800 szabvány tervezete.

Filozófia C++

A The Design and Evolution of C++ (2007) című művében Bjorn Stroustrup leírja azokat az elveket, amelyeket a C++ tervezésekor követett (rövidítve):

  • Szerezzen egy univerzális nyelvet statikus adattípusokkal, a C hatékonyságával és hordozhatóságával.
  • Közvetlenül és átfogóan támogatja a különféle programozási stílusokat.
  • Adja meg a programozónak a választás szabadságát, még akkor is, ha ez lehetőséget ad a helytelen választásra.
  • A lehető legnagyobb mértékben tartsa fenn a C-vel való kompatibilitást, ezáltal lehetővé téve a programozásról a C-re való egyszerű váltást.
  • Kerülje a következetlenségeket a C és a C++ között: minden olyan konstrukciónak, amely mindkét nyelven érvényes, ugyanazt kell jelentenie mindegyikben, és ugyanazt a programviselkedést kell eredményeznie.
  • Kerülje a platformfüggő vagy nem univerzális funkciókat.
  • „Ne fizessen azért, amit nem használ” – Egyetlen nyelvi funkció sem okozhat teljesítménycsökkenést azoknál a programoknál, amelyek nem használják.
  • Nem igényel túl bonyolult programozási környezetet.

C és C++

A C++ szintaxis a C nyelvtől öröklődik. Bár formálisan a C++ egyik alapelve továbbra is a C nyelvvel való kompatibilitás fenntartása, valójában ezeknek a nyelveknek a szabványosítási csoportjai nem hatnak egymásra, és a változtatások hogy nemcsak hogy nem korrelálnak, hanem gyakran ideológiailag alapvetően ellentmondanak egymásnak. Tehát azok az elemek, amelyeket az új C szabványok adnak a kernelhez, a C ++ szabvány szabványos könyvtárának elemei, és általában hiányoznak a kernelből, például dinamikus tömbök, rögzített határokkal rendelkező tömbök, párhuzamos feldolgozási lehetőségek. Stroustrup úgy véli, hogy e két nyelv fejlesztésének kombinálása nagy hasznot hozna, de politikai okokból aligha lehetséges. Így a C és a C++ gyakorlati kompatibilitása fokozatosan elveszik.
Ebben a példában a használt fordítótól függően vagy "C++" vagy "C" lesz a kimenet:

Program 9.1

#beleértve int main() ( printf("%s\n", (sizeof("a") == sizeof(char)) ? "C++" : "C"); return 0; )

Ez annak köszönhető, hogy a karakterkonstansok C-ben int típusúak, C++-ban pedig char típusúak, de ezeknek a típusoknak a mérete eltérő.

Alkalmazás életciklus modellek

Életciklus szoftver egy olyan időszak, amely attól a pillanattól kezdődik, amikor döntés születik a szoftvertermék létrehozásának szükségességéről, és a teljes működésből való kivonáskor ér véget. Ez a ciklus a szoftver (SW) felépítésének és fejlesztésének folyamata. Számos életciklus modell létezik.
Kaszkád modelléletciklust (angol vízesés modell) javasolta 1970-ben Winston Royce. Előírja a projekt minden szakaszának egymás utáni végrehajtását szigorúan rögzített sorrendben. A következő szakaszra való áttérés az előző szakaszban végzett munka teljes befejezését jelenti. A követelmények kialakításának szakaszában meghatározott követelmények szigorúan dokumentálva vannak feladatmeghatározás formájában, és a projektfejlesztés teljes időtartamára rögzítve vannak. Minden szakasz a teljes dokumentáció kiadásával ér véget, amely elegendő ahhoz, hogy a fejlesztést egy másik fejlesztőcsapat folytathassa.
A projekt szakaszai a vízesés modell szerint:

  1. Követelmények kialakítása;
  2. Tervezés;
  3. Végrehajtás;
  4. Tesztelés;
  5. végrehajtás;
  6. Üzemeltetés és karbantartás.

A vízesés modellben az egyik projektfázisból a másikba való átmenet feltételezi az előző fázis eredményének teljes helyességét. Nagy projekteknél ezt szinte lehetetlen elérni. Ezért egy ilyen modell csak egy kis projekt fejlesztésére alkalmas. (W. Royce maga nem ragaszkodott ehhez a modellhez, és iteratív modellt használt).
Iteratív modell
A vízesés modell alternatívája az iteratív és inkrementális fejlesztés (IID) modellje, amelyet T. Gilbtől kapott a 70-es években. az evolúciós modell neve. Az IID-modell a projekt életciklusát iterációk sorozatára bontja, amelyek mindegyike egy "mini-projekthez" hasonlít, beleértve az összes fejlesztési folyamatot, amelyet a projekt egészéhez képest kisebb funkciók létrehozására alkalmaznak. Minden iteráció célja a szoftverrendszer működő verziójának beszerzése, beleértve az összes korábbi és jelenlegi iteráció integrált tartalma által meghatározott funkcionalitást. A végső iteráció eredménye tartalmazza a termék összes szükséges funkcióját. Így minden iteráció befejeztével a termék növekményt - egy növekményt - kap a képességeihez, amelyek ezért evolúciósan fejlődnek.


A legtöbb modern fejlesztési módszerben az iteratív megközelítés különféle változatait alkalmazzák:

Fejlesztési folyamat – Rational Unified Process (RUP)

Rational Unified Process (RUP)(Rational Unified Process) a Rational Software (IBM) által karbantartott szoftverfejlesztési módszertan. A módszertan a fejlesztés minden szakaszához ad ajánlásokat: az üzleti modellezéstől a kész program teszteléséig és üzembe helyezéséig. Az egységes modellezési nyelvet (UML) használják modellezési nyelvként.
A teljes termékfejlesztési életciklus négy szakaszból áll, amelyek mindegyike egy vagy több iterációt tartalmaz.

  • Kezdeti szakasz (Kezdés)
  • A projekt terjedelmének és a szükséges források mértékének meghatározása. Meghatározzák a termék főbb követelményeit, korlátozásait és kulcsfontosságú funkcióit. Felmérik a kockázatokat. Akciótervezés. A kezdeti szakasz végén értékelik az életciklus célkitűzés mérföldkövének elérését, ami azt jelenti, hogy az érintettek megállapodást kötnek a projekt folytatásáról.

  • Kidolgozás
  • Követelmények dokumentációja. A végrehajtható architektúra tervezése, megvalósítása és tesztelése. A feltételek és a költségek meghatározása. A fő kockázatok csökkentése. A fejlesztési szakasz sikeres befejezése az életciklus-architektúra mérföldkövének elérését jelenti.

  • Építkezés
  • A "Build" fázisban a termék funkcionalitásának nagy része megvalósul: elkészül az alkalmazás tervezése, megírják a forráskódot. Az építési szakasz a rendszer első külső kiadásával és az Initial Operational Capability mérföldkővel zárul.

  • Megvalósítás (átmenet)
  • Az „Implementation” fázisban elkészül a termék végleges verziója, amely a fejlesztőtől a vásárlóhoz kerül. Ez magában foglalja a béta tesztelési programot, a felhasználói oktatást és a termékminőség-biztosítást. Abban az esetben, ha a minőség nem felel meg a felhasználók elvárásainak vagy a Start fázisban meghatározott kritériumoknak, a Megvalósítási szakasz ismétlődik. Az összes cél elérése a késztermék (Product Release) mérföldkövének elérését és a teljes fejlesztési ciklus befejezését jelenti.



"Információs technológia. Rendszer- és szoftverfejlesztés. Szoftver életciklus folyamatai". Ezt a szabványt az Orosz Föderáció Szövetségi Műszaki Szabályozási és Metrológiai Ügynöksége fogadta el, és hasonló az ISO/IEC 12207:2008 nemzetközi szabványhoz. Ez a szabvány általános keretet hoz létre a szoftver életciklus-folyamataihoz, amely iránymutatásként használható a szoftveriparban. A szabvány nem javasol konkrét életciklus-modellt. Előírásai közösek minden életciklus-modellre, szoftverkészítési módszerre és technológiára. Leírja az életciklus-folyamatok szerkezetét anélkül, hogy meghatározná, hogyan kell végrehajtani vagy végrehajtani az ezekben a folyamatokban foglalt tevékenységeket és feladatokat.

Előadás a leckéhez
Üzenettéma
  • Free Software Foundation (FSF)
  • Ingyenes szoftverlicencek
  • Ingyenes szoftver és nyílt forráskód
  • A programozási nyelvek fejlődésének története
  • A C. C és a C++ története
  • Sztori
  • A C++ kritikája
  • A UNIX története
  • Spirális szoftver életciklus modell
  • UML (English Unified Modeling Language – egységes modellezési nyelv)
  • Microsoft Solutions Framework
  • IDE a C/C++ programozáshoz Windows rendszeren
  • C/C++ fordítók
  • Konzolalkalmazás létrehozása Windows rendszeren
Kérdések
  1. Miért nem használják a waterfall szoftverfejlesztési modellt nagy projektekben?
  2. Mi a különbség a vízesés és az iteratív fejlesztési modellek között?
  3. Sorolja fel a szoftverfejlesztés szakaszait a Rational Unified Process (RUP) módszertanban

C++ programozási nyelv

Utolsó frissítés: 2017.08.28

A C++ programozási nyelv egy általános célú, statikusan tipizált, magas szintű, lefordított programozási nyelv, amely sokféle alkalmazás felépítésére alkalmas. A C++ napjaink egyik legnépszerűbb és legelterjedtebb nyelve.

Gyökerei a C nyelvben rejlenek, amelyet 1969-1973 között fejlesztett ki a Bell Labs-ban Dennis Ritchie programozó. Az 1980-as évek elején a dán programozó, Bjarne Stroustrup, akkor a Bell Labsnál kifejlesztette a C++-t a C nyelv kiterjesztéseként. Valójában a C++ kezdetben egyszerűen kiegészítette a C nyelvet az objektumorientált programozás néhány jellemzőjével. Így Stroustrup először "C osztályokkal" ("C with classes") nevezte.

Ezt követően az új nyelv népszerűvé vált. Új funkciókkal bővült, amelyek nemcsak a C kiegészítőjeként, hanem egy teljesen új programozási nyelvvé tették. Ennek eredményeként a "C osztályokkal" átnevezték C++-ra. És azóta mindkét nyelv egymástól függetlenül kezdett fejlődni.

A C++ egy erőteljes nyelv, amely gazdag memóriaképességeket örökölt a C-től. Ezért a C++ gyakran alkalmazza a rendszerprogramozásban, különösen operációs rendszerek, illesztőprogramok, különféle segédprogramok, víruskeresők stb. létrehozásakor. A Windows egyébként többnyire C++ nyelven íródott. De ennek a nyelvnek a használata nem korlátozódik a rendszerprogramozásra. A C++ bármilyen szintű programban használható, ahol fontos a sebesség és a teljesítmény. Gyakran használják grafikus alkalmazások, különféle alkalmazási programok létrehozására. Különösen gyakran használják gazdag látványvilágú játékok létrehozására. Ráadásul az utóbbi időben egyre nagyobb lendületet vesz a mobil irány, ahol a C ++ is megtalálta a maga alkalmazását. És még a webfejlesztésben is a C++ segítségével lehet webalkalmazásokat vagy valamilyen webalkalmazásokat kiszolgáló segédszolgáltatásokat létrehozni. Általánosságban elmondható, hogy a C++ egy széles körben használt nyelv, amelyen szinte bármilyen program írható.

A C++ egy lefordított nyelv, ami azt jelenti, hogy a fordító lefordítja a C++ forráskódot egy végrehajtható fájllá, amely gépi utasításokat tartalmaz. De a különböző platformoknak megvannak a sajátosságai, így a lefordított programokat nem lehet egyszerűen átvinni egyik platformról a másikra, és ott futni. Forráskód szintjén azonban a C++ programok többnyire hordozhatóak, hacsak nem használnak bizonyos operációs rendszer-specifikus funkciókat. A fordítók, könyvtárak és fejlesztőeszközök szinte minden elterjedt platformhoz elérhetősége pedig lehetővé teszi, hogy ugyanazt a C++ forráskódot lefordítsák ezekre a platformokra vonatkozó alkalmazásokba.

A C-vel ellentétben a C++ nyelv lehetővé teszi az alkalmazások objektumorientált stílusban történő írását, amely a programot egymással kölcsönhatásban lévő osztályok és objektumok gyűjteményeként ábrázolja. Ez leegyszerűsíti a nagyméretű alkalmazások létrehozását.

A fejlődés mérföldkövei

1979-80-ban Bjarne Stroustrup kifejlesztette a C nyelv kiterjesztését - "C osztályokkal". 1983-ban a nyelvet átnevezték C++-ra.

1985-ben megjelent a C++ nyelv első kereskedelmi verziója, valamint a "The C++ Programming Language" című könyv első kiadása, amely hivatalos szabvány hiányában ennek a nyelvnek az első leírását jelentette.

1989-ben megjelent a C++ 2.0 nyelv új verziója, amely számos újdonságot tartalmazott. Ezt követően a nyelv viszonylag lassan fejlődött egészen 2011-ig. Ugyanakkor 1998-ban az ISO (Nemzetközi Szabványügyi Szervezet) tette először kísérletet a nyelv szabványosítására. Az első szabványt ISO/IEC 14882:1998-nak vagy röviden C++98-nak hívták. Később, 2003-ban megjelent a C++03 szabvány új verziója.

2011-ben megjelent az új C++11 szabvány, amely számos kiegészítést tartalmazott, és számos újdonsággal gazdagította a C++ nyelvet. Ezt követte 2014-ben egy kisebb kiegészítés a szabványhoz, más néven C++14. A nyelv újabb kulcsfontosságú kiadását pedig 2017-re tervezik.

Fordítók és fejlesztői környezetek

A C++ nyelvű programok fejlesztéséhez fordítóprogramra van szükség – ez lefordítja a C++ forráskódját futtatható fájllá, amit aztán futtatni lehet. De jelenleg nagyon sok különböző fordító létezik. Különböző szempontok szerint eltérhetnek, különösen a szabványok végrehajtásában. A C++ fordítóprogramok alapvető listája megtalálható a wikipédián. Javasoljuk a fejlesztéshez azokat a fordítókat választani, amelyek a legújabb szabványokat fejlesztik és implementálják. Például ebben az oktatóanyagban túlnyomórészt a GNU projekt által kifejlesztett, szabadon elérhető g++ fordító lesz használatos.

Programok létrehozásához olyan IDE-ket is használhat, mint a Visual Studio, Netbeans, Eclipse, Qt stb.

1. Bemutatkozás

A programozáshoz új univerzális algoritmikus modellekre van szükség, és a hardver nemcsak más formában valósítja meg az algoritmusokat, hanem egy másik algoritmus modell - az automata - alapján is. A hardverfejlesztésből származó technológia kölcsönzése az automatikus programozás alapötlete. A digitális eszközök szintézise azonban eltér a programozástól. Ám a modellt kölcsönvéve egyrészt nem kívánatos lényegesen megváltoztatni, másrészt pedig lehetetlen figyelmen kívül hagyni a már meglévő programozási elméletet és gyakorlatot.

Ezután a SWITCH technológiát vesszük figyelembe az automatikus programok tervezéséhez, amelyekben mindig hasonló folyamatokkal találkozik. Egyrészt úgy változtatta meg a véges automata modellt, hogy tulajdonképpen kivette az automataelmélet keretei közül. Másrészt olyan fogalmakat is bevezet a programozásba, amelyeket a programozók alig észlelnek, és néha egyszerűen feleslegesek, mert a programelméletből és a programozás gyakorlatából ismertebb analógok vannak.

Az automatikus programozás problémáinak tárgyalásának alapjául Shalyto A.A. közelmúltbeli előadását vesszük alapul. és "szoftver" dolgozatai az automata programozási paradigma meghatározásához.



A témát folytatva:
ablakok

Natalya Komarova , 2009. 05. 28. (2018. 03. 25.) Amikor egy fórumot vagy blogot olvasol, a bejegyzések szerzőire becenévvel és ... a felhasználó képével, az úgynevezett avatárral... emlékszel.