www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Englisch
  Status Grammatik
  Status Lektüre
  Status Korrekturlesen
  Status Übersetzung
  Status Sonstiges (Englisch)

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
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Matlab" - For-Schleife
For-Schleife < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

For-Schleife: Durchläufe zählen
Status: (Frage) beantwortet Status 
Datum: 13:45 Fr 12.01.2018
Autor: imzadi

Aufgabe
In k soll die Anzahl der im Algorithmus ausgeführten Divisionen zurückgegeben werden.

Guten Tag.
In meinem Code suche ich ggT von a und b, a größer b. Dafür teile ich mit Rest in der Schleife rückwärts von b bis 2. Damit ist alles klar. Ich muss aber Divisionen zählen und ich komme nicht darauf, wie. Vielleicht hat jemand für mich ein Stichwort. Das würde mir schon reichen. Deshalb poste ich hier auch kein Code-Beispiel. Vielen Dank.

        
Bezug
For-Schleife: Antwort
Status: (Antwort) fertig Status 
Datum: 15:46 Fr 12.01.2018
Autor: Gonozal_IX

Hiho,

wenn du über eine for-Schleife runterzählst…

k = 0;
for laufindex …
division
k = k+1;
end

Dabei wird nach jeder Division k um eins erhöht… und am Ende steht in k halt die Anzahl der Divisionen, die dein Programm gemacht hat.

Gruß,
Gono


Bezug
                
Bezug
For-Schleife: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 19:09 Fr 12.01.2018
Autor: HJKweseleit

Bei einer for-Schleife musst du normaler Weise nicht mitzählen, weil du ja zu Beginn schon weißt, wie oft diese durchlaufen wird (es sei denn, du springst vorzeitig heraus, was man aber nicht tun soll). Bei ggt ist eine While- oder Repeat-Schleife mit zu Beginn unbekannter Durchlaufanzahl angebracht und damit auch ein Zähler in der von dir angegebenen Form.

Bezug
                        
Bezug
For-Schleife: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 20:05 Fr 12.01.2018
Autor: imzadi

Super, vielen Dank!! Es hat auch schon geklappt. 😃😛😊

Bezug
                        
Bezug
For-Schleife: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 20:06 Fr 12.01.2018
Autor: Gonozal_IX

Hiho,

> Bei einer for-Schleife musst du normaler Weise nicht
> mitzählen, weil du ja zu Beginn schon weißt, wie oft
> diese durchlaufen wird (es sei denn, du springst vorzeitig
> heraus, was man aber nicht tun soll).

Ja, oder man hat eine IF Anweisung drin.
In dem von mir angegebenen Beispiel wäre das aber tatsächlich unnötig, da hast du recht.

> Bei ggt ist eine
> While- oder Repeat-Schleife mit zu Beginn unbekannter
> Durchlaufanzahl angebracht und damit auch ein Zähler in
> der von dir angegebenen Form.

Wieso angebracht? Tatsächlich muss man ja maximal bis [mm] $\lfloor\sqrt{b}\rfloor$ [/mm] durchlaufen… und das sind auch die maximalen Divisionen, die man braucht.

Gruß,
Gono


Bezug
                                
Bezug
For-Schleife: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 15:03 Sa 13.01.2018
Autor: HJKweseleit

Mit dem IF hast du recht, mit der Durchlaufzahl für den ggT aber nicht.

Mein Algorithmus für den ggT(a,b):
Eingabe a, b (beides [mm] \ne [/mm] 0)
Solange b>0 wiederhole
  c=a mod b
  a=b
  b=c
ende wiederhole
Ausgabe a

Dann erhältst du für a=54 und b=36:

                           a   b   c
Eingabe                    54  36  -
Werte NACH 1. Durchlauf    36  18  18
Werte NACH 1. Durchlauf    18   0   0
Ausgabe                    18

schon nach 2 und nicht erst nach [mm] 6=\wurzel{36} [/mm] Durchläufen, oder noch extremer:

                               a       b      c
Eingabe                     20 000  10 0000   -
Werte NACH 1. Durchlauf     10 000     0      0  

Ausgabe                     10 000

schon nach einem Durchlauf und nicht erst nach 100.

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.englischraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]