(C++) Routinen: Prozeduren und Funktionen - 1


Teilprogramme
Teilprogramm - Es ist ein separater Teil des Programms, das einen Namen und eine separate Mission hat. Das Unterprogramm befindet sich zu Beginn des materiellen Programms und kann (aufgenommen) aus dem Kernprogramm gestartet werden, wie im Namen angegeben.

Die Verwendung von Unterprogrammen vermeidet eine Vervielfältigung des Codes, wenn derselbe Code an verschiedenen Programmstellen erforderlich ist.
Bibliotheksimporte (z.B. mathematische Bibliothek) сmath.h) bestehen aus Teilprogrammen, die bereits von jedem formuliert wurden. Die Programmierer müssen nicht darüber nachdenken, welche Algorithmen sie tragen, aber sie benutzen sie einfach, um darüber nachzudenken, was sie tun. Es ist eine große Zeitersparnis. Es gibt keine Notwendigkeit, einen Algorithmus zu schreiben, der von jedem geschrieben wurde.

Jedes Unterprogrammnur eine Aufgabeoder einfach etwas berechnen oder Daten freigeben oder etwas anderes tun.

Es gibt zwei Arten von Unterprogrammen: Verfahren und Funktion

Die Unterprozeduren führen bestimmte Aktivitäten durch, beispielsweise führen zu einer bestimmten Form von Ergebnissen (Beispiel: Operator) printf()- ist ein Standard-Unterprogramm-Verfahren, das Informationen über die Bildschirme enthält)

Funktionen Rückgabe des Ergebnisses (Zahl, Symbolzeile, etc.), die wir im Hauptprogramm verwenden können.

Versuchen wir, ein einfaches Verfahren zu schreiben:
Sagen wir, wir müssen die Linie auf den Bildschirm stellen."FehlerUnd jedes Mal, wenn ein Benutzerfehler im Code auftreten kann (z.B. wenn er falsche Daten eingibt)
Dies könnte durch Schreiben des Bedieners geschehen.
cout Kanalband Fehler;
Lassen Sie uns jetzt vorgeben, dass diese Linie in viele Programmorte eingefügt werden muss. Natürlich können Sie es überall schreiben. Aber diese Entscheidung hat zwei Mängel.
(1) Diese Zeile wird oft gespeichert
(2) Wenn wir die Schlussfolgerung im Fehlerfall ändern wollen, müssen wir diese Linie im gesamten Programm ändern, was sehr unangenehm ist.

In diesen Fällen sind Verfahren erforderlich.
Das Programm mit dem Verfahren kann wie folgt aussehen:
#include Pipelineiostream-Komponente
mit Namespace std;

leer printError() / Verfahrensbeschreibung
{~}
cout verbal; / Körper der Prozedur - Teams, die die Prozedur durchführen
♪

Haupt(e)
{~}
#
printError() // Verfahrensbeginn zur Umsetzung. Zeigen Sie einfach den Namen des Verfahrens, das wir tun wollen.
#
PrintError()
#
♪

Das Verfahren beginnt mit dem Wort void♪ Es folgen leere Klammern.
Alle Betreiber, die das Verfahren durchführen, werden mit Ausnahme registriert.

Verfahren vor der Hauptfunktion aufgezeichnet main()

Um das Verfahren durchzuführen, muss das Hauptprogramm es verlangen. nicht vergessen, Klammern zu schreiben!
Sie können die Prozedur im Programm jederzeit anrufen.

Nun, lassen Sie uns vorstellen, dass wir brauchen, in Reaktion auf den Benutzer ' s Fehler, verschiedene Nachrichten, was auch immer der Fehler, den er gemacht hat.
In diesem Fall ist es möglich, dass jeder Fehler seine Prozedur schreibt:
Leerdruck FehlerZero()
{~}
cout vielseitige Sendung "Error. Division by zero!"
♪

LeerdruckErrorInput()
{~}
cout buoyancy "Error in input!"
♪

Und wenn es noch viel mehr Fehler gibt? Das ist keine Lösung.
Wir müssen lernen, wie man das Verfahren durchführt, indem wir ihr sagen, was für ein Irrtum Sie machen müssen.
Dazu brauchen wir die Parameter, die wir nach dem Verfahren in runden Klammern aufnehmen werden.
Leerdruck Fehler (String s)
{~}
cout PERPEN s;
♪
Bei diesem Verfahren ist s ein Parameter - eine spezielle Variable, die den Ablauf des Verfahrens ermöglicht.
Parameter - eine Variable, von der die Arbeit des Teilprogramms abhängt. Die Namen der Parameter sind unter dem Chapeau des Unterprogramms aufgeführt. Sein Typ wird vor dem Parameter aufgezeichnet.

Wenn nun das Verfahren aufgerufen wird, sollte in Klammern der tatsächliche Wert angegeben werden, der dem Parameter (ersetzt s) innerhalb unseres Verfahrens zugewiesen wird.
printError!
Das nennt man ein Argument.
Argument ist der Wert des Parameters, der dem Unterprogramm bei seiner Herausforderung zu übermitteln ist.
Argument kann nicht nur konstant, sondern auch variabel oder arithmetisch sein.

Lokale und globale Variablen
Es besteht oft die Notwendigkeit, zusätzliche Variablen nur im Unterprogramm zu verwenden. Diese Variablen werden aufgerufen Ort Sie können nur innerhalb des Teilprogramms arbeiten, in dem sie eingerichtet werden.
Sichtbarkeit der lokalen Variablen - es ist ein Block begrenzt auf die maßgebenden Klammern, in denen es erklärt wird

Das Hauptprogramm in C++ ist auch ein Teilprogramm, so dass alle Variablen, die innerhalb von main(), dies sind lokale Variablen.
Die übrigen Teilprogramme über lokale Variablen in anderen Teilprogrammen "wissen".

So kann nur das Teilprogramm, in dem es wirklich benötigt wird, den Umfang begrenzen (oblastig der Sichtbarkeit). Es heißt die Software. Inc. Schließung der Variablen durch externe Veränderung.

Ist eine Variable an jedem Programmort (in einem Teilprogramm) sichtbar zu erklären, so sind diese Variablen außerhalb aller Teilprogramme zu beschreiben (siehe Programm 3 der nachstehenden Tabelle).
Diese Variablen werden aufgerufen weltweit

In C+++ werden bei Programmstart alle globalen Variablen automatisch energisiert (logische Variablen nehmen die Bedeutung von falsch)


Analyse der drei Programme:
(1) In diesem Programm ist die Variable i lokal. Lokale Variablen werden im Teilprogramm beschrieben(2) Hier, auch wenn im Hauptprogramm eine Variable i vorhanden ist (Wert 7), eine neue lokale Variable i mit einem Wert von 5.
Das Programm wird Auswirkungen auf den Bildschirm haben
(3) Dieses Programm existiert globale Variable i. Ihre Auswirkungen können innerhalb des Unterprogramms und innerhalb des inhaltlichen Programms geändert werden
Das Verfahren wird mit der globalen Variablen i arbeiten und eine neue Bedeutung von 2 erhalten. Der Bildschirm ist mit 2 zu versehen.
Leerprüfung()
{~}
int i = 5;
cout Copyright i;
♪
Leerprüfung()
{~}
int i = 5;
cout Copyright i;
♪

Haupt(e)
{~}
int i = 7;
cout Copyright i;
Test();
♪
♫include PEROTING
mit Namespace std;
int i;
Leerprüfung()
{~}
i = 2;
♪

Haupt(e)
{~}
Test();
cout Copyright i;
♪

Ziel
Legen Sie ein Verfahren ein, das zwei Variablen ändert.

Die Besonderheiten dieser Aufgabe sind, dass wir die Änderungen des Verfahrens, das dem herausfordernden Programm bekannt ist, vornehmen müssen.

Versuchen wir, so ein Verfahren zu schreiben:
Leere Swap (int a, int b ) / mit einer solchen Beschreibung der Modalitäten,
{ // wird die Argumente kopieren (x und y),
int c; // Variablen a und b - unabhängige Variablen, die nicht mit x und y verbunden sind
c = a = b; b = c
♪

Haupt(e)
{~}
int x = 1, y = 2
Swap (x, y ); / Werte der Variablen x und y (Argumente) werden auf die Parameter a und b kopiert
cout vermin < x = < < < < < > > > > > > > > = 1, y = 2
♪
Wenn dieses Programm gestartet wird, ist zu erkennen, dass die Variablenwerte variabel sind. x und y Keine Veränderung. Für die Parameter zur Änderung der Bedeutung der Argumente ist es notwendig, Übertragung von Referenzdaten.Zu diesem Zweck sollte nach dem Namen der Art der Daten ein Etikett in die Rubrik des Teilprogramms eingefügt werden.& (Lampersand)
Leer Swap (int " a, Int " (b) // nun Variablen a und b empfangen Variable x und y im Speicher
{~}
int c;
c = a = b; b = c
♪
Anwendung: Wenn Sie das Argument auf der Referenz, dann wenn Sie das Verfahren anrufen, kann der einzige Name der Variable an dieser Stelle sein.Nicht Zahl und nicht arithmetisch Ausdruck!

Der NEXT ruft das Verfahren auf:
Swap. ANHANG ;
Swap5+x, y);