C++ Toiminnot ohjelmaesimerkeillä

⚡ Älykäs yhteenveto

Toiminnot C++ ryhmittelee toisiinsa liittyviä lauseita uudelleenkäytettäviksi nimetyiksi lohkoiksi, jotka ottavat syötteen vastaan, käsittelevät sen ja palauttavat tulosteen. Ohjelmat yhdistävät sisäänrakennettuja kirjastofunktioita ja käyttäjän määrittämiä funktioita, joista jokainen on esitelty, määritelty ja kutsuttu, jotta vältetään koodin toistaminen.

  • 🧩 Mitä se on: Funktio ryhmittelee lauseita, jotka ottavat parametreja, käsittelevät niitä ja palauttavat arvon, suorittaen yhteisen tehtävän yhdestä lohkosta.
  • 📚 Sisäänrakennetut toiminnot: C++ Vakiokirjastossa on valmiita funktioita, kuten sqrt(), joita kutsutaan suoraan kirjoittamatta niitä.
  • 🛠️ Käyttäjän määrittämät funktiot: Ohjelmoijat luovat omia funktioitaan, nimeävät ne yksilöllisesti ja kutsuvat koodia mistä tahansa ohjelman kohdassa.
  • 📝 Ilmoitus ja määritelmä: Prototyyppi määrittelee paluuarvon tyypin, nimen ja argumenttityypit; määritelmä tarjoaa funktion rungon.
  • 📞 Kutsu ja argumentit: Funktion kutsuminen suorittaa sen rungon; argumenttien on vastattava parametreja lukumäärän ja tyypin suhteen, ja oletusarvot ovat sallittuja.
  • 🤖 AI-apu: GitHub Copilot ja vastaavat avustajat tukevat C++ funktioiden allekirjoitukset, rungot ja kutsut lyhyestä kommentista.

C++ Tehtävät

Mikä on toiminto C++?

Toiminto sisään C++ viittaa lauseryhmään, joka ottaa syötteen, käsittelee sen ja palauttaa tulosteen. Toiminnon ideana on yhdistää yleisiä tehtäviä, joita tehdään toistuvasti. Jos käytät eri syötteitä, et kirjoita samaa koodia uudelleen. Kutsut funktiota yksinkertaisesti eri datajoukolla, jota kutsutaan parametreiksi.

kukin C++ Ohjelmassa on ainakin yksi funktio, main()-funktio. Voit jakaa koodisi eri toimintoihin. Tämän jaon tulisi olla sellainen, että jokainen toiminto suorittaa tietyn tehtävän.

Siinä on monia sisäänrakennettuja toimintoja C++ tavallinen kirjasto. Voit kutsua näitä toimintoja ohjelmassasi.

Miksi käyttää toimintoja?

Toimintojen käyttöön liittyy lukuisia etuja. Nämä sisältävät:

  • Jokainen funktio kokoaa vastaavan koodin yhteen. Tämä helpottaa ohjelmoijien ymmärtämään koodia.
  • Toiminnot helpottavat ohjelmointia poistamalla koodin toiston.
  • Toiminnot helpottavat koodin uudelleenkäyttöä. Voit kutsua samaa toimintoa suorittaaksesi tehtävän ohjelman eri osissa tai jopa ohjelman ulkopuolella.

Sisäänrakennetut toiminnot

In C++, kirjastofunktiot ovat sisäänrakennettuja C++ toimintoja. Voit käyttää näitä toimintoja yksinkertaisesti kutsumalla niitä suoraan. Sinun ei tarvitse kirjoittaa funktioita itse.

Esimerkki 1:

#include <iostream>
#include <cmath>
using namespace std;
int main() {
	double num, squareRoot;
	cout << "Enter number: ";
	cin >> num;
	squareRoot = sqrt(num);
	cout << "The square root of " << num << " is: " << squareRoot;
	return 0;
}

lähtö:

Tuotos C++ esimerkki sisäänrakennetusta sqrt()-funktiosta

Tässä on kuvakaappaus koodista:

C++ koodi, joka kutsuu cmath:n sisäänrakennettua sqrt()-funktiota

Code Selitys:

  1. Sisällytä iostream-otsikkotiedosto ohjelmaamme käyttääksesi sen toimintoja.
  2. Sisällytä cmath-kirjasto käyttääksesi sen toimintoja. Haluamme käyttää siinä määritettyä funktiota sqrt().
  3. Sisällytä std-nimiavaruus koodiimme käyttääksesi sen luokkia kutsumatta sitä.
  4. Kutsu main()-funktiota. Ohjelmalogiikka tulisi lisätä tämän funktion runkoon.
  5. Ilmoita kaksi kaksoismuuttujaa, num ja squareroot.
  6. Tulosta tekstiä konsoliin. Teksti pyytää käyttäjää syöttämään numeron.
  7. Lue käyttäjän syöte näppäimistöltä. Syötteestä tulee muuttujan num arvo.
  8. Kutsu kirjastofunktio sqrt(), joka laskee luvun neliöjuuren. Välitimme parametrin num funktiolle, mikä tarkoittaa, että se laskee num-neliöjuuren. Tämä funktio on määritetty cmath-kirjastossa.
  9. Tulosta käyttäjän kirjoittama numero, sen neliöjuuri ja jokin muu teksti konsoliin.
  10. Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
  11. Main()-funktion rungon loppu.

