» C++ Programm für Pi

left expression must be integral - Fehlermeldung mit Open Watcom CompilerNeuen Thread eröffnenNeue Antwort erstellenC++ Programmierer gesucht gegen Geld
AutorNachricht
Beobachter 
Anmeldedatum: 19.02.2011
Beiträge: 1
19.02.2011, 09:53
zitieren

Hi,

ich bin noch ein ziemlicher Anfänger und habe mal ein Programm geschrieben um Pi annäherungsweise ausrechnen zu können... allerdings zeigt der mir immer nur 3 als ergebnis an, obwohl ich folgendes programm habe:


// Pi.cpp: Hauptprojektdatei.

#include "stdafx.h"

using namespace System;

int main(array<System::String ^> ^args)
{

double x, y, z;

x = 3;

y = 10/71;

z = (double) x + y;

Console::WriteLine(z);



Console::ReadLine();



return 0;
}



ich weiß nicht woran es liegt, kann mir jemand helfen?

Danke

P.S.:ich schreibe mit dem .NET Framework


pn
Junior 
Name: Voller Name als Anagramm: Fitje Weshoms
Geschlecht:
Fahrzeug: Yamaha YZF R6 Thundercat
Anmeldedatum: 15.07.2012
Beiträge: 92
Wohnort: Amberg, Oberpfalz
18.08.2012, 13:29
zitieren

Liegt vieleicht an der Formatierungsanweisung. Vorerst was für
neugierige:

Ein gewisser Freiherr Gottfried Wilhelm Leibnitz(1646 bis 1716), ein
vielseitiger deutscher Denker, hatte eine Rechenregel herausgegeben,
von der er behauptete, mit ihr könne man die Kreiszahl Pi/4 finden.

Jene, welche nicht der Weisheit letzter Schluss ist, lautet

PI/4 = 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + 1/13 - 1/15.......

und stellt eine unendliche Reihe von Rechenoperationen dar. Dies kann
man unschwer an der Schleifenkonstruktion erkennen. Mir sind aber
bis dato keine schnelleren Algorithmen bekannt.

Hier ein Beispielprogramm:


#include <conio.h> // wegen getch()
#include <iostream>
using namespace std;

int main(void)
{
long schleife, dummy;
long double teiler, ergebnis;
dummy = 1;
teiler = 3;
ergebnis = 1;

for (schleife = 0; schleife <= 10000000; schleife++)
 {
  dummy *= -1;
  ergebnis += ((1/ teiler) *(long double)dummy);
  teiler += 2;
 }
ergebnis *= 4;
cout.precision(12);  //Stellt die anzeige auf 12 Nachkommastellen ein.
cout << ergebnis;
getch();
return 0;
}
Der Befehl cout.precision(12) stellt die Anzeige der Variablen vom Typ
long double auf 12 Nachkommastellen ein. Auf diese Funktion werden die
Freeware-Besitzer wohl zurückgreifen müssen. Obriges Programm reicht bei
weitem nur bis auf ein paar Nachkommastellen.
Fans der Funktion printf muss man hier wegen Kompatibilitästproblemen der
verschiedenen Compiler untereinander einen starken Dämpfer verpassen.
meine Uralt-vehikel MSVC 1.52 und QC25 schlucken solche Konstrukte wie
printf("\n%Lf", long_double_variable) ohne weiteres. Ebenso mein Compiler
MS Visual Studio 2003.
Die Freeware Codeblocks 10.05 macht das leider nicht mit. Hier fehlt wohl
noch etwas Salz in der Suppe.

Typumwandlung erfolgt mit dem neuen Typbezeichner in Klammern vor der
Variablen.

Beispiel:
int a;
double b;
long double c;

c = (long double)b / (long double)a;

Sonst hätte man die dafür gängigen Formatierungsanweisungen für printf
nehmen können:




Formatangabe Eingabewert Typ

