Delphi Grundkurs Seite 31



Ähnliche Dokumente
DELPHI 03 SIEBEN ÜBUNGSPROGRAMME. Herbert Paukert

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

Programmierung in Delphi

6. Grafikprogrammierung

EINFACH. Programmier-Grundkurs. Rosa Mistelbauer

Programmierung mit Delphi

Delphi eine Einführung

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, mneueintrag, meintrag, morderedlist;

Schriftliche Reifeprüfung aus INFORMATIK: Klasse 8D Haupttermin 2002/03

Name. Aufgabe 1) Zur Erinnerung:

Komponente NumEdit für Delphi 5.0

Komponente PortIO für Delphi 5.0

Studienseminar Koblenz - Fachseminar Informatik Visualisierung von Sortieralgorithmen

Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL?

GK Informatik /08 (bumue) Klausur

Informatik GK 12 Klassen Klassen programmieren in Delphi am Beispiel der konkreten Klasse Auto

Musterlösungen zu den RSA-Arbeitsblättern

Projekt Informatik: Programmieren einer selbstgewählten Anwendungssoftware. Jenny Förster Susann Lorenz

Komponente PortUSB für Delphi 5.0

Institut für Informatik Christian-Albrechts-Universität zu Kiel. Borland Delphi. Einführung in die Programmiersprache

R ist freie Software und kann von der Website.

8. Fachseminar Informatik Martin Jakobs Einstieg in die Objektorientierte Programmierung (Standard 1 / 3)

Arbeitsblatt Übungen in Delphi Informatik Klasse: Datum: 1. Juni 2007

Zum Spiel. Lazarus Python Java

Workshop 1 Idealgewicht, Version 1 Starten Sie Delphi. Erstellen Sie ein Formular, das ungefähr so aussieht wie die folgende Abbildung:

3. Nun kann auf das Symbol von Stylebook1 geklickt werden. Im mittleren Fenster ist nun das Formular veschwunden. Stattdessen erscheint oben

Delphi-Grundlagen Hn

B T R A C K. Backtracking-Algorithmen. Herbert Paukert

2 Programmentwicklung mit Delphi

DELPHI 05. Sortier- und Suchalgorithmen. Herbert Paukert

LWB VIII. Programmieren mit Delphi Zur Laufzeit verwaltete Objekte. Zur Laufzeit verwaltete Objekte. Am Beispiel des bekannten Memory-Spieles

Gymnasium Herkenrath Leistungskonzept -Fachbereich Deutsch-

Delphi. by (Martin Monshausen) 1

Lösungen zu den Übungsaufgaben zu Feldern

Ein Softwareprojekt mit Delphi

Programmierkurs: Delphi: Einstieg

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Übungen Programmieren 1 Felix Rohrer. Übungen

Erster Bug: eine Motte

Sin-Funktion vgl. Cos-Funktion

DELPHI 02. Sprachelemente und Strukturen. Herbert Paukert

Programmierkurs Java

Aspekte objektorientierter Programmierung. mit Delphi

Wie baue ich mir einen Chat

1 Vom Problem zum Programm

Informatik für Schüler, Foliensatz 12 Pseudo-Zufallszahlen

Änderungen im Vertrags-Manager

Komponente QPortUSB für Delphi 2006

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Einführung in Delphi. Komponenten regeln die Dateneingabe und Datenausgabe.

5. Übung: PHP-Grundlagen

Von Pascal zu Delphi. Aufbau eines Delphi-Projektes. Grundlagen von ObjectPascal. Prozeduren und Funktionen. Übungen. Ende

y P (Y = y) 1/6 1/6 1/6 1/6 1/6 1/6

VCL Memory Tutorial. von Narses. Version 2.01 vom Zielsystem: Delphi 7 Win32VCL. Version 2.01 vom Seite 1 von 16

Fachbericht DPR. Name: René Wagener. Klasse: CI3O1. Fachlehrer: Herr Balog

Einführung zu der DLL für die USB Experiment Interface Board K8055

LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java-

Tevalo Handbuch v 1.1 vom

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

