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; t 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 // 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