Schleifen mit einem Parameter. Programmierung

Ausdruck1 und in Ausdruck2- Anfangs- und Endwert des Zyklusparameters.

Die Aktion eines Schleifenoperators vom Typ to (direktes Zählen):

2. Die Bedingung wird geprüft: Ist der Wert der Variablen größer als der Wert von Ausdruck2?

3. wenn ja, dann stoppt der Zyklus; Wenn nicht, wird die Anweisung ausgeführt, der Wert der Variablen um eins erhöht und die Aktion ab Punkt 2 wiederholt.

Die Aktion des Schleifenoperators vom Typ downto (Countdown):

1. der Variablen wird der Wert von expression1 zugewiesen;

2. Die Bedingung wird geprüft: Ist der Wert der Variablen kleiner als der Wert von Ausdruck2?

3. wenn ja, dann stoppt der Zyklus; Wenn nicht, wird die Anweisung ausgeführt, der Wert der Variablen um eins verringert und die Aktion ab Punkt 2 wiederholt.

Regeln:

1. Loop-Parameter kann nur eine ganzzahlige Variable sein.

2. Zyklusparameter kann im Schleifenkörper nicht explizit geändert werden.

Zum Beispiel:

für i:=1 bis 10 tun

ich:=i+1; (falsch)

3. Der Schleifenschritt kann nur gleich +1 (Schleife mit to) oder -1 (Schleife mit downto) sein.

4. Nach allgemeiner Auffassung sollte der Schleifenkörper aus einem Operator bestehen, bei mehreren Operatoren verwenden wir einen zusammengesetzten Operator und Operatorklammern begin..end;.

5. Die Schleife darf nicht einmal ausgeführt werden.

Übung: Schreiben Sie ein Flussdiagramm und ein Programm, um den Durchschnittswert von n über die Tastatur eingegebenen Zahlen zu berechnen.

var i,n: ganze Zahl; x,s: reell;

write('Geben Sie die Anzahl der Zahlen ein');

für i:=1 bis n tun

write('Nummer eingeben',i);

writeln('Average =',s/n);

Schleifenanweisung mit Vorbedingung (while)

Operator while-Schleife ist ein Schleifenoperator mit einer bisher unbekannten Anzahl von Wiederholungen.

Generelle Form:

while Boolescher Ausdruck do statement;

Boolescher Ausdruck ist eine Bedingung für die Fortsetzung der Schleife.

Operator

Bedieneraktion:

1. ein logischer Ausdruck wird berechnet;

2. wenn es wahr ist, dann wird die Anweisung ausgeführt, danach werden alle Aktionen ab Punkt 1 wiederholt;

3. wenn der logische Ausdruck falsch ist, wird die Schleife beendet.

Regeln:

1. Der Schleifenkörper sollte nur aus einer Anweisung bestehen, wenn es mehrere davon gibt, verwenden wir eine zusammengesetzte Anweisung.

2. Da die Bedingung am Anfang der Schleife geprüft wird, darf die Schleife nicht einmal ausgeführt werden.

3. Damit der Zyklus nicht unendlich wird, müssen sich die im logischen Ausdruck enthaltenen Werte im Körper des Zyklus ändern.

Zum Beispiel:

während ein<100 do

Übung. Schreiben Sie ein Blockdiagramm und ein Programm, das eine Tabelle mit Funktionswerten berechnet und druckt.

var x,xn,xk,y,h: real;

writeln("Startwert, Endwert x eingeben und Schritt x ändern");

writeln("| x | y |");

während x<=xk do

writeln("|",x:7:2,"|",y:7:2,"|");

Schleifenoperator mit Nachbedingung (loop repeat..until).

Schleifenoperator repeat..until ist eine Schleifenanweisung mit einer vorgegebenen Anzahl von Wiederholungen.

Generelle Form:

Operatoren;

bis boolescher Ausdruck;


Die Aktion des Schleifenoperators repeat..until:

Die Anweisungen im Schleifenkörper werden ausgeführt, solange der Wert des logischen Ausdrucks FALSE ist; Sobald der boolesche Ausdruck TRUE ergibt, wird die Ausführung der Schleifenanweisung beendet.

Regeln:

1. Der Schleifenkörper wird immer mindestens einmal ausgeführt, da die Bedingung am Ende der Schleife steht.

2. Es besteht keine Notwendigkeit für eine zusammengesetzte Anweisung in dieser Schleifenanweisung, alle Anweisungen im Schleifenkörper sind auf die Schlüsselwörter repeat..until beschränkt.

