WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Primzahlen

 

marshallprank
Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 16.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2008, 13:44     Titel: Primzahlen
  Antworten mit Zitat      
hallo,
Dieser Programm gibt die Primzahlen aus.ich brauche bitte eine ausfürliche erklärung für diesen folgenden Programm, und besonderes für diese Zeile *fprintf(’%2d ist keine Primzahl!\n’, m)*
Vielen Dank im Voraus

for m=3:1:7,
for n=2:1:m-1,
if mod(m,n)~=0,
continue,
end
fprintf(’%2d ist keine Primzahl!\n’, m)
break
end %n
if n==m-1,
fprintf(’!!%2d ist EINE Primzahl!\n’, m)
end %if
end %m
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 25.10.2008, 19:35     Titel:
  Antworten mit Zitat      
Hallo.
Solche Algorithmen sind Klassiker und sind in vielen Bücher manifestiert. z.B. von Donald Knuth

Ich werde dir versuchen zu erklären:
Kennst du Definition von Primzahlen?
Eine Primzahl ist eine Zahl die nur durch sich selbst und ein eins teilbar ist.
Genau so wurde hier auch vorgegangen.

Erste Schleife generiert die Zahlen und in zweiten Schleife werden diese Zahlen überprüft, ob es Primzahlen sind.

Den Rest habe ich versuch durch Kommentare zu erklären
Code:

% generieren von Zahlen zu Überprüfung hier von  3 bis 7
for m=3:1:100
   % generieren von Teiler die von 2 bis m-1 laufen
   % (m ist  kommt von erster Schleife  )
   % durch 1 und m muss ja nicht überprüft werden,
   % da jede Zahl ist durch sich selbst und Eins teilbar ist
   for n=2:1:m-1
      % überprüfe ob bei Division Rest bleibt (modulo)
      % wenn so ist nehme nächsten Teiler
      if mod(m,n)~=0
         continue;
      end
      %
      % falls ein Teiler gefunden wurde,
      % dann ist die Bedingung von Primzahlen nicht erfüllt
      % => abbrechen weitere überprüfung
      fprintf('%2d ist keine Primzahl!\n', m);
      break;
   end %n
  %
  % falls alle Teiler überprüft wurden,
  % dann wurde  eine Primzahlen gefunden
   if n==m-1
      fprintf('!!%2d ist EINE Primzahl!\n', m);
   end %if
end %m
 
Private Nachricht senden Benutzer-Profile anzeigen
 
marshallprank
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 16.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.10.2008, 00:24     Titel:
  Antworten mit Zitat      
ok,jetzt ist klar geworden.
vielen Dank
Mfg
Private Nachricht senden Benutzer-Profile anzeigen
 
marshallprank
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 16.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.10.2008, 00:28     Titel:
  Antworten mit Zitat      
nur noch eine kurze frage.bin noch anfäger mit matab.
was für eine rolle hat %2d in der zeile wo fprintf ( %2d ....... ) steht ? /n ist um eine neue zeile zu generieren.
Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 27.10.2008, 15:03     Titel:
  Antworten mit Zitat      
Hallo,


%2d - Die Zwei steht für Formatierung
(es wird ein Leerzeichen dazu geschrieben,
wenn die Anzahl von Ziffer kleiner 2 ist ),
d-für integer werte(die übergeben werden müssen)

z.B. wenn die Zahlen untereinander geschrieben werden,
dass sie gleich ausgerichtet werden.
Man kann die Zahlen so tabellarisch im Text schreiben
Code:

% z.B hier biz zu 3 Stelligen Zahlen
fprintf('Spalte1: %3d, Spalte2: %3d\n',[1:50:351])
 


Schau dir doch genauer die Hilfe von fprintf
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.