Vererbung_Aufgabe_1

Revision:
3:4177be942543
Child:
5:0c5eeee1465b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Mesic_Beispiel_64.cpp	Tue Apr 21 19:27:26 2020 +0000
@@ -0,0 +1,121 @@
+/*  AUFGABE
+Ein übergebener String enthält neben anderen (bedeutungslosen) Zeichen öffnende und schließende Klammern, wobei die Klammern rund(), eckig [] oder geschweift {} sein können.
+
+In einem Programm/Skript ist zu überprüfen, ob Klammern korrekt gesetzt wurden. Dabei gilt:
+- jede sich öffnende Klammer wird von einer Klammer gleicher Art wieder geschlossen
+- jede sich schließende Klammer wurde von einer Klammer gleicher Art geöffnet
+- ein Klammernpaar darf nicht durch andere Klammernpaare überschnitten werden
+
+Beispiele:
+(([[]])) => true
+([)] => false
+([]]) => false
+(())) => false
+(() => false
+({[])} => false
+Gar keine Klammern => true
+
+*/
+
+
+#include <stdio.h>
+#include <iostream>
+#include <string>
+using namespace std;
+
+int main ()
+{
+ 
+    string text;
+ 
+ cout<<"Tippen Sie Ihre Klammern ein ";
+ cin>>text;
+ 
+ int runde=0;
+ int eckige=0;
+ int geschweifte=0;
+ 
+ int len;
+ 
+ len=text.length();
+
+for(int i=0;i<=len-1;i++)  //die Anzahl von verschiedene Klammern wird gezaehlt.
+{
+    
+    if(text[i]=='('||text[i]==')')
+    {
+        runde++;
+    }
+    if(text[i]=='['||text[i]==']')
+    {
+        eckige++;
+    }
+    if(text[i]=='{'||text[i]=='}')
+    {
+        geschweifte++;
+    }
+    
+    
+}
+
+int klammernAnzahl=runde+eckige+geschweifte; // hier wird die Summe aller Klammern berechnet 
+
+int textmitte=(klammernAnzahl/2)-1;     // der mittlere Klammernindex wird berechnet z.B. ((()))  also 
+                                                                                            ^
+                                // da kriegen wir die Nummer 2 d.H Index von diese Klammern 
+                            
+int richtigeZyklen=0;
+int falscheZyklen=0;
+int n=klammernAnzahl-1;  //da kriegen wir den letzten Index der letzte Klammer
+
+
+if(klammernAnzahl%2==0) // wenn die Klammeranzahl nicht gerade ist,es ist automatisch false und das Programm sprint nach unten
+{
+    
+    for (int m=0;m<=textmitte;m++) 
+    {
+    
+        if( (text[m]=='(' && text[n]==')' ) || (text[m]=='[' && text[n]==']' ) ||(text[m]=='{' && text[n]=='}' ) ) 
+        {
+            richtigeZyklen++;         // oben wird gepruft,ob alle verschiedene Klammern passend zugemacht sind.
+        }
+        else 
+            {
+                falscheZyklen++;  //sonst wird da ein false generiert
+             }
+            
+            n=n-1;  // von dem letzten Index kommen wir zu nachsten kleineren Index 
+        
+    }
+    
+
+    
+  if (falscheZyklen!=0 && richtigeZyklen!=0) // wenn ein False in for Schlife generiert wurde, da wird er ein False ausgegeben
+    {
+          cout<<text<<"=> false";  
+    }
+   
+    else if (falscheZyklen==0 && richtigeZyklen!=0)// wenn kein False in for Schleife vorkommt, dann ist alles richtig
+    {
+          cout<<text<<"=> true";  
+    }
+
+}
+
+else  
+{
+  cout<<text<<"=> false";  
+}
+
+
+ 
+ 
+ 
+
+ 
+  return 0;
+}
+
+
+
+