Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > Visual Basic, Visual Basic.NET

Visual Basic, Visual Basic.NET Alles zum Thema - Visual Basic und Visual Basic.NET
Fragen zu VBA bitte in das Forum Office-Anwendungen posten!

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3338, Antworten: 125
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26943, Antworten: 4219
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50950, Antworten: 1396
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7660, Antworten: 186
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 321, Antworten: 19
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 26, Antworten: 0
Gehe zum ersten neuen Beitrag Captur 2.3 (Lion)
Aufrufe: 32, Antworten: 0
Gehe zum ersten neuen Beitrag Acer Aspire 8745ZG fährt...
Aufrufe: 65, Antworten: 6
Gehe zum ersten neuen Beitrag Rechner fährt herunter,...
Aufrufe: 152, Antworten: 9
Gehe zum ersten neuen Beitrag avs4you_com Lizenz oder Abo?
Aufrufe: 78, Antworten: 4
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01.03.2006, 16:07   #1 (Direktlink)
Forenmaskottchen
 
Registriert seit: 11.12.2004
Beiträge: 662
Standard VB-Script zu einem Programm?

Edit2: Also gut, hab mir jetzt eine Demo von "Visual Basic 5.0 CCE" herunter geladen und folgendes dort eingeben:

Code:
Sub Befehl1_Click () 
E = 1: F = 1 
For K = 1 To 100 
F = F * K 
E = E + 1 / F 
Print E 
Next K 

End Sub
Außerdem steht auf der Seite: "Hinter dem Befehl e Berechnen steht folgender Code" (...)
Wie mach ich da denn die Schaltfläche?

Bitte mir muss doch jemand helfen können? Es geht um Leben und... Leben...

Gruß, Va Bene

PS: Hab ich denn schon irgendetwas richtig gemach?




<hr>
Edit: Habe hier irgendwas programmmäßiges gefunden:

http://www.madeasy.de/2/prge.htm

Der Screenshot sieht ja ganz nett aus, aber wo ist das dazugehörige Programm?
Scheint um Visual Basic zu gehen... wäre mal jemand so nett und verschiebts mal dort hin?






Hallo,
vorneweg: ich starte dieses Thema im Allgemein-Forum und nicht bei Basic oder C, weil ich von Programmierersprachen keine Ahnung habe (außer halt html). Daher auch meine bitte an einen Mod, dieses Thema in ein entsprechendes Forum zu verschieben - ich denke mal, ihr wisst grob, wo das hingehören könnte.

Also, folgendes:
Ich beschäftige mich in letzter Zeit aktiv mit der Zahl e für die Schule. Als "Taschenrechner" haben wir den TI92 Plus (bzw. Voyage 200). Nun möchte ich e aber selber mit viiiielen Dezimalstellen bestimmen. Dazu habe ich mir das eine Näherungsverfahren ausgesucht:


Code:
1+ 1/1! + 1/2! + 1/3! + ... + 1/n!
Habe das auch mit dem TI bis n=20 ausrechnen können, aber irgendwann ist leider auch beim TI Schluss mit Dezimalstellen. So werden "nur" 13 Nachkommastellen angezeigt.


So, dann habe ich folgendes gelesen:


Zitat:
3. Im Gegensatz zu Pi gibt es für e keine Fan-Gemeinde. Auch ist es nicht besonders Prestige-fördernd, nun möglichst viele Stellen nach dem Komma für e auszurechnen. Das liegt daran, dass das durch die Formel

e = 1+1/1 + 1/1·2 + 1/1·2·3 + ...

so einfach ist, dass eigentlich nur noch elementare Programmierkenntnisse gefordert sind, um fast beliebig viele Stellen zu bestimmen.
Das heisst im Klartext für mich, dass ich "nur noch dieses elementaren Programmierkenntnisse" brauche. Da ich aber keine Zeit habe, die Grundlagen von Basic oder C zu erlernen, wollte ich fragen, ob mir jemand ein solches Programm basteln kann. Es hört sich ja so an, dass das für jemanden mit Ahnung ein leichtes sein müsste.

Also nach dem Prinzip e = 1/1! + ... + 1/n! mit n = 50 oder n = selbstauswählbar.

Damit würde man mir echt einen großen Gefallen tun!

Gruß, Va Bene

PS: Alternativer Titel... Die Zahl e mit einem Programm ausrechnen lassen?

Hab jetzt das da oben genommen. Lumen[/size]
Apollo_b ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 05.03.2006, 00:04   #2 (Direktlink)
Stammuser
 
Registriert seit: 08.01.2004
Beiträge: 471
Standard

Willst dus nicht lieber mit C++ versuchen? Da gibts jede Menge kostenlose Compiler und für sowas ist die Sprache wohl auch geeigneter.^^
Na gut, aber da du dir schonmal die Mühe gemacht hast...

Eigentlich hast du das meiste schon richtig gemacht
Bloß erhälst du mit Print E nur eine Ausgabe im Debugfensterchen.

