|
You last visited: Today at 08:30
Advertisement
string addieren,multiplizieren,....????
Discussion on string addieren,multiplizieren,....???? within the General Coding forum part of the Coders Den category.
11/02/2010, 17:38
|
#1
|
elite*gold: 0
Join Date: Nov 2009
Posts: 116
Received Thanks: 13
|
string addieren,multiplizieren,....????
string addieren,multiplizieren,....???? Hi, die Überschrift ist etwas verwirrend ich weiß, aber ich habe keine Ahnung wie ich das Formulieren soll, deßhalb konnte ich auch nicht via sufu suchen oder Google...
Also ich sitze gerade daran einen Binomischen Formelrechner zu programmieren, da meine Klasse und ich, das Thema gerade in Mathe haben (für mich trivial) und ich meinen Mitschülern bei den Hausaufgaben etwas unter die Arme greifen möchte.
So, das ist mein Code:
Code:
#include <iostream>
#include<string>
#include<vector>
#include<cmath>
#include<algorithm>
using namespace std;
inline void keep_window_open() {char ch; cin>>ch;}
//-------------------------------------------------------
double x;
double y;
double square(double x)
{
return x*x;
}
int main()
{
const char beenden='j';
char eingabe='n';
while(eingabe!=beenden)
{
cout<<"Binomischer-Rechner by Simon\n";
cout<<"Wählen sie zwischen den 3 Binomischen-Formel:\n";
cout<<"Um die Erste zu wählen drücken sie die 1(gefolgt von enter)\n";
cout<<"Um die Zweite zu wählen drücken sie die 2(gefolgt von enter)\n";
cout<<"Um die Dritte zu wählen drücken sie die 3(gefolgt von enter)\n";
cout<<"Welche möchten sie?:\n";
char m;
cin>>m;
if(m=='1')
{
cout<<"Hier wird jetzt gerechnet (x+y)quadrat\noder auch x quadrat+2xy+y quadrat\n";
cout<<"Geben sie ihre erste Zahl ein(x):";
cin>>x;
cout<<"Geben sie ihre zweite Zahl ein(y):";
cin>>y;
cout<<"Ergebnis:"<<(square(x))+(2*x*y)+(square(y))<<'\n';
}
if(m=='2')
{
cout<<"Hier wird jetzt gerechnet (x-y)quadrat \noder auch x quadrat-2xy+y quadrat\n";
cout<<"Geben sie ihre erste Zahl ein(x):";
cin>>x;
cout<<"Geben sie jetzt ihre zweite Zahl ein(y):";
cin>>y;
cout<<"Ergebnis:"<<(x*x)-(2*x*y)+(y*y)<<'\n';
}
if(m=='3')
{
cout<<"Hier wird jetzt gerechnet (x-y)*(x+y) \noder auch x quadrat-y quadrat\n";
cout<<"Geben sie ihre erste Zahl ein(x):";
cin>>x;
cout<<"Geben sie ihre zweite Zahl ein(y):";
cin>>y;
cout<<"Ergebnis:"<<(square(x))-(square(y))<<'\n';
}
else
{
cout<<"Falsche Eingabe!!!";
}
cout<<"Beenden?(ja=j,nein=n):";
cin>>eingabe;
}
return 0;
}
Das Programm funktioniert an sich ja,... aber ich kann nur Zahlen rechnen sprich z.B. (5+3)² und keine Buchstaben z.B. (3x+7)².
Nun gehört zu einem richtigen Bionomischen Formelrechner aber natürlich z.B. die Aufgabe (12x+4np)².Und deßhalb wollte ich fragen ob man irgendwie z.B. die genannte Aufgabe (12x+4np)² auch rechnen kann, so dass bei diesem Beispiel jetzt als Ergebnis 144x+96npx+16np herauskommt???
Mfg Simon
|
|
|
11/02/2010, 19:02
|
#2
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
|
Kann man bestimmt, aber wozu? Ob nun 12 oder 12x, das Ergebnis ist das 'gleiche'
Falls du das wirklich machen willst. Die Zahlen als String bzw Char-Array abspeichern, durchgehen und die Zahlen raussuchen, in integer/float konvertieren. Dann ganz normal Rechnen und am Ende die beiden Buchstaben mit ausgeben.
|
|
|
11/02/2010, 19:26
|
#3
|
elite*gold: 0
Join Date: Nov 2009
Posts: 116
Received Thanks: 13
|
Quote:
Originally Posted by MoepMeep
Kann man bestimmt, aber wozu? Ob nun 12 oder 12x, das Ergebnis ist das 'gleiche'
Falls du das wirklich machen willst. Die Zahlen als String bzw Char-Array abspeichern, durchgehen und die Zahlen raussuchen, in integer/float konvertieren. Dann ganz normal Rechnen und am Ende die beiden Buchstaben mit ausgeben.
|
Wozu? x ist in diesem Fall eine undefinierte Variable und der Unterschied zwischen 12x (auch 12*x) und 12 besteht darin, dass wenn x z.B. 3 ist das Ergebnis verändert wird.
Mfg Simon
Werde es nachher gleich mal ausprobieren bekommst schon einmal ein thx für die mühe hier etwas hinzuschreiben.
|
|
|
11/02/2010, 19:47
|
#4
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
|
Quote:
Originally Posted by BliszZ
Wozu? x ist in diesem Fall eine undefinierte Variable und der Unterschied zwischen 12x (auch 12*x) und 12 besteht darin, dass wenn x z.B. 3 ist das Ergebnis verändert wird.
|
Das ist mir Vollkommen bewußt. Für das auflösen der Binomischen Formel spielt das aber trotzdem keine wichtige Rolle
|
|
|
11/02/2010, 22:01
|
#5
|
elite*gold: 0
Join Date: Nov 2009
Posts: 116
Received Thanks: 13
|
Quote:
Originally Posted by MoepMeep
Das ist mir Vollkommen bewußt. Für das auflösen der Binomischen Formel spielt das aber trotzdem keine wichtige Rolle 
|
Ja, ich hab wohl ein bisschen vorschnell geantwortet und vergessen zu schreiben, dass ich später noch ein Gadget einbauen kann, wo man den Variablen nachträglich noch Werte hinzufügen kann. (Soweit bin ich aber lange noch nicht ;D)
Edit: Ich weiß jetzt nicht genau ob ich das richtig verstanden habe...Du willst die Zahlen als strings einlesen lassen, dann die Zahlen aus dem string herausfiltern und dieses dann ausrechnen um dann am Ende die Buchstaben wieder hinten hinanzuhängen...Falls meine Interpretation deines Textes richtig ist, ist dies nicht das was ich bezwecken möchte...
Nehmen wir z.B. jetzt die Aufgabe (2x+2n)² und rechnen wir mit der Binomischen Formel so würde herauskommen: (2x+2n)²=4x²+8xn+4n² diese Zahlen kann man jedoch nicht zusammenfassen wenn ich es richtig verstanden haben würdest du jetzt wie folgt rechnen: (2x+2n)² [als string einlesen]
= (2+2)² [die Zahlen herausfiltern und ausrechnen] =4+6+4=14=14nx [die Buchstaben am Ende wieder hinzufügen]... Leider wäre das dann eine föllig verfälschte Lösung, da 4x²+8xn+4n² etwas völlig anderes ist als 14nx.
Und wenn ich das tun würde, dann wäre es nicht mehr ein Binomischer Rechner ^^
Mfg Simon
p.s. vllt. hast du jetzt verstanden was ich meine únd kannst mir eine bessere Auskunft geben
|
|
|
11/03/2010, 19:02
|
#6
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
|
Reiner Pseudo-Code.
Code:
char a[] = "2x";
char b[] = "3y";
int zahl1 = 0;
int multiplikator = 1;
for(int i = sizeof(a);i>=0;i++)
{
if(a[i] <= 9 || a[i] >= 0)
{
zahl1+=((int)a[i])*multiplikator);
}
multiplikator*=10;
}
Grober aufbau, das wird so nicht gehen  Und du musst überprüfen, ob das 1.Element des Arrays ein Minus ist.
Gibt vielleicht auch irgendeine String-Operation, die das übernimmt.
Du kannst natürlich auch die ganze Aufgabe einlesen, ist nur mehr arbeit
edit: Was mir grad so einfällt.
Code:
string a;
int zahl1;
cin >> zahl1 >> a;
Eingabe: zahl variable
Erspart dir die ganze Problematik
|
|
|
11/03/2010, 19:36
|
#7
|
elite*gold: 0
Join Date: Nov 2009
Posts: 116
Received Thanks: 13
|
Quote:
Originally Posted by MoepMeep
Reiner Pseudo-Code.
Code:
char a[] = "2x";
char b[] = "3y";
int zahl1 = 0;
int multiplikator = 1;
for(int i = sizeof(a);i>=0;i++)
{
if(a[i] <= 9 || a[i] >= 0)
{
zahl1+=((int)a[i])*multiplikator);
}
multiplikator*=10;
}
Grober aufbau, das wird so nicht gehen  Und du musst überprüfen, ob das 1.Element des Arrays ein Minus ist.
Gibt vielleicht auch irgendeine String-Operation, die das übernimmt.
Du kannst natürlich auch die ganze Aufgabe einlesen, ist nur mehr arbeit
edit: Was mir grad so einfällt.
Code:
string a;
int zahl1;
cin >> zahl1 >> a;
Eingabe: zahl variable
Erspart dir die ganze Problematik 
|
Gnaz schön starker Tobak für einen Anfänger  Werde es versuchen nach und nach zu verstehen aber jetzt lese ich ersteinmal in meinem Buch Einführung in die Programmierung mit C++ weiter vllt. erübrigt sich das dann auch irgendwann...
Mfg Simon
|
|
|
 |
