Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Rechteck aus Sternen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
05.12.2008, 02:16 Uhr
~Alex from Galax
Gast


Hallo Zusammen! Hat jemand zufällig die Lösung für folgende Aufgabenstellung parat?:

Für das Zeichnen eines Rechtecks wird die Länge und Breite der Form eingelesen.
Die Länge und Breite sind Ganzzahlen. Zeichnen Sie das Rechteck aus Sternen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.12.2008, 04:05 Uhr
Lensflare



sicher:


C++:
#include <iostream>

using namespace std;

int main()
{
    int w;cout<<"Laenge: ";cin>>w;
    int h;cout<<"Breite: ";cin>>h;
    for(int i=1;i<=w*h;cout<<(i%w?"*":"*\n"),++i);
    return 0;
}




--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
05.12.2008, 12:30 Uhr
~Sternchen
Gast



C++:
#include <iostream>
#include <conio.h>
#include <windows.h>

using namespace std;

int main()
{
    int w;cout<<"Laenge: ";cin>>w;
    int h;cout<<"Breite: ";cin>>h;
    system("cls");
    for(int i=1;i<=w*h;cout<<(i%w?"*":"*\n"),++i);
    bool exit = false;
    while(!exit)
    {
        if(kbhit()) // Taste gedrückt?
        {
            char c = getch(); //abfangen...
            exit = true; //....und raus
        }
        Sleep(10);
    }
    return 0;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
05.12.2008, 13:02 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hi,

conio.h usw ist alles andere als standardkonform, system("cls") ist nicht portabel, usw.

also Lensflares Lösung ist da schon besser, das drumrum ist da völlig unnötig.

mal davon abgesehen würde ein


C++:
getch();



den kompletten schleifenteil ersetzen, das getch wartet auch schon bereits auf eine tasteneingabe
--
class God : public ChuckNorris { };

Dieser Post wurde am 05.12.2008 um 13:03 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
05.12.2008, 17:15 Uhr
~Alex from Galax
Gast


Hi erst mal vielen Dank für die schnellen Antworten.
Habe mich wie FloSoft empfohlen hat auf die Lösung von Lensflare konzentriert. Bin erst ganz neu auf dem Gebiet Programmieren. Mein Compiler meckert hier, dass es einen syntax error vor using namespace gibt. kann das etwas damit zu tun haben, dass ich dass programm laut aufgabenstellung mit .c am ende abspeichern muss? Grüße
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
05.12.2008, 17:28 Uhr
0xdeadbeef
Gott
(Operator)


Seit wann erledigen wir denn hier Hausaufgaben?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
05.12.2008, 18:17 Uhr
Hans
Library Walker
(Operator)


Hi,

Zitat von ~Alex from Galax:
Mein Compiler meckert hier, dass es einen syntax error vor using namespace gibt. kann das etwas damit zu tun haben, dass ich dass programm laut aufgabenstellung mit .c am ende abspeichern muss? Grüße

Ja. Jetzt wäre zu überlegen, warum. Nun, dazu sollte etwas in der Onlinehilfe des Compilers zu finden sein.

Hans


P.S. @Beefy: sag mal, hast du dafür nicht auch noch 'ne Templatelösung parat, wie neulich schon mal?
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 05.12.2008 um 18:21 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
05.12.2008, 18:33 Uhr
0xdeadbeef
Gott
(Operator)


Hmm...das Problem ist, dass die Dimensionen des Rechtecks zur Laufzeit eingelesen werden sollen, das macht die Benutzung von Template-Metaprogrammierung schwierig.

Wenn's zur Compilezeit feststehen darf:

C++:
#include <iostream>

template<int width> void print_line() {
  std::cout << '*';
  print_line<width - 1>();
}

template<> void print_line<0>() {
  std::cout << '\n';
}

template<int height, int width> struct rectangle_printer {
  static void print() {
    print_line<width>();
    rectangle_printer<height - 1, width>::print();
  }
};

template<int width> struct rectangle_printer<0, width> {
  static void print() { }
};

int main() {
  rectangle_printer<5, 10>::print();
}


...dumm nur, dass Funktionsvorlagen nicht partiell spezialisiert werden können.

Nachtrag: Mit std::string wär's natürlich einfacher, aber irgendwie ist das ja geschummelt.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 05.12.2008 um 18:37 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
06.12.2008, 14:45 Uhr
Hans
Library Walker
(Operator)


Hi,

@beefy: erst mal danke für das Werk. Leider meckert mein Compiler wieder:

Zitat von Open Watcom C++32 Optimizing Compiler Version 1.7:
function templates can only have type arguments

Und ich krieg es leider immer noch nicht auf die Reihe, mich mal richtig damit zu beschäftigen, um genau zu verstehen, was Du da machst.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 06.12.2008 um 14:49 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
06.12.2008, 15:37 Uhr
0xdeadbeef
Gott
(Operator)


Da liegt der Watcom schon wieder falsch - im Standard sind integrale Argumente für Funktionsvorlagen ausdrücklich erlaubt.

Wie sehr hängst du daran? Ich meine, für C++ wäre schon ein Compiler sinnvoll, der C++ auch übersetzen kann. Wenn der bei solchen Dingen schon patzt, wär ich mir zum Beispiel nicht sonderlich sicher, ob der auch alle Boost-Bibliotheken verwenden kann.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 06.12.2008 um 15:38 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: