Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Visual Basic Fakultät berechnen mit hoher Stellenzahl

Frage Entwicklung Visual Studio

Mitglied: 105255

105255 (Level 1)

09.06.2012, aktualisiert 10.06.2012, 4672 Aufrufe, 11 Kommentare

Habe von http://www.rhirte.de/vb/ganzzahl.htm ein VB-Programm gefunden mit dem man Fakultät berechnen kann. Allerdings geht es nicht richtig.

Hallo!

Ich habe von
http://www.rhirte.de/vb/ganzzahl.htm

den folgenden Code probiert zu verwenden. Allerdings geht es nicht richtig, da der Code wahrscheinlich veraltet ist:

01.
Option Explicit 
02.
Dim Zeile As String, n As Long, talt As Long 
03.
Private Sub Form_Load() 'Anfangswerte der HScrollBar setzen 
04.
n = 100 
05.
Label1.Caption = n 
06.
End Sub 
07.
Private Sub HScroll1_Change() 'HScrollBar auswerten 
08.
Text1.Text = "" 'Veränderung löscht Hauptfenster 
09.
Label1.Caption = HScroll1.Value 
10.
n = HScroll1.Value 
11.
End Sub 
12.
Private Sub Command1_Click() 
13.
Dim i As Long, j As Long, Raus As String 
14.
MousePointer = 11 
15.
talt = Timer 
16.
Me.Caption = "Fakultät von " & N 
17.
ProgressBar1.Max = N 
18.
Zeile = fak(N) 
19.
Text1.Text = N & "! = " & vbCrLf 
20.
Raus = "" 
21.
j = 0 
22.
For i = 1 To Len(Zeile) 
23.
j = j + 1 
24.
Raus = Raus & Mid(Zeile, i, 1) 
25.
If j = 100 Then 
26.
Text1.Text = Text1.Text & Raus & vbCrLf 
27.
Raus = "" 
28.
j = 0 
29.
End If 
30.
Next 
31.
If Raus <> "" Then Text1.Text = Text1.Text & Raus & vbCrLf 
32.
Text1.Text = Text1.Text & Len(Zeile) & " Glieder; nach " & Format$(Timer - talt, "##.##") & " s" 
33.
MousePointer = 0 
34.
End Sub 
35.
Private Sub Command2_Click() 
36.
End 
37.
End Sub 
38.
Function fak(ByVal n As Long) As String 'rekursive Fakultätsfunktion. 
39.
If n = 1 Then 
40.
fak = "1" 
41.
Else 
42.
fak = mult(n, fak(n - 1)) 
43.
End If 
44.
End Function
(da es nicht so wichtig ist, habe ich es unter OffTopic gesteckt!)

Wie kann ich den Code unter Visual Basic 2010 verwenden?
Gibt es überhaupt eine Möglichkeit, Zahlen mit mehr als 16 Stellen zu rechnen?

Wer kann mir bitte helfen?

Habe schon mindestens 1 1/2 Stunden ge-googelt.

Chris
Mitglied: mrtux
09.06.2012, aktualisiert um 18:51 Uhr
Hi !

Was funktioniert denn "nicht richtig"? Bekommst Du einen Compilerfehler oder läuft der Compiler durch und "dein Programm" lässt die CPU auf 100% Auslastung hoch schnellen? :-P

mrtux
Bitte warten ..
Mitglied: 105255
09.06.2012, aktualisiert um 11:02 Uhr
Erstens gibt es kein "Label1.Caption" in Microsoft Visual Basic 2010 Express.
Zweitens gibt es kein MousePointer.
Dazu kommt, das wenn eine Zahl einen bestimmten Wert überschreitet (ich habs auch mit Object versucht), steht immer "+unendlich" da.
Kann man das genauer machen?

Ich habe acht GB Arbeitsspeicher und 300 GB Festplatte und einen Intel Core i3 Prozessor. Es währe mir egal, wenn er lange rechnet, hauptsache die ergebnisse stimmen.


Kannst du den Code evtl. Microsoft Visual Basic 2010 Express-tauglich machen?
Oder kennst du zumindest einen weg, um mehr als 200 Stellen als Lösung auszuspucken, ohne das irgendne Fehlermeldung kommt?

Ich brauchs nicht als Dezimalzahl.

Chris
Bitte warten ..
Mitglied: wiesi200
09.06.2012 um 10:58 Uhr
Hallo,

da du ja die PN's ignorierst, jetzt noch mal so.
Lern erst mal die Grundlagen und dann schau dir sowas an.
Alles andere hat einfach keinen Sinn!
Bitte warten ..
Mitglied: 105255
09.06.2012 um 11:03 Uhr
Zitat von wiesi200:
Hallo,

da du ja die PN's ignorierst, jetzt noch mal so.

Was für PN´s ?
Bitte warten ..
Mitglied: wiesi200
09.06.2012 um 11:16 Uhr
Das interne Nachrichten System hier.
Aus deine WebCam Frage hat dir Epixc0re und ich eine geschrieben.

Du hast hier einen Code gefunden, verstehst 0 davon willst das dir das einer aufbereitet.
Das ist einfach Schwachsinn! So kommst du selbst nicht weiter, kapier das doch endlich.
Bitte warten ..
Mitglied: 105255
09.06.2012 um 11:37 Uhr
Seid doch nicht so, ich kann auch nichts dafür, dass
ich das nicht aus beruf mache.

und ausserdem stimmt an dem code echt was nicht. ich lerne visual basic 2010 und da muss ich nicht die alten sachen auch noch können.

wenn du mir nicht helfen willst, dann schreib einfach gar nichts mehr.
du willst bestimmt auch nicht, dass jemand der sich besser auskennt mit irgendwas, weil er das aus beruf macht, dir nicht hilft und dir sagt, du sollst lernen.

Chris
Bitte warten ..
Mitglied: wiesi200
09.06.2012 um 12:00 Uhr
Zitat von 105255:
Seid doch nicht so, ich kann auch nichts dafür, dass
ich das nicht aus beruf mache.

Mach ich auch nicht. Ich bin gelernter Technischer Zeichner (entwickeln von Maschinen. Am Schluss für die Teppich Industrie.) Mittlerweile arbeite ich als Administrator und muss Beruflich eigentlich nicht Programmieren hab mir das ganze aber selbst beigebracht.

und ausserdem stimmt an dem code echt was nicht. ich lerne visual basic 2010 und da muss ich nicht die alten sachen auch noch
können.

Du musst die alten Sachen nicht können aber wenn du die Grundlagen könntest könntest du mit dem Code was Anfangen und dir das ganze selbst umschreiben. Übrigens Visual Basic 2010 ist ein Programm! Du lernst VB.NET.
Hier gibt's dann die Unterschiede welches Framework du verwendest. Was aber vom Programmieren keinen Unterschied macht.

wenn du mir nicht helfen willst, dann schreib einfach gar nichts mehr.
du willst bestimmt auch nicht, dass jemand der sich besser auskennt mit irgendwas, weil er das aus beruf macht, dir nicht hilft
und dir sagt, du sollst lernen.

Das Problem dabei ich will dir ja helfen nur du ignorierst es einfach, und so wie du versucht dich in die Sache einzuarbeiten macht meiner Meinung nach keinen Sinn. Beschäftige dich erst mit den Grundlagen, fall's du da Probleme hast was zu verstehen kannst du gerne Fragen. Vergiss den Schrott mit deinen Videos von Leuten die auch keine Ahnung haben und irgendwelchen Code Schnipseln, die du noch nicht verstehst, aus dem Internet.

Wenn dir das hier jemand aufbereitet siehst du zwar das spezielle Problem "kann" man so lösen aber du weißt immer noch nicht warum und wieso, somit hast du wieder ein Problem sobald die Aufgabe ein klein wenig anders ist. Wenn du aber das warum kennst sollte es ein leichtes sein das ganze abzuändern.

Wenn du eine Fremdsprache lernst musst du auch Vokabeln und Grammatik lernen und kannst nicht einfach so das Reden anfangen.

Also noch einmal, ich mein's nur gut mit dir!
Bitte warten ..
Mitglied: 105255
09.06.2012, aktualisiert um 14:38 Uhr
Zitat von wiesi200:

Das Problem dabei ich will dir ja helfen nur du ignorierst es einfach,

Danke, es ist nur so:

Ja, ich lerne das Openbook von Galileocomputing schon durch, ich habe es schon mal grob
durchgelesen und immer wenn ich was nicht geschafft habe, habe ich wieder darin rumgestöbert.
Erstens steht da auch nicht alles drin und zweitens glaube ich nicht, das man von solchen Sachen
besonders lernt. Ich finde, man sollte selber was programmieren und dann durch das Debugging lernen.
Ich habe da einfach in manchen Sachen so meine Eigenheiten. Ich bin Asperger Autist und habe ADHS und bin erst ein 13jähriger 7. Klässer, der den ganzen Tag vor dem Laptop sitzt. Ich lerne auf meine Art.


Wenn du eine Fremdsprache lernst musst du auch Vokabeln und Grammatik lernen und kannst nicht einfach so das Reden anfangen.

Allerdings lernt man von dem, das wenn dir jemand sagt, nein, das spricht man anders aus.
Genauso ist das in der Programmierung: "Fehler, xxx wurde nicht deklariert" - "Ach so".



Chris
Bitte warten ..
Mitglied: MrTrebron
09.06.2012 um 15:11 Uhr
Servus,

