Ich benutze Cookies und Google Analytics, um Dein Erlebnis zu verbessern. close

Informatik

Aufgaben zu Schleifen

Aufgabe 0:

Um in das Thema reinzukommen: Es soll von 0 auf minus 100 in dreier Schritten runtergezählt werden.

Ausgabe:

0 -3 -6 -9 -12 -15 -18 -21 -24 -27 -30 -33 -36 -39 -42 -45 -48 -51 -54 -57 -60 -63 -66 -69 -72 -75 -78 -81 -84 -87 -90 -93 -96 -99

Lösung:

for ($var = 0; $var > -100; $var -= 3) {
  echo $var . " ";
}

Aufgabe 1:

Gib die Quadratzahlen von 10 bist 20 in Form dieses Satzes aus: Die Quadratzahl von 10 ist 100.

Ausgabe:

Die Quadratzahl von 10 ist 100.
Die Quadratzahl von 11 ist 121.
Die Quadratzahl von 12 ist 144.
Die Quadratzahl von 13 ist 169.
Die Quadratzahl von 14 ist 196.
Die Quadratzahl von 15 ist 225.
Die Quadratzahl von 16 ist 256.
Die Quadratzahl von 17 ist 289.
Die Quadratzahl von 18 ist 324.
Die Quadratzahl von 19 ist 361.
Die Quadratzahl von 20 ist 400.

Lösung:

for ($i=10; $i < 21; $i++) {
  echo "Die Quadratzahl von " . $i . " ist " . $i*$i . ".<br>";
}

Aufgabe 2:

Gib die Quadratzahlen 1, 4, 9, 16, … 225 aus. Hinter der 225 soll kein Komma sein und die 25 soll fettgedruckt dargestellt werden.

Ausgabe:

1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225

Lösung:

for ($i=1; $i*$i <= 225; $i++) {

  /* <b> Tag öffnen wenn 25 */
  if ($i*$i == 25) {
    echo "<b>";
  }

  /* gibt das Quadrat von $i aus. */
  echo $i*$i;

  /* <b> Tag schließen wenn 25 */
  if ($i*$i == 25) {
    echo "</b>";
  }

  /* Komma wenn nicht 225 */
  if ($i*$i != 225) {
    echo ", ";
  }
}

Aufgabe 3:

Mit einem Formular sollen Potenzen berechnet werden. Benötigt werden der Exponent und die Basis. Die Ausgabe könnte so aussehen: "34 = 3 * 3 * 3 * 3 = 81".

Ausgabe:

Wenn 2 und 8 gewählt wurden käme dieses Ergebnis zustande
28 = 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 = 256

Lösung:

<form method="POST" action="./informatik.php" name="power">
  <input type="number" name="base" id="base" placeholder="Basis" required />
  <input type="number" name="exp" id="exp" placeholder="Exponent" min="1" required />
  <button type="submit" name="sub">ausrechnen</button>
</form>
$result = 1;
/* Basis^Exponent und = ausgeben */
echo $_POST['base'] . "<sup>" . $_POST['exp'] . "</sup>" . " = ";

for ($i=1; $i <= $_POST['exp']; $i++) {
  /* Basis ausgeben +/
  echo $_POST['base'];

  /* Malzeichen nur ausgeben, wenn es nicht das letzte Mal ist. */

  if ($i != $_POST['exp']) {
    echo " * ";
  }

  $result *= $_POST['base'];
}
/* Ergebnis ausgeben */
echo " = " . $result; // alternativ kann auch pow($_POST['base'], $_POST['exp']) oder $_POST['base']**$_POST['exp'] anstelle von $result.

Aufgabe 4

Ein Countdown von 100 bis 0 wird verlangt. Jede gerade Zahl soll unterstrichen werden. Modular gibt den Rest beim Teilen aus wie z.B. 10%3 = 1. Es kann 3 mal geteilt werden und dann bleibt einer übrig.

Tipp: Eine zahl ist gerade wenn sie ohne Rest durch 2 teilbar ist.

Ausgabe:

100
99 98 97 96 95 94 93 92 91 90
89 88 87 86 85 84 83 82 81 80
79 78 77 76 75 74 73 72 71 70
69 68 67 66 65 64 63 62 61 60
59 58 57 56 55 54 53 52 51 50
49 48 47 46 45 44 43 42 41 40
39 38 37 36 35 34 33 32 31 30
29 28 27 26 25 24 23 22 21 20
19 18 17 16 15 14 13 12 11 10
9 8 7 6 5 4 3 2 1 0

Lösung:

