Präsentation „Programmiersprache Pascal. Texteditor der Sprache.“ Grundlagen der Pascal-Programmierung Präsentation zu Pascal

Nikolaus Wirth Aber zu glauben, Pascal sei eine Sprache ausschließlich für den Unterricht, wäre falsch. Hier ist, was N. Wirth (1984) dazu sagte: „Es wurde argumentiert, dass Pascal als Sprache für den Unterricht entwickelt wurde. Obwohl diese Aussage wahr ist, war ihre Verwendung im Unterricht nicht der einzige Zweck. Tatsächlich glaube ich nicht an den Erfolg des Einsatzes solcher Werkzeuge und Techniken während der Ausbildung, die nicht zur Lösung einiger praktischer Probleme eingesetzt werden können.“ * *


Pascal-Programmiersprache Seitdem erfreut sich Pascal immer größerer Beliebtheit, nicht nur als Sprache zum Vermitteln der Programmierprinzipien, sondern auch als Mittel zur Erstellung recht komplexer Programmiersprachen Software. In seiner ursprünglichen Form hatte Pascal eher begrenzte Fähigkeiten, aber die erweiterte Version dieser Sprache, Turbo Pascal, ist eine leistungsstarke Programmiersprache.


Warum PASCAL? Die Programmiersprache Pascal wurde nach dem französischen Wissenschaftler Blaise Pascal benannt, der bereits 1642 die erste mechanische Rechenmaschine erfand. Es handelte sich um ein System interagierender Zahnräder, von denen jedes einer Ziffer einer Dezimalzahl entsprach und die Zahlen von 0 bis 9 enthielt. Wenn das Rad eine volle Umdrehung machte, verschob sich das nächste um eine Ziffer. Pascals Maschine war eine Summiermaschine.


Grundlegende Informationen zu Programmiersprachen Sprache ist ein Zeichensystem. Computersprache (Maschinensprache) ist ein binäres Zeichensystem. Damit ein Computer ein geschriebenes Programm verstehen kann, muss es daher in eine Sprache übersetzt werden, die der Computer verstehen kann. Dieser Übersetzungsprozess wird Übersetzung genannt.




Integrierte Umgebung Turbo Pascal-7.0 Borland International spielte eine große Rolle bei der Massenverbreitung von Pascal. Es gelang ihr, die berühmte Turbo-Entwicklungsumgebung zu erstellen. Dies war ein großer Fortschritt bei der Vereinfachung der Programmierung. Warum Turbo? Turbo bedeutet im englischen Slang Beschleunigung. Der in Turbo Pascal enthaltene Compiler übersetzt ein Programm sehr schnell aus einer Programmiersprache in Maschinencode.




Grundlegende Sprachmittel Sprachsymbole sind elementare Zeichen, die beim Verfassen von Texten verwendet werden. Das Alphabet einer Sprache ist eine Menge solcher Symbole. Das Sprachalphabet von Turbo Pascal 7.0 umfasst: alle lateinischen Groß- und Kleinbuchstaben, arabische Ziffern (0 – 9), Symbole + - * / =,. ; : _ () ( ) und andere (reservierte) Dienstwörter


Um Befehle, Funktionsnamen und erklärende Begriffe in Turbo Pascal 7.0 aufzuzeichnen, gibt es eine Reihe streng definierter Wörter, die „service“ oder „reserviert“ genannt werden (das sind englische mnemonische Abkürzungen). Dienstwörter sind in drei Gruppen unterteilt: Operatoren (READ, WRITELN usw.) Funktionsnamen (SIN, COS usw.) Schlüsselwörter (VAR, BEGIN, END usw.) Grundlegende Sprachwerkzeuge


Der Name einer Größe ist ihre Bezeichnung; es ist ein Wort, das aus Buchstaben, Zahlen und Unterstrichen besteht und mit einem Buchstaben beginnt. Zahlen: ganze Zahlen, reelle Zahlen: Festkomma (-1,23; 654,2), Gleitkomma (2, 437,). Sechs Operationen: + Addition, - Subtraktion, / Division, * Multiplikation, Mod-Restfindung, Div-Division.


Ein arithmetischer Ausdruck besteht aus Namen, Zahlen, Symbolen arithmetischer Operationen, mathematische Funktionen. Zur Angabe der Reihenfolge der Aktionen werden nur Klammern verwendet. Zur Quadrierung wird die Notation sqr(x) verwendet. Um die Quadratwurzel zu ziehen, verwenden Sie die Notation sqrt(x). Das Modul wird mit abs(x) bezeichnet.


Zuweisungsoperator Variablenname:= arithmetischer Ausdruck. x:= 3,24 oder x:= x+4. Typ der Variablen 1. Wenn die Variable auf der linken Seite einen reellen Typ hat, kann der arithmetische Ausdruck entweder eine Ganzzahl oder ein reeller Typ sein. 2. Wenn die Variable links vom Typ Ganzzahl ist, ist der arithmetische Ausdruck nur eine Ganzzahl.


Programmstruktur in Pascal Teil 1 – Beschreibung von Daten und Operatoren. Teil 2 – Programmblock. Gesamtansicht des Programms: Programm (Programmname) Label (Liste der Labels) const (Liste konstanter Werte) Type (Beschreibungen komplexer Datentypen) var (Beschreibungen der Programmdaten) begin (Anfang eines Programmblocks) (Algorithmus) Ende. (Ende des Programms)


Programmname: nicht mehr als 8 Zeichen, beginnend mit einem Buchstaben. mit einem Punkt abschließen. Der beschreibende Teil besteht aus 4 Abschnitten: Beschriftungen, Konstanten, Namen und Variablentypen. Var-Name und Typ der Variablen: Ganzzahl (Integer), Real (Real). Zum Beispiel: var i, j: integer; x: real; Die Beschreibung jedes Typs endet mit einem Semikolon. Der Programmblock enthält Anweisungen, die den Algorithmus zur Lösung des Problems beschreiben.


Eingabe- und Ausgabeoperatoren: read (Namensliste) – stoppt das Programm und wartet darauf, dass der Benutzer Zahlen auf der Tastatur eingibt (durch ein Leerzeichen getrennt) und ENTER drückt. Zum Beispiel: read(i, j); Nachdem dieser Operator funktioniert, befindet sich der Cursor hinter der letzten Zahl, wird jedoch nicht in eine neue Zeile verschoben. Um den Cursor nach der Dateneingabe in eine neue Zeile zu bewegen, müssen Sie den Operator readln(Liste der Namen) verwenden. write (Ausgabeliste) – schreibt Daten auf den Bildschirm. Ausgabeliste – durch Kommas getrennte Namen der Berechnungsergebnisse und erläuternde Texte in Apostrophen. Zum Beispiel: write(x=, x); Auf dem Bildschirm wird eine Festkommazahl gedruckt. Zum Beispiel: write(x=, x:6:2); Auf dem Bildschirm wird eine Zahl mit 6 Ziffern angezeigt, davon zwei Nachkommastellen (x =). Der Cursor wird mit dem Ausgabeoperator writeln empty in eine neue Zeile bewegt. Der leere Eingabeoperator readln






Arbeiten im Turbo Pascal-System Alt + F10 – Dateimenü – Neu – Erstellen neue Datei Enter – sollte am Ende jeder Zeile stehen. Strg + Y – eine Zeile löschen. Enter – eine Zeile einfügen. Um das Programm auszuführen, wählen Sie „Ausführen“ aus dem Menü. Übersetzer – übersetzt das Programm von Pascal in Maschinensprache und sucht nach Syntaxfehlern. 1.Wenn Fehler gefunden werden, kehren Sie zum Editor zurück, der Cursor zeigt auf den Fehler. 2.Wenn keine Fehler gefunden werden, wird das Programm ausgeführt










Manchmal müssen Sie nach den Wörtern THEN und ELSE nicht eine, sondern mehrere Anweisungen ausführen. Dann werden diese Operatoren in Operatorklammern eingeschlossen. Die öffnende Klammer ist das Wort BEGIN, die schließende Klammer ist das Wort END. Vor dem Wort ELSE steht kein Semikolon. Es wird empfohlen, jedes BEGIN-END-Paar in eine Spalte zu schreiben. WENN Bedingung DANN Anweisung 1 beginnen; Betreiber 2; Anweisung N end ELSE begin Anweisung 1; Betreiber 2; Operator M end ;




Programm E3; var a,b: Ganzzahl; Beginnen Sie mit dem Schreiben (geben Sie zwei durch ein Leerzeichen getrennte Ganzzahlen ein und drücken Sie dann); readln(a,b); wenn a mod 2 = 0 dann writeln (a – gerade) sonst writeln (a – ungerade); wenn b mod 2 = 0 dann writeln (b – gerade) sonst writeln (b – ungerade); readlnend.


3, wenn a>0 6, wenn a 0 6, wenn a 0 6, wenn a 0 6, wenn a0 6, wenn a title="3, wenn a>0 6, wenn a


Programm E31; var a,y: real; Beginnen Sie mit dem Schreiben (geben Sie eine Zahl ein und drücken Sie dann); readln(a); wenn a >0 dann y:=3 sonst y:=6; write(y=,y); readlnend. 0 dann y:=3 sonst y:=6; write(y=,y); readlnend."> 0 then y:=3 else y:=6; write (y=,y); readln end."> 0 then y:=3 else y:=6; write (y=,y); readln end." title="Programm E31; var a,y: real; Beginnen Sie mit dem Schreiben (geben Sie eine Zahl ein und drücken Sie dann); readln(a); wenn a >0 dann y:=3 sonst y:=6; write(y=,y); readlnend."> title="Programm E31; var a,y: real; Beginnen Sie mit dem Schreiben (geben Sie eine Zahl ein und drücken Sie dann); readln(a); wenn a >0 dann y:=3 sonst y:=6; write(y=,y); readlnend."> !}


A+b, wenn a>b a*b, wenn a b a*b, wenn a b a*b, wenn a b a*b, wenn ab a*b, wenn a title="a+b, wenn a>b a* b wenn a


Programm E32; var a,b,x: real; Beginnen Sie mit dem Schreiben (geben Sie zwei durch ein Leerzeichen getrennte Zahlen ein und drücken Sie dann); readln(a); wenn a >b dann x:=a+b sonst x:=a*b; write(x=,x); readlnend. b then x:=a+b else x:=a*b; write(x=,x); readlnend."> b then x:=a+b else x:=a*b; write (x=,x); readln end."> b then x:=a+b else x:=a*b; write (x=,x); readln end." title="Programm E32; var a,b,x: real; Beginnen Sie mit dem Schreiben (geben Sie zwei durch ein Leerzeichen getrennte Zahlen ein und drücken Sie dann); readln(a); wenn a >b dann x:=a+b sonst x:=a*b; write(x=,x); readlnend."> title="Programm E32; var a,b,x: real; Beginnen Sie mit dem Schreiben (geben Sie zwei durch ein Leerzeichen getrennte Zahlen ein und drücken Sie dann); readln(a); wenn a >b dann x:=a+b sonst x:=a*b; write(x=,x); readlnend."> !}




Organisation von Schleifen Wiederholte Aktionen in der Programmierung werden als Schleife bezeichnet. Unbedingter Sprungoperator goto n, n – Ganzzahl (nicht mehr als 4 Zeichen), Beschriftung. Die Beschriftung wird dreimal wiederholt: 1. Im Abschnitt „Beschriftung“; 2.In der goto-Anweisung; 3.Vor dem Operator, zu dem ein unbedingter Übergang durchgeführt wird.


Organisieren von Schleifen mit bedingten und unbedingten Sprungoperatoren. Aufgabe. Finden Sie die Summe der ersten zwanzig Zahlen. (1+2+3….+20). a ……………20 S ………….


Euklids Algorithmus: Jedes Mal verringern wir die größere Zahl um den Wert der kleineren, bis beide Zahlen gleich sind. Zum Beispiel: Initial 1 Schritt 2 Schritt 3 Schritt a= 25 b= GCD(a,b)=5


Programm E5; var a, b: Ganzzahl; beginne zu schreiben (gcd=,a); readln; Ende. write (Geben Sie zwei durch ein Leerzeichen getrennte natürliche Zahlen ein); readln(a,b); while ab do if a>b then a:=a-b else b:=b-a; b then a:=a-b else b:=b-a;"> b then a:=a-b else b:=b-a;"> b then a:=a-b else b:=b-a;" title="Programm E5 ; var a, b: integer; begin write (GCD=,a); readln; end. write (Geben Sie zwei durch ein Leerzeichen getrennte natürliche Zahlen ein); readln (a,b); while ab do if a>b then a: =a-b sonst b:=b-a;"> title="Programm E5; var a, b: Ganzzahl; beginne zu schreiben (gcd=,a); readln; Ende. write (Geben Sie zwei durch ein Leerzeichen getrennte natürliche Zahlen ein); readln(a,b); while ab do if a>b then a:=a-b else b:=b-a;"> !}




B dann a:=a-b; if b>a then b:=b-a write (Geben Sie zwei durch ein Leerzeichen getrennte natürliche Zahlen ein); readln (a,b);" title="Program E6; var a, b: integer; begin write (HOD=,a); readln; end. wiederholen bis a=b; wenn a>b dann a :=a-b; if b>a then b:=b-a write (Geben Sie zwei durch ein Leerzeichen getrennte natürliche Zahlen ein); readln (a,b);" class="link_thumb"> 40 !} Programm E6; var a, b: ganze Zahl; beginne zu schreiben (HOD=,a); readln; Ende. wiederholen, bis a=b; wenn a>b dann a:=a-b; if b>a then b:=b-a write (Geben Sie zwei durch ein Leerzeichen getrennte natürliche Zahlen ein); readln(a,b); b dann a:=a-b; if b>a then b:=b-a write (Geben Sie zwei durch ein Leerzeichen getrennte natürliche Zahlen ein); readln (a,b);"> b then a:=a-b; if b>a then b:=b-a write (Geben Sie zwei durch ein Leerzeichen getrennte natürliche Zahlen ein); readln (a,b);"> b then a: =a-b ; if b>a then b:=b-a write (Geben Sie zwei durch ein Leerzeichen getrennte natürliche Zahlen ein); readln (a,b);" title="Program E6; var a, b: integer; begin write (HOD=,a); readln; end. wiederholen bis a=b; wenn a>b dann a :=a-b; if b>a then b:=b-a write (Geben Sie zwei durch ein Leerzeichen getrennte natürliche Zahlen ein); readln (a,b);"> title="Programm E6; var a, b: ganze Zahl; beginne zu schreiben (HOD=,a); readln; Ende. wiederholen, bis a=b; wenn a>b dann a:=a-b; if b>a then b:=b-a write (Geben Sie zwei durch ein Leerzeichen getrennte natürliche Zahlen ein); readln(a,b);"> !}




Unterrichtsthema: „Zyklen (Wiederholung) in Programmen“

1) Kenntnisse über die Erstellung linearer, verzweigter Programme wiederholen und festigen; 2) Lernen Sie, Programme mit einem zyklischen Operator zu erstellen – FOR i:=1 TO n DO Begin-Operatoren (Schleifenkörper) end ; 3) Wenden Sie Operatoren zur Lösung von Standardproblemen an. Der Zweck der Lektion:

Füllen Sie das Fehlende aus: Program Sql; Var A,B,C,D, XI, X2: ??? ; Begin Writeln ("Geben Sie die Koeffizienten der quadratischen Gleichung ein '); Readln (???); D:=B*B-4*A*C; If D

Fragen an die Gruppe: 1) Was ist der Unterschied zwischen verzweigten und linearen Programmen? 2) Welche Operatoren werden zur Auswahl in Programmen verwendet? 3) Anfang….Ende – Was ist das? Welche Nutzungsregeln gelten im Programm?

1) Eingabe-/Ausgabeoperatoren; 2) Auswahloperatoren; 3) a:=a+3 – was wird passieren? 4) Datentypen auflisten; 5) Entfernen Sie unnötiges AND,OR,END, NOT,IF ; 6) ; - Was heißt das? 7) Wie wird das Ende des Programms angezeigt? 8) Arithmetische Operationen auflisten. 9) Was ist 120 mod 65 = ? 10) Schleifenoperatoren.

Entsprechend anordnen: 1. Lesen 2. Ende 3. Beginn 4. Ganzzahl 5. ; 6. Wenn .. Dann 7. := 8. Eingabe 9. Ende 10. Ganzzahlen 11. Zuweisen 12. Nächste Aktion 13. Start 14. Wenn... dann

Liegt das Ergebnis wirklich unter 3? a:= 7 b:= - 10 a:=a*(- 7) b:=159 a:=b+a

Finden Sie 5 Fehler im Programm: Programm krug ; VAR Pi, r, S: real; Pi:=3.14, WRITELN(‘vvedite radiuc r=’), READ(r); S=Pi *r*r; WRITELN(‘Ploshad kruga S= ’, S) end

Programmkreis; VAR Pi, r, S: real; begin Pi:=3.14 , WRITELN(‘vvedite radiuc r=’) , READ(r); S: =Pi *r*r; WRITELN(‘Ploshad kruga S= ’, S) end .

Aufgabe Nr. 1 Bestimmen Sie bei einer gegebenen ganzen Zahl N, ob sie gerade oder ungerade ist. 2, 4, 6, … sind gerade, weil werden ohne Rest durch 2(N mod 2 =0) 1, 3, 7, ... geteilt - ungerade, weil werden durch 2 dividiert mit Rest 1(N mod 2 =1)

Algorithmus Algorithmus Chislo ; Variable N: ganze Zahlen; start Output(‘vvedite chislo’); Geben Sie (N) ein; IF N mod 2 =0 T O Output(N,‘- chetnoe‘); IF N mod 2 =1 T O Output(N,‘- nechetnoe‘); Ende.

Problem Nr. 2 Gegeben sei eine zweistellige ganze Zahl N (DE), wobei D die Zahl der Zehner und E die Zahl der Einer ist. Bestimmen Sie, ob die Summe der Ziffern dieser Zahl gleich 10 ist. Beispiel: 28 hat die Summe S = 2 + 8 = 10, aber 27 wird nicht S = 2 + 7 = 9 haben. Wir werden Zehner zählen: D = N div 10 und Einheiten: E= N mod 10

Algorithmus Algorithmus Chislo ; Variablen N,E,D,S: ganze Zahlen; start Output(‘vvedite chislo’); Geben Sie (N) ein; E:=N mod 10; D:=N div 10; S:=E+D; IF S = 10 T O Output(‘summa= 10’) Sonst (‘summa10‘); Ende.

Definition: Programme, in denen die gleiche Art von Aktionen viele Male wiederholt wird – zyklische Programme (mit Wiederholung).

Aufgabe: Gegeben 100 natürliche Zahlen von 1 bis 100 (1,2,3, ... 99,100) Berechnen Sie deren Summe und geben Sie sie in die Variable S aus.

Algorithmussumme; Variable i,S: ganze Zahlen; Start S:=0; Für i:=1 bis 100 wiederholen Sie Start S:= S + i body End; Zyklusausgang (S) Ende.

Programmzusammenfassung; VAR i, S: ganze Zahl; Beginn S:=0; FOR i:=1 TO 100 DO begin S:=S+i body end; Schleife WRITE(S) Ende.

Programmzusammenfassung; VAR i, S: ganze Zahl; Beginn S:=0; FOR i:=1 TO 100 DO begin S:=S+i ; body WRITE(‘S’, i, ’=‘, s) Schleifenende; Ende.

Der Kern des Zyklus besteht aus genau den Aktionen, die viele Male wiederholt werden müssen. Der Schleifenkörper ist in Operatorklammern eingeschlossen begin..... end;

ALT + F9 – Fehler korrigieren STRG + F9 – Programm ausführen ALT + F5 – Ergebnis anzeigen

Aufgabe: 1) Geben Sie eine Spalte der Multiplikationstabelle einer beliebigen ganzen Zahl N mit Zahlen von 1 bis 10 aus. Beispiel: N = 5, dann sieht die Spalte so aus: 1*5=5 2*5=10 3*5 =15 i * N = P , wobei i von …… .. 1…10 10*5=50 variiert

Hausaufgabe: Kommentieren Sie das Programm für die Aufgabe „Über die Spalte der Multiplikationstabelle“

VIELEN DANK FÜR IHRE AUFMERKSAMKEIT!

  1. 1.Pascal
  2. 2. Pascal Pascal wurde vom Schweizer Wissenschaftler Niklaus Wirth entwickelt. Pascal gilt als das wichtigste Werkzeug zur Vermittlung strukturierter Programmiermethoden und wird seit 1983 in den Lehrveranstaltungen der Schulen für Studierende der Fachrichtung Informatik eingeführt. Anschließend wurde die Pascal-Sprache verbessert und erhielt neue Eigenschaften, die sich von der Version des Autors unterschieden.
  3. 3. Die Pascal-Sprache ist relativ einfach zu erlernen, recht klar und logisch und vermittelt als erste gelernte Programmiersprache einen guten Stil.
  4. 4. Wie natürliche Sprachen hat jede Programmiersprache ihren eigenen Stil und ihre eigenen Regeln. Die Syntax einer Programmiersprache besteht aus einer Reihe von Regeln, die bestimmen, wie aus alphabetischen Zeichen korrekte Programme erstellt werden.
  5. 5. Pascal-Alphabet 26 lateinische Kleinbuchstaben und 26 lateinische Großbuchstaben: A B C D E F G H I J K L M N O P Q R S T U V W<> < > <= >= := @ Trennzeichen (Trennzeichen): . , " () (. .) ( ) (* *).. : ; Spezifizierer: ^ # $
  6. 6. Programmstruktur (1. Programmkopf) program Program_Name; (2. Abschnitt zur Angabe der verwendeten Module) nutzt List_of_Used_Modules; (3. Abschnitt „Beschreibungen“) label Label_descriptions; const Constant_Descriptions; Typ TypeDescriptions; var Variable_Descriptions; procedure Descriptions_of_procedures_and_functions; Funktion exportiert Descriptions_of_Exported_Names; (4. Statement-Abschnitt) begin Statements end.
  7. 7. Vereinfachte Programmstruktur (1. Programmkopf) Programm Program_Name; (2. Abschnitt zur Angabe der verwendeten Module) nutzt List_of_Used_Modules; (3. Abschnitt „Beschreibungen“) const Constant_Descriptions; var Variable_Descriptions; (4. Anweisungsabschnitt) begin Programmanweisungen enden.
  8. 8. Programmiersprachenbefehle werden Operatoren genannt. Das Operatortrennzeichen in Pascal ist; (Punkt mit Komma)
  9. 9. Ein Kommentar ist ein durch Zeichen ( ) getrenntes Fragment eines Programmtextes. Kommentare im Programm erfüllen eine Informationsfunktion. (Mein erstes Programm) Programm zuerst; begin writeln('Hello, World!') end.
  10. 10. Beispiel: Umfang eines Rechtecks, Programm perimeter; (Programmtitel) nutzt crt; (crt – wird zum Löschen des Bildschirms benötigt) var a,b:integer; (Variablendeklaration) P:integer; Begin (Programmstart) clrscr; (Bildschirm klar) a:=12; (Wir weisen der Variablen a den Wert 12 zu) b:=7; (Variable b den Wert 7 zuweisen) P:=2*(a+b); (wir weisen P den Wert des Ausdrucks zu) write("P = ",P); (Anzeige des P-Werts) Ende. (Ende des Programms)
  11. 11. Das Programm befasst sich in seiner Arbeit mit Daten. Einige Daten werden festgelegt, bevor das Programm mit der Ausführung beginnt, und nach dem Start bleiben ihre Werte während des gesamten Programmbetriebs unverändert. Das sind Konstanten. Andere Daten können sich während der Programmausführung ändern. Sie werden Variablen genannt.
  12. 12. Der Unterschied zwischen einer Variablen und einer Konstante ist ziemlich offensichtlich: Während der Ausführung eines Programms kann der Wert einer Variablen geändert werden, der Wert einer Konstante jedoch nicht. VariablenVariablenKonstantenDatenDaten
  13. 13. Mit Variable meinen wir eine Zelle („Box“), in die der Computer Daten schreiben („hinzufügen“) kann. Mit Zelle meinen wir eigentlich ein „Stück Gedächtnis“, in dem Informationen gespeichert sind. Um die in einer Zelle gespeicherten Informationen nutzen zu können, muss jede Zelle einen eigenen Namen oder, wie oft gesagt wird, eine Kennung haben. a b Summe 5 3 8
  14. 14. Identifikatoren. Namen (Bezeichner) sind Elemente der Sprache – Konstanten, Labels, Typen, Variablen, Prozeduren, Funktionen, Module, Objekte. Ein Bezeichner ist eine Folge von Buchstaben, Zahlen und Unterstrichen, die mit einem Buchstaben oder Unterstrich beginnt und keine Leerzeichen enthält.
  15. 15. Der Name kann beliebig viele Zeichen enthalten, 63 Zeichen sind jedoch aussagekräftig. In der PASCAL-Sprache ist es nicht erlaubt, Funktionswörter und Standardnamen zu verwenden, die Standardkonstanten, -typen, -prozeduren, -funktionen und -dateien als Namen benennen. Beispiele für PASCAL-Sprachnamen: A b12 r1m SIGMA gamma I80_86
  16. 16. In Pascal wird der Unterschied zwischen Klein- und Großbuchstaben ignoriert, sodass NaMe und Name gleich sind.
  17. 17. Ein Funktionswort ist ein Wort, das in der PASCAL-Sprache eine bestimmte semantische Bedeutung hat, die nicht geändert werden kann. Es wird manchmal als Schlüsselwort bezeichnet.
  18. 18. Service-Wörter (reserviert): ABSOLUTE EXPORTS LIBRARY SET ASSEMBLER EXTERNAL MOD SHL AND FAR NAME SHR ARRAY FILE NIL STRING ASM FOR NEAR THEN ASSEMBLER FORWARD NOT TO BEGIN FUNCTION OBJECT TYPE CASE GOTO OF UNIT CONST IF ODER BIS CONSTRUCTOR IMPLEMENTATION PACKED USES DESTRUCTOR IN PRIVATE VAR DIV INDEX PROCEDURE VIRTUAL DO INHERITED PROGRAM WHILE DOWNTO INLINE PUBLIC WITH ELSE INTERFACE RECORD XOR END INTERRUPT REPEAT EXPORT LABEL RESIDENT
  19. 19. Leerzeichen dürfen nicht innerhalb von Doppelzeichen oder reservierten Wörtern verwendet werden. Es gibt Namen, die als Standard bezeichnet werden. sin cos real true Im Gegensatz zu Funktionswörtern kann die Bedeutung von Standardnamen vom Programmierer neu definiert werden.
  20. 20. Dies ist ein Hinweis für den Compiler, wie viel Speicher für die Variablen unseres Programms reserviert werden soll. In einem kompilierten Programm wird Speicherplatz für alle Variablen zugewiesen und allen Variablen werden Nullwerte zugewiesen. Alle im Programm verwendeten Variablen müssen im Variablenbeschreibungsabschnitt nach dem reservierten Wort var deklariert werden. Variablen deklarieren
  21. 21. Daten gibt es in verschiedenen Arten ...
  22. 22. Datentypen Die Namen von Standardtypen sind vordefinierte Bezeichner und gelten überall im Programm. Sie werden im Standard-Systemmodul beschrieben, das standardmäßig in der Liste der verwendeten Module enthalten ist. Benutzerdefinierte Typen sind zusätzliche Typen (einfach und strukturiert), die vom Benutzer definiert werden.
  23. 23. Standarddatentypen 1. Gruppe von Ganzzahltypen (Shortint, Integer, Longint, Byte, Word); 2. Gruppe reeller Typen (Single, Real, Double, Extended, Comp); 3. logisch (boolesche Typen) (Boolean, ByteBool, WordBool, LongBool); 4. Zeichen(Char); 5. Zeichenfolge (String); 6. Index (Zeiger); 7. Texttyp (Text).
  24. 24. Gruppe von Ganzzahltypen Typname Typwertbereich Erforderlicher Speicher Vorzeichenbehaftete kurze Ganzzahl Shortint -128 .. 127 1 Byte Vorzeichenbehaftete Ganzzahl Ganzzahl -32768 .. 32767 2 Bytes Vorzeichenbehaftete lange Ganzzahl Longint -2147483648 .. 2147483647 4 Bytes Vorzeichenlose kurze Ganzzahl mit Vorzeichen Byte 0 .. 255 1 Byte Ganzzahl ohne Vorzeichen Wort 0 .. 65535 2 Bytes
  25. 25. Var b: Byte; Summe, Anzahl: Ganzzahl; Deklaration von Variablen vom Typ Integer summa:= -365; Verwenden
  26. 26. Zahlen in der PASCAL-Sprache werden normalerweise im Dezimalzahlensystem geschrieben. Das positive Vorzeichen der Zahl kann weggelassen werden. Ganzzahlen werden in der Form ohne Dezimalpunkt geschrieben, zum Beispiel: 217 -45 8954 +483
  27. 27. Die Gruppe der reellen Typen definiert diejenigen Daten, die durch eine Teilmenge reeller Zahlen realisiert werden. Var A: real; beginnen ... A:=0,65; ...Ende.
  28. 28. Typname Typ Wertebereich Anzahl der Mantissenstellen Größe (Byte) Reelle Zahl mit einfacher Genauigkeit Reelle Zahl 2,9e-39 .. 1,7e+38 11 6 Reelle Zahl mit einfacher Genauigkeit 1,5e-45 .. 3,4e+38 7 4 Doppelte Genauigkeit reelle Zahl Double 5.0e-324 .. 1.7e+308 15 8 hochpräzise reelle Zahl erweitert 3.4e-4932 .. 1.1e+4932 19 10 reelle Zahl Integer Comp -9.2e+18 .. 9.2e+18 19 8
  29. 29. Reelle Zahlen werden in der Form mit einem Dezimalpunkt oder in der Form mit der Dezimalreihenfolge geschrieben, die durch den Buchstaben E dargestellt wird: 28,6 0,65 -0,018 4,0 5E12 -1,72E9 73,1E-16
  30. 30. Der boolesche Bezeichner entspricht dem booleschen Datentyp. Boolesche Variablen haben eine Größe von 1 Byte und können TRUE- oder FALSE-Werte enthalten. Der Wert FALSE entspricht 0, jede Zahl ungleich Null gilt als TRUE. Var-Schaltfläche, Flag: boolean; Schaltfläche „Starten“:=true;
  31. 31. Der Standardbezeichner Char entspricht dem Zeichentyp. Variablen und Konstanten vom Typ Zeichen können Werte aus einer Vielzahl von ASCII-Zeichen annehmen. Var simvol, bukva, z: char; Symbolische Variablen deklarieren
  32. 32. Der String-Typ entspricht dem Standardbezeichner String. Var S: String; (String von 0 bis 255 Zeichen) S2: String; (Vorrat von 5 Zeichen)
  33. 33. Eine Zeichenfolge ist eine Folge von Zeichen aus dem ASCII-Zeichensatz, eingeschlossen in einfache Anführungszeichen. Zeilen in der Pascal-Sprache sind eine Folge von Zeichen, die zwischen Apostrophen geschrieben werden. Wenn Sie das Apostroph selbst als bedeutungsvolles Zeichen in einer Zeile verwenden müssen, sollten Sie zwei Apostrophe schreiben. Beispiele für Zeichenfolgen: „STRING“ „STRING“ „AD“ „YUTANT“
  34. Der Zeichentyp sowie ganzzahlige und boolesche Typen werden als sogenannte Ordinaltypen klassifiziert.  Die Menge der gültigen Werte eines beliebigen Ordnungstyps ist eine geordnete Folge, in der jedes Element seine eigene Ordnungszahl hat (beginnend bei 0).
  35. 35. Die Ord-Funktion gibt die Ordnungszahl dieses Werts in der Typdeklaration zurück. Ord(2)=2, Ord(‘0’)=48 Writeln(ord(‘e’)); Writeln(ord('9'));
  36. 36. ASCII-Kodierungstabelle ASCII (American Standard Code for Information Interchange; ausgesprochen „ask“) ist eine Computerkodierung zur Darstellung des lateinischen Alphabets, arabischer Ziffern, einiger Satzzeichen und Steuerzeichen. Es wurde vom American Standards Institute ANSI eingeführt.