Übung. Schreiben Sie ein Flussdiagramm und ein Rechenprogramm .

Programm rep_unt;

varn,k,s: ganze Zahl;

schreiben ("Geben Sie k ein");

write("Summe gleich ",s);

Datenarrays

Reihe ist eine Sammlung geordneter Daten, die den gleichen Namen und Typ haben und sich durch eine Nummer (Index) voneinander unterscheiden. Arrays sind eindimensional und mehrdimensional. Array-Beispiele:

2 5 –15 10 20 – ganzzahliges Array aus 6 Elementen;

2,3 9 2,45 4,78 5,32 – Array vom Typ Real mit 5 Elementen;

Ivanov Ivan Ivanovich - eine Reihe von Zeichen aus 20 Elementen;

Gesamtansicht der Beschreibung eindimensionaler Arrays:

var Array-Name: Array[Index-Startwert.. Index-Endwert] vom Typ;

wo anfänglicher Indexwert und Index-Endwert- Ganzzahlwerte, die den Bereich des Array-Index angeben.

Zum Beispiel:

var Vektor: Array von Real;

Allgemeine Beschreibung mehrdimensionaler Arrays:

var Array-Name: Array[Startwert des Index.. Endwert des Index, ... , ...] von<тип>;

Zum Beispiel:

Varmatrix: Array von ganzen Zahlen; - Beschreibung einer 3´5-Matrix.

Zugriff auf Array-Elemente.

Sie können auf die Elemente eines Arrays zugreifen, indem Sie seinen Namen angeben und in eckigen Klammern (bei mehrdimensionalen Arrays durch Kommas getrennt) die Werte seines Indexes auflisten.

Als solche Indizes können nur konstante ganzzahlige Werte verwendet werden.

Zum Beispiel:

a[i], b, v1, a

DATENBANK

Datenbankkonzept

Computer wurden ursprünglich entwickelt, um Probleme zu lösen Rechenaufgaben Im Laufe der Zeit wurden sie jedoch zunehmend zum Bauen verwendet Dokumentenverarbeitungssysteme oder besser gesagt, die Informationen, die sie enthalten. Solche Systeme werden genannt informativ. Ein Beispiel sind die Systeme Bilanzierung des im Unternehmen geleisteten Arbeitsvolumens, Lohn-und Gehaltsabrechnung, Buchhaltung für Produkte auf Lager, Buchhaltungsbücher in der Bibliothek usw.

Von solcher Art Informationssystem erfordert die Erstellung im Computerspeicher dynamisch aktualisiert betrachtetes Modell Fachbereich Verwendung eines einzigen Repositorys - Datenbank (DB). Fachbereich - ein Teil der realen Welt, der untersucht werden muss, um die Steuerung und schließlich die Automatisierung zu organisieren. Jeder Fachbereich enthält eine Kombination aus Objekte. Gruppen davon Objekte, von einigen vereint Gruppierungsfunktion, allgemein genannt Entitäten . Wenn wir beispielsweise über die Buchhaltung von Produkten in einem Lager sprechen, können wir die Entitäten auswählen " Produkt", "Käufer", "Frachtbrief". Objekte werden ihre konkreten Repräsentanten sein, zum Beispiel Zucker, JSC "Gefest", Rechnung Nr. 252.

Datenbank - ist eine Sammlung von Informationen über real Objekte, Prozesse oder Phänomene bezogen auf ein bestimmtes Fachbereich, die so organisiert sind, dass sie eine bequeme Darstellung (Zugriff, Anzeige) dieser Sammlung sowohl als Ganzes als auch als Teil davon bieten.

Informationsspeicher in Datenbank sind Tische , die jeweils Informationen zum gleichen Typ enthalten Objekte(kombiniert Gruppierungszeichen) bilden Wesen. Jeder Linie Tische enthält Informationen über einen Objekt, Beispiel Entitäten(zum Beispiel, Waren, Käufer, Overhead), a Säulen Tische enthalten verschiedene Eigenschaften dieser Objekte - Attribute (zum Beispiel, Produktnamen, Käufernamen und Rechnungsnummern).

In Bezug auf Datenbanken Linien Tabellen aufgerufen werden Aufzeichnungen , und sie SäulenFelder . Alle Aufzeichnungen haben die gleiche Struktur - sie bestehen aus dem gleichen Felder , die unterschiedliche Werte speichern Attribute Objekt. Jeder Rekordfeld enthält ein Merkmal Objekt und hat eine streng definierte Datentyp(z. B. Textzeichenfolge, Zahl, Datum). Alle Datensätze in einer Tabelle haben das gleiche Felder, nur enthalten sie unterschiedliche Werte Attribute.

Vor der Eingabe von Daten in Tische, ist es notwendig, zu bestimmen Struktur diese Tische. Dies ist die Beschreibung Artikel und Feldtypen, sowie eine Reihe anderer Merkmale (z. Feldgröße, Eingabevalidierungskriterien). Ein Beispiel für die Definition der Struktur der Kundentabelle ist in Abbildung 8.1 dargestellt.

Die Struktur der Tabelle „Kunde“.

Jenseits der Beschreibung Strukturen Tabellen in einem ziemlich komplexen Datenbank bestimmt werden Verbindungen zwischen Tischen. Verbindung ist eine Assoziation zwischen zwei Tische. Beispielsweise können die Angaben zum Kunden in der vorherigen Tabelle um eine weitere Tabelle „Warenausgang“ ergänzt werden.

Eine solche Datenbank genannt relational(aus Beziehung Verbindung, Beziehung). Relationale Datenbank ist eine Reihe von miteinander verbundenen Tische, die jeweils Informationen über enthalten Objekte eine bestimmte Art.

Links ein relationale Datenbanken werden durch die Koinzidenz von Werten bestimmt Felder in verschiedenen Tabellen. Es werden die Felder aufgerufen, über die eine Beziehung zwischen Tabellen hergestellt wird Kommunikationsfelder . Im gegebenen Beispiel dies aufstellen"Käufername".

Abhängig von der Art der darin enthaltenen Informationen Tische Datenbanken, kann es drei Hauptarten von Verknüpfungen zwischen ihnen geben: eins zu vielen, eins zu eins, viel zu viel.

Attitüde eins zu vielen wird zwischen Tabellen gesetzt, falls ein Datensatz eingeht elterlich Tochtergesellschaft Tisch. Im obigen Beispiel wird eine solche Beziehung zwischen den Tabellen „Kunde“ und „Warenausgang“ hergestellt.

Attitüde eins zu eins erfolgt bei einmaliger Eingabe elterlich Tabelle entspricht höchstens einem Datensatz in Tochtergesellschaft Tisch.

Im Falle einer Beziehung viel zu viel ein Eintrag hinein elterlich Eine Tabelle kann beliebig viele Einträge enthalten. Tochtergesellschaft Tisch und umgekehrt.

Beziehungen Tische interagieren gem Heimat(Meister)- untergeordnet(Detail). In unserem Beispiel ist die Tabelle „Kunde“ − Heimat, und die Tabelle "Warenfreigabe" - untergeordnet. Heim Tabelle wird auch oft als bezeichnet elterlich, a untergeordnetTochtergesellschaft. Dasselbe Tisch kann sein hauptsächlich im Verhältnis zu einem Tisch Datenbanken u Tochtergesellschaft im Verhältnis zum anderen.

Datenbankverwaltungssysteme (DBMS). Einstufung

Wird verwendet, um mit Daten zu arbeiten Datenbankmanagementsysteme (DBMS). DBMS - Hierbei handelt es sich um Softwaretools, die dazu bestimmt sind, Daten zu definieren (die Struktur von Datenbanken zu beschreiben - Tabellen, Beziehungen), Daten zu verarbeiten und zu verwalten. Beispiele für DBMS - FoxPro, Oracle, SQL-Server, Delphi, dBase, Clipper, MS Access usw.

Es gibt drei Haupttypen von DBMS: industrieller universeller Zweck, industrieller Sonderzweck und für einen bestimmten Kunden entwickelt (kundenspezifisch).

Spezialisiertes DBMS werden erstellt, um Datenbanken für einen bestimmten Zweck zu verwalten - Buchhaltung, Lager, Bankwesen usw.

Universelles DBMS haben keinen klar definierten Anwendungsbereich, sie sind „für alle Fälle“ konzipiert und dadurch recht komplex und erfordern vom Anwender spezielle Kenntnisse.

Im Gegensatz zu industrialDBMSbenutzerdefiniert die Besonderheiten der Arbeit des Kunden (eines bestimmten Unternehmens) so weit wie möglich berücksichtigen, ihre Benutzeroberfläche ist für die Benutzer normalerweise intuitiv und erfordert keine besonderen Kenntnisse von ihnen. Andererseits, spezialisiert und universelles industrielles DBMS sind relativ billig, zuverlässig genug (gedebuggt) und sofort einsatzbereit, während benutzerdefiniertes DBMS erfordern erhebliche Kosten, und ihre Vorbereitung für den Betrieb und die Fehlerbehebung nehmen einen erheblichen Zeitraum in Anspruch (von mehreren Monaten bis zu mehreren Jahren).

Je nach Standort des DBMS gibt es lokal und verteilt(Kundenserver) DBMS. Alle Teile lokales DBMS auf dem Computer des Datenbankbenutzers gehostet. Wenn mehrere Benutzer gleichzeitig über ein Computernetzwerk auf dieselbe Datenbank zugreifen, muss jeder Benutzercomputer über eine eigene Kopie des lokalen DBMS verfügen. Dagegen ein erheblicher Teil der Soft- und Hardware verteiltes DBMS zentralisiert und auf einem ausreichend leistungsfähigen Computer untergebracht (Server) während die Computer der Benutzer einen relativ kleinen Teil des aufgerufenen DBMS tragen Klient. Lokal DBMSs können das Netzwerk verwenden oder nicht verteilt DBMS muss funktionieren Computernetzwerk.

Beachten Sie, dass der Standort Datenbank beeinflusst die Besonderheiten des DBMS in keiner Weise: in lokal DBMS selbst Datenbank kann sich sowohl auf dem Computer des Benutzers als auch auf einem entfernten Netzwerkcomputer (Dateiserver) befinden.

Bedingungslose Würde Client-Server-Systeme ist die Möglichkeit der zentralisierten Zugangskontrolle zu Datenbank. Bei solchen Systemen Datenbank weitgehend geschützt sowohl vor versehentlichen als auch vorsätzlichen Verzerrungen sind sie einfacher zu implementieren Integrität und Datenkonsistenz.

DBMS ist eine wesentliche Komponente Informationssystem. Zum Erstellen und Verwalten Informationssystem Ein DBMS ist im gleichen Umfang erforderlich, wie es erforderlich ist Übersetzer zur Entwicklung Programme auf der algorithmische Sprache.

Die Hauptfunktionen des DBMS:

Datenverwaltung im Externer Speicher(auf Datenträgern);

Datenverwaltung im Arbeitsspeicher;

- Tagebuch schreibenÄnderungen u Wiederherstellung der Datenbank nach Ausfällen;

Pflege der Sprachen Datenbanken(Datendefinitionssprache – SDL-Sprache, Datenmanipulationssprache – DML-Sprache oder eine einzige integrierte Sprache, die alle notwendigen Werkzeuge für die Arbeit mit der Datenbank enthält – strukturierte Abfragesprache SQL).

Hallo liebe Leser! Hier kommen wir zum Studium der Zyklen. Zyklen in Pascal. Was ist das? Wie benutzt man es? Wozu werden sie benötigt? Das sind die Fragen, die ich heute beantworten werde.
Wenn Sie gelesen haben, wissen Sie, dass es drei Arten von Algorithmen gibt: linear, verzweigend und zyklisch. Wir wissen bereits, wie man Algorithmen in Pascal implementiert. Beginnen wir mit dem Studium der letzten Art von Algorithmen.
In Pascal gibt es, wie in den meisten Programmiersprachen, drei Arten von Schleifenkonstrukten.

Jeder Zyklus besteht aus einem Body und einem Header. Der Schleifenkörper ist eine Menge sich wiederholender Anweisungen, und die Bedingung ist ein logischer Ausdruck, abhängig von dessen Ergebnis die Schleife wiederholt wird.

Nehmen wir ein Problem, das wir mit verschiedenen Arten von Zyklen lösen werden.

Aufgabe 1. Zeigt alle Zahlen von 1 bis zu der über die Tastatur eingegebenen Zahl an.

While oder eine Schleife mit einer Vorbedingung

Wie Sie wahrscheinlich schon anhand des Namens verstanden haben, während ist eine Schleife, in der die Bedingung vor dem Körper steht. Darüber hinaus wird der Schleifenkörper genau dann ausgeführt, wenn die Bedingung erfüllt ist Stimmt; sobald der Zustand wird FALSCH

While hat das Format:

während < условие> tun<оператор 1>; (Tschüss…mach….)

Dieser Zyklus nur für eine Anweisung geeignet ist, wenn Sie mehrere Anweisungen in Ihrem Code verwenden möchten, sollten Sie diese in Anweisungsklammern − einschließen Start und Ende;.

Die Lösung des Problems.

Programm example_while; var i, N: ganze Zahl; (Variablen deklarieren) begin i:= 1; (Setze i auf 1) readln(N); (Lesen Sie die letzte Zahl), während i<= N do {Как только i станет больше N, цикл прекратится (можно было бы написать просто <, но пришлось бы добавлять 1 к N) } begin {Открываем операторные скобки} write(i, " "); {Выводим i} Inc(i); {увеличиваем i на один.} end; { закрываем скобки } end.

Wiederholen oder eine Schleife mit einer Nachbedingung

Wiederholen- komplettes Gegenteil während. Wiederholen ist eine Schleife, in der die Bedingung hinter dem Körper steht. Darüber hinaus wird es ausgeführt, wenn und nur wenn das Ergebnis der Bedingung ist FALSCH;sobald der boolesche Ausdruck wird Stimmt, die Schleife wird beendet.

Wiederholen hat das Format:

wiederholen( wiederholen … )
<оператор 1>;
< оператор 2>;

bis um(Vor…) <условие>

Start und Ende nicht benötigt.

Die Lösung des Problems.

Programm example_repeat; var i, N: integer; (Variablen deklarieren) begin i:= 1; (Setze i auf 1) readln(N); (Lesen Sie die letzte Zahl) wiederholen (keine Notwendigkeit für Anfang und Ende nach der Wiederholung) Write(i, " "); (Anzeige i) Inc(i); (Erhöhe i um eins.) bis i = N + 1; (Zum Beispiel ist i = 11 und N = 10. Die Schleife wird beendet, sodass die Bedingung wahr wird.) end.

For oder eine Schleife mit einem Parameter

Zum ist eine Schleife, in der der Körper eine bestimmte Anzahl von Malen ausgeführt wird.

Es gibt zwei Möglichkeiten, diese Schleife zu schreiben:

Erste Form

zum<счетчик1> := <значение1>zu<конечное_значение>tun<оператор1>;

<счетчик1>erhöht sich um 1.

<значение1>ist der Anfangswert des Zählers. Es kann eine Variable oder eine Zahl sein.
<конечное_значение>: sobald der Wert<счетчик1>werden mehr<конечное_значение>

Wenn Sie mehrere Anweisungen in den Schleifenkörper schreiben möchten, verwenden Sie Start und Ende.

Und<счетчик1>, und<конечное_значение>, und<значение1>- Variablen das Ganze Typ.

Am häufigsten wird die Variable i als Zähler verwendet.

Zweite Form

zum<счетчик2> := <значение2>bis zu<конечное_значение>tun<оператор1>;

Nach jeder Iteration der Wert<счетчик2>verringert sich um 1.

<значение2>ist der Anfangswert des Zählers.
<конечное_значение>: sobald der Wert<счетчик2>werden weniger<конечное_значение>, die Schleife wird beendet.

Zwei wichtige Hinweise:

  1. Die Schleife wiederholt sich solange der Wert des Zählers im Segment [value; end_value].
  2. Ändern Sie den Wert des Zählers im Körper es ist verboten! Hier ist, was der Compiler ausgibt:

Die Lösung des Problems:

Programm example_for; var i, N: ganze Zahl; Lesen beginnen (N); (Angenommen, wir haben 10 eingegeben) for i:= 1 bis N do write(i, " "); (Anzahl der Iterationen - 10 - 1 + 1 = 10) Ende.

Stimmen Sie zu, dieser Code ist einfacher und prägnanter als alle vorherigen. Und radeln zum- kein ganz gewöhnlicher Zyklus, es gibt keine logische Bedingung darin. Daher wird eine Schleife mit einem Parameter in der Programmierung syntaktischer Zucker genannt. Syntaktischer Zucker ist eine Ergänzung zur Syntax einer Programmiersprache, die keine neuen Funktionen hinzufügt, sondern die Sprache benutzerfreundlicher macht.

Lassen Sie uns ein paar Probleme lösen.

Für 1. Die ganzen Zahlen K und N (N > 0) sind gegeben. Gib N mal die Zahl K aus.

Wir organisieren einen einfachen Zyklus von 1 bis zur gewünschten Anzahl.

Programm für1; var K, N, i: ganze Zahl; Lesen beginnen (K, N); for i:= 1 bis N do write(K, " "); (Wir schreiben K getrennt durch ein Leerzeichen) end.

Für 2. < B). Вывести в порядке возрастания все целые числа, расположенные между A и B (включая сами числа A и B), а также количество N этих чисел.

Seit einem< B, то цикл должен будет выводить все числа от А до B. Чтобы сосчитать количество чисел, используем формулу: <конечное_значение> — <начальное_значение> + 1.