%d Ganze Dezimalzahl vom Typ int
%hd Ganze Dezimalzahl vom Typ short
%ld Ganze Dezimalzahl vom Typ long
%i Ganze Dezimalzahl vom Typ int. Dabei sind hier
sowohl oktale, hexadezimale,
oder dezimale Eingabewerte möglich.
Stellt man der einzugebenden
Zahl eine Null, also 0 voran, wird
Sie als oktaler, bei Voranstellung
der Zeichen 0x als hexadezimaler,
und ohne Voranstellung als dezimaler
Wertinterpretiert.

%u Ganze Dezimalzahl vom Typ unsigned int
%hu Ganze Dezimalzahl vom Typ unsigned short
%lu Ganze Dezimalzahl vom Typ unsigned long
%o Ganze oktale Zahl vom Typ int
%ho Ganze oktale Zahl vom Typ short
%lo Ganze oktale Zahl vom Typ long
%x Ganze hexadezimale Zahl vom Typ int
%hx Ganze hexadezimale Zahl vom Typ short
%lx Ganze hexadezimale Zahl vom Typ long
%c ASCII-Zeichen(Typ char)
%f Gleitkommazahl vom Typ float
%lf Gleitkommazahl vom Typ double
%Lf Gleitkommazahl vom Typ long double
%e,%E Gleitkommazahl vom Typ float in Expotentialschreibweise
%le,%lE Gleitkommazahl vom Typ double(exp.)
%g,%G Gleitkommazahl vom Typ float (expotential oder dezimal)

%lg,%lG Gleitkommazahl vom Typ long double(exp./dez.)
%s Zeichenkette
%p Zeiger
%n Keine Benutzerangabe(zeigt Anzahl der bis dahin eingelesenen Zeichen an)


Mit Hilfe eines Mathematikprogrammes das sich Winfunktion nennt kann man
unter anderem die Kreiszahl auf mehrere tausend Stellen hinterm Komma
berechnen lassen.


Vorest hier nur die ersten 1000 Stellen:

PI = 3, ...
141592 653589 793238 462643 383279 502884 197169
399375 105820 974944 592307 816406 286208 998628
034825 342117 067982 148086 513282 306647 093844
609550 582231 725359 408128 481117 450284 102701
938521 105559 644622 948954 930381 964428 810975
665933 446128 475648 233786 783165 271201 909145
648566 923460 348610 454326 648213 393607 260249
141273 724587 006606 315588 174881 520920 962829
254091 715364 367892 590360 011330 530548 820466
521384 146951 941511 609433 057270 365759 591953
092186 117381 932611 793105 118548 074462 379962
749567 351885 752724 891227 938183 011949 129833
673362 440656 643086 021394 946395 224737 190702
179860 943702 770539 217176 293176 752384 674818
467669 405132 000568 127145 263560 827785 771342
757789 609173 637178 721468 440901 224953 430146
549585 371050 792279 689258 923542 019956 112129
021960 864034 418159 813629 774771 309960 518707
211349 999998 372978 049951 059731 732816 096318
595024 459455 346908 302642 522308 253344 685035
261931 188171 010003 137838 752886 587533 208381
420617 177669 147303 598253 490428 755468 731159
562863 882353 787593 751957 781857 780532 171226
806613 001927 876611 195909 216420 1989



Ich selbst habe mir vor ein paar Jahren einen Header
gebastelt, um diese Kreiszahl als Konstante in mein Programm
einbinden zu können:

/* GNU-Lizenz, dieser Header soll Freeware bleiben */
#ifndef _INC_PI
#define _INC_PI 1
#endif

#if _INC_PI == 1                      /* .         .         .         .         .         .         .         .         .*/
extern const long double PI = 3.1415926535897932384626433832795028841971693993751058209749445923078164026862089986280348253421170679; 
extern const double      pi = 3.141592654;
  #undef  _INC_PI
  #define _INC_PI 2
#endif
Literaturnachweis:

Egmont Colerus
"Von Pythagoras bis Hilbert"
Weltbild Verlag
ISBN 3-89350-152-5

Egmont Colerus
"Vom Einmaleins zum Integral"
Weltbild Verlag
ISBN 3-89350-150-9

Gerhard Willms
"Das C Grundlagen Buch"
Verlag Data Becker
ISBN 3-8158-1208-9

Stanley B.Lippman
C++ Einführung und Leitfaden
Verlag Addison-Wesley
ISBN 0-201-54848-8

Vorher genannte Literatur wird sich nur noch in Antikquariaten
finden lassen. Lesen ersetzt aber nicht das Programmieren, es
ergänzt und erklärt.

Also, viel Spass beim Programmieren
Guiseppe


 1x  bearbeitet
pn
Gesperrt 
Anmeldedatum: 04.05.2013
Beiträge: 53
27.06.2013, 19:47
zitieren

Tja Allso ich bin ja Nicht Allzu Versiert aber ich denke du Hast PI exakt auf 6 stellen berechnet danach hast du Abweichungen von Ca. 4000%*117²...*V auch möglich das ich mich Irre

pn
Junior 
Name: Voller Name als Anagramm: Fitje Weshoms
Geschlecht:
Fahrzeug: Yamaha YZF R6 Thundercat
Anmeldedatum: 15.07.2012
Beiträge: 92
Wohnort: Amberg, Oberpfalz
28.06.2013, 17:52
zitieren

Hi!

Brauchste auch nicht, haste Recht, Wozu soll man da eine
Zahl 1000 Stellen auf dem Komma berechnen? Hab das mal
aus Langeweile in der Umschulung getan, als mir Abends auf
der Studentenbude die Decke auf dem Kopf fiel.
Nur so zum Zeitvertreib. Besser als Koma-Saufen in der
Kneipe auf dem Schulgelände dachte ich mir.
Die mit Winfunktion berechneten Zahlen habe ich mit einem
Buch verglichen das von Rudolf Kippenhahn stammt.
Diese sind identisch. aber mit einem anderen System als mit
dem meinem berechnet. Dafür ist meines zu langsam und zu ungenau.
Das erste Mal wurde die Zahl PI in der Zeitschrift

"The Mathematical Intellegencer"
in der Ausgabe
Volume 7 Number 3 von 1985 auf die Titelseite gepackt.
Verlag Springer

Informationsquelle:

Der Titel des
Buches: Verschlüsselte Botschaften.
Rohwolt Verlag
ISBN 3 498 0 3495 2


Dort geht es unter anderem darum, wie mat mit Hilfe solcher
endlosen Zahlenreihen Daten verschlüsselt.

Ähnliche genüßliche Literatur für den Urlaub oder wenn
es einem langweilig wird:

Autor: Pierre Accoce und Pierre Quet
Titel: Moskau wußte alles
Verlag: Schweizer Verlagshaus AG, Zürich
Ausgabe von 1966

Autor: Heiner Karsten
Titel: Ich war Sowjetspitzel
Verlag: Ellenberg, Köln 1979
ISBN3-92136954-1

Ausserdem gibt es da ein gutes Buch von einem
gewissen Viktor Ostrowsky, ehemaliger
Agent des Mossad oder so. der Titel ist mir aber entfallen.
Guck halt mal im Internet nach.

Nur so aus historischem Interesse habe ich mich mal für
Kurzwellenfunktechnik begeistert.
Nicht das jetzt einer beim Lesen dieses Textes auf
falsche Schlussfolgerungen kommt!

Historische Literatur dazu:

Autor: Fritz Trenkle
Titel: Die deutschen Funkpeil-und -Horch-Verfahren bis 1945
Verlag: AEG-Telefunken

Autor: Fritz Trenkle
Titel: Die deutschen Funkmessverfahren bis 1945
Verlag: AEG-Telefunken

Für Freunde der analogen Funktechnik:

Autor: Otto Limann
Titel: Funktechnik ohne Ballast
Verlag: Franzis-Verlag München, 15. Auflage

Autor: Eric T. Red
Titel: Funkempfängerschaltungstechnik praxisorientiert
Verlag: beam-Verlag
ISBN 3-889976-034-1

Autor: F. Villbig
Titel: Lehrbuch der Hochfrequenztechnik II
Verlag: Akademische Verlagsgesellschaft m.b.H Frankfurt am Main
5.te Auflage

Autor: Karl Rothammel
Titel: Antennenbuch
Verlag: Frankh-Kosmos Stuttgart 1991
ISBN 3-440-5853-0

Herausgeber: Jean Pütz
Titel: Einführung din die Elektronik
Verlag: Fischer Taschenbuch Verlag


also:
Sechs Stellen PI reichen völlig aus.

Guiseppe


 2x  bearbeitet
pn
Gast 
28.06.2013, 17:52
zitieren

Mach mit!

Wenn Dir die Beiträge zum Thread "C++ Programm für Pi" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:



Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...


Neuen Thread eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:
Letzter Beitrag
MP3 programm
Hi ich suche ein einfaches programm womit ich meine mucke von CDs und co. in MP3s umwandeln kann. ( es sollte auch gratis sein ) Habe schon gegoogelt aber da komme ich nur zu progr. zu testen die nach ner bestimmten zeit...
von A.D.
2
274
16.05.2009, 14:29
Der_Ronny
c programm
Ich habe mal einen struct für das protokoll geschrieben struct header{ uint8_t reserved; uint8_t ack; uint8_t get; uint8_t set; uint8_t delete; uint16_t key_len; uint32_t value_len; uint8_t * key; uint8_t * value; }; Meine jetzige Aufgabe lautet: Sie...
[C]von eee
0
263
12.12.2020, 20:02
eee
Frage zu programm
kennt einer von euch noch ein programm das pdf dateien lesen kann?außer adobe reader...
von tuni84
2
158
09.12.2008, 10:37
tuni84
Auf ein Programm zugreifen?!?!
Hey leute, ich suche dauernd einen weg auf ein programm zu zugreifen und zu steruern bzw. aktionen ausführen. Genau genommen will ich auf ein online casino zugreifen und will das mir das programm die getroffenen zahlen im roulette zeigt und speichert und...
[Projekte]von polest
0
374
15.08.2010, 19:18
polest
Decodierungs-Programm
Hallo! Ich habe Probleme mit einem Programm, welches Zeichen, die in einem char array gespeichert sind, decodieren und ausgeben soll. Decodiert soll so werden, dass jedes Zeichen durch jenes ersetzt wird, dessen ascii Code um 1 kleiner ist als das...
[C]von Apeiron
2
480
12.03.2020, 16:13
steinsgate
Powerpoint programm??????
Hi Leute brauch eure hilfe ich will eine powerpoint präsentation machen aber mir fehlt das programm kennt von euch wer eins das kostenlos ist Ich verzweifle noch...
von Manu_Prelude
2
403
09.01.2008, 16:50
Jonas | back in white
Hilfe bei c-Programm
Hallo, habe hier ein riesiges problem an dem ich schon wieder verzweifele Habe folgende Aufgabe: Aufgabe 4.3 (*) (arrays, call by reference) Schreiben Sie ein Programm, das in einen Vektor V1 der Länge 10 Integer-Werte von der Konsole einliest....
[C]von Daniela1987
2
448
18.01.2012, 16:54
Daniela1987
Ton in Programm einbinden
Hey, ich lerne gerade ganz frisch bei mir an der Uni das Programmieren mit C mit dem Programm JFE. Ich weiß nicht ob das ein gutes Programm ist oder so, für den Anfang reicht es jedenfalls. Ich hab aus Spaß mal angefangen ein Text-Adventure zu...
[C]von René Pixelburg
1
423
29.11.2011, 16:10
CppCoder
Hilfe bei C Programm
Hallo! Ich habe ein großes Problem. Ich sollte für die Schule ein C Programm schreiben, habe aber keine Ahnung wie das geht und bin maßlos überfordert. Bsp.: Der 8bit AD-Wandler eines Mikrocontrollers ist mit der Funktion ad_8 aufzurufen. Als...
[C]von Stockix
0
356
05.05.2012, 07:30
Stockix
Programm für Diplomarbeit
Hallo an Alle User! Ich habe eine wissenschaftliche Untersuchung entwickelt und benötige in diesem Zusammenhang ein Computerprogramm. Wie das so ist, wenn sich jemand Fachfremdes etwas derartiges ausdenkt, habe ich zwar eine genaue Vorstellung davon...
[Allgemein]von tinamo
1
553
09.08.2010, 05:43
triple81
© 2004 - 2025 www.programmierer-forum.de | Communities | Impressum |