Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » Brauche Hilfe bei kleiner Aufgabe!!!

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
01.07.2003, 22:36 Uhr
~sascha
Gast


Hallo zusammen,

Ich wandere erst seit kurzer Zeit in der Welt von C bzw.C++, daher brauche ich eure Hilfe!!!!!!!!!!!!
Wer kann mir bei der unten stehenden Aufgabe helfen. Würde mich riesig über Lösungsvorschläge freuen!!

Schreiben Sie ein Programm, das zwei (Ganzzahl?)Werte, die vom Anwender eingegeben werden, addiert, subtrahiert und multipliziert und dividiert. Die Division soll sowohl als Gleitkommadivision als auch als Modulus-Division (Ganze Zahl mit Rest) ausgeführt werden. Die Ergebnisse der Berechnungen werden dann jeweils in einer eigenen Zeile auf dem Bildschirm ausgegeben.

Helft MIR
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
01.07.2003, 22:46 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Nana, sollen wir dir hier deine Hausaufgaben machen?

Ein bisschen mehr Eigeninitiative bitte.

Ich geb dir mal ein paar Hilfen aber zusammenbasteln musst du den Spass dann schon alleine. Wenn du dann nicht weiterkommst poste deinen Quellcode nochmal und dir wird bestimmt geholfen aber das ist kein "Mach mir mal die Hausaufgaben-Forum"

also einlesen kannst du z.B.: mit cin und ausgeben dann mit cout

C++:
int zahl;
cin >> zahl;
cout <<"Folgende zahl wurde eingegeben:" << zahl << endl;



Rechnungen sind so wie man das aus dem Matheunterricht kennt;

C++:
int zahl1, zahl2, erg;
double erg2;
zahl1=11;
zahl2=4;
erg=zahl1+zahl2;  //addition also erg = 15
erg=zahl1/zahl2;  //division ohne rest also erg =2;
erg=zahl1%zahl2; //rest der division also erg=3;
erg2=((double)zahl1)/zahl2; //erg2=2,75



das sollte reichen damit du deine Aufgabe erstmal angehen kannst
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 01.07.2003 um 22:48 Uhr von Heiko editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.07.2003, 16:43 Uhr
~sascha
Gast


Vielen dank Heiko!!!!!!

Du hast mir sehr geholfen, ich brauchte nur eine Weg, das Ziel werde ich schon finden, hoffe ich.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.07.2003, 18:42 Uhr
~sascha
Gast


Leicht Probleme habe ich doch noch!!
Das Prog. steht bis auf die geschichte mit der Modulus-Division.
Vielleicht hätte ich erwähnen sollen das ich mit C und nicht mit C++
Arbeite.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
02.07.2003, 18:55 Uhr
ao

(Operator)



Zitat:
~sascha postete
Leicht Probleme habe ich doch noch!!
Das Prog. steht bis auf die geschichte mit der Modulus-Division.
Vielleicht hätte ich erwähnen sollen das ich mit C und nicht mit C++
Arbeite.


Nein, du hättest besser erwähnen sollen, was denn das Problem ist. Das können wir nämlich nicht ahnen.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
02.07.2003, 19:01 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


poste mal dein proggie und schreib wo dein problem liegt
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
03.07.2003, 11:29 Uhr
~0xdeadbeef
Gast


<AOL>!!!!!!!!!!!!!1!!1!1!</AOL>

Nichts für ungut, aber siehe www.catb.org/~esr/jargon/html/A/AOL.html
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
03.07.2003, 16:06 Uhr
~sascha
Gast


Hier ist mein Prog.!!!
Nur das mit der Gleitkommadivision will noch nicht so richtig.
Aufgabe:s.o.


C++:
int main(void)
{
#include <stdio.h>

int Operand1=10, Operand2=20;
int ZahlDergelesenenParamter;


printf("\nBitte geben Sie den Operanden 1 ein: ");

ZahlDergelesenenParamter=scanf("%d", &Operand1);

printf("\n%d Parameter wurden richtig gelesen\n", ZahlDergelesenenParamter);

fflush(stdin);

printf("\nBitte geben Sie den Operanden 2 ein: ");

ZahlDergelesenenParamter=scanf("%d", &Operand2);

printf("\n%d Parameter wurden richtig gelesen", ZahlDergelesenenParamter);

fflush(stdin);

printf("\nEs folgen die Berechnungen:\n");

printf("\n%d + %d = %d", Operand1, Operand2, Operand1+Operand2);
printf("\n%d - %d = %d", Operand1, Operand2, Operand1-Operand2);
printf("\n%d * %d = %d", Operand1, Operand2, Operand1*Operand2);
printf("\n%d / %d = %d", Operand1, Operand2, Operand1/Operand2);


    return 0;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
03.07.2003, 16:23 Uhr
~0xdeadbeef
Gast


Aua...

Keine includes innerhalb einer Funktion. Das kann dich in Teufels Küche bringen. Machs so:

C++:
#include <stdio.h>

int main(){
    /*...*/
}


Und was die Division angeht, erstens gibt int durch int wieder int, zweitens musst du den Format-String für printf so anpassen, dass er einen floating point ausgibt. Einfachste Möglichkeit wäre also, zu casten:

C++:
printf("%d / %d = %lf\n", Operand1, Operand2, ((double) Operand1)/((double) Operand 2));


Übersichtlicher wäre aber, gleich doubles als Datentyp zu nehmen:

C++:
#include <stdio.h>

int main() {
    double op1 = 10, op2 = 20;

    printf("Bitte geben Sie den Operanden 1 ein: ");
    printf("Es wurden %d Parameter richtig eingelesen.\n", scanf("%lf", &op1));
    
    printf("Bitte geben Sie den Operanden 2 ein: ");
    printf("Es wurden %d Parameter richtig eingelesen.\n", scanf("%lf", &op2));

    printf("\nEs folgen die Berechnungenn");

    printf("\n%lf + %lf = %lf", op1, op2, op1 + op2);
    printf("\n%lf - %lf = %lf", op1, op2, op1 - op2);
    printf("\n%lf * %lf = %lf", op1, op2, op1 * op2);
    printf("\n%lf / %lf = %lf", op1, op2, op1 / op2);

    return 0;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
03.07.2003, 16:36 Uhr
ao

(Operator)


@sascha:
Das ist auch keine Gleitkomma-Division. Es wird ganzzahlig dividiert. Für eine Gleitkomma-Division muss mindestens einer der Operatoren float oder double sein (dann muss er aber anders eingelesen werden, mit %f bzw %lf statt %d), oder du machst direkt im Divisionsausdruck eine explizite Typumwandlung:


C++:
printf("\n%d / %d = %f", Operand1, Operand2, (float) Operand1/Operand2);


Beachte das %f im Formatstring! Du kannst auch Operand2 oder beide nach float umwandeln, das ist dasselbe. Nicht dasselbe ist

C++:
(float) (Operand1/Operand2)


dabei wird erst ganzzahlig dividiert und dann das Ergebnis nach float umgewandelt.

Nochn Hinweis: fflush() ist nur für Ausgabeströme definiert. fflush(stdin) ist undefinierter Schweinkram, der funktionieren kann oder auch nicht. Weglassen!

Und für "sichere" Tastatureingaben nimmt man besser fgets() und sscanf() als scanf():

C++:
#define BUFSIZE 80
char buffer[BUFSIZE+1];
fgets (buffer, BUFSIZE, stdin);


Danach den Pufferinhalt in aller Ruhe auseinandernehmen. Hat den Vorteil, daß garantiert nichts im Tastatur-Eingabepuffer liegenbleibt und daß sich auch ohne fflush() nix aufhängt.

ao

< editiert: in fgets gehört BUFSIZE statt sizeof buffer! >

Dieser Post wurde am 03.07.2003 um 16:39 Uhr von ao editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ Rätselecke ]  


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: