grolak Temat założony przez niniejszego użytkownika |
Jak uprościć program? » 2010-10-16 14:17:12 Mam za zadane napisać program z użyciem pętli for, który będzie wyświetlał coś takiego: **** **** **** **** czyli pole 4x4 gwiazdek. Zrobiłem ten program, jednak jestem prawie 100procentowo pewien że da się go uprościć, sam program wydaje mi się też troche pokraczny. Oto on: #include <iostream> using namespace std;
int main() { char a='*';
for ( int i=1; i <= 16; i++ ) { cout <<a; if (i % 4 == 0) endl(cout); }
return 0; }
Lepiej by było na pewno, gdyby na początku użytkownik podawał wymiary tego pola z gwiazdek, ale do tego mam nadzieję jeszcze dojdę. Moja prośba to uproszczenie tego skryptu (żeby był bardziej profesjonalny). _________________________ Dobra, zrobiłem program w którym user podaje wymiary prostokąta i taki prostokąt z gwiazdek robi program. Jednak ciągle proszę o uproszczenie / podanie innego sposobu (chociaż znając życie będzie troche ponad moją dotychczasową wiedzę). #include <iostream> using namespace std;
int main() { char b='*'; int i,k; cout<<"Podaj wymiary"; cin>>i; cin>>k;
for ( int a=1; a <= i*k; a++ ) { cout <<b; if (a % i == 0) endl(cout); }
return 0; }
|
|
ison |
» 2010-10-16 14:27:47 program gdzie użytkownik podaje wielkość kwadratu: #include <cstdio>
const char gChrDisplay = '*'; unsigned int gSqrSize;
int main() { scanf( "%u", & gSqrSize ); for( int i = 0; i < gSqrSize; ++i ) { for( int j = 0; j < gSqrSize; ++j ) printf( "%c", gChrDisplay ); printf( "\r\n" ); } }
|
|
Elaine |
» 2010-10-16 14:42:36 Dlaczego \r\n, a nie \n? Dlaczego printf, a nie putchar? Dlaczego zmienna globalna? |
|
ison |
» 2010-10-16 14:51:17 @up sorki, w sumie masz racje, da się prościej i lepiej to napisać: podajesz najpierw wysokość potem szerokość: #include <cstdio>
class cChr { public: inline void Display( const char C ); };
inline void cChr::Display( const char C ) { putchar( C ); }
class cSqr { private: cChr ** Chr; char CharDisp; unsigned int Width, Height; void Init( const int W, const int H ) { Chr = new cChr *[ H ]; for( int i = 0; i < W; i++ ) { Chr[ i ] = new cChr[ H ]; } } public: cSqr( const char NewChar ) : CharDisp( NewChar ) { } ~cSqr() { for( int i = 0; i < Width; i++ ) delete[] Chr[ i ]; delete[] Chr; } void GetVariables(); void DisplayAll(); };
void cSqr::GetVariables() { scanf( "%u %u", & Width, & Height ); Init( Width, Height ); }
void cSqr::DisplayAll() { for( int i = 0; i < Height; ++i ) { for( int j = 0; j < Width; ++j ) Chr[ i ][ j ].Display( CharDisp ); putchar( 10 ); } }
int main() { cSqr * mainSqr = new cSqr( '*' ); mainSqr->GetVariables(); mainSqr->DisplayAll(); while( 1 ); }
może być? ;P |
|
Elaine |
» 2010-10-16 14:53:22 Nie, nie może być, w temacie jest o upraszczaniu, nie o komplikowaniu. |
|
ison |
» 2010-10-16 14:55:45 @up cytat Grolak: (żeby był bardziej profesjonalny)
|
tak poza tym od kiedy to definiuje się uproszczenie zawsze jako skrócenie kodu? wg Ciebie używanie klas to komplikowanie?... Wg mnie to bardzo dobre wyjście no tak, cokolwiek by człowiek nie zrobił to zawsze się ktoś taki znajdzie kto skrytykuje xd tak się zastanawiam, jeśli krytykujesz mnie za zmienne globalne to z jakiej racji wtedy mówisz że źle robię używając klas? Szczerze mówiąc trochę dziwne podejście |
|
grolak Temat założony przez niniejszego użytkownika |
» 2010-10-16 15:08:00 OK, dzięki - myślę, że wrócę do tych wyjaśnień kiedy się trochę poduczę, na razie wystarczy mi to co zrobiłem u góry. Mam za to inne pytanie: czy w tym skrypcie jest coś źle? #include <iostream> using namespace std;
int main() //program oblicza pole koła { float r; cout<<"Podaj długość promienia:"<<endl; cin>>r; cout<<"Pole koła o promieniu "<<r" wynosi "<<r*r*3.14 <<endl; return 0; }
bo ciągle wywala mi błąd polekola.cpp: In function ‘int main()’: polekola.cpp:9: error: expected `;' before string constant
, a nie wydaje mi się żeby tam brakowało przecinka. |
|
michalp |
» 2010-10-16 15:08:12 @ison: To może powiedz czemu kod który napisałeś jest uważasz za prostszy? |
|
« 1 » 2 3 4 5 |