www.matheraum.de
Das Matheforum.
Das Matheforum des MatheRaum.

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenAlgorithmen und DatenstrukturenSchleifen+ Schaltjahrberechnun
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Philosophie • Religion • Kunst • Musik • Sport • Pädagogik
Forum "Algorithmen und Datenstrukturen" - Schleifen+ Schaltjahrberechnun
Schleifen+ Schaltjahrberechnun < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Schleifen+ Schaltjahrberechnun: Aufgabe
Status: (Frage) beantwortet Status 
Datum: 16:32 Do 15.03.2007
Autor: narutochen

Hallo!

Also ich kenne mich da überhaupt nicht aus, da ich in meinem ganzen Leben noch nie programmiert habe. Ich freue mich, wenn mir da jemand helfen könnte.

a) Gesucht ist ein Algorithmus int power("pfeil nach unten"p, "pfeil nach unten" q), welcher für ganzzahlige p>0 und q>0 die Funktion pq berechnet. Formulieren Sie drei Algorithmen mit den folgenden Schleifen:
(a) for
(b) while
(c) repeat

b)

Gesucht ist ein Algorithmus int daysInMonth("pfeil nach unten" m, "pfeil nach unten" y), welcher für ganzzahlige 1<=m<=12 und 1000<y<3000 die die Zahl der Tage im Monat m im Jahr y berechnet.

Danke die Hilfe.

mfg narutochen

        
Bezug
Schleifen+ Schaltjahrberechnun: Antwort
Status: (Antwort) fertig Status 
Datum: 16:55 Do 15.03.2007
Autor: Ankh


> a) Gesucht ist ein Algorithmus int power("pfeil nach
> unten"p, "pfeil nach unten" q), welcher für ganzzahlige p>0
> und q>0 die Funktion pq berechnet. Formulieren Sie drei
> Algorithmen mit den folgenden Schleifen:

Meinst du wirklich p*q?

Dann, mal abgesehen von syntaktischen Feinheiten:

> (a) for

x := 0
for i := 1 to q
  x := x+p
return x

>  (b) while

x := 0
i := 1
while i <= q
  x := x+p
  i := i+1
return x

>  (c) repeat

x := 0
i := 1
repeat
  x := x+p
  i := i+1
until i > q

return x

Bezug
                
Bezug
Schleifen+ Schaltjahrberechnun: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 17:11 Do 15.03.2007
Autor: narutochen

ups, es sollte [mm] p^q [/mm] heißen.

könntest du mir erklären was die Begriffe "repeat" und "return" heißen? Wäre dir dankbar.

mfg narutochen

Bezug
                        
Bezug
Schleifen+ Schaltjahrberechnun: Antwort
Status: (Antwort) fertig Status 
Datum: 23:40 Do 15.03.2007
Autor: Ankh


> ups, es sollte [mm]p^q[/mm] heißen.

Dann musst du den Startwert für x ändern und statt der Addition in der Schleife eine Multiplikation ausführen.

> könntest du mir erklären was die Begriffe "repeat" und
> "return" heißen? Wäre dir dankbar.

"return x" gibt x als ergebniswert der funktion power(p,q) zurück.

"repeat" zeigt den anfang einer repeat-until-schleife an, das ende wird durch "until([bedingung])" markiert. Alles zwischen "repeat" und "until" wird zunächst einmal durchlaufen und anschließend so lange wiederholt, bis die Bedingung bei "until" erfüllt ist.

Bezug
        
Bezug
Schleifen+ Schaltjahrberechnun: Antwort
Status: (Antwort) fertig Status 
Datum: 23:51 Do 15.03.2007
Autor: Ankh


> b)
> Gesucht ist ein Algorithmus int daysInMonth("pfeil nach
> unten" m, "pfeil nach unten" y), welcher für ganzzahlige
> 1<=m<=12 und 1000<y<3000 die die Zahl der Tage im Monat m
> im Jahr y berechnet.

int daysInMonth(m, y):
begin
  d := 31
  if (m=4)or(m=6)or(m=9)or(m=11) then d := 30
  if (m=2)then begin
    if (y/4=round(y/4) then d := 29
    else d := 28
  end
end
return d

Das erklärt sich hoffentlich von selbst. Ich habe angenommen, dass die Funktion round(x) die Nachkommastellen von x abschneidet, diese Funktion kann auch ganz anders heißen, je nachdem wo du programmierst. Ich habe damit nur getestet, ob y durch 4 teilbar ist. Die richtige Schaltjahrregel ist aber noch etwas komplizierter...

Bezug
                
Bezug
Schleifen+ Schaltjahrberechnun: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 22:49 Fr 16.03.2007
Autor: narutochen

Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)

Hallo Ankh!

Herzlichen Dank für deine Hilfe.

So ich hab jetzt mal nach deiner Anweisung die Algorithmen neu zusammengestellt.

Hier die Algorithmen:

> (a) for

int power (↓p, ↓q) {
p = 0
for (i = 1…q) {
p = p*q
}
return p
}
return -1
}


>  (b) while

int power (↓p, ↓q) {
p = 0
i  = 1
while (i <= q) {
p = p*q
i = i+1
}
return p
}
return -1
}

(c) repeat

int power (↓p, ↓q) {
p = 0
i  = 1
repeat{
p = p*q
i  = i+1
} until (i > q)
return p
}
return -1
}

Stimmt diese? Ehrlich gesagt, verstehe ich beim Beispiel 1 noch immer nicht was diese Algorithmen tatsächtlich bedeuten. Ja ich weiß schon, dass die Algorithmen p^q ausrechnen soll, aber warum multiplizieren und warum nach der Angabe int power (p, q) p=0 und i= 1 setzen?  

Das Beispiel 2, omg, habe ich tatsächlich verstanden. :-)

Danke nochmals.

mfg narutochen



Bezug
                        
Bezug
Schleifen+ Schaltjahrberechnun: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 13:57 Mo 19.03.2007
Autor: Ankh


> Stimmt diese? Ehrlich gesagt, verstehe ich beim Beispiel 1
> noch immer nicht was diese Algorithmen tatsächtlich
> bedeuten. Ja ich weiß schon, dass die Algorithmen [mm] p^q [/mm]
> ausrechnen soll, aber warum multiplizieren und warum nach
> der Angabe int power (p, q) p=0 und i= 1 setzen?  

Der Startwert für p sollte bei der Potenzberechnung immer 1 sein (neutrales Element der Multiplikation) und nicht Null (neutrales Element der Addition).

p ist der Wert der Potenz, er beträgt am Anfang 1 = "Pfeil" [mm] p^0, [/mm] und wird in jedem Schritt mit "Pfeil nach unten"p multipliziert. (Wichtig ist hier zu unterscheiden zwischen dem innerhalb der Funktion unveränderlichen Parameter "Pfeil"p und der lokalen Variable p (nenn sie besser anders, hier "pow"). pow nimmt also nacheinander die Werte [mm] p^0, p^1=1*p, p^2=p*p, p^3=p*p*p, [/mm] ..., [mm] p^q [/mm] an.
i ist nur eine Laufvariable, die anzeigt, wie oft die Schleife schon durchlaufen wurde. Jede Schleife sollte q mal durchlaufen werden. q-mal sollte mit p multipliziert werden.

Bin mir nicht sicher, aber ich glaube, nach jeder Anweisung muss ein Semikolon stehen.

Bezug
                                
Bezug
Schleifen+ Schaltjahrberechnun: Fragen
Status: (Frage) beantwortet Status 
Datum: 23:29 Mo 19.03.2007
Autor: narutochen

Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)

Hallo!

Also soll ich statt p=o, p=1 schreiben.

Das es wird dann so ausschauen:

> (a) for

int power (↓p, ↓q) {
p = 1
for (i = 1…q) {
p = p*q
}
return p
}
return -1
}


>  (b) while

int power (↓p, ↓q) {
p = 1
i  = 1
while (i <= q) {
p = p*q
i = i+1
}
return p
}
return -1
}

(c) repeat

int power (↓p, ↓q) {
p = 1
i  = 1
repeat{
p = p*q
i  = i+1
} until (i > q)
return p
}
return -1
}

Stimmt das jetzt?

Ajo, danke nochmals für deine Hilfe

mfg narutochen

PS: Semikolons, glaube ich sind in diesen Beispielen unwichtig.

Bezug
                                        
Bezug
Schleifen+ Schaltjahrberechnun: Antwort
Status: (Antwort) fertig Status 
Datum: 09:01 Di 20.03.2007
Autor: Ankh

Ja, sieht gut aus.

Ist die Funktionsweise der for- , while-, und repeat-until-schliefe inzwischen klar? Sie machen im Prinzip alle das Gleiche: den Zähler i solange erhöhen, bis er gleich q ist (und außerdem die Multiplikation natürlich). Die Abbruchbedingung ist überall die gleiche, sie steht bei der for-Schleife als Obergrenze (q), bei der repeat-until-Schleife hinter dem until (i>q) und bei der while-Schleife steht stattdessen eine Nicht-Abbruchbedingung (i<=q).

Bezug
                                                
Bezug
Schleifen+ Schaltjahrberechnun: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 14:57 Di 20.03.2007
Autor: narutochen

Tja, ja, glaube ich. Ich glaube ich brauche einfach noch ein bisschen mehr Übungen.

Danke für deine Hilfe.

mfg narutochen



Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheforum.net
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]