VBA Programm < BASIC < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 10:18 Sa 29.03.2014 | Autor: | Mathics |
Aufgabe | Schreiben Sie ein Programm, das anhand von Kapital und Zinssatz als Input die Anzahl an Jahre ermittelt, die benötigt wird, um das Kapital zu verdoppeln. Das Programm sollte auch das jeweils neue Kapital nach jedem Jahr darstellen (Hinweis: Dies geht über die Funktion displayNumber) |
Hallo liebes Forum,
das ist mittlerweile mein drittes Programm, das ich schreibe und langsam fängst an Spaß zu machen :) Ich habe mir folgendes überlegt:
Function years (capital As Currency, iRate As Single) As Byte
Dim doubleCapital As Currency
doublecapital = 2 * capital
Do While doubleCapital < capital
Capital = Capital *(1+iRate)
displayNumber (capital)
years = years + 1
Loop
End Function
Ist das ein passendes Programm?
LG
Mathics
|
|
|
|
Hallo,
> Schreiben Sie ein Programm, das anhand von Kapital und
> Zinssatz als Input die Anzahl an Jahre ermittelt, die
> benötigt wird, um das Kapital zu verdoppeln. Das Programm
> sollte auch das jeweils neue Kapital nach jedem Jahr
> darstellen (Hinweis: Dies geht über die Funktion
> displayNumber)
> Hallo liebes Forum,
>
> das ist mittlerweile mein drittes Programm, das ich
> schreibe und langsam fängst an Spaß zu machen :) Ich habe
> mir folgendes überlegt:
>
> Function years (capital As Currency, iRate As Single) As
> Byte
> Dim doubleCapital As Currency
> doublecapital = 2 * capital
>
> Do While doubleCapital < capital
> Capital = Capital *(1+iRate)
> displayNumber (capital)
> years = years + 1
>
> Loop
> End Function
>
> Ist das ein passendes Programm?
Zur Routine displayNumber kann ich nichts sagen, die habe ich noch nie verwendet. Ist das eine Konsolen-Ausgabe?
Ansonsten drei Anmerkungen: die Höhe des Kapitals ist für die Lösung aus mathematischen Gründen unnötig, es ist nämlich mit i:=iRate ja nur die Gleichung
[mm] (1+i)^n=2
[/mm]
zu lösen. Das könnte man nutzen, um die Berechnungen in der Schleife etwas einfacher zu gestalten, falsch ist deine Version jedoch nicht.
Der Rückgabetyp Byte ist nicht grundsätzlich verkehrt, aber sagen wir unüblich. Ich hätte da Integer genommen, Byte verwendet man meiner Kenntnis nach eher für irgendwelche loigischen Flags. Je nachdem, ob der Typ Byte vorzeichenbehaftet bist oder nicht, reicht er ja auch nur bis 127 bzw. bis 255, während Integer auf jeden Fall bis 2^16-1=32767 geht.
Dann zur Ausgabe: es wäre ja sicherlich für Benutzer deines Programms schön zu sehen, auf welches Jahr sich das jeweils angezeigte Kapital bezieht. So wie du es jetzt gemacht hast, werden da nur Geldbeträge (vermutlich) untereinender gereiht.
Ansonsten sollte es funkionieren.
Gruß, Diophant
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 11:01 Sa 29.03.2014 | Autor: | Mathics |
> Zur Routine displayNumber kann ich nichts sagen, die habe
> ich noch nie verwendet. Ist das eine Konsolen-Ausgabe?
Leider weiß ich auch nichts näheres über DisplayNumber; das war nur als Hinweis angegeben.
> Dann zur Ausgabe: es wäre ja sicherlich für Benutzer
> deines Programms schön zu sehen, auf welches Jahr sich das
> jeweils angezeigte Kapital bezieht. So wie du es jetzt
> gemacht hast, werden da nur Geldbeträge (vermutlich)
> untereinender gereiht.
Wie müsste ich mein Programm entsprechend ändern, um auch die Jahre mit angezeigt zu bekommen?
LG
Mathics
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:34 Sa 29.03.2014 | Autor: | Diophant |
Hallo,
> Leider weiß ich auch nichts näheres über DisplayNumber;
> das war nur als Hinweis angegeben.
Wir sprechen von Visual Basic for Applications?
Ich hab gerade mein MSAccess (Version 2010) angeworfen, der Compiler erkennt das nicht. Genausowenig mein Visual Studio 2012.
Also da solltest du mal noch nähere Angaben zum verwendeten Programmiersystem machen.
Gruß, Diophant
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:36 Sa 29.03.2014 | Autor: | Mathics |
Also in der Uni lernen wir gerade die Programmiersprache VBA. Wir haben bis jetzt nur Programme per Hand geschrieben und sind noch nicht an den PCs tätig gewesen. Ich kann nochmal den Dozenten fragen, wo dieses DisplayNumber eingesetzt wird.
LG
Mathics
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:54 Sa 29.03.2014 | Autor: | leduart |
Hallo
warum antwortest du nicht auf Fragen?
ist dein VBA wie gefragt Visual Basic for Applications?
Du hast doch sicher Zugang zu nem PC, warum probierst dus nicht aus?
Wo und wie gibst du daten in dein Programm ein?
Gruß leduart
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:04 So 30.03.2014 | Autor: | Mathics |
Hallo leduart,
am Dienstag fängt das erste Tutorium an. Da gehen wir an die Uni-Rechner und sollen Praxisbeispiele durchführen. Bisher haben wir in der Uni nur Source Codes gelesen und Programme geschrieben. Der Dozent meinte, dass wir VBA lernen und hat sonst keine Angaben dazu gemacht. Ich habe noch nie am PC programmiert, sondern bin vor 5 Tagen das erstmal mit VBA auf dem Papier in Berührung gekommen. Am Dienstag im Tutorium werde ich nachfragen, ob es Visual Basic for Applications ist bzw. mit welchem Programmiersystem wir arbeiten und auch schildern, dass MS Access 2010 und Visual Studio 2012 displayNumber nicht erkannt haben.
PS: Ich hab das aus Versehen als Frage gepostet. Solle eine Mitteilung sein :)
LG
Mathics
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:28 So 30.03.2014 | Autor: | Mathics |
Ich habe gerade auch nochmal in den Vorlesungsfolien geschaut, "displaynumber" wurde nirgends erwähnt.
Auf dem Übungsblatt zu der Aufgabe stand lediglich:
(Hint: assume that the function “displayNumber” can be used to display any numeric value)
LG
Mathics
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:34 So 30.03.2014 | Autor: | Diophant |
Moin,
to assume := annehmen
Da scheint es sich also um eine Funktion zu handeln, von der man annimmt, dass es sie gibt, obwohl sie nicht zum Sprachumfang gehört. Das hat vermutlich den Sinn, dass Bildschirmausgaben in modernen Programmiersystemen abhängig von der Zielplattform realisiert werden. Also in einer Windows-Anwendung bspw. ist die Funktion MsgBox die bekanteste Ausgabemethode, die wird aber sicherlich in einer Konsolen-Anwendung nicht funktionieren, da sie ein Fenster benötigt.
Von daher kann man jetzt deine Frage oben beantworten, was ich auch mal versuchen möchte.
Gruß, Diophant
|
|
|
|
|
Hallo,
> Wie müsste ich mein Programm entsprechend ändern, um auch
> die Jahre mit angezeigt zu bekommen?
Baue einfach vor die Ausgabe des Kapitals noch den Befehl
displayNumbers(years)
ein.
Gruß, Diophant
|
|
|
|