HomeArtikelDownloadsForum
PCFreunde.deForumEntwicklungDelphi, Pascal
Besucher online: 130
Schnellsuche

Anzeigen

Community

Foren
Delphi, Pascal Seite 1/1
Summenberechnung
AntwortenNeues ThemaZur Themenliste
Seiten:
1
Nachricht
torte123
Titel: Summenberechnung 29.05.2009 19:03
1 Punkte (?)
 
Anmeldungsdatum: 29.05.2009
Beiträge: 1
Ich habe seid einiger Zeit probiert folgendes Problem mit Pascal zu lösen

Wie viel Summanden von Sn = 1+1/2+1/3+1/4+ … +1/n muss man addieren, bis die Summe zum ersten Mal eine einzugebende Zahl (Sn) übersteigt? Die Berechnung soll nach höchstens
100 000 Summanden abgebrochen werden.
Ausgegeben werden soll die Summe Sn und die benötigte Anzahl Summanden.

Rein mathematisch ist mir klar, was ich machen soll, die Berechnung der Summe an sich im Einzelfall (wenn ich eine Zahl n eingebe funktioniert auch)

Nur so komm ich bei dem Programm nicht weiter...

Ich hatte folgendes ohne Erfolg probiert
weiß nicht ob das mit der Schranke eine so gute Idee ist.
Vielleicht könnte man es mit while i<= 100000 irgendwie probieren, dass das Programm dann abbricht?


program Summenberechnung;
uses crt;

var n,z: integer;
schranke: longint;
sum,sn,i: real;

PROCEDURE Willkommen;
var sn:real;
begin
writeln('');
writeln('Willkommen im Turbo-PASCAL-Programm "Summenberechnung"!');
writeln('');
writeln('Dieses Programm ermoeglicht Ihnen die Anzahl der Summanden');
writeln('der Folge Sn=1+1/2+1/3+...+1/n einer einzugebenen Zahl Sn zu berechnen.');
write('Bitte geben Sie nun eine Zahl Sn ein: '); readln(sn);
end;


begin
clrscr;
Willkommen;

sum:=0;
schranke:=100000;
i:=0;

WHILE (i<=schranke) DO
begin
i:=i+1;
end;

WHILE (sn<=sum) DO
begin
sum:=sum+1/i;
end;

writeln('s(',sn,') = ',sum:0:8);
writeln('Anzahl der Summanden:,i,');

readln;

end.


Ich hoffe, mir kann jemand helfen.
Vielen dank schon einmal
Private Nachricht senden  
 
callahan
Titel: Summenberechnung 04.06.2009 22:47
7 Punkte (?)
 
Anmeldungsdatum: 15.05.2009
Beiträge: 7
kann dir leider nicht helfen.... :( :cry:
Private Nachricht senden  
 
DERamateur
Titel: Summenberechnung 05.06.2009 01:16
9.504 Punkte (?)
 
Anmeldungsdatum: 01.03.2006
Beiträge: 2.968
callahan hat folgendes geschrieben:
kann dir leider nicht helfen.... :( :cry:


:lol: :mrgreen:

das ist ja mal geil,
ich kann auch ncht helfen,
unter normalen umständen hätte ich ja meine
finger stillgehalten,
aber ganz ehrlich,
wenn du nix zu schreiben hast, @callahan
schreib auch nix :wink:

Private Nachricht senden  
 
der_mod
Titel: Summenberechnung 30.06.2009 21:45
3.483 Punkte (?)
[Gesperrt]
 
Anmeldungsdatum: 22.05.2008
Beiträge: 2.823
Was genau geht denn an diesem Code nicht?

Laut dem Code den ich eben mal schnell überflogen habe, soll dass Programm alles +1 rechnen und dann bei schranke aufhören?

Könntest du mir mal erklären, wozu du an der Stelle
Zitat:
WHILE (sn<=sum) DO
begin
sum:=sum+1/i;
end;

benutzt ?
Dass müsste doch mit in die eine Schleife rein (Habs mal ausgeklammert), weil du doch sonst erst 0-100.000 abläufst und dann
i=100.000 ist und der wert dann halt geteilt würde?
Sorry, ich programmierte früher mal Pascal, heute nur noch Delphi Formanwendungen, keine Konsolenanwendungen mehr ;)
Zitat:
rogram Summenberechnung;
uses crt;

var n,z: integer;
schranke: longint;
sum,sn,i: real;

PROCEDURE Willkommen;
var sn:real;
begin
writeln('');
writeln('Willkommen im Turbo-PASCAL-Programm "Summenberechnung"!');
writeln('');
writeln('Dieses Programm ermoeglicht Ihnen die Anzahl der Summanden');
writeln('der Folge Sn=1+1/2+1/3+...+1/n einer einzugebenen Zahl Sn zu berechnen.');
write('Bitte geben Sie nun eine Zahl Sn ein: '); readln(sn);
end;

PROCEDURE variablen;
begin
summe:=0;
stop:=100000;
i:=0;
end;

begin
clrscr;
Willkommen;
variablen;

WHILE (i<=stop) DO
begin
i:=i+1;
// WHILE (sn<=sum) DO
// begin
// sum:=sum+1/i;
// end;
end;

writeln('Anzahl der Summanden:,i,');

readln;

end.
Private Nachricht senden  
 
AntwortenNeues ThemaZur Themenliste
Seiten:
1
Community Login
eMail:
Passwort:
Auto-Login