aber mal grob ein Buch überfliegen und es durcharbeiten sind schon zwei paar Schuhe!
Es sagt keiner das du mit dem OpenBook der Profi-Programmierer wirst, aber es ist ein Einstieg.

Natürlich muss man um eine (Fremd- oder auch Programmier-)Sprache zu lernen erst mal gewisse Basics lernen. Erst dann kann man anfangen zu lesen, zu sprechen, zu programmieren.
Nur weil ich mal das Wörterbuch Französisch überfliege versteht mich in Paris immer noch keiner.

Natürlich lernt jeder auf seine eigene Art, aber lerne erst mal ein paar Basics, dann verstehst du auch deine Fragen bezüglich Label1.Caption oder auch zum MousePointer. Im OpenBook wird auch an leichten Beispielen das Programmieren geübt, vor allem auch die Objektorientierung.

Es ist auf jeden Fall der falsche Weg komplexere Skripte aus dem Internet zu kopieren, diese dann schlecht in die IDE zu frickeln und dann ein Administrator Forum mit deinen Fehlern voll zu posten in der Hoffnung das dir jemande den Fehler behebt.

Wenn dir die kostenlosen Galileo OpenBooks nicht passen leih dir eins aus der Bibliothek oder kauf dir eins nach deiner Vorstellung, aber lerne erst mal die Basics!!! (OT: Ich werde diese Schallplatte nicht kaufen, sie ist zerkratzt)

Ohne Basics, keine Hilfe! Da ist auch bei ganz anderen Leuten und Themen hier so das den Leuten gesagt wird sie sollen erstmal die Basics lernen oder sich professionelle Hilfe suchen weil es sonst nichts wird.

Gruß
Norbert
Bitte warten ..
Mitglied: wiesi200
09.06.2012, aktualisiert um 16:11 Uhr
Zitat von 105255:
Ich finde, man sollte selber was programmieren und dann durch das Debugging lernen.

Ab einen Gewissen Punkt stimmt das sogar. Aber trotzdem brauchst du einfach gewisse Grundlagen, ohne die wir's nie funktionieren.
Zudem gibt's auch noch ein Paar regeln wie du den Code aufbauen solltest damit das ganze sauber ist. Die lernst du erst recht nicht durch's Debuggen.

Wenn du die Grundlagen hättest würde dir auch auffallen das es bei dem Programm um eine simple Schleifenfunktion geht nicht mehr. Aber um das zu erkennen musst du eigentlich "blind" die Schleife im Quelltext erkennen. Und sobald du das hast solltest du eigentlich selbst ein Programm schreiben können das diese Aufgabe kann.
Deshalb immer wieder einige Grundlagen müssen aus dem FF kommen, erst ab diesem Punkt kannst du anfangen Fremde Codes zu analysieren, selbst Aufgaben stellen usw.

Allerdings lernt man von dem, das wenn dir jemand sagt, nein, das spricht man anders aus.
Genauso ist das in der Programmierung: "Fehler, xxx wurde nicht deklariert" - "Ach so".

Selbst hier musst du erst mal das Wort kennen das du Aussprechen willst (Grundlagen). Dann geht's um Satzbau und Aussprache.

Nochmal hier wird dir liebend gern geholfen. Aber so bringt es im Moment einfach noch nicht's.
Bitte warten ..
Mitglied: Hamberger
28.07.2014 um 11:45 Uhr
In Visual Basic gibt es nunmehr den Datentyp BigInteger (ich glaube, seit VB 2010). Zuerst muss man beim Projekt den Verweis System.Numerics hinzufügen. Dann kann man mit dem VB Programm

Module Module1
Sub Main()
Dim i, n As Integer
n = 1000
For i = 1 To n
Console.Write(CStr(i) & " ")
Console.WriteLine(FakRek(i))
FakRek(1)
Next i
Console.ReadLine()
End Sub
Private Function FakRek(ByVal n As Integer) As System.Numerics.BigInteger
If n < 2 Then Return 1
Return n * FakRek(n - 1)
End Function
End Module

Fakultäten bis 8873! mit allen Stellenanzahlen berechen - hier bis 1000!.
Auf meinem 64-Bit Rechner unter Windows 7 und MS Visual Studio Express 2013 trat erst ab 8874! ein Stack Overflow auf, was vermutlich auf die rekursive Programmierung zurückzuführen ist.
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Visual Studio
gelöst Remotedienst prüfen mit Visual Basic (1)

Frage von flyingmichael zum Thema Visual Studio ...

Visual Studio
Mit Visual Basic auf Shopware 5 API zugreifen (9)

Frage von SmogKiel zum Thema Visual Studio ...

Visual Studio
gelöst Pastebin auslesen mit Visual Basic? (2)

Frage von UltraZz zum Thema Visual Studio ...

Basic
gelöst Mit Visual Basic Batch Datei öffnen (26)

Frage von Flodsche zum Thema Basic ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (23)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (19)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...