Programm für2; var A, B, i, count: ganze Zahl; Beginnen Sie mit dem Lesen (A, B); for i:= A to B do write(i, " "); (Zahlen vom kleinsten zum größten schreiben) count:= B - A + 1; (Zahlen zählen) writeln; write("Anzahl Zahlen - ", count); Ende.

Für9. Gegeben seien zwei ganze Zahlen A und B (A< B). Найти сумму квадратов всех целых чисел от A до B включительно.

Wir organisieren den gleichen Zyklus wie in der vorherigen Aufgabe, summieren aber gleichzeitig die Quadrate aller Zahlen. Um das Quadrat zu berechnen, verwenden Sie die Funktion.

Programm für9; var A, B, i, S: ganze Zahl; Beginnen Sie mit dem Lesen (A, B); S:= 0; (PascalABC macht das automatisch, aber wenn Sie einen anderen Compiler haben, raten wir Ihnen, die Variablen manuell auf Null zu setzen) for i:= A to B do S:= S + Sqr(i); (alle Quadrate addieren) writeln; write("Quadratsumme - ", S); Ende.

Für 13°. Eine ganze Zahl N (> 0) ist gegeben. Finden Sie den Wert des Ausdrucks 1,1 - 1,2 + 1,3 - ... (N Begriffe, Vorzeichen wechseln sich ab). Verwenden Sie nicht den Bedingungsoperator.

Um das Vorzeichen zu ändern, ändern wir bei jeder Iteration der Schleife den Wert der speziellen Variablen in das Gegenteil.

Programm für 13; var N, A, i: ganze Zahl; S: echt beginnen Schreiben ("N = "); readln(N); S:= 1,1; A:= 1; (Positiv zuerst) for i:= 2 to N do (wir haben bereits die erste Iteration der Schleife durchgeführt, also beginnen wir bei 2 zu zählen) begin A:= -A; (Jetzt negativ) S:= S + A * (1 + i / 10); (hinzufügen) Ende; WriteIn(S:5:1); (Lassen Sie uns eine Vertrautheit für den Bruchteil geben) Ende.

Während1°. Positive Zahlen A und B (A > B) sind gegeben. Auf einem Segment der Länge A wird die maximal mögliche Anzahl von Segmenten der Länge B (ohne Überlappungen) platziert. Finde die Länge des unbesetzten Teils von Segment A, ohne Multiplikation und Division zu verwenden.

Jedes Mal B von A subtrahieren, bis A - B >= 0.

Programmieren while1; Var A, B: Ganzzahl; readln(A, B) beginnen; während (A - B) >= 0 mach A:= A - B; (Solange die Differenz positiv ist, subtrahieren wir. Es ist notwendig, eine Variante mit einer Multiplizität von A und B bereitzustellen, also >=) write(A); Ende.

Während4°.Eine ganze Zahl N (> 0) ist gegeben. Wenn es eine Potenz von 3 ist, dann gib True aus, wenn nicht, gib False aus.

Wir gehen folgendermaßen vor: Während N durch 3 teilbar ist, teilen wir N durch 3. Dann, wenn N = 1, ist die Zahl eine Dreierpotenz; wenn n<>1, dann ist die Zahl keine Dreierpotenz. Um dieses Problem zu lösen, müssen Sie wissen, was sie sind und wie sie funktionieren.

Programmieren Sie while4; var N: ganze Zahl; readln(N) beginnen; while N mod 3 = 0 do N:= N div 3; (Solange der Rest der Division durch drei Null ist, dividiere N durch 3) writeln(N = 1); (boolescher Ausdruck) Ende.

Das ist alles für heute! Vergessen Sie nicht, unsere Seite öfter zu besuchen und auf die Schaltflächen zu klicken, die sich vor den Kommentaren befinden.

Eine Schleife mit einem Parameter hat folgendes Format:

for (Initialisierung; Ausdruck; Änderungen) Anweisung;

Initialisierung wird verwendet, um den in der Schleife verwendeten Werten Anfangswerte zu deklarieren und zuzuweisen. In diesem Teil können Sie mehrere Anweisungen schreiben, die durch ein Komma getrennt sind (die Operation „sequentielle Ausführung“), zum Beispiel wie folgt:

für (int i = 0, j = 2; ...

für (k=1, m=0; ...

Der Gültigkeitsbereich der im Schleifeninitialisierungsteil deklarierten Variablen ist Schleife 1 . Die Initialisierung wird einmalig zu Beginn der Schleifenausführung durchgeführt.

Ausdruck definiert eine Schleifenausführungsbedingung: Wenn ihr Ergebnis, umgewandelt in bool , wahr ist, wird die Schleife ausgeführt. Die Schleife mit einem Parameter ist als Schleife mit einer Vorbedingung implementiert.

Modifikationen werden nach jeder Iteration der Schleife ausgeführt und werden normalerweise verwendet, um die Parameter der Schleife zu ändern. Im Modifikationsteil können Sie mehrere durch Kommas getrennte Operatoren schreiben. Einfach oder zusammengesetzt Operator ist der Körper der Schleife. Jeder Teil der for-Anweisung kann weggelassen werden (aber die Semikolons müssen an Ort und Stelle bleiben!).

Beispiel (Operator, der die Summe der Zahlen von 1 bis 100 berechnet):

für (Int i = 1, s = 0; 1<=100; i++) s += i;

Beispiel (das Programm druckt eine Tabelle mit Funktionswerten y \u003d x 2 +1 im eingegebenen Bereich):

#enthalten

Float Xn, Xk, Dx, X;

printf("Bereich und Inkrement des Arguments eingeben: ");

scanf("%f%f%f", &Xn, &Xk, &Dx);

printf("|X|Y|\n");

für (X = Xn; X<=Xk; X+=Dx)

printf (" | %5.2f | %5.2f |\n", X*X + 1);

Beispiel (das Programm findet alle Teiler einer positiven ganzen Zahl):

#enthalten int Haupt()(

int num, half, div;

cout<< “\n Введите число: "; cin >>num;

für (half = num / 2, div = 2; div<= half; div++)

if (!(num %div))cout<< div <<"\n";

Die letzten beiden Beispiele führen die gleichen Aktionen aus wie die Beispiele für die Schleife mit einer Vorbedingung, aber sie sind kompakter und klarer geschrieben: Alle Aktionen, die sich auf die Steuerung der Schleife beziehen, sind in ihrem Kopf lokalisiert.

Jede while-Schleife kann wie folgt in ihre entsprechende for-Schleife umgewandelt werden und umgekehrt:

für (b1: b2; b3) Operator b1;

while (b2)( Anweisung; b3;)

Verbreitet Fehler beim Programmieren von Zyklen - die Verwendung nicht initialisierter Variablen im Schleifenkörper und die falsche Eingabe der Austrittsbedingung aus der Schleife.

q prüfen, ob allen Variablen, die sich auf der rechten Seite der Zuweisungsanweisungen im Schleifenkörper befinden, zuvor Anfangswerte zugewiesen wurden (und auch, ob es möglich ist, andere Anweisungen auszuführen);


q prüfen, ob sich mindestens eine Variable, die in der Schleifenausgangsbedingung enthalten ist, in der Schleife ändert;

q für einen Notausstieg aus der Schleife bei Erreichen einer bestimmten Anzahl von Iterationen sorgen;

q und vergessen Sie natürlich nicht, dass Sie, wenn Sie mehr als eine Anweisung im Schleifenkörper ausführen müssen, diese in geschweiften Klammern einschließen müssen.

Die Schleifenanweisungen sind austauschbar, aber einige Empfehlungen jeweils das Beste auswählen.

Die do while-Anweisung wird normalerweise verwendet, wenn die Schleife mindestens einmal ausgeführt werden muss (z. B. wenn Daten in die Schleife eingegeben werden).

Der While-Operator ist bequemer zu verwenden, wenn die Anzahl der Iterationen nicht im Voraus bekannt ist, es keine offensichtlichen Schleifenparameter gibt oder es bequemer ist, die Parameteränderung nicht am Ende des Schleifenkörpers zu schreiben.

Die for-Anweisung ist in den meisten anderen Fällen vorzuziehen (auf jeden Fall - zum Organisieren von Zyklen mit Zählern).

Im Allgemeinen werden wir heute jeden der Zyklen in Pascal genauer kennenlernen und sehen, wie sie festgelegt werden. Wir werden zerlegen While-Schleife mit Vorbedingung, for-Schleife mit Parameter und repeat - until-Schleife mit Nachbedingung.

1. Schleife mit Parameter in Pascal - FOR

Die FOR-Schleife legt eine bestimmte Bedingung fest, nach der das Programm arbeitet, bis es ausgeführt wird, sagen wir, wir müssen das Programm 5 (oder n) Mal wiederholen, dann ist dies mit dieser Schleife einfach zu tun. Die FOR-Schleife hat ein charakteristisches Merkmal - einen Zähler, der normalerweise mit den Buchstaben i oder j bezeichnet wird.

Das Aussehen des Zyklus mit einem Parameter in Pascal:

for i:= 1 to n do // weise i zuerst eins zu, dann zwei, drei, ..., n

Nach dem 1. Durchlauf weisen wir der Variablen i 1 zu, nach dem zweiten Durchlauf 2 und so weiter, bis wir n erreichen. to ist bis zu .. in aufsteigender Reihenfolge, es gibt auch downto - bis zu .. in absteigender Reihenfolge.

Blockschaltbild eines Zyklus mit Parameter:

2. Schleife mit Vorbedingung in Pascal - WHILE

Der Schleifenoperator mit einer Vorbedingung führt Aktionen eine unbekannte Anzahl von Malen aus. Die Schleife wird beendet, wenn ein logischer Ausdruck oder sein Ergebnis falsch ist. Da die Gültigkeit des logischen Ausdrucks zu Beginn überprüft wird, darf der Schleifenkörper nicht einmal ausgeführt werden.

Schleifenstruktur mit Voraussetzung:

WÄHREND SIE beginnen enden;

Boolescher Ausdruck, dessen Wahrheit zu Beginn der Ausführung des zyklischen Operators überprüft wird;

Alle ausführbaren Sprachanweisungen.

Schleifenausführungsreihenfolge:

Solange die Bedingung wahr ist, wird der Rumpf der Schleife ausgeführt. Sobald die Bedingung falsch wird, wird die Schleife beendet.

Blockschaltbild eines Zyklus mit Vorbedingung:


Hinweis: Rechteckige Blöcke zeigen jede Aktion, die im Zyklus oder danach ausgeführt wird (Zyklusschritt), Ovale zeigen den Anfang oder das Ende des gesamten Programms oder eines Teils davon. Die Hauptrolle in diesem Blockdiagramm spielt sein zentraler Teil.

Beispiel:

Aufgabe: Berechne die Summe der Reihen 1+1,5+2+2,5+3+3,5+ .. + 30

Programmbeispiel-während;

varsum:real; n: echt; ANFANGSsumme:=0; n:=1; während n

3. Schleife mit Nachbedingung - Repeat - until.

Dieser Operator ähnelt dem Schleifenoperator mit einer Vorbedingung, unterscheidet sich jedoch davon dadurch, dass die Bedingung nach der Ausführung des Hauptteils (Aktionen) der Schleife überprüft wird. Dadurch wird sichergestellt, dass es im Gegensatz zu den zuvor geparsten Schleifen mindestens einmal ausgeführt wird.

Bitte beachten Sie, dass diese Schleifenanweisung das Vorhandensein mehrerer Anweisungen im Hauptteil der Schleife voraussetzt, dh Sie können mehrere Aktionen ausführen, sodass die Dienstwörter Begin und End nicht benötigt werden.

Die im Schleifenkörper enthaltene Anweisungsfolge wird einmal ausgeführt, danach wird die nach dem Dienstwort „Until“ geschriebene Bedingung überprüft. Wenn die Bedingung nicht erfüllt ist, endet die Schleife. Andernfalls wird der Schleifenkörper noch einmal wiederholt, wonach die Bedingung erneut überprüft wird.

Blockdiagramm eines Zyklus mit einer Nachbedingung:

Aufzeichnungsformat, Taktstruktur:
WIEDERHOLE BIS ;

Beispiel:

Programmtest2; Varb:Real; Beginn b:=100; Wiederhole b:=b/2; bis b

Schlussfolgerungen:

1. Eine Schleife mit einem Parameter verwendet eine Variable namens Schleifenparameter oder Zähler. Bevor die Schleife ausgeführt wird, wird der Parameter (Zähler) auf seinen Anfangswert gesetzt. Nachdem der Schleifenschritt ausgeführt wurde, wird der Parameterwert um eins erhöht. Die Schleife wird fortgesetzt, bis der Parameter seinen Endwert erreicht, der nach to (downto) angegeben wird.

2. Die Schleife mit einer Vorbedingung wird ausgeführt, bis die Ausführungsbedingung falsch wird, und wird fortgesetzt, wenn die Bedingung wahr ist.

3. Die Schleife mit der Nachbedingung wird ausgeführt, bis die Bedingung wahr wird, wenn die Bedingung falsch ist, wird die Schleife fortgesetzt.



Wird geladen...
oben