Kippte Programmiersprache. §1 Gesamtsprache. Stadien des Programmdesigns. Anwendungslebenszyklusmodelle Alles über c

Computer sind wahrscheinlich die universellsten Werkzeuge, die die Menschheit zur Verfügung hat. Sie können unglaubliche Berechnungen ausführen, sie ermöglichen es Ihnen, eine große Menge an Informationen vollständig in verschiedenen Punkten des Planeten zu speichern, und gleichzeitig kann es leicht ausgetauscht werden, unabhängig vom Standort. Computer vereinfachen viele tägliche Aufgaben, und sie ermöglichen es Ihnen, viele Routineprozesse zu automatisieren, die sehr langweilig und langweilig wäre, um eine Person zu tun. Computer können so viel tun, aber trotzdem haben Computer im Gegensatz zum Menschen keine Intelligenz. Um selbst den einfachsten Prozess zu automatisieren, ist es notwendig, einen Computer klar und eindeutig zu sagen, dass es dies tun sollte. Leider sind unsere Sprache und Computersprache völlig anders. Somit gibt es zwischen dem Auto und dem Mann eine ernsthafte Sprachbarriere, die irgendwie überwinden muss, sonst wird der Computer uns nicht verstehen. Und während Computer uns nicht verstehen, werden sie nichts alleine tun. Als Kommunikationsmittel zwischen Mensch und Computer werden eine große Anzahl von Programmiersprachen erfunden. Mit den Programmiersprachen erstellen wir Programme und einen Computer bereits direkt mit Programmen. Die Programme selbst sind Anweisungen, die der Computer verstehen und durchführen kann.

Arten von Programmen

Um effektiv mit dem Computer zu kommunizieren, wollen wir nämlich eine Vielzahl von Programmiersprachen.

Abhängig von der Art des Projekts gibt es viele Faktoren, die bei der Auswahl einer Programmiersprache berücksichtigt werden müssen. Hier ist die Liste der bemerkenswertesten Faktoren:

Kompilierung, Interpretation und JIT-Kompilierung

Der Compilation-Prozess übersetzt den in der Programmiersprache geschriebenen Code in der Muttersprache des Zielgeräts. Das Programm, das diesen Prozess ausführt, wird als Compiler bezeichnet. Die Kompilierung kann den Code zwingen, ganz schnell zu arbeiten, insbesondere wenn der Compiler beim Optimieren wirksam ist. Tatsache ist jedoch, dass der erhaltene Code nicht auf verschiedenen Betriebssystemen funktionieren kann, sowie der Kompilierungsvorgang dauert einige Zeit und desto mehr Code, desto länger der Kompilationsvorgang. Es ist erwähnenswert, dass es bei einigen Änderungen an dem Programmcode verwendet werden muss, um es zusammenzustellen und erst dann zu laufen.

Interpretierbare Programmiersprachen werden von dem Programm mit dem Namen Dolmetscher gelesen und werden von demselben Programm ausgeführt. Interpretierbare Programmiersprachen können auf verschiedenen Betriebssystemen sowie einem Dolmetscher arbeiten und auch keine lange Kompilierungszeit haben. Programme, die jedoch mit interpretierbaren Sprachen in der Regel geschrieben wurden, arbeiten jedoch viel langsamer als gleichwertige, kompilierte Programme.

Schließlich die sogenannte Zusammenstellung auf der Fliege (oder der JIT-Kompilierung). Diese Sprachen werden zum Zeitpunkt des Startens des Programms schnell kompiliert. In JIT-Sprachen geschriebene Programme werden in der Regel nicht optimiert, wodurch der Kompilierungsvorgang beschleunigt und das Gleichgewicht zwischen Produktivität und Querplattform wiederhergestellt wird.

Hohe oder niedrige Programmierstufen

Low-Level-Sprachen, die hauptsächlich direkt mit der Ausrüstung arbeiten, und sind daher am besten zum Schreiben von Gerätetreibern geeignet. Treiber sind Programme, die das Gerät steuern und direkten Zugriff darauf haben. Ein in einer niedrigem Niveau-Sprache geschriebene Programm ist jedoch in der Regel schwierig, auf anderen Plattformen zu portieren. Daher wird für jedes Betriebssystem das Gerät mit verschiedenen Treibern geliefert. Low-Level-Programmiersprachen sind fast immer kompiliert.

In High-Level-Sprachen werden alle Aufmerksamkeit auf das Konzept der Sprache gezahlt. Das heißt, eine solche Programmiersprache sollte leicht zu verstehen sein, beispielsweise, beispielsweise Daten als Arrays, Zeilen, Objekte usw., die hohe Pegelsprache darstellt, ist in der Regel einfacher zu verstehen als eine niedrige Sprache. In der Regel ist es, ein Programm in einer hohen Sprache mit hoher Ebene zu entwickeln, wesentlich einfacher und schneller als in der niedrigen Niveausprache. Wie Sie sehen, sind verschiedene Programmierstufen für völlig andere Aufgaben ausgelegt, und es ist nicht erforderlich, die Funktionalität der mehrstufigen Sprachen zu vergleichen, es ist sinnlos.

