Autor |
Beitrag |
Pro-Gamer
Hält's aus hier
Beiträge: 11
|
Verfasst: Di 13.01.09 20:30
Hallo Forum,
Ich bin bei der Suche nach Hilfe bei Google bei euch gelandet ...
Ich bin Schüler eines Gymnasiums ( 9. Klasse ) und bräuchte Hilfe beim entwickeln eines Programmes.Dieses Programm soll so einfach wie nur möglich , und vorallem verständlich für mich , sein.
Dieses Programm soll Pi mit der "While Do" Funktion auf 5, es können auch mehr sein muss es aber nich , Stellen berechnen.
Nun ein Problem ! Ich habe die Formel nich mehr im Kopf ich weiss nur noch Bruchteile davon
evtl. kennt ihr die Formel !
Die Formel war irgendetwas mit: n/(n-1)(n+1)+2n/(2n-1)(2n+1) ...
ich hoffe ihr wisst welche Formel das ist.
MfG Pro-Gamer!
Edit: Das Programm kann auch mit der "For To Do" Funktion geschrieben sein!
Zuletzt bearbeitet von Pro-Gamer am Di 13.01.09 21:15, insgesamt 1-mal bearbeitet
|
|
Tilo
      
Beiträge: 1098
Erhaltene Danke: 13
Win7 geg. WInXP oder sogar Win98
Rad2007
|
Verfasst: Di 13.01.09 20:41
N'abend Pro-Gamer,
Wikipedia liefert dazu recht ausführliche Informationen:
de.wikipedia.org/wiki/Kreiszahl
Viel Freude bei der Umsetzung!
(nebei: es gibt keine geschlossene Formel fü Pi, man kann bisher nur "Bruchstücke" angeben.
//Edit
Entschuldige fals das etwas kurz geraten ist. Es gibt hier so eine Art "EhrenCodex": Hilfe bei konkreten Problemen: ja, Hilfe bei Hausaufgaben: nein (in Kurzform).
Sollten sich bei der Umsatzung Probleme zeigen wird Dir hier geholfen werden können.
|
|
Pro-Gamer 
Hält's aus hier
Beiträge: 11
|
Verfasst: Di 13.01.09 21:00
Tilo hat folgendes geschrieben : | N'abend Pro-Gamer,
Wikipedia liefert dazu recht ausführliche Informationen:
de.wikipedia.org/wiki/Kreiszahl
Viel Freude bei der Umsetzung!
(nebei: es gibt keine geschlossene Formel fü Pi, man kann bisher nur "Bruchstücke" angeben.
//Edit
Entschuldige fals das etwas kurz geraten ist. Es gibt hier so eine Art "EhrenCodex": Hilfe bei konkreten Problemen: ja, Hilfe bei Hausaufgaben: nein (in Kurzform).
Sollten sich bei der Umsatzung Probleme zeigen wird Dir hier geholfen werden können. |
Nabend Tilo,
ich hätte sicher kein Problem damit dies zu tun ... wenn ich wüsste wie diese Funktionen Funktionieren...
Ich lag in den letzten 2 wochen im Krankenhaus und morgen schreib ich in Informatik einen Test wo diese Programmierung dran kommt ( höstwarscheinlich die Berechnung von Pi)
..
ich habe meine Mitschüler natürlich danach gefragt aber was diese mir erzählt hatten hätte nich mal ein Professor verstanden ! Daher habe ich nachgefragt ob ihr mir den Code mal aufschreiben könntet bzw. den anfang mir hinlegen könntet !
MfG Pro-Gamer!
|
|
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 13.01.09 21:06
Delphi-Quelltext
Delphi-Quelltext

|
|
Pro-Gamer 
Hält's aus hier
Beiträge: 11
|
Verfasst: Di 13.01.09 21:10
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Di 13.01.09 21:12
Zum Berechnen kannst Du z.B. die Leibniz-Reihe benutzen: de.wikipedia.org/wiki/Leibniz-Reihe
Du machst Dir eine Schleife (repeat-until oder while-do). In jedem Schleifendurchlauf machst Du einen weiteren Schritt der Reihe. Das Ergebnis vergleichst Du dann mit dem Ergebnis aus dem vorigen Schleifendurchlauf. Wenn der Unterschied zwischen den beiden Ergebnissen klein gennug ist (das Ergebnis also genau genug), dann muss die Schleife abbrechen.
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Pro-Gamer 
Hält's aus hier
Beiträge: 11
|
Verfasst: Di 13.01.09 21:14
Christian S. hat folgendes geschrieben : | Zum Berechnen kannst Du z.B. die Leibniz-Reihe benutzen: de.wikipedia.org/wiki/Leibniz-Reihe
Du machst Dir eine Schleife (repeat-until oder while-do). In jedem Schleifendurchlauf machst Du einen weiteren Schritt der Reihe. Das Ergebnis vergleichst Du dann mit dem Ergebnis aus dem vorigen Schleifendurchlauf. Wenn der Unterschied zwischen den beiden Ergebnissen klein gennug ist (das Ergebnis also genau genug), dann muss die Schleife abbrechen. |
Danke genau das hat mir jetzt weitergeholfen !!
|
|
Pro-Gamer 
Hält's aus hier
Beiträge: 11
|
Verfasst: Di 13.01.09 21:27
[quote=" Pro-Gamer"(544203)] Christian S. hat folgendes geschrieben : | Zum Berechnen kannst Du z.B. die Leibniz-Reihe benutzen: de.wikipedia.org/wiki/Leibniz-Reihe
Du machst Dir eine Schleife (repeat-until oder while-do). In jedem Schleifendurchlauf machst Du einen weiteren Schritt der Reihe. Das Ergebnis vergleichst Du dann mit dem Ergebnis aus dem vorigen Schleifendurchlauf. Wenn der Unterschied zwischen den beiden Ergebnissen klein gennug ist (das Ergebnis also genau genug), dann muss die Schleife abbrechen. |
Danke genau das hat mir jetzt weitergeholfen !!
//Edit : Doch nicht ganz wenn man die forme von leibniz nimmt kommt man doch gar nicht auf Pi ( zumindest mit den taschenrechner nicht ) wie soll ich mir die formel vorstellen damit ich da auf Pi komme  ?
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Di 13.01.09 21:29
Lesen musst Du bei Wiki schon  Die Formel liefert Pi / 4.
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Di 13.01.09 21:30
Schau dir mal die Tabelle auf Wikipedia weiter unten an. Das dauert etwas, bis man Pi "erkennt". Für 3.14 braucht man ca. 1000 Summanden. Das geht mit dem Taschenrechner nur dann, wenn man wirklich schnell tippen kann. 
_________________ We are, we were and will not be.
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Di 13.01.09 21:38
Gausi hat folgendes geschrieben : | Für 3.14 braucht man ca. 1000 Summanden |
Irre ich mich, oder gab es da nicht Formeln, die schneller konvergieren  ?
E: Klar, zu kompliziert für den Unterricht
mfG,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Di 13.01.09 23:45
Falls noch nicht gelöst worden, hier der gesuchte Code in Java, vielleicht hilfts. (haben wir als erstes Programm in der uni gemacht)
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64:
| import java.util.*;
/* * Programm: Pi * Autor: Michael Schrödl, 0826900 * * Das Programm rechnet Pi mit der Genauigkeit von n aus. * */
public class Pi { public static void main(String[] args) { Scanner eingabe = new Scanner(System.in); long Approximationsgrad = 0; long outercounter = 0; double zaehler = Math.sqrt(2); double hauptzaehler= 1; char Antwort = 'n'; boolean Ausgegeben;
do { Ausgegeben = false; System.out.println("Berechnung von Pi mit der der Formel von Viète.\nBitte geben sie den Grad der Genauigkeit an: (1 - " + Long.MAX_VALUE + ")"); do { try { Approximationsgrad = eingabe.nextLong(); //Benutzereingabe einlesen if (Approximationsgrad < 1) { //Bei Negativer Zahl System.out.println("ERROR: Die Zahl muss größer/gleich 1 sein."); //Fehlermeldung ausgeben } } catch (InputMismatchException e) { //Bei ungültiger Eingabe System.out.println("ERROR: Ungültige Eingabe. Bitte versuchen sie es erneut."); //Fehlermeldung ausgeben eingabe.next(); //Eingabe löschen } } while (Approximationsgrad < 1); while (Approximationsgrad > outercounter) { //Wenn Schleifendurchläufe < Genauigkeit hauptzaehler *= (zaehler / 2); //Pi berechnen zaehler = Math.sqrt(2+zaehler); //neuer Zaehler berechnen if (zaehler==2 && !Ausgegeben) { //wenn Max. Genauigkeit erreicht System.out.println("Max. Genauigkeit erreicht: " + outercounter + " Durchläufe.\n"); //Meldung ausgeben Ausgegeben = true; //Variable setzen um nochmaliges Ausgeben zu verhindern } ++outercounter; //Anzahl der Schleifen erhöhen } System.out.println("Pi wurde als " + 2 / hauptzaehler + " berechnet."); //Pi ausgeben System.out.println("*****************************************\n"); //Zierleiste ausgeben System.out.println("Wollen sie noch mal berechnen lassen? (j/n)"); //Fragen ob nochmal berechnet werden soll do { Antwort = eingabe.next().charAt(0); //Antwort einlesen if (Antwort != 'j' && Antwort != 'n'){ //Antwort auf korrektheit überprüfen System.out.println("ERROR: Keine korrekte Antwort. Bitte nur j oder n eingeben."); //Fehlermeldung ausgeben Antwort = 'k'; //Wiederholbedingung setzen } } while (Antwort == 'k'); } while (Antwort == 'j'); } } |
also bei mir is die größte genauigkeit bei 26 durchläufen erreicht.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Mi 14.01.09 00:32
Pro-Gamer hat folgendes geschrieben : | Ich lag in den letzten 2 wochen im Krankenhaus und morgen schreib ich in Informatik einen Test wo diese Programmierung dran kommt |
Und ich glaub Dir aufs Wort, das Du das Alles dem Lehrer erzählt hast und er sich einen feuchten Kericht darum schert.
_________________ Na denn, dann. Bis dann, denn.
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Mi 14.01.09 10:14
 mein code stellt doch nicht die Leibnitz-Reihe dar, sondern die Formel von Viète. Macht aber nix, da beide Pi ausrechnen. 
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
rizla
      
Beiträge: 417
Erhaltene Danke: 2
XP
FPC mit Lazarus
|
Verfasst: Mi 14.01.09 12:37
Ja, das ist echt hart!
Wenn jmd 2 Wochen im KH liegt, dann wird er schon was haben (also pathologisch).
Dass die Lehrer da keine Rücksicht drauf nehmen, kann ich mir nicht vorstellen, war jedenfalls
bei mir nicht so (oder waren meine Lehrer damals einfach menschlicher?).
Für mich klingts ein bisschen wie:
"Ich (hatte) in den letzten 2 wochen (was besseres zu tun als mich um die Schule zu kümmern)
und morgen schreib ich in Informatik einen Test wo diese Programmierung dran kommt"
Sry, aber wird immer mehr mit dieser Art Beitrag ("ich brauch für die Schule", "ein sourcecode wäre gut", usw usf).
Ohne jmd was unterstellen zu wollen. Aber das ist wohl heutzutage so: delphi starten, klick hier, klick da,
copy&paste hier, copy&paste da, kompilieren und fertig.
Viel mit Theorie und Überlegen ist heute nicht mehr, aber ist klar, wenn alles im Internet verfügbar ist, wozu denken
(Dieser Text ist aus einem anderem Beitrag per c&p erstellt worden  )
:r:
_________________ if you have what they want - they'll find a way to take it (bruce sterling)
WOW - 10 JAHRE Mitglied beim Delphi-Forum. Wie die Zeit vergeht, Freunde.
|
|