Steuern des GSR-Interface mit QBasic

LimeSurvey Fragetypen

Ein Projekt mit JavaFX erstellen

Datenbanken Microsoft Access 2010

Virtuelle COM-Schnittstelle umbenennen

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Einführung in das Programmieren mit Delphi

Unterstützung. der Windows Benutzerkontensteuerung. Netviewer Support v6.2 mit UAC- Unterstützung

Einführung in die Programmierung für Wirtschaftsinformatik

Excel Funktionen durch eigene Funktionen erweitern.

Installation und Bedienung von vappx unter ios

FakturaManager. Lieferschein, Rechnung, Mahnung, Statistik. Benutzerhandbuch Version: 8/2004

Datentypen. Agenda für heute, 4. März, Pascal ist eine streng typisierte Programmiersprache

Kurs 1613 Einführung in die imperative Programmierung

VisualBasic - Variablen

Tel.: Fax: Ein Text oder Programm in einem Editor schreiben und zu ClassPad übertragen.

LEGO-Mindstorms-Roboter im Informatikunterricht -mit Delphi-

Windows 7 sichern. !!! Funktioniert nicht auf allen Rechnern!!! Getestet mit Externer USB 3.0 Festplatte 500 GB an USB 3.0 Schnittstelle.

Typdeklarationen. Es gibt in Haskell bereits primitive Typen:

Apparo Fast Edit Version im Vergleich zu Was ist neu?

Aktuelles, Mitteilungen und Veranstaltungen verwalten

Python SVN-Revision 12