Programmiersprachen-Systeme.

Für jede Programmiersprache gibt es eine Spezifikation, die verschiedene Regeln definiert, um den Programmiersprachen zu folgen. In einigen Sprachen gibt es keine Datentypen, daher gilt es nicht für sie. Die meisten Sprachen (einschließlich C ++) haben jedoch Datentypen, daher sind diese Informationen für Sie nützlich.

Starkes oder schwaches Datentypsystem

Ein schwaches Eingabesystem hat keine Einschränkungen, ein Programmierer muss folgen. Das Sprechen eines "schwachen Datensystems" bedeutet ich, dass eine Sprache mit einem solchen Datensystem die verfügbaren verfügbaren Datentypen strikt nicht reguliert. Wenn beispielsweise in der Multiplikationsfunktion anstelle der Nummer, um eine Zeichenfolge oder ein Symbol zu übertragen, werden nicht gestaltete Programmiersprachen einen solchen Code ausführen, obwohl das Ergebnis der Multiplikation eine beliebige Bedeutung verliert, da die Zeichenfolge zum Multiplizieren nicht multipliziert werden kann. Darüber hinaus ist das Ergebnis der Ausführung dieser sinnlosen Multiplikation unvorhersehbar. Wenn die Programmiersprache streng eingegeben wird, wird der Übersetzer bei der Kompilierungsstufe einen Fehler melden und aufhören, das Projekt aufzubauen. Beispielsweise,

// Beispielprogramm für c ++ #include Verwenden von Namespace STD; Int main () (char string \u003d "Beispiel"; int number \u003d 5; cout<< string * number << endl; // умножаем строку на число }

Infolgedessen meldet der Compiler einen Fehler:

fehler: Ungültige Operanden des Typs 'CHAR' und 'INT' an Binär 'Operator *'

Ich werde versuchen, dasselbe in einer nicht streng typisierten Programmiersprache - PHP zu tun. Beachten Sie, dass auch bei der Deklaration von Variablen der Datentyp nicht erforderlich ist.

Das Ergebnis der Ausführung dieses Codes ist Null. Fehler sind nichts passieren, obwohl es die Zeile an der Nummer anscheinend multiplizieren würde, dass es unmöglich ist. Aber in der PHP-Sprache ist alles möglich. Der PHP-Sprachcompiler meldet keinen Fehler, das Skript funktioniert und gibt sogar das Ergebnis aus, und wenn das Programm aus 1000 Codezeilen besteht, ist es für uns schwierig, diesen Fehler zu finden. Dies ist ein helles Beispiel einer Programmiersprache mit einem "schwachen Datentypsystem", dh die Verhinderung solcher absurder Operationen ist vollständig auf den Schultern des Programmierers abgedeckt.

Eindeutiger oder eindefinierbarer Datentyp

Dies gilt sowohl für kompilierte Sprachen als auch für interpretierbare Sprachen. Viele Sprachen erfordern eine explizite Definition der Art der Variablen, daher gibt es keine Unsicherheit, der Compiler und der Dolmetscher wissen eindeutig, was Sie tun sollen. Einige Programmiersprachen erfordern keine explizite Definition der Art der Variablen. Der Datentyp wird entsprechend dem Inhalt der Variablen automatisch ermittelt.

Statischer oder dynamischer Datentyp

Wenn die Sprache statisch eingetippt ist, checkt der Compiler / Dolmetscher den Typencheck einmal vor dem Kompilierungs- / Interpretationsprozess. Wenn der Datentyp dynamisch ist, werden die Datentypen während der Ausführung überprüft.

Sicheres oder unsicheres Datentypsystem

Es gibt Situationen, die zu einem unvorhersehbaren Ergebnis oder einem Fehler führen können. Eine sichere Sprache wird möglichst mehr Einschränkungen eingeführt, so dass solche Situationen nicht auftreten. Während unsichere Sprache auf der ganzen Verantwortung am Programmierer ist.

Diese Faktoren können sowohl ein und mehrere Programmiersprachen charakterisieren.

Unterstützte Paradigmen in der Programmierung

Programmierparadigmen sind Methoden oder Programmiermethoden, die die Programmiersprache unterstützen. Hier ist die Liste der wichtigsten Paradigmen:

Deklaratives Paradigma.

Die deklarative Programmiersprache achtet mehr auf das Ziel und nicht auf das Mittel, um dieses Ziel zu erreichen. Es reicht aus, um anzuzeigen, was es notwendig ist, mit dem, was bedeutet, dass sie nicht verwenden muss. Ein solches Paradigma ermöglicht das Erscheinungsbild unerwünschter Nebenwirkungen, die beim Schreiben ihres eigenen Codes auftreten können.

Funktionsparadigma.

Funktionelle Programmierung ist eine Teilmenge der deklarativen Programmierung, die versucht, Probleme aus der Sicht von mathematischen Gleichungen und Funktionen zu lösen. Funktionelle Programmierung untersucht Variablen und Objekte als Daten, die nicht üblich sind, im Gegensatz zu zwingenden Sprachen.

Generalisiertes Paradigma.

Die generalisierte Programmierung fokussiert auf Schreibalgorithmen in Bezug auf Datentypen, die ermittelt werden. Das heißt, derselbe Algorithmus kann mit verschiedenen Arten von Daten arbeiten. Ein solcher Ansatz kann ein sehr leistungsfähiges Werkzeug sein, aber nur, wenn es gut umgesetzt ist.

Imperatives Paradigma.

Imperativsprachen Erlauben Sie den Programmierern, einen Computer eine bestellte Liste von Anweisungen zu ergeben, die zum Ausführen der Aufgabe erforderlich sind. Imperative Programmiersprachen entsprechen den deklarativen Programmiersprachen.

Strukturelles Paradigma.

Strukturelle Programmiersprachen zielen darauf ab, ein Formular oder einen anderen Code der hierarchischen Struktur bereitzustellen. Wenn die Codestruktur deutlich zu sehen ist, wird die Reihenfolge, in der die Bediener intuitiv durchgeführt werden, intuitiv. Solche Sprachen verurteilen in der Regel "Springen" von einem Teil des Codes zu einem anderen, zum Beispiel an uns alle bekannt, die GOTO-Anweisung ist in C- und C ++ - Sprachen definiert.

Verfahrensparadigm.

Die prozedurale Programmiersprache bezieht sich auf strukturelle Programmiersprachen, die das Verfahren des Verfahrens oder des Unterprogramms unterstützen.

Objektorientiertes Paradigma

Objektorientierte Programmierung (manchmal abgekürzte OOP) ist eine Teilmenge der strukturellen Programmierung, die Programme in Bezug auf "Objekte" ausdrückt. Ein solches Paradigma ermöglicht den Wiederverwendungen des Codes, und dieser Ansatz ist zum Verständnis sehr einfach.

Standardisierung

Haben die Sprachen den offiziellen Standard? Die Standardisierung ist sehr wichtig, um ein konfliktfreies Verständnis des Programms, verschiedene Compiler / Dolmetscher zu gewährleisten. Einige Sprachen sind vom amerikanischen National Institute of Normen (ANSI) standardisiert, andere sind von der internationalen Organisation für Standardisierung (ISO) standardisiert. Alle Programmiersprachen müssen standardisiert sein, andernfalls können Sie das nicht korrekt aushandeln, und was in der Syntax nicht korrekt ist.

Beschreiben Sie die Programmiersprache C ++

Wenn wir nun die grundlegenden Eigenschaften der Programmiersprachen überprüft haben, legen wir fest, welche Faktoren C ++ - Programmiersprache erfüllt.

C ++ ist eine iso-standardisierte Programmiersprache.

Seit einiger Zeit hatte C ++ keinen offiziellen Standard, seit 1998 wurde C ++ vom ISO-Ausschuss standardisiert.

C ++ - kompilierte Sprache.

C ++ ist direkt in den Maschinencode kompiliert, wodurch es einer der schnellsten Sprachen der Welt ist.

C ++ ist streng eingegebene Sprache.

C ++ impliziert, dass der Programmierer weiß, was er weiß, und ermöglicht eine unglaubliche Anzahl von Möglichkeiten, nur von Fantasie beschränkt zu sein.

C ++ unterstützt statische und dynamische Datentypen.

Somit können die Prüfung von Datentypen während der Zusammenstellung oder während der Ausführung durchgeführt werden. Und dies beweist erneut die Flexibilität von C ++.

C ++ unterstützt viele Paradigmen.

C ++ unterstützt prozedurale, verallgemeinerte und objektorientierte Programmierparadigmen und viele andere Paradigmen.

C ++ ist eine tragbare Programmiersprache.

Als eine der am häufigsten verwendeten Sprachen der Welt, und als offene Sprache verfügt C ++ über eine Vielzahl von Compilern, die auf verschiedenen Plattformen arbeiten. Der C ++ - Standard-Bibliothekscode funktioniert auf vielen Plattformen.

C ++ ist voll kompatibel mit der SI-Sprache

In C ++ können Sie die CI-Bibliothek verwenden und ordnungsgemäß funktionieren.

In diesem Artikel wird die SCANF () -Funktion in der allgemeinen Form ohne Bezugnahme auf einen bestimmten Standard berücksichtigt, so dass Daten aus allen Normen C99, C11, C ++ 11, C ++ 14 enthalten. Vielleicht arbeitet die Funktion in einigen Standards mit Unterschieden aus dem in dem Artikel dargelegten Material.

SCANF C-Funktion - Beschreibung