Versuch mal diesen Code (aber lass die List-Box auf dem Formular):

Code:
Sub Befehl1_Click ()
E = 1: F = 1
For K = 1 To 100
F = F * K
E = E + 1 / F
List1.AddItem E
Next K
End Sub
Eckard41 ist offline   Mit Zitat antworten
Alt 05.03.2006, 00:28   #3 (Direktlink)
Forenmaskottchen
 
Registriert seit: 11.12.2004
Beiträge: 662
Standard

Hmm... scheint noch nicht zu funktionieren... aus List1.AddItem E habe ich mal Frame1.AddItem E gemacht, da das ja irgendwie in dem Frame ausgeben werden soll.

Somit sieht der Code für den Button so aus:
Code:
Private Sub Befehl1_Click()
E = 1: F = 1
For K = 1 To 100
F = F * K
E = E + 1 / F
Frame1.AddItem E
Next K
End Sub
Für den Frame:
Code:
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)

End Sub
Aber es passiert nichts bei einem Klick auf "e berechnen".

Ist es eigentlich richtig, wenn ich das Projekt als "Standard EXE" mache?

Danke für die Hilfe!
Gruß, Va Bene
Apollo_b ist offline   Mit Zitat antworten
Alt 05.03.2006, 00:33   #4 (Direktlink)
Stammuser
 
Registriert seit: 08.01.2004
Beiträge: 471
Standard

Nein, du kannst dem Frame keine List-Funktionen zuweisen.
Ein Frame ist ein absolut passives Steuerelement und stellt wirklich nur diesen optischen Rahmen dar. Zieh doch einfach die Listbox auf das Frame und nimm meinen Code...

Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)

End Sub

Den Abschnitt brauchst du nicht, da du vom Frame keine Ereignisse abfangen werden musst.
Standard-Exe ist ok, zum Testen genügt allerdings ein Klick auf Ausführen oder F5.

EDIT:
Achja und nenn die Sub genauso wie deinen Button, also Command1.
Kein Wunder, dass nichts passiert:
Code:
Private Sub Command1_Click()
E = 1: F = 1
For K = 1 To 100
F = F * K
E = E + 1 / F
List1.AddItem E
Next K 
End Sub
Eckard41 ist offline   Mit Zitat antworten
Alt 05.03.2006, 00:43   #5 (Direktlink)
Forenmaskottchen
 
Registriert seit: 11.12.2004
Beiträge: 662
Standard

Zitat:
Zitat von Eckard41
Versuch mal diesen Code (aber lass die List-Box auf dem Formular)

Es ist späääät... hab daraus "lass die List-Box aus dem Formular". Also habe ich sie rausgenommen...








Ah, da ist ein Edit... das hat mir alles gerettet!
Danke! Danke!
Funktioniert... aaaaaber...
Das sieht dann so aus:

Kann man das ganze noch mit ein paar mehr Stellen hinter dem Komma versehen?
Apollo_b ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 05.03.2006, 00:49   #6 (Direktlink)
Stammuser
 
Registriert seit: 08.01.2004
Beiträge: 471
Standard

*hust* Tja, ich fürchte das ist die Rechengenauigkeit von VB...
Wie wärs, wenn wir das morgen... na schön, heute mittag nochmal mit C++ versuchen?
Eckard41 ist offline   Mit Zitat antworten
Alt 05.03.2006, 00:53   #7 (Direktlink)
Forenmaskottchen
 
Registriert seit: 11.12.2004
Beiträge: 662
Standard

Zitat:
Zitat von Eckard41
*hust* Tja, ich fürchte das ist die Rechengenauigkeit von VB...
Wie wärs, wenn wir das morgen... na schön, heute mittag nochmal mit C++ versuchen?

Gerne, wenn du bereit wärest! (ich hab sogar selbstständig einen "Beenden-Button" eingebaut... einfach nur
Private Sub Command2_Click()
End
End Sub
Ist ja gar nicht sooo schwer... )

Von Basic hatte ich ein ganz kleines bisschen Ahnung. Es gab früher sgn. "V-Techs" (glaub ich)... sone komischen kleinen Lehr-"Apparate" für Rechtschreibung, Mathe, usw. und da war auch Basic mit drauf... aber viel konnte man damit nicht machen und es ist schon lange her...
Apollo_b ist offline   Mit Zitat antworten
Alt 05.03.2006, 00:57   #8 (Direktlink)
Stammuser
 
Registriert seit: 08.01.2004
Beiträge: 471
Standard

*Applaus* ;P
Natürlich ist es nicht schwer und gleichzeitig doch erstaunlich, was man mit der recht einfachen Syntax in VB anstellen kann.

Ich versuchs auf jeden Fall mal und quäl mich nochmal durch Datentypen und deren Nachkommastellen in C++.
Eckard41 ist offline   Mit Zitat antworten
Alt 05.03.2006, 00:59   #9 (Direktlink)
Forenmaskottchen
 
Registriert seit: 11.12.2004
Beiträge: 662
Standard

Danke vielmals, dann kann ich ja beruhigt ins Bett gehen...
Gute Nacht und jaa... auf zu C++!
Apollo_b ist offline   Mit Zitat antworten
Alt 05.03.2006, 13:56   #10 (Direktlink)
Stammuser
 
Registriert seit: 08.01.2004
Beiträge: 471
Standard

Ich hoffe, es macht dir nichts aus, wenn ich mich nochmal bezüglich der Sprache umentschieden habe.

Das ganze in PHP:
Code:
    $x = 1;
    $accuracy = 1000; // Auf wieviele Nachkommastellen?
    
    $e = $x + 1;
    $i_fak = 2;
    $potenz = $x;
    
    for($i=3;$i<=$accuracy;$i++) {
    
        $potenz = bcmul($potenz, $x, $accuracy+2);
        $result = bcdiv($potenz, $i_fak, $accuracy+2);
        $e = bcadd($e, $result, $accuracy+2);
    
        printf("1E-%0".strlen((string)$accuracy)."d|\n", $i);
        $i_fak = bcmul($i_fak, $i, $accuracy+2);
    
    }
    
    echo "

";
    echo "".substr($e, 0, $accuracy)."";
Und in leicht abgeänderter Form zum ausprobieren auf meinem Webserver: http://area53.dyndns.org/e.php
Allerdings hab ich mal eine Begrenzung auf 1000 Nachkommastellen eingebaut, damit nicht das halbe PPF in Versuchung kommt, die erste Million Stellen übers Wochenende auf meinem PC auszurechnen.

Hier gibts übrigens die Rechenkontrolle:
http://antwrp.gsfc.nasa.gov/htmltest/gifcity/e.1mil
Eckard41 ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 05.03.2006, 14:15   #11 (Direktlink)
Forenmaskottchen
 
Registriert seit: 11.12.2004
Beiträge: 662
Standard

Oh, sehr gut... könntest du noch erklären, was wofür ist und welche Formel du verwendet hast? (also (1+1/n)^n oder 1 + 1/1! + 1/2! + ... + 1/n!)
Apollo_b ist offline   Mit Zitat antworten
Alt 05.03.2006, 14:29   #12 (Direktlink)
Stammuser
 
Registriert seit: 08.01.2004
Beiträge: 471
Standard

Ich versuchs mal:
Code:
<html>
<head>
<title>e auf beliebig viele Nachkommastellen</title>
<style>
body {font-family: Verdana; font-size: 11px; color: #0000ff;}
</style>
</head>

<body>

<?php
if (isset($_POST["submit"])){
    
    // Eigentliche Berechnung auf Grundlage der Formel 1 + 1/1! + 1/2! + ... + 1/n!
	$x = 1; // Potenzwert, hier 1 (e^1)
    // Eingabe abfangen & 1000er-Sperre
    $accuracy = (ctype_digit($_POST["accuracy"]) && $_POST["accuracy"] <= 1000) ? $_POST["accuracy"] : 10;
    
    $e = $x + 1; // erster Abschnitt der Formel (1+ ...)
    $i_fak = 2;  // Fakultaet von 1 ueberspringen, da 1! = 1 und direkt zu 2!
    $potenz = $x;
    
    for($i=3;$i<=$accuracy;$i++) { // So viele Durchlaeufe wie Nachkommastellen (die jeweils letzten jedoch unnoetig, leider nicht vermeidbar)
    
        $potenz = bcmul($potenz, $x, $accuracy+2); // Nur wichtig fuer die Berechnung anderer Potenzwerte, nicht fuer $x = 1
        $result = bcdiv($potenz, $i_fak, $accuracy+2); // Aufzuaddierendes Zwischenergebnis; Abschnitt der Formel (n/n!)
        $e = bcadd($e, $result, $accuracy+2); // Aktuelles e berechnen; Abschnitt der Formel ( + n/n!)
    
        printf("1E-%0".strlen((string)$accuracy)."d|\n", $i); // Formatierte Ausgabe der aktuellen Genauigkeit (Nachkommastellen)
        $i_fak = bcmul($i_fak, $i, $accuracy+2); // Berechnen der Fakultaet von $i fuer den nachesten Durchlauf
    
    }
    
    echo "

";
    echo "e=".substr($e, 0, $accuracy)."";
}
?>
<form action=<?php echo $_SERVER["PHP_SELF"]; ?> method="post">


e auf <input style="width: 32px; border-style: solid; border-color: #0000ff; border-width: 1px;" type="text" name="accuracy" /> Nachkommastellen 
<input style="border-style: solid; border-color: #0000ff; border-width: 1px;" type="submit" name="submit" value="berechnen"/> !
</form>
</body>
</html>
Eckard41 ist offline   Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > Visual Basic, Visual Basic.NET

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an




Alle Zeitangaben in WEZ +2. Es ist jetzt 10:10 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2