public class SternchenRechteckGefuellt {

Handbuch EPLAN Electric P8

Access Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli inkl. zusätzlichem Übungsanhang ACC2010-UA

7. Rufnummern zuweisen

Auswerten mit Excel. Viele Video-Tutorials auf Youtube z.b.

Typisierte Dateien von Martin Strohal. Einleitung. Der Record

Programmieren in Haskell Einführung

Von Turbo Pascal zu Object Pascal

Oracle Forms. Aufbau und Bestandteile von Formularen. Erstellen eines neuen Blocks. Starten von Oracle Forms

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

FORUM HANDREICHUNG (STAND: AUGUST 2013)

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

MPEG2Schnitt (Freeware) - demuxte Videodaten schneiden und verketten. framegenauer Schnitt mit Bild-Ton-Synchronisierung und Fehlerkorrekturen

Transkript:

Delphi Grundkurs Seite 31 Beispiel 9 Notenanalyse Problem: Programm P09 Schulnoten in Editfeld eingeben: bei <ENTER> wird Text in Zahl x umgewandelt; Bei Eingabefehler (x < 1 oder x > 5 oder x nicht numerisch) Anzeige durch MessageBox Editfeld wird gelöscht neuerliche Eingabe; Häufigkeitsanalyse und statistische Auswertung. Formulardesign: Listing: unit P09_U; // Notenanalyse interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Printers; type TForm1 = class(tform) Label1 : TLabel; // Beschriftungen Label2 : TLabel; Label3 : TLabel; Label4 : TLabel; Label5 : TLabel; Edit1 : TEdit; // Noteneingabe (mit ENTER) Memo1 : TMemo; // Datenausgabe Button1: TButton; // Start Button2: TButton; // Berechnen

Delphi Grundkurs Seite 32 Button3: TButton; // Drucken Button4: TButton; // Beenden Bevel1 : TBevel; procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } public { Public declarations } var Form1: TForm1; implementation {$R *.DFM} const NotNam : array[1..5] of String = ('Sehr gut', 'Gut', 'Befriedigend', 'Genügend', 'Nicht genügend'); const MAX = 100; // max. Notenanzahl type HAUF = array[1..5] of Integer; // Typisieren var NOTEN : array[1..max] of Integer; // Noten HN : HAUF; // Häufigkeiten ANZ : Integer; // Notenanzahl MWT : Real; // Mittelwert; STREU : Real; // Streuung; procedure Nullieren(var HN : HAUF); // Löschen aller Notenhäufigkeiten var I : Integer; For I := 1 to 5 do HN[I] := 0; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); // Abfrage, ob ENTER-Taste gedrückt var T : string; X, Code : Integer; If (Sender = Edit1) and (Key = Chr(13)) then T := Edit1.Text; Val(T,X,Code); If (Code = 0) and (X >= 1) and (X <= 5) then ANZ := ANZ + 1; NOTEN[ANZ] := X; Label5.Caption := 'Anzahl = ' + IntToStr(ANZ); end else ShowMessage('Eingabefehler!'); Edit1.Setfocus;

Delphi Grundkurs Seite 33 procedure TForm1.Button1Click(Sender: TObject); // Initialisieren Label5.Caption := 'Anzahl = 0'; Memo1.Lines.Clear; Edit1.SetFocus; ANZ := 0; Nullieren(HN); procedure TForm1.Button2Click(Sender: TObject); // Berechnung und Ausgabe var SUM, QSUM, X, I : Integer; T : String; If ANZ = 0 then Exit; // Berechnen der Datenwerte SUM := 0; QSUM := 0; Nullieren(HN); For I := 1 to ANZ do X := NOTEN[I]; SUM := SUM + X; QSUM := QSUM + X*X; HN[X] := HN[X] + 1; MWT := SUM/ANZ; STREU := SQRT(QSUM/ANZ - MWT*MWT); // Ausgeben der Datenwerte Memo1.Lines.Clear; Memo1.Lines.Add(''); Memo1.Lines.Add('Notenhäufigkeiten:'); Memo1.Lines.Add('--------------------------------'); For I := 1 to 5 do X := HN[I]; Str(X:4, T); T := T + ' ' + NotNam[I]; Memo1.Lines.Add(T); Memo1.Lines.Add('--------------------------------'); Str(ANZ, T); Memo1.Lines.Add('Notenanzahl = ' + T); Str(MWT:5:2, T); Memo1.Lines.Add('Notenmittelwert = ' + T); Str(STREU:5:2, T); Memo1.Lines.Add('Notenstreuung = ' + T);

Delphi Grundkurs Seite 34 procedure TForm1.Button3Click(Sender: TObject); // Memozeilen drucken var PText : TextFile; I : Integer; AssignPrn(PText); ReWrite(PText); For I := 0 to Memo1.Lines.Count-1 do WriteLn(PText, Memo1.Lines[I]); CloseFile(PText); procedure TForm1.Button4Click(Sender: TObject); Application.Terminate; end.

Delphi Grundkurs Seite 35 Beispiel 10 Würfeln Problem: Randomize; Programm P10 Anzahl (ANZ) der Würfe in einem Editfeld eingeben; Zufallsgenerator einschalten; Der Computer erzeugt ANZ Zufallszahlen zwischen 1 und 6: Ausgabe in Memofeld: 1... xx % 2... yy %... 6... zz % // internen Zufallsgenerator initialisieren Eintragen in Ereignis (Event) OnActivate Für alle Befehle, die man nur 1 x braucht. X := Random; 0.. 1 Real Formulardesign: X := Random(N); 0, 1,..., N-1 1, 2,..., N X := Random(N) + 1; Listing: unit P10_U; // Würfeln interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Printers;

Delphi Grundkurs Seite 36 type TForm1 = class(tform) Label1 : TLabel; // Beschriftungen Label2 : TLabel; Label3 : TLabel; Edit1 : TEdit; Memo1 : TMemo; // Ausgabe der Häufigkeiten Button1: TButton; // Clear Button2: TButton; // Run Button3: TButton; // Print Button4: TButton; // Quit Bevel1 : TBevel; procedure FormActivate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } public { Public declarations } var Form1: TForm1; implementation {$R *.DFM} const WNam : Array[1..6] of String = ('1er', '2er', '3er', '4er', '5er', '6er'); type HAUF = Array[1..6] of Integer; // Typisieren var ANZ : Integer; // Anzahl der Würfe AUZ : HAUF; // Augenzahl PROZ : Real; // Prozent Procedure Nullieren(var AUZ : Hauf); var I : Integer; For I := 1 to 6 do AUZ[I] := 0; procedure TForm1.FormActivate(Sender: TObject); Randomize; procedure TForm1.Button1Click(Sender: TObject); // Löschen der Eingabefelder Memo1.Lines.Clear; Edit1.SetFocus;

Delphi Grundkurs Seite 37 ANZ := 0; PROZ := 0; Nullieren(AUZ); procedure TForm1.Button2Click(Sender: TObject); // Berechnung und Ausgabe var I, Code, X, Y : Integer; T, U : String; T := Edit1.Text; Val(T, ANZ, Code); If (ANZ = 0) or (Code <> 0) then ShowMessage('Eingabefehler!'); Edit1.Setfocus; For I := 1 to ANZ do Y := Random(6) + 1; AUZ[Y] := AUZ[Y] + 1; // Ausgabe If ANZ = 0 then Exit; Memo1.Lines.Clear; Memo1.Lines.Add('Auswertung der Würfe'); Memo1.Lines.Add(''); For I := 1 to 6 do X := AUZ[I]; If ANZ <> 0 then PROZ := X / ANZ * 100; Str(X, T); Str(PROZ:5:2, U); T := T + ' x ' + WNam[I] + ', das sind ' + U + ' %'; Memo1.Lines.Add(T); procedure TForm1.Button3Click(Sender: TObject); // Programm beenden Application.Terminate; procedure TForm1.Button4Click(Sender: TObject); // Formular ausdrucken PrintScale := poproportional; Print; end.

Delphi Grundkurs Seite 38 Beispiel 11 Zahlen raten Programm P11 Problem: Der Zufallsgenerator erzeugt eine Zahl Z zwischen 1 und 100. Diese ist möglichst schnell zu erraten. Formulardesign: Listing: unit P11_U; // Zahlen raten interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Printers; type TForm1 = class(tform) Label1 : TLabel; // Beschriftungen Label2 : TLabel; Label3 : TLabel; Label4 : TLabel; Label5 : TLabel; Label6 : TLabel; Edit1 : TEdit; // Zahleneingaben Memo1 : TMemo; // Ergebnisausgabe Button1: TButton; // Beginnen Button2: TButton; // Beenden Button3: TButton; // Drucken procedure FormActivate(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char);

Delphi Grundkurs Seite 39 procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } var Form1: TForm1; implementation {$R *.DFM} var RATEZ, ZUFALLSZ, ANZ : Integer; procedure TForm1.FormActivate(Sender: TObject); // Zufallsgenerator einschalten Randomize; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); // Abfrage, ob ENTER gedrückt var T : String; X, Code : Integer; if (Sender = Edit1) and (Key = Chr(13)) then T := Edit1.Text; Val(T, X, Code); if (Code = 0) and (X >= 1) and (X <= 100) then ANZ := ANZ + 1; RATEZ := X; if RATEZ > ZUFALLSZ then Memo1.Lines.Add(IntToStr(RATEZ)+' ist zu groß!'); Label6.Caption := 'Versuch '+ IntToStr(ANZ); if RATEZ = ZUFALLSZ then Memo1.Lines.Add(IntToStr(RATEZ)+'! ERRATEN!'); Label6.Caption := 'Versuch '+ IntToStr(ANZ); if RATEZ < ZUFALLSZ then Memo1.Lines.Add(IntToStr(RATEZ)+' ist zu klein!'); Label6.Caption := 'Versuch '+ IntToStr(ANZ); end else ShowMessage('Eingabefehler!'); Edit1.SetFocus;

Delphi Grundkurs Seite 40 procedure TForm1.Button1Click(Sender: TObject); // Initialisieren Memo1.Lines.Clear; Label6.Caption := 'Versuch 0'; Edit1.Setfocus; ANZ := 0; ZUFALLSZ := Random(99) + 1; procedure TForm1.Button2Click(Sender: TObject); // Programm beenden Application.Terminate; procedure TForm1.Button3Click(Sender: TObject); // Formular ausdrucken PrintScale := poproportional; Print; end.