Käyttäjän määrittämät toiminnot

C++ avulla ohjelmoijat voivat määrittää omat toimintonsa. Toiminnon tarkoitus on ryhmitellä liittyvä koodi. Koodille annetaan sitten yksilöllinen tunniste, funktion nimi.

Funktio voidaan kutsua/kutsua mistä tahansa muusta ohjelman osasta. Sitten se suorittaa rungossaan määritetyn koodin.

Esimerkki 2:

#include <iostream>
using namespace std;

void sayHello() {
	cout << "Hello!";
}

int main() {

	sayHello();

	return 0;
}

lähtö:

Tuotos C++ käyttäjän määrittämä sayHello()-funktio

Tässä on kuvakaappaus koodista:

C++ käyttäjän määrittämän funktion määrittely ja kutsuminen koodilla

Code Selitys:

  1. Sisällytä iostream-otsikkotiedosto ohjelmaamme käyttääksesi sen toimintoja.
  2. Sisällytä std-nimiavaruus koodiimme käyttääksesi sen luokkia kutsumatta sitä.
  3. Luo käyttäjän määrittämä funktio nimeltä sayHello().
  4. Tulosta tekstiä konsoliin, kun sanoHello()-funktiota kutsutaan.
  5. SayHello()-funktion rungon loppu.
  6. Kutsu main()-funktiota. Ohjelmalogiikka tulisi lisätä tämän funktion runkoon.
  7. Kutsu/käytä funktio nimeltä sayHello().
  8. Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
  9. Main()-funktion rungon loppu.

Kääntäjän on tunnettava funktio ennen kuin sitä käytetään.

Toiminnan ilmoitus/prototyyppi

Jos määrität käyttäjän määrittämän funktion main()-funktion jälkeen, C++ kääntäjä palauttaa virheilmoituksen. Syynä on se, että kääntäjä ei tiedä käyttäjän määrittämän funktion yksityiskohtia. Tiedot sisältävät sen nimen, argumenttien tyypit ja niiden palautustyypit.

In C++, funktion ilmoitus/prototyyppi ilmoittaa funktion ilman runkoa. Tämä antaa kääntäjälle yksityiskohdat käyttäjän määrittämästä funktiosta.

Ilmoitus/prototyyppi sisältää palautustyypin, funktion nimen ja argumenttityypit. Argumenttien nimiä ei lisätä. Argumenttien nimien lisääminen ei kuitenkaan aiheuta virhettä.

C++ funktion deklarointi/prototyypin syntaksikaavio

Toiminnon määritelmä

Funktioilmoituksen tarkoitus on kertoa C++ kääntäjä funktion nimestä, palautustyypistä ja parametreista. Funktiomäärittely kertoo C++ kääntäjä funktiorungosta.

C++ funktion määritelmän rakennekaavio

Syntaksi

return_datatype function_name( parameters) {
   function body 
}

Yllä olevasta funktiomääritelmässä on funktion otsikko ja runko. Tässä on selitys parametreista:

  • return_datatype - Jotkin funktiot palauttavat arvon. Tämä parametri ilmaisee palautusarvon tietotyypin. Jotkin funktiot eivät palauta arvoa. Tässä tapauksessa tämän parametrin arvosta tulee mitätön.
  • funktion_nimi- Tämä on funktion nimi. Toiminnon nimi ja parametrit muodostavat funktion allekirjoituksen.
  • Parametrit - Tämä on funktion parametrien tyyppi, järjestys ja lukumäärä. Joillakin funktioilla ei ole parametreja.
  • funktion runko - nämä ovat lauseita, jotka määrittelevät, mitä funktio tekee.

Toimintokutsu

Jotta funktio suorittaa määritetyn tehtävän ja palauttaa tulosteen, se on kutsuttava. Kun kutsut funktiota, se suorittaa sen runkoon lisätyt lauseet.

Funktiota kutsutaan sen nimellä. Jos funktio ottaa vastaan ​​parametreja, niiden arvot tulee välittää kutsun aikana. Jos funktio ei ota vastaan ​​parametreja, älä välitä mitään arvoa kutsun aikana.

C++ funktion kutsun syntaksikaavio

Väittämien hyväksyminen

In C++, argumentti/parametri on data, joka välitetään funktiolle sen kutsun aikana. Arvot on alustettava vastaaviin muuttujiinsa.

Funktiota kutsuttaessa argumenttien lukumäärän on täsmäävä. Tämä tarkoittaa, että välittämiesi arvojen on oltava yhtä suuria kuin parametrien lukumäärä. Jälleen kerran arvojen on vastattava parametreja myös tyypin suhteen. Jos ensimmäinen parametri on kokonaisluku, sille välitettävän arvon on oltava kokonaisluku.

Funktioparametreille voidaan määrittää oletusarvot. Jos et anna parametrille arvoa funktiokutsun aikana, käytetään oletusarvoa.

