Routinen: Prozeduren und Funktionen - 1


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. System(a) aus bereits formulierten Teilprogrammen bestehen. Die Programmierer müssen nicht darüber nachdenken, welche Algorithmen sie tragen, sie benutzen sie nur, um darüber nachzudenken, was sie tun. Es ist eine große Zeitersparnis. Es gibt keine Notwendigkeit, einen Algorithmus zu schreiben, der bereits von jedem geschrieben wurde.

Jedes Unterprogrammnur eine Aufgabeentweder etwas berechnen oder Daten freigeben oder etwas anderes tun.

Unterprogramme oder Methoden, zwei Arten -Funktion (diese, die das Ergebnis zurückgeben) und Verfahren (die, die nicht zurückkehren).

Fangen wir mit Typ 2 an. Versuchen wir ein einfaches Beispiel.
Sagen wir, wir müssen die Error-Zeile jedes Mal auf den Bildschirm stellen, wenn der Code einen Fehler durch den Fehler des Benutzers macht (z.B. wenn er falsche Daten einführt).
Dies könnte durch Schreiben des Bedieners geschehen.
Console.WriteLine("Error");
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.

Solche Fälle erfordern Verfahren und Verfahren.
Das Programm mit dem Verfahren kann wie folgt aussehen:

using System;
class Program {
    static void PrintError() {
        Console.WriteLine("Error");
    }
    static void Main() {
        PrintError();
    }
}

Das Verfahren beginnt mit dem Wortvoid♪ Es folgen leere Klammern.
Alle Betreiber, die das Verfahren durchführen, werden mit Ausnahme registriert.
Änderung Static bedeutet, dass das Feld, das Verfahren oder die Charakteristik nicht zu jedem Objekt der Klasse gehören, sondern zu allen zusammen.
Verfahren und Verfahren werden bis zur Hauptmethode M aufgezeichnetain()

Um sich auf das Verfahren zu beziehen, sollte das Hauptprogramm es auf seinen Namen berufen und 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()
{~}
Konsole. WriteLine.
♪

void printErrorInput()
{
    Console.WriteLine("Error in input!");
}

Und wenn es noch viel mehr Fehler gibt? Dann können wir diese Entscheidung nicht treffen.
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.
void printError(string s)
{
    Console.WriteLine(s);
}
In diesem Verfahren S - dieser Parameter ist eine spezielle Variable, die es erlaubt, das Verfahren auszuführen.
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.

Nachdem nun das Verfahren aufgerufen wird, sollte der dem Parameter zuzuordnende Istwert (ersetzbar) in Klammern angegeben werden. Sinnerhalb unseres Verfahrens
printError("Error! Division by zero!");
Es nennt sich 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. Solche Variablen werden als lokale (oder lokale) bezeichnet und können nur innerhalb des Teilprogramms betrieben werden, in dem sie festgelegt werden.
Sichtbarkeit der lokalen Variablen - Es ist ein Block, der auf die Figurenkonsolen beschränkt ist.

Das Hauptprogramm in C# ist auch ein Unterprogramm, so dass alle Variablen innerhalb der void Main()- Das. 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. - Verbergen der Variablen vor der äußeren 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

Zu Beginn des Programms werden alle globalen Variablen automatisch berechnet (logische Variablen nehmen den Wert von false).

Analyse der drei Programme:
(1) In diesem Programm ist die Variable i lokal. Die lokale Variable wird 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.
Bei der Durchführung dieses Programms beträgt der Wert 75.
(3) Dieses Programm hat eine globale Variable i. Ihre Bedeutung kann 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 gekennzeichnet.
statischer Leerlauftest()
{~}
int i = 5;
Console.Write("i)
♪
statischer Leerlauftest()
{~}
int i = 5;
Console.Write("i)
♪

statische Leere Main()
{~}
int i = 7;
Console.Write("i)
Test();
♪
mit System;
Klasse Programm
{~}
int i;
statischer Leerlauftest()
{~}
i = 2;
♪
statische Leere Main()
{~}
Test();
Console.Write("i)
♪
♪

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

Die Besonderheit dieser Aufgabe ist, dass wir die im Verfahren vorgenommenen Änderungen benötigen, um dem herausfordernden Programm bekannt zu werden.

Versuchen wir, so ein Verfahren zu schreiben:
statisches Leerzeichen Swap (int a, int b) / mit einer solchen Beschreibung der Parameter des Verfahrens,
{ // kopiert die Argumente (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
♪
statische Leere Main()
{~}
int x = 1, y = 2
Swap (x, y); / Werte der Variablen x und y (Argumente) werden auf die Parameter a und b, x = 1, y = 2 kopiert
♪
Wenn dieses Programm gestartet wird, kann man erkennen, dass sich die Variablen x und y nicht geändert haben. Damit die Parameter die Bedeutung der Argumente ändern, sollte die Übertragung der Referenzdaten verwendet werden. Zu diesem Zweck sollte vor dem Namen der Art der Daten der Titel des Teilprogramms geschrieben werden ref
Leer Swap ( ref int a, ref int b ) // nun Variablen a und b empfangen Variablen x und y im Speicher
{~}
int c;
c = a = b; b = c
♪
statische Leere Main()
{~}
int x = 1, y = 2
Swap (ref x, ref y);

Anwendbarkeit: Wenn Sie das Referenzargument geben, kann der einzige Name der Variable auf Antrag des Verfahrens vorliegen (Keine Nummer und nicht arithmetische Ausdruck).

Das Verfahren ist nicht so zu fordern, wie:
Swap(x, 4);
Swap(5+x, y);