Eine Zahl quadrieren ohne arithmetischen Operator
-
Hallo zusammen,
ich habe eine alte Klausur Aufgabe und weis nicht wie ich sie Lösen soll.
Die Ausgabe des Programmes soll das Quadrat einer Summe Ausgeben. Diese Zahl soll das Programm berechnen, ohne dabei einen arithmetischen Operator zu benutzen!Leider weis ich nicht wie ich ein Quadrat berechnen soll ohne einen arithmetischen Operator zu benutzen!
Bitte um HilfeGruß,
Grinhilde
-
q=pow(x,2);
-
volkard schrieb:
q=pow(x,2);
wäre q jetzt der Name für meine quadrierten zahl
pow der Befehl
x meine summe
und die 2 weil quadrat?
-
ja. und die pow-funktion findest du in math.h.
-
Also irgendwie komme ich mit dem Befehl auch nicht weiter...
folgendes ist gegeben:int calc( unsigned int e1, unsigned int e2, char op)
{
switch (op)
{
case '-': return (e1-e2);
case '': return (e1e2);
case '/': return (e1/e2);
Default:
case '+': return (e1+e2);
}
}Schreiben Sie ein C-Programm, das diese Funktion benutzt. Das Programm soll zwei
ganze Zahlen von der Tastatur einlesen (Eingabezahlen). Die einzige Ausgabe des
Programmes soll das Quadrat der Summe der Eingabezahlen sein. Diese Zahl soll das Programm berechnen, ohne dabei einen arithmetischen Operator zu benutzen!Mir persönlich macht sowas keinen Spaß....
Könnte mir vielleicht nochmal jemand helfen... DANKE!
-
Wo GENAU ist das Problem? Diese Funktion, die Du benutzen sollst, kannst Du sowohl zum Addieren als auch zum Quadrieren benutzen ...
-
diese Funktion soll nur addieren das quadrieren soll von einer anderen Funktion gemacht werden.
die Aufgabe habe ich original so ab getippt.
-
Was bedeutet denn 'quadrieren'?
-
grinhilde2 schrieb:
diese Funktion soll nur addieren das quadrieren soll von einer anderen Funktion gemacht werden.
Das glaube ich nicht.
grinhilde2 schrieb:
die Aufgabe habe ich original so ab getippt.
Wenn das die ganze Aufgabe ist, dann kannste die eine Funktion doch nehmen, halt mehrmals aufrufen mit verschiedenen Parametern.
-
DirkB schrieb:
Was bedeutet denn 'quadrieren'?
das ist wenn man eine zahl hoch 2 nimmt.
-
grinhilde schrieb:
Also irgendwie komme ich mit dem Befehl auch nicht weiter...
folgendes ist gegeben:int calc( unsigned int e1, unsigned int e2, char op)
{
switch (op)
{
case '-': return (e1-e2);
case '': return (e1e2);
case '/': return (e1/e2);
Default:
case '+': return (e1+e2);
}
}Schreiben Sie ein C-Programm, das diese Funktion benutzt. Das Programm soll zwei
ganze Zahlen von der Tastatur einlesen (Eingabezahlen). Die einzige Ausgabe des
Programmes soll das Quadrat der Summe der Eingabezahlen sein. Diese Zahl soll das Programm berechnen, ohne dabei einen arithmetischen Operator zu benutzen!Mir persönlich macht sowas keinen Spaß....
Könnte mir vielleicht nochmal jemand helfen... DANKE!Also ich habe die Aufgabe so verstanden, dass das summieren mit der funktion passieren soll. Allerdings das quadrieren mit einer anderen Funkition welche dabei keinen arithmetischen Operator nutzt.
Wie würdet Ihr diese Aufgabe lösen?
Grüße,
Grinhilde
-
grinhilde schrieb:
das ist wenn man eine zahl hoch 2 nimmt.
Und wie rechnet man "hoch 2"?
-
int result = calc (calc(e1, e2 ,+), calc(e1, e2, +), *);
-
????
dafür bin ich jetzt zu blöd...
-
grinhilde schrieb:
????
dafür bin ich jetzt zu blöd...Hats Du denn einen Compiler? Weisst Du, wie Du Funktionen aufrufst?
Ausser der Aufgabenstellung hast Du noch nix gezeigt - insbesondere nix, was Du programmiert hast.
Nimm die
calc()
Funktion und spiel ein bisschen damit rum.
Z.B.
4+2
42
42 - 1 // Punkt vor Strich!Und zuguterletzt:
(4+2) * (4+2),
bzw. allgemeiner (a+b) * (a+b)
-
#include <stdio.h>
int main (void) {
char e1;
char e2;e1 = getchar();
e2 = getchar();putchar (e1);
putchar (e2);int calc( unsigned int e1, unsigned int e2, char op)
{
switch (op)
{
case '-': return (e1-e2);
case '': return (e1e2);
case '/': return (e1/e2);
Default:
case '+': return (e1+e2);
}
}printf("%i", calc);
return 0;
}ich hab versucht ein Programm zu bauen, mit der Funktion die ich nutzen soll.
Also ich wollte dass, das Programm die zwei zahlen aus der eingabe nimmt, mir diese ausgibt, was er auch macht.
Diese beiden zahlen soll er jetzt mit in die vorgegebene Funktion nehmen, und mit Hilfe dieser Funktion summieren.
Und zum schluss soll er einfach nochmal diese summe ausgeben.
aber dat klappt nicht
-
Furble Wurble schrieb:
grinhilde schrieb:
????
dafür bin ich jetzt zu blöd...Hats Du denn einen Compiler? Weisst Du, wie Du Funktionen aufrufst?
Ausser der Aufgabenstellung hast Du noch nix gezeigt - insbesondere nix, was Du programmiert hast.
Nimm die
calc()
Funktion und spiel ein bisschen damit rum.
Z.B.
4+2
42
42 - 1 // Punkt vor Strich!Und zuguterletzt:
(4+2) * (4+2),
bzw. allgemeiner (a+b) * (a+b)hier nimmst du aber wieder die operatoren welche nicht genutzt werden sollen.
ich nutze einen compiler von der schule....aber der sagt immer noch error error error....
-
grinhilde schrieb:
Furble Wurble schrieb:
grinhilde schrieb:
????
dafür bin ich jetzt zu blöd...Hats Du denn einen Compiler? Weisst Du, wie Du Funktionen aufrufst?
Ausser der Aufgabenstellung hast Du noch nix gezeigt - insbesondere nix, was Du programmiert hast.
Nimm die
calc()
Funktion und spiel ein bisschen damit rum.
Z.B.
4+2
42
42 - 1 // Punkt vor Strich!Und zuguterletzt:
(4+2) * (4+2),
bzw. allgemeiner (a+b) * (a+b)hier nimmst du aber wieder die operatoren welche nicht genutzt werden sollen.
ich nutze einen compiler von der schule....aber der sagt immer noch error error error....Das sollen ja nur Beispielaufgaben sein. Wie würde denn 4+2 aussehen, wenn Du die Funktion
calc()
benutzt?Du kannst auch gerne Deine Versuche hier einstellen - nimm aber bitte Code Tags für C. (unter dem
-Smiley unter Nachrichtentext Fenster...)
-
[code="c"]
#include <stdio.h>int main (void) {
int e1;
int e2;
scanf("%i", & e1);
scanf("%i",& e2);printf("%i,%i", e1, e2);
int calc( unsigned int e1, unsigned int e2, char op)
{
switch (op)
{
case '-': return (e1-e2);
case '': return (e1e2);
case '/': return (e1/e2);
Default:
case '+': return (e1+e2);
}
}printf("%i", calc);
return 0;
}oder so. allerings klappt die ausgabe nicht. der compiler sagt
format '%i' expects argument of type 'int', but argument
2 has type 'int (*)(unsigned int, unsigned int, char)' [-Wformat]
d int, char)' [-Wformat]mir aus auch erlich gesagt nicht ganz klar wie die vorgabe eingebunden wird. calc ist doch ein int oder? und wenn calc ein int ist kann ich doch %i sagen, oder?
-
calc ist eine Funktion, die ein
int
zurück gibt.Wie man die aufruft, hat AndreasBo vor 1,5 Stunden geschrieben.
In C gibt es auch keine funktionslokalen Funktionen (wie z.B. in Pascal)
D.h. die Definition von calc muss raus aus dermain
.Wie hast du denn die Funktion calc bekommen? Abgeschrieben, runter geladen oder Copy&paste?
Du musst das Code-Tag auch wieder schließen. Am einfachsten Code mit der Maus markieren und dann auf den C-Button klicken.