1 Folie

„EINFÜHRUNG IN DIE PASCAL-SPRACHE ERHALTEN“ LEKTION ZUM THEMA: Lehrerin für Mathematik und Informatik, Städtische Bildungseinrichtung Schule Nr. 2, Kalach-on-Don, Region Wolgograd Anisimova N.A.

2 Folie

ZIEL DER LEKTION: Die Struktur des Programms, Operatoren, Designregeln und Interpunktion der Turbo Pascal-Sprache herausfinden.

3 Folie

TURBO PASCAL-Programmiersystem. Pascal ist eine universelle Programmiersprache, mit der Sie eine Vielzahl von Inlösen können.

4 Folie

1)Turbo Pascal-Programmiersprache; 2) integrierte Programmierumgebung (Compiler: übersetzt das Programm in Maschinencode und Interpreter: führt Befehle aus) ZUSAMMENSETZUNG DES TR-PROGRAMMIERSYSTEMS:

5 Folie

1) lateinische Buchstaben – groß und klein; 2) Buchstaben des russischen Alphabets – groß und klein; 3) Zahlen – von 0 bis 9; 4)Operationszeichen - +, -, /, *,=, =; 5) Trennzeichen – () ( ); . , ‘ _% & # usw. Alphabet der Programmiersprache TURBO PASCAL

6 Folie

7 Folie

Programmtitel Variablenbeschreibungsabschnitt Operatorabschnitt (Hauptteil)

8 Folie

Der Abschnitt zur Variablenbeschreibung beginnt mit dem Wort Var, gefolgt von einer durch Kommas getrennten Liste mit Namen von Variablen desselben Typs. In Pascal gibt es zwei numerische Arten von Größen: Real und Integer. Variablennamen bestehen aus lateinischen Buchstaben und Zahlen, wobei das erste Zeichen ein Buchstabe ist. VAR-Liste von Variablen desselben Typs: INTEGER; Liste von Variablen desselben Typs:REAL;

Folie 9

Der Operatorbereich ist der Hauptteil des Programms. Der Anfang und das Ende eines Abschnitts werden mit den Servicewörtern BEGIN und END gekennzeichnet, bei denen es sich um Operatorklammern handelt. Zwischen diesen Wörtern stehen alle in Pascal geschriebenen Algorithmusbefehle (Operatoren). Das Anweisungstrennzeichen ist ein Semikolon. Ganz am Ende des Programms gibt es einen Punkt. BEGIN READ(Eingabeliste); READLN(Eingabeliste); variable:=arithmetischer Ausdruck; WRITE(Ausgabeliste); WRITELN(Ausgabeliste); ENDE.

10 Folie

Die Eingabe der Anfangsdaten über die Tastatur erfolgt mit dem Operator READ oder READLN (Lesen). Die READLN-Anweisung unterscheidet sich von der READ-Anweisung nur dadurch, dass nach der Dateneingabe der Cursor an den Anfang springt Neue Zeile. variable:=arithmetischer Ausdruck; WRITE(Ausgabeliste); WRITELN(Ausgabeliste); ENDE. READ(Eingabeliste); READLN(Eingabeliste);

11 Folie

variable:=arithmetischer Ausdruck; Arithmetischer Zuweisungsoperator: Links ist eine Variable, rechts ein arithmetischer Ausdruck, der ausgewertet werden muss. Das zusammengesetzte Symbol := wird als „assign“ gelesen. Zuerst wird ein arithmetischer Ausdruck berechnet, dann wird der resultierende Wert einer Variablen zugewiesen. Beispiel: a:= sqr (x) + sin (y) / (12*z + 5)

12 Folie

mod div / * - + SIN (x) COS (x) SQR (x) SQRT (x) ABS (x) Sin x Cos x x 2 |x| x Addition, Subtraktion, Multiplikation, Division, Division, Ganzzahl, Rest der Division

Folie 13

Regeln zum Schreiben arithmetischer Ausdrücke Ein arithmetischer Ausdruck wird in einer Zeile geschrieben. Sie können nicht zwei Zeichen hintereinander schreiben Rechenoperationen Sie können das Multiplikationszeichen zwischen Faktoren nicht weglassen. Es werden nur Klammern verwendet. Die Reihenfolge der Operationen wird durch ihre Prioritäten bestimmt () F(x) * / + - div mod

Folie 14

Die Ergebnisse werden mit WRITE oder WRITELN (Schreiben) ausgegeben. Die Ergebnisse werden in der Reihenfolge angezeigt, in der sie in der Liste erscheinen. Der Unterschied zwischen den Anweisungen WRITE und WRITELN besteht darin, dass sich der Cursor nach Abschluss der Ausgabeoperation durch die WRITELN-Anweisung an den Anfang einer neuen Zeile bewegt. WRITE(Ausgabeliste); WRITELN(Ausgabeliste);

15 Folie

Aufgabe 1: AXby 6) TU154 2) R&B 3) 4Wheel 4) Vasya 5) „PesBarbos“ 7) 8) _ABBA 9) A+B

16 Folie

Programm zadacha1; var a, b: ganze Zahl; x, y: real; begin a:= 5; 10:= x; y:= 7,8; b:= 2,5; x:= 2*(a + y); a:= b + x; Ende. Der Variablenname muss links vom Vorzeichen stehen:= Die Ganzzahl- und Bruchteile werden durch ein Komma und einen Typkonflikt getrennt. Typkonflikt. AUFGABE 2: Fehler im Programmeintrag finden.

PASCAL EINFÜHRUNG IN DIE PROGRAMMIERSPRACHE 2006 KURSSTRUKTUR Schnittstelle und grundlegende Definitionen; Programmstruktur; Anzeigen von Textinformationen auf dem Bildschirm; Eingabe von Daten über die Tastatur; Anschließen und Verwenden von Systemmodulen; Arbeiten mit grundlegenden Datentypen (Ganzzahl, reelle Zahl, Zeichenfolge, Array, Datei); Arbeiten mit Grafiken; Verwendung von Unterprogrammen (Prozeduren und Funktionen); Verwendung von Modulen. 2 PASCAL-UMGEBUNGSSCHNITTSTELLE Die Programmiersprache Turbo Pascal 7.0 ist in einer Instrumental-Shell eingeschlossen. Es umfasst: Mehrfenster-Texteditor; Programmlinker; Programm-Debugger; Hilfesystem; Compiler. 3 PASCAL 4-UMGEBUNGSSCHNITTSTELLE Liste der geöffneten Dateien: Alt + 0 Schnellzugriff auf geöffnete Dateien: Alt +<№ окна> GRUNDLEGENDE DEFINITIONEN Ein reserviertes Wort ist ein spezielles Wort, das von einer Programmiersprache verwendet wird, um logische Bereiche eines Programms zu trennen. Ein Operator ist ein Sprachbefehl, der eine Aktion ausführt (eine Bedingung prüfen, eine Schleife organisieren usw.). Ein Bezeichner ist ein vom Programmierer frei gewählter Name für Programmelemente. Ein Datentyp ist ein Merkmal eines Bezeichners, der die Menge an Werten definiert, die er annehmen kann (ganzzahlige oder gebrochene Zahlen, Zeichenfolgen, logische Ausdrücke usw.). 5 ALLGEMEINE PROGRAMMSTRUKTUR Programm Programmname; Verwendet Abschnitt von Plug-Ins; Etikettenbereich für Etikettenbeschreibungen; Const-Abschnitt zur Beschreibung von Konstanten; Typbereich zur Beschreibung Ihrer eigenen Datentypen; Abschnitt zur Var-Variablenbeschreibung; Begin Der Hauptteil des Programms; Ende. Mindestcode: 6 SCREEN OUTPUT Um Informationen auf dem Bildschirm anzuzeigen, werden die folgenden Operatoren verwendet: Write oder Writeln. F9 – Kompilieren + Verifizieren Strg+F9 – Ausführen F9 → Strg+F9 – Fehler vermeiden Anzeige der Ergebnisse der Programmausführung 7 ANZEIGE Das Ergebnis der Verwendung der Operatoren: WRITE „Leer“-Operator WRITELN fügt eine leere Zeile hinzu WRITELN 8 ÜBUNG Zeigt die Informationen an der Bildschirm wie unten gezeigt Hallo! Schön, dich zu sehen! Nennen Sie mich Computer. Verwendetes Material: Ausgabeanweisungen: Write, WriteLn „Empty“ WriteLn-Anweisung; fügt eine Leerzeile ein. 9 ANSCHLUSS ZUSÄTZLICHER MODULE Zusätzliche Module erweitern die Möglichkeiten Ihrer Programme durch die Einführung zusätzlicher Operatoren. Module werden im Abschnitt „Verwendungen“ verbunden. Programm My; Verwendet Modul1, Modul2; ________________________ ________________________ ________________________ ________________________ MODUL 1 Satz von Ressourcen 1 ... MODUL N Module: Systemeigener Satz von Ressourcen N Löschen des Textbildschirms Warten auf das Drücken einer Taste Verbundenes Modul mit dem Namen CRT 10 AUSGABE AN EINER BELIEBIGEN ORT DES BILDSCHIRMS GotoXY (X , Y: Ganzzahl) Wobei X, Y – Koordinate einer bekannten Stelle auf dem Bildschirm. X kann Werte von 1 bis 80 und Y von 1 bis 25 annehmen. Beispiel: Program My_program; (Modulverbindung) Verwendet Crt; Begin (Bildschirm löschen) ClrScr; (Datenausgabe) GotoXY(1, 1); write("▒"); GotoXY(80, 1); write("▒"); GotoXY(1, 25); write("▒"); GotoXY(80, 25); write("▒"); (Bildschirmverzögerung) ReadKey; Ende. Das Programm zeigt das Symbol „▒“ (Code 177) in den Ecken des Bildschirms an. 11 AUSGABE IN FARBE TextColor (Farbe); Definiert die Farbe der Zeichen. TextHintergrund(Farbe); Definiert die Farbe des vertrauten Ortes. Programm MyProgram; UsesCrt; Begin TextColor(Rot); TextBackGround(Blau); Write("Im Hof"); TextColor(Weiß); Write("Gras, "); TextColor(Grün); TextBackGround(Gelb); Write("auf dem Gras"); TextBackGround(Magenta); Write("Brennholz. "); Ende. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Farben Schwarz Blau Grün Cyan Rot Magenta Braun LightGray DarkGray LightBlue LightGreen LightCyan LightRed LightMagenta Yellow White 12 – Schwarz – Blau – Grün – Cyan – Rot – Flieder – Braun – Hellgrau – Dunkelgrau – Blau – Hellgrün – Helles Cyan – Rosa – Helllila – Gelb – Weiß ARBEITEN MIT DATEN ARBEITEN MIT DATEN IDENTIFIKATIONEN ERKLÄREN 14 EINSTELLEN EINES DATENTYPS Identifizierung von Daten Eindeutigkeit von Operationen an Daten AUFGABENWERTE Operationen mit Datenbezeichnern Der Begriff Bezeichner gilt für Konstanten, Variablen, Funktionen, Prozeduren, Komponenten und andere benutzerdefinierte Objekte. Zulässige Zeichen: lateinische Buchstaben, Zahlen, Unterstrich. Einschränkungen: dürfen nicht mit einer Zahl beginnen, können aber mit einem Unterstrich beginnen. . darf nicht aus mehreren Wörtern bestehen. Kann nicht mit einem beliebigen Schlüsselwort identisch sein. Bei Bezeichnern wird die Groß-/Kleinschreibung nicht beachtet. Fehlerhafte Bezeichner: Daten Mein Name 2Array Var ( ( ((Es werden russische Zeichen verwendet) Es gibt ein Leerzeichen) Beginnt mit einer Zahl) Entspricht einem Schlüsselwort) 15 DATENTYPEN Ein Datentyp ist ein Merkmal eines Bezeichners, der die Menge der Werte bestimmt ​es kann (ganzzahlige oder gebrochene Zahlen, Zeichenfolgen, logische Ausdrücke usw.) annehmen. 16 INTEGER-DATENTYP 17 Endliche Menge möglicher Werte Typ Byte Shortint Wort Ganzzahl Longint Bereich 0..255 -128..127 0..65535 -32768..32767 -2147483648..2147483647 ! Eine Überschreitung des Bereichs führt zu einem Fehler! size DEKLARATION VON VARIABLEN Eine Variable ist ein Bezeichner, der einen beliebigen Wert (Zahl, Zeichenfolge usw.) speichern und während des Programmbetriebs ändern kann. Syntax: Var<имя переменной> : <тип переменной>; Programm Programmname; Verwendet Abschnitt von Plug-Ins; Abschnitt zur Var-Variablenbeschreibung; Begin Der Hauptteil des Programms; Ende. Im Computerspeicher ist Platz für 3 Variablen reserviert. 18 VARIABLENWERTE EINSTELLEN Um den Wert einer Variablen festzulegen, müssen Sie den Zuweisungsoperator verwenden:= Aufzeichnungssyntax:<Переменная> := <Значение>; Der Wert 3 wird in eine Variable (Ganzzahl) mit dem Namen A eingetragen. 19 OPERATIONEN MIT INTEGER-VARIABLEN 20 Arithmetische Operationen: + - * / Standardoperationen: div | mod | sqr Kann nicht mit ganzzahligen Typen verwendet werden. Die Variable mit dem Namen S speichert die Summe der in den Variablen X und Y gespeicherten Werte. Der in der Variablen mit dem Namen S gespeicherte Wert wird auf dem Bildschirm angezeigt. ÜBUNG 21 1. Schreiben Sie ein Programm, das das Ergebnis anzeigt der Multiplikation der Zahlen 15 und 20 2. Schreiben Sie ein Programm, das den Wert der Funktion f 2 x 3 y für x=11, y=3 anzeigt. Verwendete Materialien: Variablen werden im Var-Abschnitt deklariert. Der Ganzzahltyp heißt Integer The Die Syntax zum Zuweisen eines Werts zu einer Variablen lautet:<Переменная> := <Значение> ; Hinter jedem Operator steht ein Schild; (außer Anfang und Ende) REAL DATA TYPE Wertemenge √ √ Ordinaltyp Realtyp Einwegkompatibilität: Real Integer Integer Real! Eine Überschreitung des Bereichs und die Nichteinhaltung der Kompatibilitätsregeln führen zu einem Fehler! 22 OPERATIONEN MIT REALEN VARIABLEN 23 Standardoperationen: pi | Quadrat | Sünde | Weil | Bauchmuskeln | Exp | Ln Rund | Trunc (real → integer) Zum Beispiel (X, S – Real-Typ): X:= pi/3; S:= Sin(X) * 100; Write(Round(S)); Die Variable mit dem Namen S enthält das Verhältnis der Werte, die in den Variablen X und Y gespeichert sind. Die Position der Zahl und die Anzahl der Zeichen im Bruchteil der Zahl E – bezeichnet die Potenz der Zahl. 5.6E-5 = 5.6·10-5 STRING-DATENTYP 24 Strings – ein geordneter Satz von Zeichen. Zeilen werden in Apostrophe eingeschlossen. Zeichenfolgen sind nicht mit Integer- und Real-Typen kompatibel. Typ Bereich String 255 Zeichen (Grundlegende Operatoren für Strings) + (Verkettung) Länge(S); (Stringlänge) Zum Beispiel: X:= ‘Vasya’; Write(‘In deinem Namen’, Länge(X), ‘lit.’); S:=X; X:= S; ÜBUNG Schreiben Sie ein Programm, das das Ergebnis der Division der Zahlen 12,89 und 0,22 anzeigt und dabei nur drei signifikante Nachkommastellen im folgenden Format anzeigt: erste Zahl dividiert durch zweite Zahl = Ergebnis. Schreiben Sie (X:1:3, ' razdelit na ', y:1 :3, ' = ' z:1:3) Verwendetes Material: Der String-Typ heißt String. Strings werden in Opostrophe eingeschlossen. Die String-Verkettung erfolgt durch das +-Zeichen. Im Anzeigeoperator werden verschiedene Typen durch ein Komma getrennt 25 DATENEINGABE ÜBER DIE TASTATUR 26 Um Informationen über die Tastatur einzugeben, müssen Sie den Eingabeoperator „Read“ oder „ReadLn“ verwenden. Syntax: Lesen (N1, N2, ... Nn); Dabei sind N1, N2, ... Nn Variablen (Ganzzahl, Real, String). Der über die Tastatur eingegebene Wert wird in die Variable X eingegeben. Nach Eingabe des Werts müssen Sie die Eingabetaste drücken. Wenn in der mehrere Variablen angegeben sind Sie werden durch ein Leerzeichen getrennt oder durch Drücken einer Taste eingegeben. Geben Sie ÜBUNG 27 ein: 1. Schreiben Sie ein Minirechnerprogramm, das die Summe zweier über die Tastatur eingegebener Zahlen berechnet. 2. Schreiben Sie ein Programm, das Sie nach Ihrem Namen fragt und nach Eingabe Ihres Namens eine Begrüßung anzeigt. Wenn Sie beispielsweise den Namen Vanya eingegeben haben, zeigt das Programm den Satz an: Hallo, Vanya!!! Verwendetes Material: Eingabeoperatoren: Read, ReadLn OPERATOREN BEDINGTER OPERATOR 29 Ein bedingter Operator implementiert „Verzweigung“, das heißt, er ändert die Reihenfolge der Ausführung von Operatoren abhängig davon, ob eine Bedingung wahr oder falsch ist. Überprüfung der Bedingung NEIN Aktion 1 Ich gehe an den Strand Es regnet JA Aktion 2 Ich nehme einen Regenschirm Aktion 3 Ich gehe ins Kino BEDINGUNGEN PRÜFEN Vergleichsoperationen: > - mehr< - меньше = - равно >= - größer oder gleich<= - меньше или равно <>- ungleich 30 Logische Operationen: Nicht Und Oder - Nicht -Und - Oder Zum Beispiel: Wenn meine Größe > Petjas Größe ist, dann bin ich größer als Petja. Wenn (es regnet) Oder (es schneit), dann werde ich zu Hause bleiben Wenn nicht ((es regnet) und (Wind)), dann gehe ich spazieren logische Operationen, Bedingungen werden in Klammern eingeschlossen. KONDITIONELLER OPERATOR SCHREIBSYNTAX Kurzform: Wenn<условие>Dann<оператор>; Wenn beispielsweise der Wert in der Variablen X kleiner als 0 ist, wird der Wert 1 in dieselbe Variable geschrieben: Wenn X<0 Then X:= 1; Полная форма: If <условие>Dann<оператор_1>anders<оператор_2>; Zum Beispiel: Wenn X>5, dann X:= X - 1, sonst X:= X + 1; Nach den Wörtern Then und Else können Sie nur einen Operator verwenden. Vor dem Wort Else das Zeichen; fehlt 31 ÜBUNG 32 1. Schreiben Sie ein Programm, das als Eingabe einen Betrag in Dollar und einen Betrag in Euro empfängt und dann anzeigt, in welcher Währung der Betrag größer ist (1 Dollar = 28 Rubel, 1 Euro = 35 Rubel) 2. Schreiben Sie a Programm, das drei Zahlen als Eingabe nimmt und dann das Maximum davon anzeigt. Verwendetes Material: Formen der Aufzeichnung des Bedingungsoperators: If<условие>Dann<оператор>; Wenn<условие>Dann<оператор_1>Anders<оператор_2>; Before Else-Zeichen; nicht enthalten Vergleichsoperationen: >< = <> >= <= Логические операции: Not Or And ОПЕРАТОРНЫЕ СКОБКИ Если после слов Then или Else необходимо записать несколько операторов, то их заключают в операторные скобки (составной оператор). Операторные скобки начинаются словом Begin, а заканчиваются словом End; Например: If Z >0 Dann beginnen X:= 1; Y:= -1; WriteLn('Informationen erhalten'); End Else WriteLn('Error'); 33 FALL DES AUSWAHLOPERATORS Der Auswahloperator wird verwendet, um Konstrukte aus verschachtelten bedingten Anweisungen zu ersetzen. Fallsyntax<порядковая_переменная>von<значение_1> : <оператор_1> ; <значение_2> : <оператор_2> ; ……… <значение_N> : <оператор_N>Anders<оператор_N+1>; Ende; Sie können Operatorklammern in der Auswahlanweisung verwenden. Optionale Zeile 34 SELECTION OPERATOR CASE Case Schülergröße von 16..30: Sie sind ein Grundschüler; 31,32,33: Du bist in der 5.-6. Klasse; 34..50: Sie sind ein Gymnasiast. Ein Komma wird verwendet, um Werte aufzulisten, ein Doppelpunkt wird verwendet, um einen Bereich auszuwählen. Ansonsten sind Sie eindeutig kein Student; Ende; Fall x von -128..-1: writeln(‘Negative’); 0: writeln('Null'); 1..127: writeln(‘Positive’) Else WriteLn(‘Out of range’); Ende; 35 ÜBUNG Schreiben Sie ein Programm, das bei gegebener Zahl den entsprechenden Wochentag anzeigt. Wenn Sie beispielsweise die Zahl 2 eingegeben haben, sollte das Programm „Dienstag“ ausgeben. Wenn die Zahl über 1..7 hinausgeht, sollte eine Meldung angezeigt werden, dass es keinen solchen Tag gibt. Verwendetes Material: Auswahloperator: Fall<порядковая_переменная>von<значение_1> : <оператор_1> ; ……… <значение_N> : <оператор_N>; Anders<оператор_N+1>; Ende; 36 ZYKLEN 37 Zyklische Algorithmen sind solche, bei denen bestimmte Operatoren wiederholt mit denselben modifizierten Daten ausgeführt werden (z. B. das Verfahren zur Multiplikation von Zahlen durch wiederholte Addition). In der Pascal-Sprache gibt es drei Schleifenoperatoren: For (Schleife mit einem Parameter oder für eine angegebene Anzahl von Wiederholungen) While (Schleife BYE) Wiederholen (Schleife TO) Wenn die Anzahl der Wiederholungen bekannt ist, ist es besser, die Schleife zu verwenden Operator mit einem Parameter. SCHLEIFE MIT PARAMETER 38 Schleife für eine angegebene Anzahl von Wiederholungen mit einem steigenden oder fallenden Wert des Parameters For (parameters) := (start_value) To (end_value) Do (operator) ; Schleifenkörper Hinweise Parameter – Ganzzahltyp; Sie können Klammern in einer Schleife verwenden; Sie können den Schleifenparameter im Schleifenkörper nicht ändern; Der Schleifenparameter wird um eins erhöht; Anfangswert > Endwert, andernfalls wird der Schleifenkörper ignoriert; Um den Parameter zu verringern, verwenden Sie anstelle von To DownTo. SCHLEIFE MIT PARAMETER 39 Schreiben Sie ein Programm, das ganze Zahlen (a, b) und a anfordert := <нач_зн>Zu<кон_зн>Tun<оператор>; Parameter – ein ganzzahliger Typ (normalerweise Integer); Sie können Klammern in einer Schleife verwenden; Der Schleifenparameter wird um eins erhöht. 40 WHILE-SCHLEIFE Die While-Schleife prüft zunächst die Bedingung und führt nur dann den Hauptteil der Schleife aus, wenn sie wahr ist. While (condition) do (operator); Im unten geschriebenen Codekörper wird die Schleife kein einziges Mal ausgeführt: x:=1; While x>1 do x:=x-1; Sie können eine Endlosschleife erhalten. Zum Beispiel: x:=1 While x>0 do x:=x+1; 41 WHILE-SCHLEIFE („WHILE“) Ein Programm, das die Summe der Zahlen von a bis b anzeigt. Während Sie keine Taste drücken, beginnen Sie mit Delay(2000); Ende; Der Zyklus funktioniert, bis die sich ändernde Variable f größer als der Wert b wird. 42 ÜBUNG 43 1. Die Astronauten beschlossen, Birken auf dem Mond zu pflanzen, und jedes Jahr verdoppelten sie die Anzahl der Birken; im ersten Jahr pflanzten sie drei Birken. Zeigen Sie auf dem Bildschirm an, in wie vielen Jahren die Anzahl der Birken 10.000 überschreiten wird. 2. Schreiben Sie ein Programm, das das Maximum der über die Tastatur eingegebenen Zahlen ermittelt (die eingegebene Zahl endet mit der Zahl 0). Nachfolgend finden Sie die empfohlene Bildschirmansicht: Zahlen eingeben. Um den Eintrag abzuschließen, geben Sie 0 ein. 89 15 0 Maximale Zahl ist 89. Verwendetes Material: While-Schleifenanweisung: While<условие>Tun<оператор>; Die While-Schleife prüft zunächst die Bedingung und erst dann den Hauptteil der Schleife, wenn sie wahr ist. REPEAT LOOP 44 Die Repeat-Schleife führt zunächst den Schleifenkörper aus und prüft erst dann die Bedingung Repeat (loop_body) Until (condition); Es ist nicht erforderlich, in der Wiederholungsschleife einen zusammengesetzten Operator zu verwenden, weil Diese Konstruktion beinhaltet die Ausführung nicht eines, sondern mehrerer Operatoren, die zwischen den Wörtern „Repeat“ und „Until“ eingeschlossen sind. REPEAT LOOP Ein Programm, das die Summe der Zahlen von a bis b anzeigt. Die Schleife läuft, bis die sich ändernde Variable f größer als der Wert b wird. 45 VERGLEICH DER ZYKLEN For While Repeat 46 Die Wahl eines Schleifenmodells hängt nur von der Zweckmäßigkeit seiner Verwendung in einer bestimmten Situation ab. Wir können fast immer einen anderen Zyklustyp anstelle eines Zyklustyps verwenden. ÜBUNG Berechnen Sie den Wert der Funktion y x 3 x 2 16 x 43 für x, das im Bereich von -4 bis einschließlich 4 in Schritten von 0,5 variiert. Verwendetes Material: Wiederholungsschleifenoperator: Wiederholen<тело_цикла>Bis<условие>Die Wiederholungsschleife führt zunächst den Schleifenkörper aus und prüft erst dann die Bedingung. 47 ZYKLEN UNTERBRECHEN 48 Zur flexiblen Steuerung zyklischer Operatoren werden die folgenden Prozeduren verwendet: Break – Verlassen der Schleife; Weiter – Abschluss des nächsten Durchgangs des Zyklus; Beispiele: Finden Sie die Mindestzahl i, für die die Summe der Zahlen von 1 bis i größer als 100 ist. Sobald s (die Summe der Zahlen von 1 bis i) größer als 100 wird, wird die Break-Anweisung ausgelöst und die Schleife ausgeführt verlassen. s:=0; für I:= 1 bis 100 beginnen, wenn s>100, dann brechen; s:= s + i; Ende; Writeln(‘die minimale Anzahl i, so dass (1+2+..+i)>100 gleich ist ’,i); Über die Tastatur werden 10 Zahlen eingegeben und in der Schleife wird nur die Summe der positiven Zahlen berechnet. Wenn die Zahl negativ ist, wird die continue-Anweisung ausgeführt, die den nächsten Schleifendurchlauf beginnt. s:=0; for I:= 1 to 10 do begin Readln (k); wenn k<0 then Сontinue; s:= s + k; end; Writeln (‘Сумма положительных чисел равна ’,s); МАССИВЫ МАССИВЫ 50 Простые типы: одна переменная – одно значение Структурированные типы: одна переменная – несколько значений Массив – это фиксированное количество значений одного типа. Доступ к конкретному значению осуществляется через индекс. Переменная массива Структура массива: A= Доступ к массиву: 0 1 2 3 Индекс 9 7 0 0 Значения <Имя массива> [ <Индекс>] A := 7; ARRAYS Ein Array wird im Var-Abschnitt deklariert: (Name) : Array [ (start_value) .. (end_value) ] of (type) ; Beispiele für Array-Deklarationen: Var A: Array of String; B: Array von Real; C: Array von Ganzzahlen; Beispiele für das Füllen von Arrays mit Werten: A:=‘Vasya’; A:=‘Petya’; A:=‘Mascha’; A:=‘Olesya’; Schreib ein); Für f:=1 bis 10 do C[f] := f*2; Für f:=1 bis 10 mache WriteLn (C[f]); 51 ÜBUNG 52 Schreiben Sie ein Programm, das den Benutzer nach 7 Ganzzahlen fragt und diese in einem Array speichert. Das maximale Element wird im Array gefunden und auf dem Bildschirm angezeigt. Zum Beispiel: Geben Sie die 1. Zahl ein: 4 Geben Sie die 2. Zahl ein: 8 Geben Sie die 3. Zahl ein: 9 Geben Sie die 4. Zahl ein: 2 Geben Sie die 5. Zahl ein: 4 Geben Sie die 6. Zahl ein: 5 Geben Sie die 7. Zahl ein: 0 Maximale Zahl: 9 Verwendetes Material: Array-Deklarationen:<Имя>:Array[<нач_зн> … <кон_зн>] von<тип>; Array-Zugriff:<Имя массива> [ <Индекс>] ZUFALLSZAHLENGENERATOR (RNG) Um Zufallszahlen im Programm zu generieren, verwenden Sie die folgenden Operatoren: Randomize – RNG-Initialisierung. Wird erst ganz am Anfang der Sendung bekannt gegeben; Random – generiert eine Zufallszahl von 0 bis 1 (realer Typ); Random (N) – generiert eine Zufallszahl von 0 bis N-1 (Ganzzahltyp); 53 MEHRDIMENSIONALE ARRAYS 54 Liste der Intervalle für jede Array-Dimension (Name): Array [ (Startwert) .. (Endwert) , (Startwert) .. (Endwert) , (usw.) ] von (Typ) ; Ein Beispiel für die Deklaration eines zweidimensionalen Arrays (Matrix, Tabelle) mit 4 Zeilen und 6 Spalten: Var A: Array of Integer; Ein Beispiel für das Füllen eines Arrays: For i:=1 to 4 do For j:=1 to 6 do A := i+j; Ai , j 2 3 4 5 3 4 5 6 4 5 6 7 5 6 7 8 6 7 8 9 7 8 9 10 ÜBUNG Schreiben Sie ein Programm, das ein zweidimensionales Array mit Zufallszahlen von -10 bis 20 füllt und die Summen anzeigt der diagonal auf dem Tisch liegenden Elemente. Verwendetes Material: RNG-Initialisierung: Randomisieren Zufallszahl von 0 bis N-1: Random (N) 55 ARBEITEN MIT DATEIEN ARBEITEN MIT DATEIEN 57 Datei: Anfang der Datei Index)a@$ku⌂|"Hd9v*9(L*M= БYGRMxduВ █ 8e*ВOtCDrTVzHGJ1aBD>@Б\(r8sE) █ :wcJvAmRa"v/.Wai;$`SWI=y2]suB █ ?Hq>vF(LmBcV^Adz4P4.6b]o(QkВ8 █ cu<6`8Z":M^1;:8ANwak;,b2-4…u5 █ 2]suB?Hq>vF(LmBcAdz4wcP]o(QkВ █ 8c8df]e"v,su>+),VAEFБjFV,W$Q- █ y0G1GjN$-eБ|sqZ0`QnВ%\БD%y █ █ █ - Zeilenabschluss █ - Abschlussdatei Variable Erstellen, Lesen, Schreiben, Schließen ARBEITEN MIT DATEIEN Abfolge von Aktionen beim Arbeiten mit Dateien: 1. Deklaration einer Dateivariablen (FP); 2. Zuordnung einer FP zu einer Datei; 3. Öffnen einer Datei zum Lesen/Schreiben; 4 . Operationen mit Datei; 5. Schließen der Datei (die Verbindung zwischen der Datei und dem FP wird ebenfalls unterbrochen); 1. Deklaration des FP<Имя>:Datei von<тип> ; <Имя>:Text; Var f:Text; h: Ganzzahldatei; 2. Zuordnung des FP zur Assign-Datei (<ФП>, <имя файла>); Zuweisen (f, „c:\my\Data.ghm“) 58 ARBEITEN MIT DATEIEN 3. Öffnen einer Datei zum Lesen/Schreiben Zurücksetzen (<ФП>); - öffnet die Datei zum Lesen von Rewrite (<ФП>); - öffnet eine Datei zum Schreiben 4. Dateioperationen Lesen (<ФП>, <П1> , <П2>, …); - liest in Variablen<П1>, <П2>usw. ein Element nach dem anderen von der Zeigerposition aus. Schreiben(<ФП> , <П1> , <П2>, …); - schreibt Variablenwerte in eine Datei<П1>, <П2>usw. ein Element nach dem anderen von der Zeigerposition aus. EoLn (<ФП>); - gibt True zurück, wenn das Ende der Zeile erreicht ist. EoF (<ФП>); - gibt True zurück, wenn das Ende der Datei erreicht ist. 5. Schließen der Datei Schließen (<ФП>); 59 ARBEITEN MIT DATEIEN Vereinfachen Sie das Programm, wenn Sie wissen, dass die Matrix 5x5 groß ist (verwenden Sie die For-Schleife). 60 ÜBUNG 61 Schreiben Sie das Programm „HAUS-3“. Die erste Datei enthält die Namen der Teilnehmer im Nominativ. Im zweiten die gleichen Namen, aber im Akkusativ. Die dritte enthält eine Liste von Ausdrucksformen von Gefühlen oder Handlungen (lieben, nicht mögen, küssen, beißen wollen, anbeten, respektieren, hassen, sehen wollen, Umarmungen). Aus diesen Dateien soll das Programm nach dem Zufallsprinzip Informationen entnehmen und nach folgendem Prinzip eine neue erstellen:<имя в им. пад> <чувство/действие> <имя в вин. пад> Olga liebt Sergei. Oleg möchte Roman sehen. Katya respektiert Nastya usw. Verwendetes Material: Operatornamen: Zuweisen, Umschreiben, Zurücksetzen, Schreiben, Lesen, Schließen. GRAFIK Um mit Grafiken in Pascal zu arbeiten, sind zwei Dateien erforderlich – das Modul graph.tpu und der Grafikkartentreiber egavga.bgi. Der erste befindet sich im Verzeichnis \UNITS und der zweite im Verzeichnis \BGI. ! Treiber egavga.bgi. Notwendig beim Arbeiten mit einer exe-Datei! Zum Zeichnen müssen Sie: 1. das GRAPH-Modul anschließen (im Abschnitt „Verwendungen“). 2. Grafiken initialisieren (InitGraph); 3. etwas zeichnen; 4. Schließen Sie den Grafikmodus (CloseGraph). 63 GRAFIKEN Initialisieren des Grafikmodus Zeichnen einer Linie. Die Feder bewegt sich vom Punkt (0,0) zum Punkt (639, 479). PROGRAM Primer_1; Verwendet Graph, crt; Var Gd,Gm: Ganzzahl; BEGIN Gd:=0; InitGraph (Gd,Gm,'d:\BP\bgi"); Line (0,0,639,479); ReadKey; CloseGraph; END. 639 px. Koordinatensystem 479 px. 64 Schließen des Grafikmodus ÜBUNG 65 1. Zeichnen Sie eine rechteckige Form in die Mitte des Bildschirmdreiecks 2. Zeichnen Sie ein Rechteck in der Mitte des Bildschirms, dessen Seiten zwei kleiner sind als die entsprechenden Seiten des Bildschirms. Verwendetes Material: Grafikmodul: Graph. Grafik initialisieren: InitGraph. Grafikmodus schließen: CloseGraph; GRAPHICS + COLOR SetColor( Color: Word); Legt die Stiftfarbe fest. GetColor: Word; Gibt die Stiftfarbe zurück. SetBkColor(color: Word); Legt die Hintergrundfarbe fest. GetBkColor: Word; Gibt die Hintergrundfarbe zurück. Farben Schwarz Blau Grün Cyan Rot Magenta Braun LightGray DarkGray LightBlue LightGreen LightCyan LightRed LightMagenta Yellow White 66 – Schwarz – Blau – Grün – Cyan – Rot – Flieder – Braun – Hellgrau – Dunkelgrau – Blau – Hellgrün – Hellcyan – Rosa – Helllila – Gelb – Weiß GRAFISCHE PRIMITIVE Linie (x, y ); Zeichnet eine Linie von der aktuellen Stiftkoordinate zu den Koordinaten (x,y). MoveTo(x, y); Setzt den Stift auf Koordinaten (x,y). PutPixel(x, y, Farbe); Zeichnet einen Punkt mit den Koordinaten (x,y) mit Farbe. GetPixel(x, y): Wort; Gibt die Farbe eines Punktes mit Koordinaten (x,y) zurück. Rechteck(x1, y1, x2, y2); Konstruiert den Umriss eines Rechtecks. Kreis(x, y, r); Zeichnet einen Kreis mit Mittelpunkt bei (x,y) und Radius r. SetLineStyle (Ln, 0, T) Ändert die Parameter der Umrisse. Ln – Linienstil (0..3): 67 x1, y1 T – Linienstärke: 1 = normal; 3 = dick. FillEllipse(x, y, Xr, Yr); Zeichnet eine gefüllte Ellipse mit Mittelpunkt bei (x,y) und den Radien Xr und Yr. SetFillStyle(Typ, Farbe); Legt den Typ (0..11) und die Farbe der Schraffur geschlossener ClearDevice-Formen fest; Löscht den Grafikbildschirm, indem er mit der aktuellen Hintergrundfarbe x2, y2 bemalt wird. GRAFISCHE PRIMITIVE 68 ÜBUNG 69 1. Schreiben Sie ein Programm, das ein Haus auf den Bildschirm zeichnet. 2. Schreiben Sie ein Programm, das einen Sternenhimmel mit Sternen in einem zufälligen Radius (von 1 bis 5 Pixel) und einer zufälligen Position auf den Bildschirm zeichnet. Auch die Farbe ist zufällig (weiß, hellgrau, dunkelgrau); Verwendetes Material: SetColor(Farbe: Wort); - Setzt die Zeichenfarbe SetBkColor (Farbe: Wort); - Legt die aktuelle Hintergrundfarbe fest. Linie(x, y); – Zeichnet eine Linie von der aktuellen Stiftkoordinate zu den (x,y)-Koordinaten. MoveTo(x, y); - Setzt den Stift auf Koordinaten (x,y). PutPixel(x, y, Farbe); - Zeichnet einen Punkt mit Koordinaten (x,y) mit Farbe. Rechteck(x1, y1, x2, y2); - Konstruiert den Umriss eines Rechtecks ​​aus Linien der aktuellen Farbe. Kreis(x, y, r); - Zeichnet einen Kreis mit Mittelpunkt bei (x,y) und Radius r. FillEllipse(x, y, Xr, Yr); - Zeichnet eine gefüllte Ellipse mit Mittelpunkt bei (x,y) und den Radien Xr und Yr. GRAFIK + ANIMATION Pause in ms. 70 UNTERROUTINEN UNTERROUTINEN Mit Unterroutinen können Sie einen sich wiederholenden Teil des Codes in separate Fragmente isolieren und diese an den richtigen Stellen im Programm einfügen. Im Gegensatz zu einer Prozedur gibt eine Funktion das Ergebnis des Aufrufs zurück. Prozeduren Funktionen Unterprogramme: geschrieben zwischen Schlüsselwörter Anfang Ende; identifiziert durch Namen, die gemäß den Regeln zur Angabe von Bezeichnern geschrieben werden; kann Eingabe- und Ausgabeparameter haben; Wiederholen Sie den Aufbau des Hauptprogramms vollständig. 72 Programm My; Unterprogramm 1 [Code von Unterprogramm 1] Unterprogramm 2 [Code von Unterprogramm 2] Beginn Unterprogramm 2 Unterprogramm 1 Beispiel für Systemunterprogramme: Write(“Ok”); ClrScr; Länge(S); Zufällig; // // // // Prozedur mit einem Parameter Prozedur ohne Parameter Funktion mit einem Parameter Funktion ohne Parameter Unterprogramm 2 Ende. UNTERPROGRAMME (SPR) Verschachtelung von Unterprogrammen Programm Unterprogramm 1 Unterprogramm 3 Unterprogramm 4 Unterprogramm 2 73 Variablenverfügbarkeitsbereich In einem bestimmten SPR beschriebene Variablen sind in seinem Körper bekannt, EINSCHLIESSLICH aller verschachtelten SPRs (die in SPR1 beschriebene Variable wird in SPR3,4 verfügbar sein) . Die Namen der im PPR beschriebenen Variablen können mit den Namen der Variablen aus anderen PPRs übereinstimmen (die gleiche Variable kann in jedem der PPRs deklariert werden). Der in der PPR beschriebene Variablenname filtert gleichnamige Variablen aus der PPR, die diese einschließt (wenn in PPR1 und PPR3 identische Variablen deklariert sind, sind diese Variablen in jeder PPR eindeutig). Programmvariablen heißen global und Unterprogrammvariablen heißen lokal. PROZEDUREN OHNE PARAMETER Aufzeichnungssyntax: Prozedur (Prozedurname); (Abschnitt von Variablen, Konstanten, Typen, Labels, Modulen) Begin (Prozedurkörper); Ende; Ein Beispiel für die Verwendung einer Prozedur ohne Parameter: 74 PROZEDUREN OHNE PARAMETER Ein Beispiel für das Escapen von Variablen mit demselben Namen: Program My_program; UsesCrt; Var A:String; // Beschreibung der Prozedur Procedure My_Procedure; Var A:String; Begin A:= "Subroutine"; Writeln(A); Ende; Begin A:= "Body"; Writeln(A); Meine_Prozedur; Writeln(A); Ende. // Aufruf einer Prozedur 75 PROZEDUREN MIT PARAMETERN 76 Um Unterprogramme universeller zu machen, werden spezielle Mechanismen für den Datenaustausch zwischen dem Programm und seinen Unterprogrammen verwendet. Systemprozeduren mit Parametern: SetColor (Rot); ( Prozedur mit Rechteck (0, 0, 639, 479); ( Prozedur mit InitGraph (Gd,Gm,'d:\BP\bgi"); ( Prozedur mit ( Parameter ein Parameter ) mehrere Parameter ) mehrere verschiedene Typen ) ) Aufzeichnung Syntaxprozeduren mit Parametern Prozedur (Name) ((Bereich der Eingabevariablen) Var (Bereich der Ausgabevariablen (jede Variable hat ihre eigene Var))); Struktur der Bereiche: Variable_1, Variable_2, …: Typ; .. ......... ............. Variable_N-1, Variable_N, … : Typ; Jeder der Bereiche kann fehlen PROZEDUREN MIT PARAMETERN Verwendung von Eingabeparametern Vorgehensweise zum Zeichnen eines Rechtecks Rand des Bildschirms, eine gegebene Farbe Ohne Parameter Mit Parametern Procedure Cir; Begin SetColor (i); SetBkColor (b); Rechteck (0, 0, 639, 479); End; Procedure Cir (i, b:Integer); Begin SetColor (i); SetBkColor (b); Rechteck (0, 0, 639, 479); Ende; Aufruf einer Prozedur in einem Programm: Aufruf einer Prozedur in einem Programm: i:=6; b:=12; Cir; Cir( 6, 12); 77 VERFAHREN MIT PARAMETERN Verwendung von Ausgabeparametern Verfahren zur Umrechnung eines Winkels von einem Gradmaß in ein Bogenmaß PROGRAMM EX_26_3; VAR x,a: real; VERFAHREN Rad(alfa: real; var betta: real); (Ausgabevariable) BEGIN Betta:= pi*alfa/180; ENDE; BEGIN Write("Winkel in Grad eingeben: "); Readln(x); Rad(x, a); (Prozeduraufruf) Writeln("Es ist gleich dem Winkel im Bogenmaß = ",a:6:4); ENDE. 78 ÜBUNG 79 1. Schreiben Sie eine Prozedur zum Zeichnen eines Dreiecks im folgenden Format: Dreieck (x1,y1, x2,y2, x3,y3, Farbe) 2. Schreiben Sie im Folgenden eine Prozedur zum Berechnen der Fläche eines Rechtecks Format: SRect (a, b, S) wobei S der Ausgabeparameter der Prozedur ist. Verwendetes Material: Prozedur (Name) ((Eingabevariablenbereich) Var (Ausgabevariablenbereich)); Bereichsstruktur: Variable_1, Variable_2, ... : Typ; ........................ Variable_N-1, Variable_N, … : Typ; FUNKTIONEN 80 Syntax zum Schreiben einer Funktion Funktion ((Eingabevariablenbereich) Var (Ausgabevariablenbereich)): (Typ) ; Formatieren der Prozedur Formatieren der Funktion Procedure S(a,b:real; var s:real); Beginne s:= a+b; Ende; Funktionssumme (a,b: real): real; Anfangssumme:= a+b; Ende; Aufruf der Prozedur Aufruf der Funktion S(10, 20, A); Schreib ein); A:= S(10, 20); WriteLN(A); WriteLN(S(20, 30)); Es empfiehlt sich, ein bestimmtes Unterprogramm nur dann als Funktion zu entwerfen, wenn ein Ergebnis seiner Ausführung erwartet wird. Wenn sich ein Unterprogramm nur auf die Ausführung einer bestimmten Abfolge von Aktionen (Anzeigen, Zeichnen usw.) konzentriert, ist es besser, es als Prozedur zu entwerfen. ÜBUNG Schreiben Sie eine Funktion zur Berechnung der Fläche eines Rechtecks ​​im folgenden Format: SRect (a, b) Verwendetes Material: Funktion (Name) ((Eingabevariablenbereich) Var (Ausgabevariablenbereich)): (Typ) ; Bereichsstruktur: Variable_1, Variable_2, ... : Typ; ........................ Variable_N-1, Variable_N, … : Typ; 81 MODULE MODULE 83 Ein Modul (UNIT) ist eine eigenständige Programmeinheit, deren Ressourcen (Prozeduren und Funktionen) von anderen Programmen genutzt werden können. Programm My1; Verwendet Modul1, Modul2; __________________________ __________________________ __________________________ __________________ MODUL 1 Ressourcenset 1 … Programm My2; Verwendet Modul1, Modul2; __________________________ __________________________ __________________________ __________________ MODUL N Satz von Ressourcen N Module sind über den Abschnitt VERWENDET MODULE mit dem Programm verbunden. STRUKTUR 84 Ein Modul besteht aus folgenden Teilen: 1. Modulkopf. 2. Schnittstellenteil. (Beschreibungen sichtbarer Objekte) 3. Implementierungsteil. (Beschreibungen versteckter Objekte) 4. Initialisierungsteil (optional). Einheit (Modulname); Schnittstelle (Abschnitt globaler Variablen, Konstanten, Typen) (Module) (Liste der Prozedur- und Funktionsheader) Implementierung (Abschnitt lokaler Variablen, Konstanten, Typen) (Implementierung von Prozeduren und Funktionen) Beginn (Initialisierungsteil) Ende. ! Der Modul-Header-Name muss mit dem Modul-Dateinamen übereinstimmen! MODULE Beispielmodul: Unit My_Unit; Interface Var ms: Array of Real; (Globales Array) Funktion Cub(x:integer):Integer; ( Funktion Cub = x^3 ) Funktion ext4(x:integer):Integer; ( Funktion ext4 = x^4 ) Implementierung Funktion Cub(x:integer):Integer; (Implementierung der Cub-Funktion) Begin Cub:= x*x*x; Ende; Funktion Ext4(x:integer):Integer; (Implementierung der ext4-Funktion) Begin Ext4:= x*x*x*x; Ende; Ende. 85 ÜBUNG 86 Schreiben Sie ein Modul mit einer Funktion und einer Prozedur: ( Funktionsberechnung X1=1/x ) X1(a:real):real; ( Verfahren zum Drucken des Wortes S auf dem Bildschirm an Position X, Y WriteXY(S:String; X,Y:Iteger); Verwendetes Material (Modulstruktur): Unit (Modulname); Schnittstelle (Abschnitt globaler Variablen, Konstanten , Typen) (Module) (Liste der Prozedur- und Funktionsheader) Implementierung (Abschnitt lokaler Variablen, Konstanten, Typen) (Implementierung von Prozeduren und Funktionen) Beginn (Initialisierungsteil) Ende.)