/* von 100 bis 0 */
for ($i=100; $i > -1 ; $i--) {
  /* unterstreichen gerader Zahlen anfangen */
  if ($i%2 == 0) {
    echo "<u>";
  }
  echo $i;
  /* unterstreichen gerader Zahlen beenden */
  if ($i%2 == 0) {
    echo "</u>";
  }
  /* damit das Leerzeichen nicht unterstrichen wird nach den Tags */
  echo " ";
  /* ein Umbruch wenn die Zahl durch 10 ohne Rest teilbar ist */
  if ($i%10 == 0) {
    echo "<br />";
  }
}

Aufgabe 5

In ein Formular sollen das Kapital, den Zinssatz und die Jahre angegeben werden. Die Ausgabe soll so aussehen: Für das 1. Jahr erhalten Sie x Euro Zinsen, damit beträgt Ihr Gesamtvermögen y Euro.

Ausgabe:

Wenn 1.000, 5% und 3 Jahre gewählt wurden, würde die Ausgabe wie folgt aussehen:
Für das 1. Jahr erhalten Sie 50,00 Euro Zinsen, damit beträgt Ihr Gesamtvermögen 1.050,00 €.
Für das 2. Jahr erhalten Sie 52,50 Euro Zinsen, damit beträgt Ihr Gesamtvermögen 1.102,50 €.
Für das 3. Jahr erhalten Sie 55,13 Euro Zinsen, damit beträgt Ihr Gesamtvermögen 1.157,63 €.

Lösung:

<form action="/other/a4.php" name="rateCalculator" method="POST">
  <input type="number" name="capital" placeholder="Kapital" max="100000000" />
  <input type="number" name="interest_rate" placeholder="Zinssatz" min="0.01" max="1000" step="1.00" />
  <input type="number" name="years" placeholder="Jahre" min="1" max="100" step="1" />
  <button type="submit" name="button">berechnen</button>
</form>
<?php
for ($i=1; $i <= $_POST['years']; $i++) {
  $rate = $_POST['capital'] * ($_POST['interest_rate'] /100);

  echo "Für das " . $i . ". Jahr erhalten Sie "
    . number_format($rate, 2, ',', '.') .
    " Euro Zinsen, damit beträgt Ihr Gesamtvermögen ";

  $_POST['capital'] += $rate;

  echo number_format($_POST['capital'], 2, ',', '.') . " €.<br />";
}
?>

Aufgabe 6

Statt der Liste soll der Zinsplan in Tabellenform ausgegeben werden. Folgende Spalten sind notwendig:

Jahr - Zinsen des Jahres - Zinsen gesamt - Vermögensstand

Ausgabe:

alle Werte in Euro (€)
Jahr Zinsen des Jahres Zinsen gesamt Vermögensstand
1 50,00 50,00 1.050,00
2 52,50 102,50 1.102,50
3 55,13 157,63 1.157,63
Total: 157,63
1.157,63

Lösung:

<table>
<caption>alle Werte in Euro (€)</caption>
<thead>
  <tr>
    <th scope="col">Jahr</th>
    <th scope="col">Zinsen des Jahres</th>
    <th scope="col">Zinsen gesamt</th>
    <th scope="col">Vermögensstand</th>
  </tr>
</thead>
<tbody>
  <?php
   /* Notiz: '\n' ist nicht notwendig. Es erzeugt im Code nur eine neue Zeile, damit er besser lesbar ist. */
   $grate = 0;
   $_POST['capital'] = $captial;
   for ($i = 1; $i <= $_POST['years']; $i++) {
     $rate = $_POST['capital'] * ($_POST['interest_rate'] / 100);
     $grate += $rate;
     $_POST['capital'] += $rate;

     echo "<tr>\n";
     echo "<td>" . $i . "</td>\n";
     echo "<td>" . number_format($rate, 2, ',', '.') . "</td>\n";
     echo "<td>" . number_format($grate, 2, ',', '.') . "</td>\n";
     echo "<td>" . number_format($_POST['capital'], 2, ',', '.') . "</td>\n";
     echo "</tr>\n";
  }
  ?>

</tbody>
<tfoot>
  <tr>
    <th scope="row">Total:</th>
    <td><?php echo number_format($grate, 2, ',', '.'); ?></td>
    <td></td>
    <td><?php echo number_format($_POST['capital'], 2, ',', '.'); ?></td>
  </tr>
</tfoot>
</table>

S

13 SQL Zusammen­fassung SQL Bedeutung

S

12 PHP Zusammen­fassung Schleifen und bedingte Anweisungen
mail   Fehler/Feedback senden

Hell

Du bist offline

close