Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 08:30

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



string addieren,multiplizieren,....????

Discussion on string addieren,multiplizieren,....???? within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
MrSimonKeks's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 116
Received Thanks: 13
Question 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
MrSimonKeks is offline  
Old 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.
MoepMeep is offline  
Thanks
1 User
Old 11/02/2010, 19:26   #3
 
MrSimonKeks's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 116
Received Thanks: 13
Smile

Quote:
Originally Posted by MoepMeep View Post
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.
MrSimonKeks is offline  
Old 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 View Post
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
MoepMeep is offline  
Old 11/02/2010, 22:01   #5
 
MrSimonKeks's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 116
Received Thanks: 13
Quote:
Originally Posted by MoepMeep View Post
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
MrSimonKeks is offline  
Old 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
MoepMeep is offline  
Thanks
1 User
Old 11/03/2010, 19:36   #7
 
MrSimonKeks's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 116
Received Thanks: 13
Quote:
Originally Posted by MoepMeep View Post
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
MrSimonKeks is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.