Einführung in Argumente in C++ im Rahmen der Lehre des Programmierens. (C++ Argumente), Lektion, Seite 721083
https://www.purl.org/stefan_ram/pub/c++_argumente (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C++-Kurs

Argumente in C++

main.cpp

#include <iostream> // ::std::cout
#include <ostream> // <<
#include <cmath> // ::std::floor
#include <string> // ""s

using namespace ::std::literals;

int main() { ::std::cout << ::std::floor( 2.7 )<< "\n"s; }

::std::cout
2

Wir sehen in dem obigen Programm eine neue Möglichkeit zum Schreiben eines Aufrufausdrucks : Die runden Aufrufklammern müssen nicht immer leer  sein, sie können auch einen Ausdruck  (also ein Literal, Namen, Operatorausdruck oder weiteren Aufrufausdruck) enthalten!

Aufrufausdruck (Syntaxdiagramm)

Aufrufausdruck
.----------. .----. .------. .---. .--------. .---.
---.--->|Namensraum|--->( :: )---.--->| Name |--->( ( )---.--->|Ausdruck|---.--->( ) )--->
| '----------' '----' ^ '------' '---' \ '--------' / '---'
'-------------------------------' '----------->-'

Dies sieht man am Aufrufausdruck »::std::floor( 2.7 )« (d.h., die größte ganze Zahl vom Typ »double«, welche nicht größer als »2.7« ist): Hier ist »::std« der Namensraum, »floor« der Name und »2.7« der Ausdruck des Aufrufausdrucks.

Eine in die Aufrufklammern geschriebener Ausdruck wird auch Argumentausdruck des Aufrufs  oder kurz Argumentausdruck  genannt. Die Aufrufklammern, welche das Argument enthalten, werden entsprechend hier auch manchmal als Argumentklammern  bezeichnet. Der Wert des Argumentausdruck ist der Argumentwert. Wenn es nicht wichtig ist zwischen dem Argumentausdruck und Argumentwert zu unterscheiden, so spricht am auch einfach nur von eine Argument. Dann muß dem Zusammenhang entnommen werden, ob damit der Argumentausdruck oder der Argumentwert gemeint ist – manchmal sind auch beide Interpretationen gleichzeitig möglich.

Das Wort „Argument“ stammt vom lateinischen Substantiv "argumentum", was soviel bedeutet wie „etwas, was der Erhellung und Veranschaulichung dient“, nach dem lateinischen Verb "arguere" (erhellen/beweisen).

Der Argumentausdruck in einem Aufrufausdruck entspricht dem Operandenausdruck eines Operatorausdrucks. Der Sinn ist derselbe, nur spricht man bei einem Aufrufausdruck eben von einem Argumentausdruck und nicht von einem Operandenausdruck. Beispielsweise entspräche dem Operatorausdruck »-2« der Aufrufausdruck »minus( 2 )«.

