Lazarus/Geschachtelte Verzweigungen und Verzweigungen in Schleifen
Aus ZUM-Unterrichten
< Lazarus
Wir haben jetzt die "Zutaten" für viele Programme zusammen.
- Einerseits Befehle zum Rechnen, Zeichnen usw.
- Andererseits Anweisungen, die dafür sorgen, dass Befehle oder Gruppen von Befehlen nur unter bestimmten Bedingungen oder auch mehrfach ausgeführt werden (Verzweigungen und Schleifen). Man spricht in diesem Zusammenhang auch allgemein von "Kontrollstrukturen".
Solche Kontrollstrukturen kann man nun kombinieren: Zwischen "Begin" und "End" einer Kontrollstruktur kann durchaus wieder eine weitere Kontrollstruktur stehen.
Das folgende Programm funktioniert, wenn es auf der Oberfläche die Komponenten Edit1, Button1 und Label1 gibt.
unit schaltjahr_main;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
jahr : integer;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
jahr:=StrToInt(Edit1.Text);
if (jahr mod 400 = 0)
then label1.Caption:='Schaltjahr'
else begin
if (jahr mod 100 =0)
then label1.Caption:='Kein Schaltjahr'
else begin
if (jahr mod 4 = 0)
then label1.Caption:='Schaltjahr'
else label1.Caption:='Kein Schaltjahr';
end;
end;
end;
end.
Aufgabe
- Alltag: Schaltjahre
Entwickle ein Programm, das alle Schaltjahre zwischen 1880 und 1920 ausgibt. - Punktraster auf Rechteckfläche
Schreibe ein Programm, das ein Raster von Punkten zeichnet, bei dem zwei horizontal bzw. vertikal benachbarte Punkte jeweils 10 Pixel voneinander entfernt sind. - Punktraster auf Dreiecks-Fläche
Ändere das Programm der vorhergehenden Aufgabe so ab, dass die Rasterpunkte nur innerhalb eines rechtwinkligen Dreiecks gezeichnet werden, wobei die Ecke mit dem rechten Winkel in der linken oberen Ecke der Image-Komponente liegt, die beiden anderen Ecken unten links und oben rechts. - Mathematik: Mathe macht Muster
Verwende eine Image-Komponente und färbe jedes Pixel blau ein, bei dem sich der x-Wert durch den y-Wert (restfrei) teilen lässt. Kann man die x-Werte erkennen, die Primzahlen entsprechen? - Mathematik: Primzahlen
Schreibe zunächst ein Programm, das für eine eingegebene Zahl bestimmt, ob es sich dabei um eine Primzahl handelt oder nicht. - Mathematik: Primzahlen
Erweitere danach das Programm so, dass alle Primzahlen zwischen 0 und 100 ausgegeben werden. - Mathematik: Pythagoräische Tripel
Als Pythagoräische Tripel bezeichnet man die Kombination von drei natürlichen Zahlen a, b und c, für die der Zusammenhang gilt. Finden Sie mit einem Programm alle möglichen pythagoräischen Tripel mit c<=1000. - Mathematik: Schießen auf "Pi"
Entwickle ein Programm, dass 1000 mal jeweils zwei Zufallszahlen zwischen 0 und 100 erzeugt. Zeichne auf einer Image-Komponente diejenigen Punkte, die einen Abstand vom Ursprung von weniger als 100 haben rot, die anderen blau ein. Kannst Du durch Zählen der roten Pixel einen Näherungswert für die Kreiszahl "Pi" bestimmen?
- Einführung
- Technisches
- Komponenten, Eigenschaften, Ereignisse
- Computer-Mathematik
- Verzweigungen
- Spielen mit dem Zufall
- Schleifen
- Computer-Graphik
- Geschachtelte Verzweigungen und Verzweigungen in Schleifen
- Prozeduren, Funktionen und Bibliotheken
- Felder (Arrays)
- Zeichen (Char) und Zeichenkette (String)
- Dateien
- Graphische Komponenten