www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

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
Dt. Schulen im Ausland: Mathe-Seiten:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
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.vorhilfe.de