scanf () ist eine Funktion, die sich in der Header-Datei stdio.h (c) befindet, und CSTDIO (C ++), wird auch der formatierte Dateneintrag in das Programm bezeichnet. Scanf liest Zeichen aus dem Standardeingabestrom (stdin) und konvertiert sie entsprechend dem Format, wonach er in die angegebenen Variablen schreibt. Das Format bedeutet, dass die Daten während der Zulassung einem bestimmten Typ angegeben werden. Somit beschreibt die Scanf C-Funktion:

sCANF ("% Format" & Variable1 [, & Variable2, [...]]),

wo Variablen in Form von Adressen übertragen werden. Der Grund für diese Methode zur Übertragung von Variablen an die Funktion ist offensichtlich: Infolge der Arbeit gibt es einen Wert, der angibt, dass Fehler angibt, so dass der einzige Weg, die Werte der Variablen zu ändern, die Übertragung an die Adresse. Dank dieser Methode kann die Funktion auch Daten jeder Typen verarbeiten.

Einige Programmierer sind auf die Analogie mit anderen Sprachen-Anruffunktionen wie Scanf () oder Printf (), Prozeduren zurückzuführen.

Durch den Scanf können Sie alle grundlegenden Sprachearten eingeben: char, int, float, string usw. Im Falle von Variablen, String-Typ Es ist nicht erforderlich, das Adresszeichen anzugeben - "&", da die Variable des String-Typs ein Array ist, und sein Name ist die Adresse des ersten Array-Elements im Speicher des Computers.

Dateneingabeformat oder Steuerungszeichenfolge

Beginnen wir mit Beginn der Verwendung der SCANF C-Funktion aus der Beschreibung.

#Einschließen. Int main () (int x; während (scanf ("% d", & x) \u003d\u003d 1) druckf ("% d \\ n", x); zurückgeben 0; // Anforderung Linux-Systeme)

Das Eingabeformat besteht aus den folgenden vier Parametern:% [*] [Breite] [Modifikatoren]. In diesem Fall sind das Zeichen "%" und Typ obligatorische Parameter. Das heißt, die Mindestansicht des Formats lautet wie folgt: "% s", "% d" und so weiter.

Im Allgemeinen sind die Zeichen, die die Formatzeichenfolge ausmachen, unterteilt in:

  • formatierungsdarsteller - alles, was aus dem% -Symbol gelesen wird;
  • trenn- oder Raumzeichen - sie werden als Leerzeichen, Registerkarte (\\ t), eine neue Zeile (\\ n) angesehen.
  • symbole, die sich vom Rohling unterscheiden.

Die Funktion kann unsicher sein.

Verwenden Sie anstelle von scanf () der scanf_s () -Funktion.

(Nachricht aus Visual Studio)

Typ- oder Format-Anzeigen oder Konvertierungsliterer oder Controlling-Zeichen

Beschreibung SCANF C ist verpflichtet, mindestens einen Format-Spezifizierer enthalten, der am Ende der Ausdrücke angegeben wird, die mit dem "%" -Zeichen beginnt. Es sagt, dass das Datentypprogramm beim Eintritt in der Regel von der Tastatur erwartet wird. Die Liste aller Formateinheiten in der nachstehenden Tabelle.

Wert

Das Programm erwartet, um ein Symbol einzugeben. Die Aufzeichnungsvariable muss ein Symboltyp-Zeichen haben.

Das Programm erwartet den Eingang einer Dezimalzahl eines ganzen Typs. Die Variable muss ein Typ Int sein.

Das Programm erwartet einen Eingang eines Fließkomma (Komma) in einem exponentiellen Formular. Die Variable muss eine Art Float haben.

Das Programm erwartet eine Eingabe eines Fließkomma (Semikolon). Die Variable muss eine Art Float haben.

7

Das Programm erwartet eine Eingabe eines Fließkomma (Semikolon). Die Variable muss eine Art Float haben.

Das Programm erwartet den Eingang der Oktalnummer. Die Variable muss ein Typ Int sein.

Das Programm wartet auf die Eingabe der Zeile. Die Zeichenfolge gilt als ein Satz von Zeichen an das erste aufgetretene Trennsymbol. Die Variable muss einen String-Typ haben.

Das Programm erwartet, eine Hexadezimalzahl einzugeben. Die Variable muss ein Typ Int sein.

Die Variable erwartet den Zeiger ein. Die Variable muss einen Zeigertyp haben.

Es schreibt an eine Variable einen ganzzahligen Wert, der der Anzahl der Zeichen in dem aktuellen Moment durch die SCANF-Funktion entspricht.

Das Programm liest eine vorzeichenlose Ganzzahl. Die Art der Variablen muss eine vorzeichenlose Ganzzahl sein.

Das Programm erwartet eine Binärzahl. Die Variable muss ein Typ Int sein.

Set gescannte Zeichen. Das Programm erwartet, dass Sie Zeichen eingeben, von einem begrenzten Pool, der zwischen Scanf angegeben ist, funktioniert, bis der Eingangsgewinde vom angegebenen Satz stammt.

