Was ist das hier?

  • Eine Plattform von Flensburger Studenten für Flensburger Studenten
  • Ein Wiki zum Sammeln von Wissen
  • Ein Forum zum Austausch
  • Eine Wissensdatenbank zum Informatikstudium:
    • Programmieren in C, C#, PHP, Javascript, HTML, CSS
    • Datenbanken und Abfragen mit SQL
    • 2D / 3D - Gestaltung
    • Mathe, Physik, Gerätetechnik, RoBs
    • Audio- / Videotechnik
    • ...und vieles mehr

Anmelden

Warum registrieren?

Weil besser als gut!

 

Prog1-resistors-3

Worum geht es

  • In dieser dritten Variante soll die Aufgabe mit einer for Schleife umgesetzt werden.
  • die Anzahl der einzulesenden Widerstände soll abgefragt werden

erst Denken

Es geht um die

for Schleife
  • die Schleife arbeitet mit einem Zähler. Gemeinhin wird das i als Zählvariable genommen. Brauche ich eine weitere Schleife... j usw.
  • die Zählvariable gilt nur innerhalb der jeweiligen Schleife. 2 Schleifen hintereinander (nicht verschachtelt ineinander) können also beide i als Zählvariable verwenden.
  • die Anzahl der Durchläufe ist damit zunächst einmal von vornherein vorgegeben.

Also müssen wir:

  • vor der Schleife die Anzahl der gewünschten Durchläufe abfragen und in einer Variablen wievieleDurchlaeufe vom Typ int festhalten.
  • den Schleifenzähler dann von 0 bis zu (wievieleDurchlaeufe - 1) zählen lassen

danach ist die Eingabe und Rechnerei zu Ende und die Ausgabe erfolgt nach der Schleife

Widerstand mit for praktisch

Der Code kann mit Sicherheit noch eleganter gestaltet werden! Aber es funktioniert erstmal.

C#
 
...                          // hier stehen die übrigen Deklarationen
int wievieleDurchlaeufe = 0; // deklarieren und initialisieren 
...                          // hier stehen vielleicht noch mehr...
 
cout << "Wieviele Widerstände sind einzulesen? ";
cin  >> wievieleDurchlaeufe;
 
//----------------------------------------------
for(int i = 0; i < wievieleDurchlaeufe; i++)// kleiner-als entspricht 
                                            // (wievieleDurchläufe - 1)
{
   cout << "Widerstand " << i+1 << ":";     // die +1 nur für die Optik
   cin  >> widerStand;
   if(widerStand > 0.0)
   {
      reihe    = reihe    + widerStand;
      leitWert = leitWert + (1.0/widerStand);
   }
   else
   {
      cout << "negativer Wert, nochmal";
      i--;    // damit nicht der i-te Widerstand uebergangen wird, 
              // setzen wir den Zaehler um eins zurück
              // i-- entspricht i-1
   }
}
//---------------------------------------------------   
// Ausgabe, wenn leitWert nicht 0 ist
if(leitWert > 0)
   {
      cout << "Der Widerstand der Reihenschaltung von "
           << wievieleDurchlaeufe << " betraegt " << reihe << " Ohm";
      cout << "Der Widerstand der Parallelschaltung von "
           << wievieleDurchlaeufe << " betraegt " << (1.0/leitWert) << " Ohm";
   )
   else
   {
      cout << "keine verwertbaren Widerstandswerte eingegeben";
   }
 



Kategorie: Programmieren1 | 1. Semester | Labor
| Mehr

Zahlen & Daten

  • 1957 Seitenaufrufe
  • 561 Tage alt
  • 11 Versionen
  • Letzte Änderung: 08.11.2010 um 15:49 Uhr

Publish