Similar Threads
|
++ Addieren
10/30/2010 - General Coding - 13 Replies
Hallo
wie kann ich in einer while mehr als 1 addieren ?
Also wenn z.B.:
int a ;
in der while dann
while(bla)
a++
|
String.au3
09/11/2010 - AutoIt - 2 Replies
Hey,
hat jemand die Datei für mich?
Ich finde im Internet nichts (ich hoffe ich habe nichts übersehn)
Mfg
|
C# String zum Key
05/05/2010 - .NET Languages - 7 Replies
Hallo liebe User,
Ich habe seit langer Zeit ein Problem das mich ne Weile beschäftigt.
Es geht um Hotkeys und Strings..
Was ich machen will:
Ich habe jetzt diesen Code:
|
Variabeln addieren
08/08/2009 - AutoIt - 13 Replies
hai leuts
hab hier ein kleines prog in arbeit. ist zwar kein bot aber es soll eine überraschung für mein grossvater werden.
er liebt es ein schweizer kartenspiel names "jasse" zu spielen
und dieses programm soll für ihn rechnen und schreiben.
nun zu meinem problem:
ich mächte auf der linken seite bei punkte eine zahl ein geben können welche es danach zur gesammtpunktzahl addiert, komishcer weise stimmen die zahlen jedoch nicht
wenn ich 10 eingebe und auf den button schreiben drücke...
|
Nach einer Schleife zu bestimmter Varibale 1 addieren wie?
08/08/2009 - AutoIt - 7 Replies
tach
ich würd mal gern wissen wie man bei autoit wenn er einmal eine While gemacht hat das er damm zu einer bestimmten Variabel 1 addiert
MFG 113puma
|
All times are GMT +1. The time now is 08:31.
|
|