Symbole in der Formatzeichenfolge

Sternsymbol (*)

Ein Sternchen (*) ist ein Flag, das anzeigt, dass der Zuweisungsvorgang unterdrückt werden muss. Das Asterisk wird unmittelbar nach dem "%" -Zeichen gesetzt. Beispielsweise,

Scanf ("% d% * c% d", & x, & y); // Ignorieren Sie den Charakter zwischen zwei Ganzzahlen. Scanf ("% s% * d% s", str, str2); // Ignorieren Sie eine ganze Zahl zwischen zwei Zeilen.

Das heißt, wenn Sie die Zeichenfolge "45-20" in die Konsole eingeben, führt das Programm Folgendes aus:

  1. Die Variable "x" wird 45 zugewiesen.
  2. Die Variable "y" wird 20 zugeordnet.
  3. Und das Minuszeichen (dash) "-" wird dank "% * C" ignoriert.

Breite (oder Feldbreite)

Dies ist eine Ganzzahl zwischen dem Zeichen "%" und dem Format-Spezifizierer, das die maximale Anzahl von Zeichen zum Lesen für den aktuellen Lesevorgang bestimmt.

Es sollte in mehreren wichtigen Punkten berücksichtigt werden:

  1. scanf hört seine Arbeit auf, wenn Sie auf ein Trennzeichen stoßen, auch wenn Sie nicht 20 Zeichen zählen.
  2. Wenn auf den Eingang mehr als 20 Zeichen angewendet werden, werden nur die ersten 20 von ihnen in die Str-Variable aufgezeichnet.

Typ-Modifikatoren (oder Genauigkeit)

Dies sind spezielle Flaggen, die die Art der Daten ändern, die erwartet werden sollen. Das Flag ist links vom Typ des Typs angegeben:

  • L oder l (klein l) Wenn "l" mit den Anzeigen d, i, o, u, x verwendet wird, meldet das Flag das Programm, an dem die Daten in die Art von Long Int eintreten möchten. Bei Verwendung von "l" mit dem E- oder F-Spezifizierer meldet das Flag das Programm, dass er den Wert des doppelten Wertes erwarten sollte. Mit "L" informiert das Programm, dass der Wert langer doppelter Typ erwartet wird. Mit "l" mit den Angaben "C" und "S" weist das Programm an, dass Double-Byte-Symbole des Typs WCHAR_T erwartet werden. Zum Beispiel "% lc", "% ls", "% l".
  • h ist die Flagge, die auf die Art der Kurzart zeigt.
  • hH - zeigt an, dass die Variable ein Zeiger auf einen Wert des Typs von Typ Sigged char oder unsigniert ist. Die Flagge kann mit den Angaben D, I, O, U, X, N verwendet werden.
  • ll (zwei kleine L) - zeigt an, dass die Variable ein Zeiger auf den Wert des unterschriebenen int-ordierten langen Long Int ist. Die Flagge wird mit den Anzeigen verwendet: D, I, O, U, X, N.
  • j - zeigt an, dass die Variable ein Zeiger auf den Typ INTMAX_T oder UINTMAX_T von der Header-Datei stdint.h ist. Wird mit Angaben verwendet: D, I, O, U, X, N.
  • z - Zeigt an, dass die Variable ein Zeiger auf dem Type_t-Typ ist, deren Definition in stddef.h ist. Wird mit Angaben verwendet: D, I, O, U, X, N.
  • t - Zeigt an, dass die Variable ein Zeiger auf den Typ PTRDIFF_T ist. Die Definition dieses Typs ist in stddef.h. Wird mit Angaben verwendet: D, I, O, U, X, N.

Ein expliziter Bild mit Modifikatoren kann als Tabelle dargestellt werden. Eine solche Beschreibung von scanf c für Programmierer ist klarer.

Verbleibende Symbole

Alle Zeichen, die im Format aufgetreten sind, werden verworfen. Es sei darauf hingewiesen, dass das Vorhandensein in der Steuerleiste des Raum- oder Trennsymbols (die neue Zeile, Raum, Registerkarte) zu einem unterschiedlichen Verhalten der Funktion führen kann. In einer Version von scanf () wird gelesen, ohne eine beliebige Anzahl von Separatoren zu speichern, bis sich das Symbol vom Separator unterscheidet, und in anderen Versionen (nur sie) spielt nicht die Rollen und den Ausdruck "% d +% d "Äquivalent"% d +% d ".

Beispiele

Betrachten Sie eine Reihe von Beispielen, mit denen Sie das Funktionieren der Funktion widerspiegeln und genauer verstehen können.

