VB-Hilfe

  • #1
R

Rega

Guest
Hat es jemand der mir helfen kann bei Struktogrammen...vorallem bei dieser Aufgabe:

Es soll ein Programm (vb) zur Berechnung der Reihe

f(n) = 1/2+2/3+3/4+4/5+.....+n/n+1

z.B f(4)= 1/2+2+3+3/4+4/5 =2.716667 entwickelt werden.

Die Programmiersprache kennt keine Operation, um die Funktion direkt zu berechnen, wohl aber die Grundoperation Addition, Subtraktion, Multiplikation....

Als Lösung sollte man ein geeignetes detailliertes (Nassi/Shneidermann) Struktogramm erstellen....
 
  • #2
Hab zwar keine ahnung, was ein (Nassi/Shneidermann) Struktogramm ist, aber ich würde das als rekursive Prozedur proggen:
Code:
Private Function f(iterat) As Double

  cur = iterat / (iterat + 1)

  pre = 0

  If Not iterat = 1 Then pre = f(iterat - 1)

  f = cur + pre

End Function
oder als for-Schlaufe:
Code:
Private Function f(iterat) As Double

cur = 0
For i = 1 To iterat
    cur = cur + i / (i + 1)
Next

  f = cur

End Function
Aufruf:
Code:
a = f(x)
 
  • #4
ja habe ich nur komm ich mit dem struktogramm nicht wirklich weiter...(bin eben ein bisschen schwer von begriff) jedenfalls im vb!
 
  • #5
  • #6
Hi

@Rega
Bitte keine Doppelpostings. Beide Themen wurden zusammengeführt.

Gruß, Michael
 
  • #7
Grüß Gott,

ich versuchs mal; so könnte Nassi-Shneidermann aussehen:

!--------------------------------------------------!
! n=0, m=1, x=Wertigkeit der Reihe !
!--------------------------------------------------!
! while n>0 and m>n and x<>n !
! !------------------------------------------!
! ! x=n? !
! !------------------------------------------!
! ! nein ! ja !
! !------------------------------------------!
! ! f(n)=f(n)+n/m ! f(x)=f(n)+n/m !
! ! n=n+1 ! !
! ! m=m+1 ! !
!--------------------------------------------------!
! AuSgabe Wert f(x) !
---------------------------------------------------!

na, in meinen Darstellungsmöglichkeiten bin ich doch hier sehr
begrenzt(3 Minuten überlegen, 10 Minuten um das grafisch einigermaßen darzustellen).


Aber ich hoff' doch, es stimmt oder? :)
 
  • #8
while n>0 and m>n and x<>n
Die While Schleife wird nur ausgeführt, wenn auch x<>n ist. Was bringt dann in der While Schleife die Abfrage x=n? Der ja-Fall dürfte nie ausgeführt werden.

Eddie
 
  • #9
Grüße Gott,

prima, er kommt schon gar nicht mehr bis zum x=n?
Muß wohl heißen: ... and x>=n
Einverstanden ;)?
 
  • #11
Grüß Gott,

Nö. x und n können nie gleich sein
das würde ich nicht sagen (oder ist heute nicht mein Tag :'()

Was ist daran falsch?
while n>0 and m>n and x>=n
 
  • #12
Ach so, in der While Schleife willst Du das ändern. Ich hatte das so verstanden, dass Du x=n durch x>=n ersetzen wolltest ;)

Eddie
 
  • #13
Hi

Na ein bissl überlegen sollte der Fragesteller für seine Hausaufgaben ja auch noch :)

Gruß, Michael
 
Thema:

VB-Hilfe

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben