Einführung in Funktionen mit mehreren Parametern in C++ im Rahmen der Lehre des Programmierens. (C++ Argumente C++ Parameter C++ pow C++ Potenzieren C++ std::pow C++ Potenz), Lektion, Seite 721103
https://www.purl.org/stefan_ram/pub/c++_funktion_mehrere_parameter_de (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C++-Kurs

Funktionen mit mehreren Parametern in C++ 

Diese Lektion stellt die Standardfunktion "::std::pow" als Beispiel einer Funktion mit mehreren Parameter vor.

Die Standardfunktion "::std::pow" erlaubt es, das Ergebnis der Potenzierung des ersten Argumentwertes mit dem zweiten Argumentwert (also den ersten Argumentwert „hoch“ den zweiten Argumentwert) zu beschreiben. Die folgende Dokumentation stellt klar, daß beide Parameter vom Typ "double" sind und das Ergebnis ebenfalls vom Typ "double" ist.

»::std::pow« [Dokumentation]

#include <cmath>

double ::std::pow( double a, double b );

»a« hoch »b« (Potenzierung von »a« mit »b« als Exponent)

Die folgende Programme zeigen eine Anwendung der Funktion "::std::pow" zur Berechnung der Potenzen 10² und 2¹°. Man beachte, daß die Reihenfolge, in der die Argumente geschrieben werden, im allgemeinen den Wert des Ausdrucks mitbestimmt.

Um die Bedeutung von »::std::pow( 10., 2. )« zu verstehen, wird der Wert »10.« des ersten Arguments dem ersten Parameter »a« zugeordnet und der Wert »2.« des zweiten Arguments dem zweiten Parameter »b« zugeordnet. Dann kann man diese beiden Werte in die Dokumentation »a hoch b« einsetzen, und erhält »10. hoch 2.«.

pow10_2.cpp
#include <iostream> 
#include <ostream> 
#include <cmath> 
#include <string> // ""s
using namespace ::std::literals;
int main() 
{ ::std::cout << ::std::pow( 10., 2. )<< "\n"s; }

::std::cout
100

pow2_10.cpp
#include <iostream> 
#include <ostream> 
#include <cmath> 
#include <string> // ""s
using namespace ::std::literals;
int main() 
{ ::std::cout << ::std::pow( 2., 10. )<< "\n"s; }

::std::cout
1024

Aussprache

Im allgemeinen spricht man »f(x,y)« als „f von x und y.“, bei speziellen Funktionen werden jedoch auch spezielle Aussprachen verwendet, so ist »pow(x,y)« „x hoch y“.

Ein Aufruf wie »f( 5.2, 6 )« kann im allgemeinen wie „f von 5 Komma 2 und 6“ gesprochen werden.

Funktionsschablonen

Die Schabloneneinleitung »template< class T >« drückt aus, daß für »T« im folgenden (bis zu dem Semikolon »;«) ein beliebiger Typ eingesetzt werden kann, also: »int max( int a, int b )«, »double max( double a, double b )« oder »::std::string max( ::std::string a, ::std::string b )«.

»::std::max« [Dokumentation] (vereinfacht)

#include <algorithm>

template< class T >T max( T a, T b);

Wir betrachten ein Beispiel mit zwei int-Argumenten.

main.cpp

#include <algorithm>
#include <iostream>
#include <ostream>
#include <string>

using namespace ::std::literals;

int main()
{ ::std::cout << ::std::max( 10.0, 10.0 )<< '\n'; }

Protokoll
10

Wir betrachten ein Beispiel mit zwei double-Argumenten.

main.cpp

#include <algorithm>
#include <iostream>
#include <ostream>
#include <string>

using namespace ::std::literals;

int main()
{ ::std::cout << ::std::max( 10, 10 )<< '\n'; }

Protokoll
10

Wir betrachten ein Beispiel mit zwei ::std::string-Argumenten.

main.cpp

#include <algorithm>
#include <iostream>
#include <ostream>
#include <string>

using namespace ::std::literals;

int main()
{ ::std::cout << ::std::max( "abc"s, "abc"s )<< '\n'; }

Protokoll
abc

Im Falle solch einer Schablone müssen dann allerdings beide Argumenttypen genau  übereinstimmen müssen. Es gibt keinerlei implizite Wandlungen oder Toleranz.

main.cpp

#include <algorithm>
#include <iostream>
#include <ostream>
#include <string>

using namespace ::std::literals;

int main()
{ ::std::cout << ::std::max( 10.0, 10 )<< '\n'; }

Protokoll (übersetzt)
Fehler: Typen stimmen nicht überein

Nach einer ausdrücklichen Festlegung des Typs »T« mit »< int >« verhält sich die Funktion dann aber wie eine normale Funktion mit zwei int-Parametern.

main.cpp

#include <algorithm>
#include <iostream>
#include <ostream>
#include <string>

using namespace ::std::literals;

int main()
{ ::std::cout << ::std::max< int >( 10.0, 10 )<< '\n'; }

Protokoll
10

Übungsfragen

?   Übungsfrage

»::std::hypot« [Dokumentation]

#include <cmath>

double ::std::hypot( double a, double b );

Wurzel aus »a« zum Quadrat plus »b« zum Quadrat.
?    Verstehen der Beschreibung
Wie viele Parameter hat die Funktion "hypot"?
Welche Namen haben die Parameter der Funktion "hypot"?
Welche Typen haben die Parameter der Funktion "hypot"?
Welchen Typ hat ein Aufruf der Funktion "hypot"?
Ändert sich der Wert eines Aufrufs der Funktion "hypot", wenn die Argumente vertauscht werden?
Welchen Sinn könnte die Funktion "hypot" haben, wofür also könnte sie verwendet werden?

?   Verständnis von Fachbegriffen ⃗

Zu einer Funktion »f« wird erklärt: „Die Funktion »f« ergibt den Wert ihres Arguments.“. Welchen Wert hat dann »f( 3 )«?

Zu einer Funktion »m« wird erklärt: „Die Funktion »m« ergibt immer den Wert 4.“. Welchen Wert hat dann »m( 3 )«?

Zu einer binären Funktion (einer Funktion mit zwei Parametern) »h« wird erklärt: „Der Wert von »h(x,y)« ist der Wert des linken Arguments.“. Welchen Wert hat demnach »h(4,7)«? Welchen Wert hat »h(h(4,2),7)«?

Beim Schreiben eines Programms mit Aufrufen von Funktionen

/    Ausgabe eines Ergebnisses
Schreiben Sie ein C++ -Programm, welches das Ergebnis eines Aufrufs der Funktion "hypot" ausgibt. Verwenden Sie Argumentausdrücke, bei denen Sie das Ergebnis des Aufrufs der Funktion "hypot" auch im Kopf ausrechnen können, um richtige Ergebnisse erkennen zu können.
/    Ermittlung des Maximums zweier Werte
Ein Aufruf der Funktion »::std::fmax« ermittelt das Maximum der Werte der beiden Argumente. Schreiben Sie ein Programm, in welchem nach »#include <cmath>« mit der Funktion »::std::fmax« das Maximum von 4 und 5 berechnet wird.

?   Kugelvolumen

Das folgende C++ -Programm soll das Volumen einer Kugel mit einem Radius von 3 Metern berechnen. Das Volumen ‹ V  › einer Kugel mit Radius ‹ r  › beträgt ‹ 4/3πr³ ›. Wo steckt der Fehler in dem Programm? (Das in der nächsten Zeile verwendete mathematische Symbol ‹ ∧ › bedeutet „und“, das Symbol ‹  › hat eine niedrigere Priorität als ‹ ∧ › und bedeutet „daraus folgt“.)

( V =  4/3πr³  )∧( r = 3  )   V = 4/3πr³   V = 4/3π · 3³ = 4π · 3² = 36π ≈ 113,09733552923255658465516179806
main.cpp

#include <cmath> // ::std::atan, ::std::pow
#include <iostream> // ::std::cout
#include <ostream> // <<
#include <string> // ""s

using namespace ::std::literals;

int main()
{ ::std::cout << 4/3 *( 4 * ::std::atan( 1 ))* ::std::pow( 3, 3 )<< "\n"s; }

Protokoll
84.823

(In dem Programm wird die Kreiszahl ‹π› als »4 * ::std::atan( 1 )« geschrieben, da es in C++  die Kreiszahl ‹π› nicht als vordefinierte Konstante gibt. An dieser Stelle  steckt der Fehler nicht.)

Zitat *

5.2.2. function call p4 When a function is called, each parameter (8.3.5) shall be initialized (8.5, 12.8, 12.1) with its corresponding argument. [ Note: Such initializations are indeterminately sequenced with respect to each other (1.9) — end note ]

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 stefanram721103 stefan_ram:721103 C++ Argumente C++ Parameter C++ pow C++ Potenzieren C++ std::pow C++ Potenz C++ Potenzrechnung, Exponent, C++, Funktion, Funktionen, Argument, mehrere Argumente, Arguments C++ Exponentialfunktion, Funktionsaufruf, Funktionbenutzung, mehrfache Argumente, multiple Argumente, Aktualparameter, aktueller Parameter, eigentlicher Parameter, mehrere Parameter, mehrfache Parameter, mehrere Aktualparameter, mehrfache Aktualparameter, mehrere aktuelle Parameter, mehrfache aktuelle Parameter, mehrere eigentliche Parameter, mehrfache eigentliche Parameter, mehrere tatsächliche Parameter, mehrfache tatsächliche Parameter, 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, slrprd721103, slrprddef721103, 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++_funktion_mehrere_parameter_de