07. előadás

/ * a függvény * / / * funkciójától visszaadott adatok típusa * / (/ * függvényparaméterek * /);

// palindrom_func.cpp: megadja a konzolalkalmazás belépési pontját.

std;

bool palindrom5 (int); // az ötjegyű számok palindromja megtalálásának funkciójának prototípusa

int fő (int argc, char * argv [])

cout <<"Enter 5zn-e chislo: "; // введите пятизначное число

int in_number, out_number; // változók a beírt ötjegyű szám tárolásához

cin >> in_number;

out_number = in_number; // az out_number változóban a megadott számot mentjük

ha (palindrom5 (in_number)) // ha a függvény igaz, akkor a feltétel igaz, különben a függvény false - false

cout <<"Number " <

cout<<"This is not palendrom"<

bool palindrom5 (int number) // az ötjegyű számok palindromájának megkeresése

int mérleg1, balance2, balance4, balance5; // változók közbenső eredmények tárolására

balance1 =% 10 szám; // változóegyenleg1 az ötjegyű szám első számjegyét rendelte

szám = szám / 10; // csökkentse a megadott számot egy számjegyből

balance2 = szám% 10; // a 2. változót a második számjegyhez rendelte

szám = szám / 100; // csökkentse a beírt számot két számjegyből

balance4 = szám% 10; // a 4. változót negyedik számjegyhez rendelte

szám = szám / 10; // csökkentse a megadott számot egy számjegyből

balance5 =% 10 szám; // az 5. változót az ötödik bit hozzárendelte

ha ((balance1 == balance5) (balance2 == balance4))

returntrue; // függvény a true értéket adja vissza

returnfalse; // függvény egy hamis értéket ad vissza

létrehoz egy olyan típusú fájlt *. cpp, amelyben a függvényeket deklarálják;

* .cpp és * .h típusú fájlok létrehozása.

// fájlkód palendrom.h

bool palindrom5 (int); // az ötjegyű számok palindromja megtalálásának funkciójának prototípusa

// a palendrom.cpp fájl tartalma

bool palindrom5 (int number) // az ötjegyű számok palindromájának megkeresése

int mérleg1, balance2, balance4, balance5; // változók közbenső eredmények tárolására

balance1 =% 10 szám; // változóegyenleg1 rendelte az első egyenleget

szám = szám / 10; // csökkentse a megadott számot egy számjegyből

balance2 = szám% 10; // a balance2 változót a második maradékhoz rendeltük

szám = szám / 100; // csökkentse a beírt számot két számjegyből

balance4 = szám% 10; // a 4. változó negyedik egyenlege van

szám = szám / 10; // csökkentse a megadott számot egy számjegyből

balance5 =% 10 szám; // a változó egyenleg5 az ötödik maradékot jelöli

ha ((balance1 == balance5) (balance2 == balance4))

returntrue; // függvény a true értéket adja vissza

returnfalse; // függvény egy hamis értéket ad vissza

Küldje el a funkciómutatót - a módosított verziót.

névtér std;

Hívófunkciók tömbökkel

névtér std;

üres kijelzés (int num [10]);

(i = 0;<10; ++i) t[i]=i;

kijelző (t); // Pass függvényt a t tömbhöz

// A függvény a tömb minden elemét kiadja.

üres kijelzés (int num [10])

(i = 0;<10; i++) cout <

Annak ellenére, hogy a num paramétert itt 10 elemből álló egész számsorként deklarálják, a C ++ - a fordító automatikusan egy egész értékre mutató mutatóvá alakítja. Az átalakulás szükségességét magyarázza az a tény, hogy egyetlen paraméter sem képes elfogadni a teljes tömböt. És mivel csak a tömbre mutató mutató kerül átadásra, akkor a függvénynek olyan paraméterrel kell rendelkeznie, amely elfogadhatja ezt a mutatót.

üres kijelzés (int num [])

(i = 0;<10; i++) cout <

Itt a num paramétert ismeretlen méretű egész számsorként deklaráljuk.

üres kijelzés (int * num)

(i = 0;<10; i++) cout <

Az argumentumként használt tömb egyetlen elemét azonban rendszeres változóként kezelik. Például a fenti programot át lehet írni egy egész tömb használata nélkül:

névtér std;

üres kijelzés (int num);

(i = 0;<10; ++i) t[i]=i;

(i = 0;<10; i++) display(t[i]);

Így néz ki a program eredményei.

A HELLO vonal hossza: 11

Gyakorlatként próbálj meg más sztringfunkciókat végrehajtani, például strcpy () vagy strcat (). Ez a teszt megmutatja, mennyire jól ismeri a C ++ nyelv ilyen elemeit, mint tömböket, karakterláncokat és mutatókat.

A fő () függvény argumentuma: argc és argv

A parancssori argumentum a programnév után a parancssorban megadott információ.

Néha szükségessé válik az információ átadása a programnak, amikor fut. Ezt általában a fő () függvényhez tartozó parancssori argumentumok átadásával valósítják meg. A parancssori argumentum a parancsnévben (parancssorban) megadott információ, amelyet az operációs rendszer a programnév után hajt végre. Például a C ++ programok összeállíthatók a következő parancs végrehajtásával:

Itt a prog_name elem a program neve, amelyet össze akarunk fordítani. A program nevét a parancssori argumentumként adja át a C ++ fordítónak.

A C ++-ban a main () függvény két beépített, de opcionális argumentumot tartalmaz, argc és argv. amelyek értéküket a parancssori érvekből kapják. Egy adott működési környezetben más érvek is támogathatók (ezeket az információkat a fordító kísérő dokumentációjában kell megadni). Tekintsük az argc és argv paramétereket részletesebben.

Választhat bármelyik azonosítót a parancssori nevekhez, de az argc és argv neveket többéves megállapodás alapján használják, ezért érdemes nem használnunk más azonosítókat, hogy minden olyan programozó, aki megértse a programot, gyorsan azonosíthatja őket parancssori paraméterekként.

Az argc paraméter egész számmal rendelkezik, és a parancssori argumentumok számának tárolására szolgál. Az értéke mindig legalább egy, mert a program neve is egyike az érveknek. Az argv paraméter egy mutató a karaktermutatók számára. Az argv tömb minden egyes mutatója olyan parancssort tartalmaz, amely parancssori argumentumot tartalmaz. Az argv [0] elem a program nevére mutat; az argv [1] elem az első argumentum, az argv [2] elem a második, és így tovább. Minden parancssori argumentum karakterláncként átadódik a programnak, ezért a numerikus argumentumokat a megfelelő belsõ formátumban kell átalakítani a programba.

Fontos az argv paraméter helyes kijelentése. Általában ez így történik.

Az egyedi parancssori érvekhez való hozzáférés az argv tömb indexelésével érhető el. Ezt a következő program mutatja be. Amikor végrehajtják, megjelenik egy üdvözlő ("Hello") üzenet, amelyet a neved követ, amely a parancssor első argumentuma.

névtér std;

int fő (int argc, char * argv [])

cout <<"Вы забыли ввести свое имя.\n";

cout <<"Привет, " <

Tegyük fel, hogy a neve Tom, és ezt a programnevet hívta. Ezután, ha futtatja ezt a programot, írja be a nevet. a munkájának eredménye így néz ki: Helló, Tom. Például dolgozik az A lemezzel, és a parancssorra adott válaszként meg kell adnia a fenti parancsot, és a következő eredményre lesz szüksége.

A parancssori argumentumok egy karakterének eléréséhez add hozzá a második indexet az argv tömb elérésekor. Például, a következő program minden olyan argumentumot jelenít meg, amellyel karaktert neveztek.

/ * Ez a program szimbolikusan megjeleníti az összes parancssori argumentumot, amellyel hívták.

névtér std;

int fő (int argc, char * argv [])

mert (t = 0; tcout <

Nem nehéz kitalálni, hogy az array argumentum első indexe lehetővé teszi a megfelelő parancssori argumentum elérését, a második pedig a string argumentum egy adott karakteréhez.

Az argc és az argv tipikusan a kezdeti paraméterek, forrásértékek, fájlnevek vagy programbeállítások (módok) beírására szolgálnak a programban. A C ++-ban megadhat olyan számú parancssori argumentumot, amilyet az operációs rendszer lehetővé tesz. A parancssori argumentumok segítségével a program professzionális megjelenést tesz lehetővé, és parancsfájlban (egy vagy több parancsot tartalmazó futtatható szövegfájlban) használható.

Numerikus parancssori érvek átadása

Amint a fentiekben említettük, amikor numerikus adatokat továbbítunk a programnak parancssori argumentumként, ezeket az adatokat string formában fogadjuk. A programot úgy kell megtervezni, hogy a C ++ által támogatott szabványos könyvtári funkciók segítségével a megfelelő belső formátumra konvertálja őket. Például a következő program két szám összegét jeleníti meg, amelyeket a programnév után a parancssorban ad meg. A parancssori argumentumok belső ábrázolásra történő konvertálásához itt a standard () függvénytár-függvényt használjuk. Számokat alakít át egy karakterláncformátumról kettős értékre.

/ * Ez a program két numerikus parancssori argumentum összegét jeleníti meg.

névtér használata std

int fő (int argc, char * argv [])

cout <<"Использование: add число число\n";

Két szám hozzáadásához használja az ilyen típusú parancssort (feltételezve, hogy a programnak a neve hozzá van adva).

C> 100,2 231-et

Numerikus karakterláncok számokra konvertálása

A szabványos C ++ könyvtár számos olyan funkciót tartalmaz, amelyek lehetővé teszik, hogy egy szám egy sztring ábrázolását a belső formátumra konvertálja. Ehhez használjon olyan funkciókat, mint az atoi (). atol () és atof (). A karakterláncot egész típusú értékként (int típusú), hosszú (hosszú típusú) és egy lebegőpontos értéket (dupla típus) konvertálják. Használja ezeket a funkciókat (beleértve azokat is, a fejlécfájlt kell beillesztenie a programba ) a következő programban mutatjuk be.

// Ismertesse az atoi (), atol () és atof () függvények használatát.

névtér std;

cout <

A program eredményei a következők.

100 100000 -0,123

A karakterlánc-átalakítás funkciói nem csak akkor hasznosak, ha a numerikus adatokat a parancssorban argumentumokkal, hanem számos más helyzetben is átmásolják.

Eddig (a 2. fejezetből kiindulva) a részletes magyarázat nélkül használjuk a visszatérési nyilatkozatot. Emlékezzünk vissza, hogy a visszatérési nyilatkozat két fontos műveletet hajt végre. Először is, az azonnali visszatérést biztosít a funkcióhívás kezdeményezőjének. Másodszor, felhasználható a függvény által visszaadott érték átvitelére. Ez a két művelet erre a szakaszra vonatkozik.

Kapcsolódó cikkek