Die runde Klammer auf »(« wird im Deutschen meist als „von“ gesprochen. So ist »::std::floor( 2.7 )« „»::std::floor« von  Zwei Komma Sieben“. In manchen Fällen kann man »cos( 0 )« auch einfach „Kosinus Null“ sprechen, etwa wenn der Ausdruck als untergeordnet markiert werden soll: »log( cos( 0 )+ sin( 0 ))« „Logarithmus von  Kosinus Null plus Sinus Null“.

Ein Aufrufausdruck
::std::floor( 2.7 )
auf deutsch:
Aufruf von floor  mit dem Argumentwert 2,7
Wert von floor  für den Argumentwert 2,7
floor von  2,7

Semantik

Bei der Auswertung eines Aufrufs mit einem Argument wird zuerst der Argumentwert  ermittelt. Dann wird die aufgerufene Funktion mit dem Argumentwert inkarniert  (also verbunden) und schließlich wird die Inkarnation (das Ergebnis der Verbindung) ausgeführt. Die ausgeführte Inkarnation kann dann den Wert des Aufrufausdrucks  festlegen.

Übergabe des Argumentwerts

Da beim Aufruf einer Funktion der Wert des Argumentausdrucks zur Laufzeit zusammen mit der Kontrolle an die aufgerufene Funktion übergeben wird, spricht man auch von der Übergabe  des Argumentwertes oder sagt, der Argumentwert werde an die aufgerufene Funktion übergeben.

Übergabe und Rückgabe der Kontrolle zur Laufzeit
.--------------------------------------------.
| Hauptprogramm----. |
| | Übergabe der Kontrolle |
| V und des Argumentwertes |
| .---------------. |
| | Unterprogramm | |
| '---------------' |
| | |
| | |
|<-----------------' |
| Rueckgabe der Kontrolle |
| und des Ergebniswertes |
'--------------------------------------------'
»main« und »floor« bei der oben gezeigten Ausführung
.--------------------------------------------.
| main ------------. |
| | Übergabe der Kontrolle |
| V und des Wertes 2,7 |
| .---------------. |
| | floor | |
| '---------------' |
| | |
| | |
|<-----------------' |
| Rueckgabe der Kontrolle |
| und des Wertes 2,0 |
| |
'--------------------------------------------'

Das folgende Programmbeispiel verdeutlicht, daß im Quelltext nur die Argumentausdrücke nicht aber die Argumentwerte stehen, denn letztere werden erst zur Laufzeit ermittelt, daher können sich dann Ausgaben ergeben, welche durch Lesen des Quelltextes nicht vorhersagbar sind.

main.cpp

#include <iostream> // ::std::cout
#include <ostream> // <<
#include <cmath> // ::std::floor
#include <cstdlib> // ::std::rand
#include <string> // ""s

using namespace ::std::literals;

int main()
{ ::std::cout << ::std::floor( ::std::rand()/10. )<< "\n"s; }

::std::cout
4

Beispiele

Beispiel

main.cpp

#include <iostream> // ::std::cout
#include <ostream> // <<
#include <cmath> // ::std::floor
#include <string> // ""s

using namespace ::std::literals;

int main() { ::std::cout << ::std::floor( 2.0 + 0.7 )- 1.7 << "\n"s; }

::std::cout
0.3

An diesem Beispiel kann man auch den Unterschied zwischen dem Argumentausdruck und den Argumentwert gut erkennen: »2.0 + 0.7« ist der Argumentausdruck, »2.7« ist der Argumentwert.

Operationssequenz

::std::floor( 2.0 + 0.7 )- 1.7
2.0 + 0.72.7
::std::floor( 2.7 )2
2 - 1.70.3

Übungsfragen

?   Übungsfrage

Was ist der Argumentausdruck  in »::std::floor( 2.0 + 0.7 )«?

Was ist der Argumentwert  in »::std::floor( 2.0 + 0.7 )«?

?   Ermittlung von Operanden ⃗

Kann es eine Funktion »f« geben, die wie in den folgenden Beispielen gezeigt, den linken Operanden  ihres Argumentausdrucks ergibt?

main.cpp

#include <iostream> // ::std::cout
#include <ostream> // <<
#include <string> // ""s
#include ... // f // hypothetische Funktion

using namespace ::std::literals;

int main()
{ ::std::cout << f( 1 + 3 )<< "\n"s; }

::std::cout
1
main.cpp

#include <iostream> // ::std::cout
#include <ostream> // <<
#include <string> // ""s
#include ... // f // hypothetische Funktion

using namespace ::std::literals;

int main()
{ ::std::cout << f( 2 + 2 )<< "\n"s; }

::std::cout
2
main.cpp

#include <iostream> // ::std::cout
#include <ostream> // <<
#include <string> // ""s
#include ... // f // hypothetische Funktion

using namespace ::std::literals;

int main()
{ ::std::cout << f( 3 + 1 )<< "\n"s; }

::std::cout
3

 

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram721083 stefan_ram:721083 C++ Argumente Funktion, Funktionen, Funktionsausdruck, Funktionsausdrücke, Funktionsaufruf. Funktionsaufrufe, source, source code,sourcecode, Programmier sprache C++ Sprache, C++, CXX, C+, Programm, Programme, C++-Programm C++ Sprache C++ Programmiersprache C++ c++-Programme, Standard C++, Programmieren in C++, Programmieren in CXX, Programmieren in CPP, Programmieren in Cplusplus, Die Programmiersprache C++, Die Programmiersprache CXX, Die Programmiersprache CPP, Die Programmiersprache Cplusplus, Die Programmier sprache C++, Die Programmier sprache CXX, Die Programmier sprache CPP, Die Programmier sprache Cplusplus, CXX-Programmierung, C++-Programmierung, CPP-Programmierung, c-plus-plus, cpluplus-Programmierung, ANSI-C++, ANSI-CXX, ANSI-CPP, ANSI C++, ANSI CXX, ANSI-cpluscplus ISO-C++, ISO-CXX, ISO CPP, ISO C++, ISO CXX, ISO/IEC-C++, ISO/IEC-CXX, ISO/IEC CPP, ISO/IEC C++, ISO/IEC CXX, IEC-C++, IEC-CXX, IEC CPP, IEC C++, IEC CXX, International Standard ISO/IEC 14882 First edition 1998-09-01, ISO/IEC 14882:1998(E), ISO/IEC 14882:2003(E), ASC X3, 7/27/98, c plus plus, C ++, cplusplus, c plus plus, Standard C+ programmieren, Stamdard C++ programmieren, Standart C+ programmieren, Stamdart C++ programmieren, INCITS/ISO/IEC 14882-1998, Information Technology - Programming Languages - C++ (formerly ISO/IEC 14882-1998), Programmieren in C++,Programmiersprache C++ CPP CXX Cplusplus c plus plus International Standard ISO/IEC 14882 First edition 1998-09-01, Softwareentwicklung, Software-Entwicklung, Software Entwicklung, Softwareprogrammierung, Software-Programmierung, Software Programmierung, Softwareherstellung, Software-Herstellung, Software Herstellung, Softwareerstellung, Software-Erstellung, Software Erstellung, Softwareengineering, Software-Engineering, Software Engineering, Softwareenginering, Software-Enginering, Software Enginering, Softwaremethodik, Software-Methodik, Software Methodik, Programmiermethodik, Programmier-Methodik, Programmier Methodik, Softwaredidaktik, Software-Didaktik, Software Didaktik, Methodik des Programmierens, Didaktik des Programmierens, Fachdidaktik des Programmierens, Fach-Didaktik des Programmierens, Programmieren, Programmierung, Computer Science, Informatik, Informatik, Informationspädagogik, Informationspaedagogik, Programmierer, programmieren, Quellcode, Quelltext, Quelle, Quellen, Informatiker, Fachinformatiker, Entwickler, mit Stil, mit Stiel, mit Still, , Einführung, Einfuehrung, Einführungen, Einfuehrungen, eLearning-Modul, e-Learning-Modul, eLearning-Module, e-Learning-Module, Kurs Berlin, Kurse Berlin, Kursus, Vortrag, Vorträge, Vortraege, Lehrgang, Lehrgänge, Lehrgaenge, kostenloses Lehrmaterial, kostenlose Lehrmaterialien, Vorlesung, Vorlesungen, Unterrichtseinheit, Unterrichtseinheiten, kostenloses Unterrichtsmaterial im Internet, kostenlose Unterrichtsmaterialien im Internet, Ausbildung, Ausbildungen, für die Ausbildung, Fortbildung, Fortbildungen, Weiterbildung, Weiterbildungen, Schulung Berlin, Schulungen Berlin, Internetschulung, Webschulung, Kursunterlage, Kursunterlagen, trainer Berlin, Didaktik, Informatikunterricht, Primer, Skript FH, Skripte FH, Skriptum FH, Skripts FH, Script FH, Scripte FH, Scriptum FH, Scripts FH, howto, how-to, how to, Lehrbuch, Buch, Bücher, Buecher, Bericht, Crash Kurs Berlin, Crash-Kurs Berlin, Crashkurs Berlin, Report, Sachtext, Sachtexte, Übung, Übungen, Uebung, Uebungen, course, PbclevtugFgrsnaEnz, lecture note, lecture notes, Tutorial, Tutor, Tutorium, Teacher, Lehrer Berlin, Trainer Berlin, Beratung Berlin, Anleitung zum, Anleitungen zum, Einführung, Einfuehrung, Einführungen, Einfuehrungen, Handbuch für, Handbücher, Handbuecher, Support, Diplomarbeit, Facharbeit, Hausarbeit, Hausarbeiten, Werk, Werke, Text, Übungsblatt, Uebungsblatt, Lösung, Loesung, Lösungen, Loesungen, Auflösung, Aufloesung, Auflösungen, Aufloesungen, Facharbeit, Facharbeiten, Forum, Training, manual, Folie, Folien, Lehrmittel, beratung, Definition von, Allgemeine Erklärung, Allgemeine Erklaerung, Allgemeine Erklärungen, Allgemeine Erklaerung, Allgemeine Erklaerungen, Einfache Erklärung einfach, Einfache Erklaerung einfach, Einfache Erklärungen, Einfache Erklaerung, Einfache Erklaerungen, zum Thema, FAQ, FAQs, Konzept, Lernkurs, Lern-Kurs, Lernkurse, Lern-Kurse, eine kurze Erklärung, Begriff, Begriffe, Erklärung zu Begriffen, begriffbestimmung, begriffbestimmung, Begriffsbestimmung, Begriffserklärung, Begriffserklaerung, Wort, Worterklärung, Worterklaerung, Definition, Beispiel, Beispiele, Bedeutung, Bedeutungen, was bedeutet, Begriffsdefinition, für Anfänger, fuer Anfaenger, für Einsteiger, für Beginner, zum selber Lernen, handout, hand out, web based training, WBT, Net Based Training, NBT, computer based training, CBT, virtual learning environment, virtual university, für die Schule, Seminar, Seminare, Vorgehensweise, Pädagogik, Paedagogik, Akademie, Onlineacademie, Onlineakademie, Wissen, Unterrichtsvorbereitung für das Fach, Unterricht, für Lehrer, für Lehrerinnen, Referat, Referate, Hausaufgabe, Hausaufgaben, Tip, Tipp. Tipps und Tricks, Tips und Tricks, Methode, Methoden, Methodik, Funktion, Funktionsweise, Aufbau, Prinzip, Grundlage, Grundlagen, Internetschulung, Unterlage, Unterlagen, Struktur, Frage, Fragen, Antwort, Antworten, Schulunterricht, zum erlernen, was ist das?, wie?, lerne, Onlineausbildung, Onlinelehrgang, Onlinekurs, Onlinebuch, Webbuch, Academy, Fachhochschule, FH, TFH, Hochschule, Universität, Universitaet, Uni, Schule, Berufsschule, Gymnasium, Erste Schritte mit, Dozent, Dozenten, Zusammenfassung, Übersicht, Term, Fachwort, Fachbegriff, Fachbegriffe, Grundbegriff, Grundbegriffe, Lektion, Lektionen, Bedienungsanleitung, Bedienungsanleitungen, Spezialist, Spezialisten, Coaching, Coach, Fachbuch, technologie, Unterschied zwischen, Unterschiede zwischen, lehren, unterrichten, für das Studium, für Studenten, für Studentinnen, für Studierende, für Schüler, für Schülerinnen, Wie kann ich, Wie kann man, Hilfe, selber, erstellen, Erstellung, Beginner, Online-Seminar, Online-Kurs, Online-Schulung, ich, gebrauchsanweisung, gebrauchsanleitung, Bedienungsanweisung, Einweisung, Kurzinfo, Internet-Kurs, Internet-Kurse, Online-Training, Intensiv, Intensivkurs, Vortragsreihe, Präsentation, Grundzüge, Mitschrift, Mitschriften, Verständnis, verstehen, anwenden, Hintergrundwissen, Hintergrund, Hintergründe, content, Funktionsprinzip, Schritt für Schritt; E-Learning; elearning; online learning; Fernlehre, Fernlehrgang, Fernlehrgänge, Referent, Referenten, Fernkurs, Fernkurse, Fernstudium, Fernschule, Fernuniversität, Fernlehrer, Denken, Qualifizierungsmaßnahme, Qualifizierung, Qualifizierungen, Volkshochschulkurs, Volkshochschulkurse, Internet-Learning-Plattform, Online-Learning-Plattform, E-Learning-Plattform, Internetlearning-Plattform, Onlinelearning-Plattform, Elearning-Plattform, jetzt, Kochbuch, einfach erklärt, Kenntnis, Kenntniss, Kenntnisse, deutsche Hilfe, lernen und verstehen; blended learning; courseware, Profi, Profis, professionell, professionelle, professionelles, profesionell, profesionelle, profesionelles, professionel, gekonnt, für Könner, Grundkurs, Leistungskurs, Aufbaukurs, Lehrtext, Lehrtexte, Fachtext, Fachtexte, Ausarbeitung, distance learning, Online Seminar, distance education, Online Tutorium, Online Tutorien, technology-based learning, Computer based learning, CBL, Internet Based learning, IBL, Web based learning, WBL, online-learning, OL, online-training, OT, CAI, Computer Assisted Instruction, CUU, Computerunterstützter Unterricht, Computer-unterstützter Unterricht, Know how, Grundkenntnis, Grundkenntnisse, Kompetenz, Schulungsunterlagen, Insiderwissen, Rat, Lehrerinnen und Lehrer, ABC, Überblick, Arbeitsblatt, Sekundarstufe, Oberstufe, Material, Materialien, Unterrichtsentwurf, Unterrichtsentwürfe, Lerntip, Lerntips, Lerntipp, Lerntipps, ebook, schnell lernen, Lerner, Lernender, Lernende Erwachsenenbildung, Frage und Antwort, Selbststudium, Selbstudium, Umschulung, , kostenlos, kostenlose, kostenloses, kosten los, kosten lose, kosten loses, gratis, free, frei, freie, freies, privat, private, privates, homepage, home-page, home page, website, web site, webpage, web-page, web page, webpages, web-pages, web pages, webseite, Web-Seite, Webseite, Webseiten, Web-Artikel, Web Artikel, online, on-line, on line, download downloaden, down load, or, deutsch, deutsche, deutsches, deutscher, Deutschland, deutschsprachig, deutschsprachige, deutschsprachiges, german, germany, and, uebersicht, Uerbersicht, uebersichten, Uebersichten, Übersicht, übersicht, Übersichten, übersichten, Uebersicht, uebersicht, Uebersichten, uebersichten, Info, Infos zu, Information über, ueber, Informationen über, Auskunft, Auskünfte, Auskuenfte, Dienst, PbclevtugFgrsnaEnz, Angebot, Angebote, Anbieter, server, für, fuer, in, an, keyword, keywords, key word, keywords, internet, internets, net, network, net work, networks, net works, web, www, world wide web, Theorie, Praxis, Anwendung, DV, IT, glossar, fachwörterbuch it-glossar, computer lexikon, Computerlexikon, Computer-Lexikon, Lexikon, computer lexicon, Computerlexicon, Computer-Lexicon, Lexicon, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 was ist ein, was ist das, was sind, definiere, definition, define, Inhalt, html, xhtml, free im netz, PDF Text, digital, digitale, binär, binäre, elektronisch, elektronische, fachbegriff, fachbegriffe, konzept, Begriff, allgemein, allgemeine, allgemeines, Technik, Datentechnik, Digitaltechnik, Binätechnik, online lesen; , Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd721083, slrprddef721083, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/c++_argumente