Leser: 2
|< 1 2 3 4 >| | 32 Einträge, 4 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# Deine beiden Zahlen,
# von denen Du das kleinste gemeinsame Vielfache suchst
# kgV ist die kleinste Zahl, durch die beide teilbar sind
my ($zahl1, $zahl2) = (8,9);
# Ergebnis soll inkrementiert (immer plus 1) werden
# bis das kgV erreicht ist
# die beiden $zahlteiler brauche ich, um zu vergleichen
# ob ich beim teilen durch meine beiden Zahlen integer Werte
# (integer = ganze Zahl, ohne Nachkommastellen) erhalte
# Ich habe sie jetzt mit Nachkommastellen gesetzt, um
# eine Zeile Code zu sparen, ist lausig, und macht nicht viel
# Sinn
my ($ergebnis,$zahl1teiler,$zahl2teiler) = (1, 0.2, 0.3);
# Da Perl keine Typüberprüfung hat, sondern Variableninhalte
# einfach als Skalare behandelt, benutze ich regexes um
# selbst die Typüberprüfung vorzunehmen. /^\d+$/ bedeutet,
# daß nur Zahlen in der variable vorkommen dürfen.
# Ein Punkt (Komma) würde also nicht passen.
# Wenn beide $zahlteiler integers sind habe ich den
# kgv erreicht
while ($zahl1teiler !~ /^\d+$/ || $zahl2teiler !~ /^\d+$/) {
$zahl1teiler = $ergebnis/$zahl1;
$zahl2teiler = $ergebnis/$zahl2;
# ergebnis wird solange inkrementiert, bis es groß genug
# ist, so daß beide Zahlen teilbar sind, in diesem Fall: 72
$ergebnis++;
}
# Da ich durch die while Schleife einmal zu oft inkrementiert
# habe, ziehe ich $ergebnis das wieder ab.
# ein repeat ... until, wie in Pascal wäre eleganter für so
# etwas.
$ergebnis = $ergebnis - 1;
# Damit Du das Ergebnis kennst, printe ich es:
print "Das kleinste gemeinsame Vielfache ist: $ergebnis\n"
($x,$y) = ($y,$x) if $y > $x;
$y -= ($x % $y);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl
use diagnostics;
use strict;
use warnings;
my ($zahl1, $zahl2) = (8,9);
my $ergebnis = 0;
my $zahl1teiler;
my $zahl2teiler;
do {
++$ergebnis;
$zahl1teiler = $ergebnis / $zahl1;
$zahl2teiler = $ergebnis / $zahl2;
} until ($zahl1teiler == int($zahl1teiler) and
$zahl2teiler == int($zahl2teiler) );
print "Das kleinste gemeinsame Vielfache ist: $ergebnis\n"
|< 1 2 3 4 >| | 32 Einträge, 4 Seiten |