Esimerkki 3: Kuinka kirjoittaa ja kutsua funktio

#include <iostream>
using namespace std;
int addFunc(int, int);
int main() {
	int x, y, sum;
	cout << "Enter two numbers: ";
	cin >> x >> y;
	sum = addFunc(x, y);
	cout <<"The sum of "<<x<< " and " <<y<<" is: "<<sum;
	return 0;
}
int addFunc(int num1, int num2) {
	int addFunc;
	addFunc = num1 + num2;
	return addFunc;
}

lähtö:

Tuotos C++ addFunc()-funktio palauttaa summan

Tässä on kuvakaappaus koodista:

C++ koodin argumenttien välittäminen addFunc()-funktiolle

Code Selitys:

  1. Sisällytä iostream-otsikkotiedosto ohjelmaamme käyttääksesi sen toimintoja.
  2. Sisällytä std-nimiavaruus koodiimme käyttääksesi sen luokkia kutsumatta sitä.
  3. Ilmoita funktio nimeltä addFunc(), joka ottaa kaksi kokonaislukuparametria. Tämä luo funktion prototyypin.
  4. Kutsu main()-funktiota. Ohjelmalogiikka tulisi lisätä tämän funktion runkoon.
  5. Määritä kolme kokonaislukumuuttujaa, x, y ja summa.
  6. Tulosta tekstiä konsoliin. Teksti pyytää käyttäjää syöttämään kaksi numeroa.
  7. Lue käyttäjän syötteet näppäimistöltä. Käyttäjän tulee syöttää kaksi numeroa muuttujille x ja y välilyönnillä erotettuina.
  8. Kutsu funktio addFunc() ja välitä sille parametrit x ja y. Toiminto toimii näillä parametreilla ja määrittää lähdön muuttujasummalle.
  9. Tulosta muuttujien x, y ja summa arvot konsoliin muun tekstin rinnalle.
  10. Toiminnon on palautettava arvo, kun se on suoritettu.
  11. Main()-funktion rungon loppu.
  12. Toiminnan määritelmä. Määrittelemme funktiota addFunc(). Kerromme, mitä funktio tekee rungossaan, { }.
  13. Ilmoitetaan kokonaislukumuuttuja nimeltä addFunc.
  14. Parametrien num1 ja num2 arvojen lisääminen ja tuloksen liittäminen muuttujaan addFunc.
  15. AddFunc()-funktion pitäisi palauttaa addFunc-muuttujan arvo.
  16. Funktiokappaleen loppu eli funktion määritelmä.

UKK

Arvon perusteella kutsuttava funktio kopioi argumentin, joten funktion sisäiset muutokset eivät vaikuta alkuperäiseen argumenttiin. Viittauksen perusteella kutsuttava funktio välittää muuttujan et-merkin kanssa, jolloin funktio voi muokata kutsujan arvoa suoraan. C++ kutsuu oletuksena arvon perusteella.

Funktioiden ylikuormitus antaa useille funktioille saman nimen, mutta ne eroavat toisistaan ​​parametrien lukumäärän tai tyypin suhteen. Kääntäjä valitsee oikean version antamiesi argumenttien joukosta, mikä parantaa toisiinsa liittyvien operaatioiden luettavuutta.

Rivifunktio pyytää kääntäjää lisäämään rungon jokaiseen kutsukohtaan normaalin kutsun sijaan. Tämä voi vähentää pienten funktioiden työmäärää, vaikka kääntäjä saattaa jättää vihjeen huomiotta.

Rekursiivinen funktio kutsuu itseään ja jakaa ongelman pienempiin osaongelmiin. Se tarvitsee perustapauksen, joka pysäyttää rekursion; muuten kutsut toistuvat loputtomasti ja ylivuotovat pinon. Kertomama on klassinen esimerkki.

Parametri välitetään osoittimena tai kokoon määrättynä taulukkona ja yleensä sen pituus lähetetään erikseen, koska taulukko muuttuu osoittimeksi. Katso parametrin välittäminen taulukot C++ tehtävät täydellisiä toimivia esimerkkejä varten.

Funktio palauttaa yhden arvon suoraan, mutta voit palauttaa useita käyttämällä lähtöviittausparametreja, struct-, std::pair-, std::tuple- tai std::vector-elementtejä. Rakenteiset sidokset purkavat sitten palautetun tuplen kutsusivustolla.

Kyllä. Tekoälykoodausavustajat muuttavat selkokielisen kommentin kokonaiseksi C++ funktio, joka ehdottaa allekirjoitusta, rungon osaa ja paluutyyppiä. Ne myös refaktoroivat pitkiä funktioita, vaikka sinun kannattaa tarkistaa luotu logiikka.

GitHub Copilot automaattisesti täydennetyt C++ funktiomääritelmät, prototyypit ja kommenteistasi tai nimistäsi tehdyt kutsut, ehdottaa ylikuormituksia ja luonnostelee yksikkötestejä. Se käyttää viitattuja otsikoita kontekstin luomiseen, mutta jokainen ehdotus vaatii silti tarkistusta.

Tiivistä tämä viesti seuraavasti: