Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » programm pyramide ist fehlerhaft

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
20.09.2003, 14:22 Uhr
~Fat-Tiger
Gast


Ich habe noch ein problem bei einem andern programm:


C++:
    //pyramide. cpp

#include <iostream>
using namespace std;

int main () {

    int g;
    int hs;
    int s;
    int hp;
    int g/2
    int A
    
    
    cout << "bitte geben sie denn wert fuer g/2 an:";
    cin >> g;
    cout << "bitte geben sie denn wert fuer h an:";
    cin >> h;
    cout << "hs betraegt:" << (g/2)²*h²=hs² <<endl;
    cout << "s betraegt:" << hs²+(g/2)²=s² <<endl;
    cout << "A betraegt;" << g²+4*g*hs/2 <<endl;
    
    return 0;




Bitte helft mir noch einmal

--edit: Pablo. [ cpp ] tags gesetzt. Bitte, nächstes Mal daran denken --

Dieser Post wurde am 20.09.2003 um 14:27 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.09.2003, 14:34 Uhr
virtual
Sexiest Bit alive
(Operator)


Es gibt kein "Hoch 2" in C/C++. Du must dies als Produkt schreiben oder die Funktion pow verwenden.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.09.2003, 14:36 Uhr
Pablo
Supertux
(Operator)


Du musst auch sagen, was das Problem ist.

Dein Code hat folgende Fehler:

C++:
#include <iostream>
using namespace std;

int main () {

    int g;
    int hs;
    int s;
    int hp;
    //int g/2 ??? Was soll das denn sein?
    int A[b];[/b] // Semikolon wieder vergessen
    
    
    cout << "bitte geben sie denn wert fuer g/2 an:";
    cin >> g;
    cout << "bitte geben sie denn wert fuer h an:";
    cin >> h;
    cout << "hs betraegt:" << (g/2)²*h²=hs² <<endl; // Fehler, was ist ²??? etwas Hoch 2?
    cout << "s betraegt:" << hs²+(g/2)²=s² <<endl; // fehler, du machst eine Zuweisung
    cout << "A betraegt;" << g²+4*g*hs/2 <<endl; // Fehler, aber der lvalue (d.h. die Variable)
    // ist nicht bekannt. Ich schätze, du willst Werte vergeleichen, oder? dann ist == statt =, wenn nicht, dass hast du falsch zugewiesen.
    
    return 0;



Also würde ich so machen:

C++:
#include <iostream>
using namespace std;

int main () {

    int g, h, hs, s;

    cout << "bitte geben sie denn wert fuer g/2 an:";
    cin >> g;
    cout << "bitte geben sie denn wert fuer h an:";
    cin >> h;
    cout << "hs betraegt:" << hs=(g/2)*(g/2)*h*h <<endl;
    cout << "s betraegt:" << s=hs*hs+(g/2)*(g/2) <<endl;
    cout << "A betraegt;" << g*g+4*g*hs/2 <<endl;
    
    return 0;



Sonst weiß ich nicht, was du mit (g/2)²*h²=hs² meinst.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 20.09.2003 um 14:41 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.09.2003, 14:39 Uhr
0xdeadbeef
Gott
(Operator)


Drei Dinge. Zum einen ist ² keine Anweisung in C++. Wenn du etwas quadrieren willst, musst du das von Hand schreiben, z.B. g*g statt g², oder in eine Funktion kapseln - etwa so:

C++:
double square(double x) { return x * x; }

int main() {
  cout << square(2) << endl; //gibt 4 aus
}



Zum zweiten ist der Vergleichsoperator in C++ nicht =, sondern == - = ist die Zuweisung. Also:

C++:
int i, j = 3;
i = 3; //jetzt hat i den Wert 3
if(i == j) cout << "i und j haben den gleichen Wert" << endl;



Zum dritten kannst du nicht einfach die Gleichungen hinschreiben. Naja, kannst du schon, aber du kriegst damit nachher nicht das raus, was du willst. Zum Beispiel wäre die Ausgabe von

C++:
cout << ((g/2)*(g/2)*h*h == hs*hs) << endl;


nicht der Wert von hs, sondern ein Wahrheitswert - also entweder "true" oder "false". Du musst den Wert schon ausrechnen. Also in diesem Fall:

C++:
#include <cmath> //zusätzlich cmath includen, damit du die Funktion sqrt hast

//...

hs = sqrt((g/2)*(g/2)*h*h);
s = sqrt(hs * hs + (g/2)*(g/2));


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.09.2003, 14:41 Uhr
Pablo
Supertux
(Operator)


Ich glaube, er wollte Zuweisen und nicht vergleichen. Das gleiche hab ich auch gedacht, aber Zuweisen will er, weil er hs und s nicht initialisiert.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
20.09.2003, 14:51 Uhr
kronos
Quotenfisch
(Operator)


g/2 ist kein gültiger variablen-bezeichner...
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>

Dieser Post wurde am 20.09.2003 um 14:52 Uhr von kronos editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
20.09.2003, 19:35 Uhr
~wissender
Gast


Mal so ganz nebenbei, kauf dir ein Buch!
Um so besser, wenn es von C++ handelt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
20.09.2003, 19:41 Uhr
0xdeadbeef
Gott
(Operator)


Ich kann "C++ für Dummies" empfehlen. Es beschreibt die Sachen sehr leicht verständlich und geht auch darauf ein, warum man das so und nicht anders gemacht hat. Solange du nicht mit etwas Herstellerspezifischem wie "Visual C++ in 21 Tagen" anfängst, sollte das OK sein. Nichts gegen das Buch ansich, aber es erklärt mehr die MFC-Bibliothek und setzt Grundwissen über die Sprache voraus - für einen Anfänger also ungeeignet.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
20.09.2003, 19:46 Uhr
~(un)wissender
Gast


Ok, ich hätte wohl ein Buch vorschlagen sollen, wäre konstruktiver gewesen...
C++ ENT-PACKT von Herbert Schildt ist nicht schlecht, und natürlich das von Bjarne Stroustrup "The C++ Programming Language" (nicht für "Dummies").
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
20.09.2003, 21:37 Uhr
0xdeadbeef
Gott
(Operator)


c++ ent-packt kenne ich nicht, den Soustroup hab ich selbst hier rumliegen. Aber das ist mehr ein Kommentar des Autors zur Sprache als ein Lehrbuch, und von daher für Anfänger einfach zu kompliziert.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: