cout-object in borland c++ Builder 1
-
hi, wer kann helfen
1.cout<<"Text"endl; cuot-object bringt kein Text auf das Formular nach start
2. using namespace std;//Hier Error namespace name expected!!!!
Ich wollte das Programm in Bohrland c++ Builder laufen lassen um die Lösung der Augabe siehe unten zu sehen oder ist es in c.c++ habe ich keine Ahnung nur soviel das viele Befehle ihre Entsprechung in delphi haben und die ersten Lektionen von Herrn Volkerd c++.
Aber ob mann immer den gleichen Algorithmus verwenden kann in Delphi/ C++?
wer kann und würde einer Kovertation nach Delphi vornehmen.
In Delphi kenne ich mich etwas besser aus und würde mich freuen in Delphi zu .
von der Permutation im c++ Programm sehe ich nicht viel oder hat c++ Routinen dafür.
Rätselfreunde können ja auch v. Hand die Aufgabe lösen.
Ich kann den zeitlichen Aufwand eines Programmierers von c++ nach delphi b.z.w die Aufgabe s,u. gleich Delphi nicht so einschätzen.//---------------------------------------------------------------------------
#include <vcl\vcl.h> #pragma hdrstop #include <iostream> #include "Unit1.h" //--------------------------------------------------------------------------- #pragma resource "*.dfm" using namespace std;//Hier Error namespace name expected!!!! class Element { public: const char* mName; public: Element (const char* pName) { mName = pName; } void Ausgeben () const { cout << mName; } }; // Die Fahrer haben die Vornamen Anna, Berta, Christa, Dirk und Emil Element anna ("Anna"); Element berta ("Berta"); Element christa ("Christa"); Element dirk ("Dirk"); Element emil ("Emil"); // Die Nachnamen sind Hungerast, Platten, Krampf, Sturz und Achter Element hungerast ("Hungerast"); Element platten ("Platten"); Element krampf ("Krampf"); Element sturz ("Sturz"); Element achter ("Achter"); // Die Farben der Trikots waren gelb, rot, blau, weiß und schwarz Element gelb ("gelb"); Element rot ("rot"); Element blau ("blau"); Element weiss ("weiß"); Element schwarz ("schwarz"); // Implizites Wissen um das Geschlecht Element herr ("Herr"); Element frau ("Frau"); class Platz { public: const Element* mVorname; const Element* mNachname; const Element* mAnrede; const Element* mTrikot; public: void Ausgeben () { if (mAnrede != 0) { mAnrede->Ausgeben (); cout << " ";} if (mVorname != 0) { mVorname->Ausgeben (); cout << " ";} if (mNachname != 0) { mNachname->Ausgeben (); cout << " ";} if (mTrikot != 0) { mTrikot->Ausgeben (); cout << " ";} } public: Platz () { mVorname = 0; mNachname = 0; mAnrede = 0; mTrikot = 0; } }; bool GenauDannWenn (bool pWenn, bool pDann) { if (pWenn) { return pDann; } else { return ! pDann; } } class Menge { private: const Element* mMenge [5]; long mZustand; public: void NeuStarten () { mZustand = 0; } bool PermutationZuweisen (const Element** p1, const Element** p2, const Element** p3, const Element** p4, const Element** p5) { const Element* t; if (mZustand == 0) { *p1 = mMenge [0]; *p2 = mMenge [1]; *p3 = mMenge [2]; *p4 = mMenge [3]; *p5 = mMenge [4]; } else if ((mZustand % 24) == 0) {// 4! t = *p5; *p5 = *p1; *p1 = t; t = *p4; *p4 = *p2; *p2 = t; } else if ((mZustand % 6) == 0) { // 3! t = *p5; *p5 = *p2; *p2 = t; t = *p4; *p4 = *p3; *p3 = t; } else if ((mZustand % 2) == 0) { // 2! t = *p5; *p5 = *p3; *p3 = t; } else { t = *p5; *p5 = *p4; *p4 = t; } mZustand ++; return mZustand <= 120; // 5! } public: Menge (Element* p1, Element* p2, Element* p3, Element* p4, Element* p5) { mMenge [0] = p1; mMenge [1] = p2; mMenge [2] = p3; mMenge [3] = p4; mMenge [4] = p5; mZustand = 0; } }; class Fall { protected: Platz mPlatz [5 + 1]; // Index 0 ignorieren Menge mVorname; Menge mNachname; Menge mTrikot; public: void Loesen () { long schritte = 0; long loesung = 1; mVorname.NeuStarten (); while (mVorname.PermutationZuweisen ( &mPlatz [1].mVorname, &mPlatz [2].mVorname, &mPlatz [3].mVorname, &mPlatz [4].mVorname, &mPlatz [5].mVorname)) { // Regel 1 AnredeZuweisen (); schritte ++; if (! DieHerrenSindDritterUndFuenfter ()) continue; // Regel 11 if (! ChristaKamNachEmilInsZiel ()) continue; // Regel 10 mNachname.NeuStarten (); while (mNachname.PermutationZuweisen ( &mPlatz [1].mNachname, &mPlatz [2].mNachname, &mPlatz [3].mNachname, &mPlatz [4].mNachname, &mPlatz [5].mNachname)) { // Regel 2 schritte ++; if (! DieNachnamenDerHerrenHaben6Buchstaben ()) continue; // Regel 5 if (! SturzLiefDirektVorHungerastEin ()) continue; // Regel 6 mTrikot.NeuStarten (); while (mTrikot.PermutationZuweisen ( &mPlatz [1].mTrikot, &mPlatz [2].mTrikot, &mPlatz [3].mTrikot, &mPlatz [4].mTrikot, &mPlatz [5].mTrikot)) { // Regel 3 schritte ++; if (! DirkTrugEinBlauesTrikot ()) continue; // Regel 4 if (! RotDirektNachGelb ()) continue; // Regel 7 if (! SchwarzDirektNachBerta ()) continue; // Regel 8 if (! AchterTrugEinBlauesTrikot ()) continue; // Regel 9 cout << "Lösung " << loesung ++ << " nach Schritt " << schritte << endl; Berichten (); } } } cout << "Insgesamt " << schritte << " Schritte " << endl; } void BrutalLoesen () { long schritte = 0; long loesung = 1; mVorname.NeuStarten (); while (mVorname.PermutationZuweisen ( &mPlatz [1].mVorname, &mPlatz [2].mVorname, &mPlatz [3].mVorname, &mPlatz [4].mVorname, &mPlatz [5].mVorname)) { // Regel 1 AnredeZuweisen (); // implizites Wissen mNachname.NeuStarten (); while (mNachname.PermutationZuweisen ( &mPlatz [1].mNachname, &mPlatz [2].mNachname, &mPlatz [3].mNachname, &mPlatz [4].mNachname, &mPlatz [5].mNachname)) { // Regel 2 mTrikot.NeuStarten (); while (mTrikot.PermutationZuweisen ( &mPlatz [1].mTrikot, &mPlatz [2].mTrikot, &mPlatz [3].mTrikot, &mPlatz [4].mTrikot, &mPlatz [5].mTrikot)) { // Regel 3 schritte ++; if (! DirkTrugEinBlauesTrikot ()) continue; // Regel 4 if (! DieNachnamenDerHerrenHaben6Buchstaben ()) continue; // Regel 5 if (! SturzLiefDirektVorHungerastEin ()) continue; // Regel 6 if (! RotDirektNachGelb ()) continue; // Regel 7 if (! SchwarzDirektNachBerta ()) continue; // Regel 8 if (! AchterTrugEinBlauesTrikot ()) continue; // Regel 9 if (! ChristaKamNachEmilInsZiel ()) continue; // Regel 10 if (! DieHerrenSindDritterUndFuenfter ()) continue; // Regel 11 cout << "Lösung " << loesung ++ << " nach Schritt " << schritte << endl; Berichten (); } } } cout << "Insgesamt " << schritte << " Schritte " << endl; } bool AchterTrugEinBlauesTrikot () { for (long i = 1; i <= 5; i ++) { if (! GenauDannWenn (mPlatz [i].mNachname == &achter, mPlatz [i].mTrikot == &blau)) return false; } return true; } bool SchwarzDirektNachBerta () { for (long i = 1; i <= 4; i ++) { if (! GenauDannWenn (mPlatz [i].mVorname == &berta, mPlatz [i + 1].mTrikot == &schwarz)) return false; } return true; } bool RotDirektNachGelb () { for (long i = 1; i <= 4; i ++) { if (! GenauDannWenn (mPlatz [i].mTrikot == &gelb, mPlatz [i + 1].mTrikot == &rot)) return false; } return true; } bool DirkTrugEinBlauesTrikot () { for (long i = 1; i <= 5; i ++) { if (! GenauDannWenn (mPlatz [i].mVorname == &dirk, mPlatz [i].mTrikot == &blau)) return false; } return true; } bool SturzLiefDirektVorHungerastEin () { for (long i = 1; i <= 4; i ++) { if (! GenauDannWenn (mPlatz [i].mNachname == &sturz, mPlatz [i + 1].mNachname == &hungerast)) return false; } return true; } bool DieNachnamenDerHerrenHaben6Buchstaben () { for (long i = 1; i <= 5; i ++) { if (! GenauDannWenn (mPlatz [i].mAnrede == &herr, strlen (mPlatz [i].mNachname->mName) == 6)) return false; } return true; } bool DieHerrenSindDritterUndFuenfter () { if (mPlatz [3].mAnrede != &herr) return false; if (mPlatz [5].mAnrede != &herr) return false; return true; } bool ChristaKamNachEmilInsZiel () // Danach, aber nicht direkt danach gefordert { for (long i = 1; i <= 5; i ++) { if (mPlatz [i].mVorname == &emil) return true; if (mPlatz [i].mVorname == &christa) return false; } return false; // kommt nicht hierher } private: void AnredeZuweisen () // implizites Wissen Vorname / Geschlecht { for (long i = 1; i <= 5; i ++) { Platz* platz = mPlatz + i; if (platz->mVorname == &anna) platz->mAnrede = &frau; if (platz->mVorname == &berta) platz->mAnrede = &frau; if (platz->mVorname == &christa) platz->mAnrede = &frau; if (platz->mVorname == &dirk) platz->mAnrede = &herr; if (platz->mVorname == &emil) platz->mAnrede = &herr; } } void Berichten () { for (long i = 1; i <= 5; i ++) { cout << i << ".ter Platz = "; mPlatz [i].Ausgeben (); cout << endl; } cout << endl; } public: Fall () : mVorname (&anna, &berta, &christa, &dirk, &emil), mNachname (&hungerast, &platten, &krampf, &sturz, &achter), mTrikot (&gelb, &rot, &blau, &weiss, &schwarz) { } }; TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- // Stefan Bachert für aboutIT (Stefan.Bachert@aboutit.de) // Copyright 2001 Stefan Bachert GmbH int main (int argc, char* argv[]) { Fall fall; fall.Loesen (); fall.BrutalLoesen (); return 0; }
/---------------------------------------------------------------------------
Hier die Aufgabe da zu
Tour de TranceViel ist es nicht, was Reporter Ralf Radlos vom Ziel
der Tour de Trance im Gedächtnis hängen blieb:Die Fahrer haben die Vornamen Anna, Berta,
Christa, Dirk und Emil
Die Nachnamen sind Hungerast, Platten,
Krampf, Sturz und Achter
Die Farben ihrer Trikots waren gelb, rot,
blau, weiß und schwarz
Dirk trug ein blaues Trikots
Die Nachnamen der Herren haben
sechs Buchstaben
Sturz lief vor Hungerast ein
Der Träger des roten Trikots rollte direkt
nach dem des gelben ins Ziel
Der Träger des schwarzen Trikots kam direkt
nach Berta ins Ziel
Achter trug ein blaues Trikot
Christa kam nach Emil ins Ziel
Die Herren sind Dritter und Fünfter
Wie heißen die Fahrer, welche Trikots trugen sie und
in welcher Reihenfolge rollten sie über die Ziellinie?
In jeden Fall würde ich mich sehr freuen auf die Antwort.
MfG
biochipc
-
Wie viele Fragen sind das eigentlich? Schon mal den Spruch "Eine Frage pro Thread, ein Thread pro Frage" gehört?
cout<<"Text"endl; cuot-object bringt kein Text auf das Formular nach start
Stimmt. cout und Formular passt nicht zusammen. Entweder Konsolenprogramm oder Formulare.
-
HI; hez
Danke erst einal .
Aber in Delphi kann ich KonsolenProgramme(Turbopascall-programme ) laufen lassenoptionen: kann ich auf Textbilschirm umstellen
und wo mache ich das bei Bohrland c++ builder 1 oder geht das nicht so einfach wie in delphi oder ist das o.g. Programm in c geschrieben und heist Konsole oder kann ich zubeör runterladen.
Habe bei volkerd ein Programmierlektion angefangen dann istvoid main() { };//auch Konsole bringt aber keine Fehlereldung in c++ builder 1?
Wie auch immer wenn einer es will kann er mal nur das o.g. Programm auf seinen Rechner laufen lassen und mir sagen es läst sich ohne fehler starten.
MfG
biochipc.
-
Auch im BCB kannst du Konsolenanwendungen erstellen. Unter Datei -> Neu sollte sich dazu ein KonsolenWizard o.ä. finden.
Und noch ein Tip: benutze die Vorschaufunktion des Forums und lies dir deine Beiträge nochmal in Ruhe durch, bevor du sie endgültig abschickst. Momentan sind sie nämlich über weite Strecken unverständlich.
-
Hi, Jansen
Erst einmal vielen Dank für den Hinweis in Datei Neu ist das Konsolenprogramm
Im C++ builder 1 Buch mit CD leider kein Hinweis von Konsole auchnicht in der hilfe.Jetzt kann ich o.g Programm starten
aber ohne using namespace std; functioniert es
using namespace std; // error namespace exepectedWeis nicht warum?
MfG
biochipc
-
aber ohne using namespace std; functioniert es
using namespace std; // error namespace exepecteddann lass std doch einfach weg
-
Die Version 1 ist ja schon reichlich in die Jahre gekommen. Vielleicht ist sie einfach noch nicht nach dem ANSI C++ Standard von 1998 ausgelegt?
-
jo, das kann natürlich sein.
-
hi,
Kann einer helfen d. o. genannte Konsollen-Programm nach Bohrland c++ Version 1 zu übersetzen.Das wären wohl nur cin/cout-befele oder? damit sie auf der Form ausgegeben werden können.Gruß biochipc
-
1. Bertha Sturz mit weißem Trikot
2. Anna Hungerast mit schwarzem Trikot
3. Emil Krampf mit gelbem Trikot
4. Christa Platten mit rotem Trikot
5. Dirk Achter mit blauem TrikotRichtig?
-
Hi,Jannika
Erstmal mal vielen Dank das Du dir dafür ZeitZeit genommen hast für deine richtige Lösung (Mit PC o. Hand o. beides).
Vieleicht kannst Du deine Lösungszeit angeben. ich habe 14 Minten gebraucht und später auch durchs C-Programm (mit borl.c++ version 1 )aber ich kann die Echtzeit nicht stopen ich mach nur etwas Delphi.Ich habe den mit Qellcode mit <code> am Anfang und Ende eingeschlossen und es bleibt in voller Länge .Was mach ich Falch?
Und ist der code reines C wenn er im Textfensterfenster laüft?Vieleicht kann einer in wenigstens in Borl. C++ Lauffähig machen.
Gruß
biochipc
-
Hi!
Ich würde dir einen neuen Compiler empfehlen, der sich auch nach dem neuen Standard richtet. Wie alt ist Borland C++ Builder 1 eigentlich? Also ich würde dir den gcc empfehlen. Wenn du eine IDE willst, dann nimm DevC++, der benutzt als Compiler den gcc.
DevC++: http://www.bloodshed.net/devcpp.html
GCC: http://www.gnu.org/software/gcc/gcc.html
Als alternative wäre da der Compiler der beim VS7.1 dabei ist. Der ist wirklich sehr gut. Diesen kann man bei MS sogar kostenlos downloaden:
http://msdn.microsoft.com/visualc/vctoolkit2003/Code-Hacker
-
Hi,
das Programm ist so im BCB 6 lauffähig. Du musst nur ein KONSOLEN-Projekt erstellen (im BCB 6: unter Datei -> Neu -> Weitere...). Auch mit dem BCB 1 müssen Konsolenprojekte möglich sein.
Nur den Code-Block mit dem TForm musst Du herausnehmen und sinnvollerweise vor dem return 0 in der main noch ein getchar; einfügen und dafür natürlich noch stdio.h includieren. Bei läuft das Programm dann einwandfrei...
-
Hab die Aufgabe nur von Hand gelöst! Mit BCB6 klappts aber wirklich einwandfrei!
10-15Minuten!
-
Jannika schrieb:
Hab die Aufgabe nur von Hand gelöst! Mit BCB6 klappts aber wirklich einwandfrei!
10-15Minuten!
Danke!
Es laüft bei mir als consolen in BCB1 aber den Qellcode (cin/cout)so ändern das er auf der TFORM in BCB1 laüft kann für eien der sich etwas auskennt nicht so schwer sein und nicht solange dauern.
Gruß
biochipc