SCANF ("% 3S", STR); // Wenn Sie die Zeichenfolge "1D2S3D1; 3" in die Konsole eingeben, wird nur "1D2" SCANF ("% dminus% d d", & x & y) in str; // "minus" Zeichen zwischen den beiden Zahlen werden dekoriert ("% 5", str); // Eingabe von Zeichen in STR erfolgen, bis sie 5 und Symbole sind Zahlen von 0 bis 9. SCANF ("% lf" & d); // Doppelte Scanf-Typ werden erwartet ("% HD", & X); // Die Anzahl des Typs Scanf wird erwartet ("% HU", & Y); // Die Anzahl des nicht signierten kurzen Scanf-Typs wird erwartet ("LX", & Z); // Anzahl des Typs Long Int

Aus den obigen Beispielen ist ersichtlich, wie die erwartete Anzahl mit verschiedenen Zeichen ändert.

sCANF C - Beschreibung für Anfänger

Dieser Abschnitt wird für Neuankömmlinge nützlich sein. Sie müssen oft nicht so viel eine vollständige Beschreibung von Scanf C haben, wie viele Details der Funktion.

  • Die Funktion ist teilweise veraltet. Es gibt verschiedene Implementierungen in Bibliotheken verschiedener Versionen. Beispielsweise die verbesserte SCANF S C-Funktion, deren Beschreibung auf der Microsoft-Website gefunden werden kann.
  • Die Anzahl der Anzeichen im Format muss der Anzahl der übertragenen Argumentfunktionen entsprechen.
  • Die Elemente des Eingangsstroms sollten nur durch Teilen von Symbolen getrennt werden: ein Leerzeichen, eine Registerkarte, eine neue Zeichenfolge. Komma, Punkt mit Komma, Punkt usw. - Diese Zeichen sind nicht für die SCANF () -Funktion unterteilt.
  • Wenn Scanf das Teilensymbol erfüllt, wird der Eingang angehalten. Wenn die Variablen zum Lesen von mehr als einem eins, wechselt das Scanf, um die folgende Variable zu lesen.
  • Die geringste Inkonsistenz des Eingabedatenformats führt zu unvorhersehbaren Ergebnissen des Programms. Nun, wenn das Programm einfach mit einem Fehler abgeschlossen ist. Aber oft funktioniert das Programm weiter und tut es falsch.
  • scanf ("% 20s ...", ...); Wenn der Eingangsablauf 20 Zeichen überschreitet, liest Scanf die ersten 20 Zeichen und stoppt die Arbeit oder wird die folgende Variable gelesen, wenn sie angegeben ist. Gleichzeitig lissiert der nächste Scanf-Anruf weiterhin den Eingabestrom von dem Ort, an dem der Betrieb des vorherigen Scanf-Anrufs angehalten wurde. Wenn beim Lesen der ersten 20 Zeichen das Trennzeichen auftritt, wird der SCANF seinen Betrieb stoppen oder die folgende Variable gelesen, auch wenn 20 Zeichen nicht für die erste Variable gezählt wurden. In diesem Fall werden alle ungebundenen Symbole auf die nächste Variable zurückgeordnet.
  • Wenn der Satz von gescannten Zeichen vom "^" -Zeichen beginnt, las Scanf die Daten, bis das Separator-Symbol oder das Zeichen vorgenommen wird. Beispielsweise lese "% [^ A-E1-5]" Daten aus dem Strom, bis eine der Zeichen des englischen Alphabets von A bis E im Großbuchstaben oder einer der Zahlen von 1 bis 5 erfüllt ist.
  • Die SCANF C-Funktion, um zu beschreiben, gibt eine Zahl zurück, die einer erfolgreichen Anzahl von Datensätzen in Variablen entspricht. Wenn Scanf 3 Variablen schreibt, ist das Ergebnis des erfolgreichen Betriebs der Funktion die Renditenummer 3. Wenn Scanf keine einzige Variable schreiben konnte, ist das Ergebnis 0. und schließlich, wenn Scanf aus irgendeinem Grund nicht funktionieren konnte Das Ergebnis wird überhaupt EF sein..
  • Wenn die SCANF () -Funktion ihre Arbeit falsch abgeschlossen hat. Beispielsweise, scanf ("% d", & x) - eine Zahl erwartet, und Symbole kamen an den Eingang. Der nächste Anruf von Scanf () wird seine Arbeit von der Stelle in dem Eingabestrom beginnen, wobei die vorherige Funktion abgeschlossen ist. Um dieses Problem zu überwinden, müssen Sie Problemsymbole loswerden. Dies kann beispielsweise durch Anrufen von Scanf ("% * S") erfolgen. Das heißt, die Funktion leuchtet die Zeichenfolge und werfen ihn ab. Eine solche knifflige Weise kann weiterhin die erforderlichen Daten eingeben.
  • In einigen Implementierungen von scanf () in der Menge gescannter Zeichen ist die Verwendung von "-" inakzeptabel.
  • Der Spezifizierer "% C" liest jedes Flow-Symbol. Das heißt, das Symbol liest auch. Um das Separator-Symbol zu überspringen und das gewünschte Zeichen weiter zu lesen, können Sie "% 1S" verwenden.
  • Bei Verwendung des "C" -Stitrierers ist es zulässig, die Breite "% 10c" zu verwenden, jedoch müssen Sie als variable Scanf-Funktion ein Array von Zeichenelementen übertragen.
  • "%" Bedeutet "alle kleinen Buchstaben des englischen Alphabets", und "%" bedeutet einfach 3 Zeichen: 'Z', 'A', '-'. Mit anderen Worten, das Symbol "-" bedeutet den Bereich nur, wenn es zwischen zwei Zeichen liegt, die sich in der richtigen Reihenfolge befinden. Wenn "-" am Ende des Ausdrucks, am Anfang oder in einer falschen Reihenfolge der Zeichen auf beiden Seiten ist, dann ist es nur ein Symbol für Bindestrich, kein Reichweite.

Fazit

Damit ist die Beschreibung von SCANF C abgeschlossen. Dies ist ein gutes, bequemes Merkmal für die Arbeit in kleinen Programmen und bei Verwendung einer prozeduralen Programmiermethode. Der Hauptnachteil ist jedoch die Anzahl unvorhersehbarer Fehler, die bei der Verwendung von ScanF auftreten können. Daher wird die Beschreibung von SCANF C, wenn die Programmierung am besten vor Ihren Augen aufbewahrt wird. In großen Berufsprojekten werden IOSTREAM-Ströme verwendet, da sie auf höhere Fähigkeiten mit höherer Ebene verfügen, es ist besser, Fehler zu fangen und zu verarbeiten sowie mit erheblichen Informationen zu arbeiten. Es ist auch zu beachten, dass die Beschreibung von SCANF C in Russisch auf dem Netzwerk viele Quellen verfügbar ist, sowie Beispiele für ihre Verwendung aufgrund des Alters der Funktion. Daher können Sie ggf. immer eine Antwort auf thematische Foren finden.

1. Einleitung

Die Programmierung benötigt neue universelle algorithmische Modelle, und die Hardware bedeutet Algorithmen nicht nur in einer anderen Form, sondern auch auf der Grundlage eines anderen algorithmischen Modells - automatisch. Kredite-Technologie aus dem Umfang der Hardwareentwicklung Schlüsselidee der automatischen Programmierung. Eine der Synthese digitaler Geräte unterscheidet sich von der Programmierung. Aber das Modell leidet dazu, einerseits nicht wünschenswert, sich erheblich zu ändern, und dagegen ist es unmöglich, die bestehende Theorie und der Praxis der Programmierung nicht berücksichtigen zu können.

Als Nächstes werden wir die Schaltertechnologie des Designs von automatischen Pro-Gramm ansehen, in dem mit solchen Prozessen rechts und in der Nähe kommen. Einerseits änderte sie das Modell des letzten Automaten, der es tatsächlich über den Rahmen der Automatentheorie hinaus brachte. Und dagegen stellt es die Konzepte ein, die kaum von Programmierern wahrgenommen werden, und manchmal sind einfach überflüssig, weil Es gibt mehr bekannte Kollegen aus der Theorie der Programmierprogramme und -praxis.

Als Grundlage für die Diskussion der Probleme der automatischen Programmierung werden wir einen kürzlichen Vortrag von SHYTO A.A annehmen. und seine "Software" -Produkte zur Bestimmung des Paradigmens der automatischen Programmierung.

C ++ - Programmiersprache

Letzte Aktualisierung: 25.08.2017

C ++ - Programmiersprache ist eine hochrangige, kompilierte Programmiersprache für allgemeine, mit statische Tippen, die zum Erstellen einer Vielzahl von Anwendungen geeignet ist. Bis heute ist C ++ eine der beliebtesten und gemeinsamen Sprachen.

Er ist im Laufe von SI verwurzelt, der 1969-1973 in der Firma Bell Labs Programmer Dennis Ritchie (Dennis Ritchie) entworfen wurde. In den frühen achschen 1980er Jahren entwickelte der dänische Programmierer Byrin Sturastrup (Bjarne Strorustrup), der zu dieser Zeit in Bell Labs arbeitete, C ++ als Erweiterung der SI-Sprache entwickelte. In der Tat ergänzt zunächst C ++ die Sprache der SI einige Funktionen der objektorientierten Programmierung. Daher rief der Sturastrup selbst er erst als "C mit Klassen" ("C-Klassen") an.

Anschließend begann eine neue Sprache, Popularität zu erhalten. Es fügte neue Funktionen hinzu, die es nicht nur eine Ergänzung zu Si, sondern eine völlig neue Programmiersprache machten. Infolgedessen wurde "C-Klassen" umbenannt C ++. Und mit denen auf beiden Sprachen begann sich unabhängig voneinander zu entwickeln.

C ++ ist eine leistungsstarke Sprache, die die reichen Möglichkeiten zum Arbeiten mit Erinnerung erbt. Daher findet häufig C ++ seine Verwendung in der systemischen Programmierung, insbesondere beim Erstellen von Betriebssystemen, Treibern, verschiedenen Dienstprogrammen, Antiviren usw. Unterwegs ist Windows meistens auf C ++ geschrieben. Eine systemische Programmierung ist jedoch nicht auf die Verwendung dieser Sprache beschränkt. C ++ kann in Programmen aller Niveau verwendet werden, in denen Arbeitsgeschwindigkeit und Leistung wichtig sind. Es wird häufig aufgetragen, um grafische Anwendungen, verschiedene Anwendungsprogramme zu erstellen. Es wird auch besonders verwendet, um Spiele mit reicher gesättigter Visualisierung zu erstellen. In letzter Zeit gewinnt in letzter Zeit eine mobile Richtung einen Schritt, wobei C ++ auch seine Anwendung gefunden hat. Und selbst in der Webentwicklung können Sie auch C ++ verwenden, um Webanwendungen oder einige Tochterdienste zu erstellen, die einer Webanwendung dienen. Im Allgemeinen ist C ++ eine weite Verwendungsprache, auf der Sie praktisch jegliche Arten von Programmen erstellen können.

C ++ ist eine kompilierte Sprache, dh der Compiler transliniert den Quellcode auf C ++ in die ausführbare Datei, die einen Satz von Maschinenanweisungen enthält. Unterschiedliche Plattformen haben jedoch ihre eigenen Merkmale, sodass kompilierte Programme nicht einfach von einer Plattform in einen anderen übertragen und bereits dort laufen. Auf der Ebene des Quellcodes des C ++ - Programms wird es jedoch durch Portabilität toleriert, wenn keine funktionsspezifischen Funktionen verwendet werden. Durch die Anwesenheit von Compilern, Bibliotheken und Entwicklungstools in nahezu allen gängigen Plattformen können Sie denselben Quellcode auf C ++ in den Anwendungen dieser Plattformen kompilieren.

Im Gegensatz dazu ermöglicht die C ++ -Suite-Sprache, Anwendungen in einem objektorientierten Stil zu schreiben, was das Programm als Set von interagierenden Klassen und Objekten darstellt. Was vereinfacht die Schaffung großer Anwendungen.

Die Hauptstufen der Entwicklung

1979-80 entwickelte BYRIN STURASTRUP eine Erweiterung der SI-Sprache - "C-Klassen". 1983 wurde die Sprache C ++ umbenannt.

1985 wurde die erste kommerzielle Version der C ++ - Sprache sowie die erste Ausgabe des Buches "C ++-Programmiersprache" veröffentlicht, die die erste Beschreibung dieser Sprache in Abwesenheit eines offiziellen Standards darstellte.

1989 wurde eine neue Version von C ++ 2.0 freigegeben, die eine Reihe neuer Funktionen enthielt. Danach entwickelte sich die Sprache bis 2011 relativ langsam. Im Jahr 1998 wurde jedoch der erste Versuch unternommen, die ISO-Sprache (internationale Organisation für die Standortisierung) zu standardisieren. Der erste Standard wurde ISO / IEC 14882: 1998 genannt oder C ++ 98 abgekürzt. Später im Jahr 2003 wurde eine neue Version von C ++ 03 veröffentlicht.

Im Jahr 2011 wurde ein neuer C ++ 11-Standard veröffentlicht, der viele Ergänzungen enthielt und die Sprache von C ++ eine große Anzahl neuer Funktionen angereichert hat. Danach wurde 2014 eine kleine Ergänzung zu der Norm, die als C ++ 14 bekannt ist, freigesetzt. Eine weitere Schlüsselveröffentlichung der Sprache ist für 2017 geplant.

Compiler und Entwicklungsumgebungen

Um Programme auf C ++ zu entwickeln, ist ein Compiler erforderlich - es übersetzt den Quellcode in der C ++ - Sprache in die ausführbare Datei, die dann gestartet werden kann. Aber im Moment gibt es so viele verschiedene Compiler. Sie können sich insbesondere in verschiedenen Aspekten unterscheiden, insbesondere bei der Umsetzung von Standards. Die grundlegende Liste von Compilern für C ++ ist in Wikipedia zu finden. Es wird empfohlen, die Entwicklung dieser Compiler zu wählen, die alle neuesten Standards entwickeln und umsetzen. Im gesamten Handbuch wird der kostenlose G ++ - Compiler überwiegend verwendet, der innerhalb des GNU-Projekts entwickelt wurde.

Um Programme zu erstellen, können Sie auch die integrierten IDE-Entwicklungsumgebungen wie Visual Studio, NetBeans, Eclipse, Qt usw. verwenden.

Fortsetzung des Themas:
W-lan

Zu wissen, warum das Telefon erhitzt wird, kann der Benutzer versuchen, seine Temperatur zu reduzieren. Dies wird dazu beitragen, eines der häufigsten Probleme zu lösen - obwohl er damit konfrontiert ist ...