Forum MOJA PASJA - PROGRAMOWANIE Strona Główna
http://www.programuj.com
  WikiWiki  FAQFAQ    SzukajSzukaj    UżytkownicyUżytkownicy    GrupyGrupy   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 




rysujemy choinke... ale jak? problem z petlami


 
Napisz nowy temat   Odpowiedz do tematu    Forum MOJA PASJA - PROGRAMOWANIE Strona Główna -> C i C++
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
kmieciu



Dołączył: 12 Paź 2006
Posty: 24

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
witam mam za zadanie narysowac na ekranie choinke cos w stylu
*
***
*****
*******
-
-
-
o zadanej wysokosci pienka i wysokosci korony drzewka
z pienkiem nie mam problemu bo wystarczy zwykla petla for ale co z korona? i jak zrobibc zeby drzewko rozszerzalo sie symetrycznie?
a i jeszcze pytanie czy jest jakas komenda ktora przesuwa znaki na srodek ekranu?
z gory dzieki za pomoc
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość Wyślij email
Cor3



Dołączył: 15 Paź 2006
Posty: 12
Skąd: Ostrołęka

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
Jeśli chodzi o ustawianie tekstu na środku ekranu to możesz się posłużyć manipulatorami strumienia Cout. Mam nadzieję że czaisz o co chodzi, bo to jest bardziej zaawansowana technika :
c++:

#include <iostream>
#include <iomanip>
using namespace std ;

int main(int argc, char* argv[])
{
  cout << internal << setw(46) << " Tekst na srodku " << endl ;
  system("pause") ;
        return 0;
}


Tam gdzie jest 46 to szerokość ekranu. Windowsowa konsola ma chyba 46. Ale to możesz sobie ustawić sam. A co do pętli rysującej choinkę to musisz sobie pokombinować tak żeby było dobrze.
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość Wyślij email
comboy
Site Admin


Dołączył: 23 Lut 2004
Posty: 294
Skąd: Kraków

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
łiiiiiii, choinki to moja specjalność :>

c++:
#include <iostream>

using namespace std;

int main() {
       
        int N=30;
       
        for (int i=0; i<N; i++) {
                for (int j=0; j<N-i; j++)
                        cout << " ";
                for (int j=0; j<2*i-1; j++)
                        cout << "*";
                cout << endl;
        }

        for (int i=0; i<5; i++) {
                for (int j=0; j<N-2; j++)
                        cout << " ";
                cout << "||" << endl;
        }
}


Kod:


                             *
                            ***
                           *****
                          *******
                         *********
                        ***********
                       *************
                      ***************
                     *****************
                    *******************
                   *********************
                  ***********************
                 *************************
                ***************************
               *****************************
              *******************************
             *********************************
            ***********************************
           *************************************
          ***************************************
         *****************************************
        *******************************************
       *********************************************
      ***********************************************
     *************************************************
    ***************************************************
   *****************************************************
  *******************************************************
 *********************************************************
                            ||
                            ||
                            ||
                            ||

_________________
Oprogramowanie jest jak katedra - budujesz, budujesz, budujesz, a potem... modlisz się
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora Jabber (JID) Strona wiki
_dzejo
10100111001


Dołączył: 11 Paź 2006
Posty: 180
Skąd: Janów Lubelski

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
A gdzie bombki i prezenty Smile
c++:

#include <iostream>

using namespace std;

int main() {
       
        int N=30;
        char bomba = 1 ;
        char prezent = 176 ;
        char prezent2 = 178 ;

        for (int i=0; i<N; i++) {
                for (int j=0; j<N-i; j++)
                        cout << " ";
                for (int j=0; j<2*i-1; j++)
                        cout << "*";

                cout << endl;

                for (int j=0; j<N-i; j++)
                        cout << " ";
                for (int j=0; j<2*i-1; j++)
                {
                      if( j % 2)
                      {
                        cout << bomba;
                      }else{
                                cout << " " ;
                            }

                }
                  cout << endl ;

        }

        for (int i=0; i<5; i++) {
                for (int j=0; j<N-2; j++)
                        cout << " ";
                cout << "||" << endl;
        }

        for (int i=0; i<30; i++) {

              if( i % 3)
              {
                cout << prezent2 ;
              }

                if( i % 2)
                {
                   cout << prezent ;
                }else{
                         cout << "  " ;
                     }
        }

        getchar();
}


Ostatnio zmieniony przez _dzejo dnia Pon Paź 23, 2006 9:41 pm, w całości zmieniany 1 raz
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
comboy
Site Admin


Dołączył: 23 Lut 2004
Posty: 294
Skąd: Kraków

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
Specjalnie dla Ciebie bombki ;p

c++:
#include <iostream>
#include <time.h>

using namespace std;

int main() {

        int N=30;

        srand(time(0));

        for (int i=0; i<N; i++) {
                for (int j=0; j<N-i; j++)
                        cout << " ";
                for (int j=0; j<2*i-1; j++) {
                        if (rand()%30==0) cout << "O"; else
                        cout << "*";
                }
                cout << endl;
        }

        for (int i=0; i<5; i++) {
                for (int j=0; j<N-2; j++)
                        cout << " ";
                cout << "||" << endl;
        }
}
           

Kod:

                             *
                            ***
                           ***O*
                          *******
                         *********
                        ***********
                       *********O***
                      *O*************
                     *****************
                    ****************O**
                   ***************O*****
                  ***********************
                 *************************
                ***************O***********
               ******O**********************
              *******************************
             **********O**********************
            ***********************************
           **********************O**************
          ******************O********************
         *****************O***********************
        ********O********O*************************
       *****************************************O***
      *****O*****************************O*********O*
     ***O*****O*********OO**********O*****************
    *******************************O*******************
   *******O***************************O*************O***
  *******************************************************
 ********O*****O**O**************O************************
                            ||
                            ||
                            ||
                            ||
                            ||



niestety w tym roku nie z tego co słyszałem nie byłeś grzeczny i przenetów nie będzie ;p
_________________
Oprogramowanie jest jak katedra - budujesz, budujesz, budujesz, a potem... modlisz się
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora Jabber (JID) Strona wiki
_dzejo
10100111001


Dołączył: 11 Paź 2006
Posty: 180
Skąd: Janów Lubelski

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
No super fajniejsza od mojej , przesadziłem z tymi bombkami Laughing
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
comboy
Site Admin


Dołączył: 23 Lut 2004
Posty: 294
Skąd: Kraków

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
hahaha, widze ze kod dorzuciles, no bombki od Ciebie mi sie nie wyswietlaja ale prezenty wyswietlaja sie po prostu super Very Happy



nie wiem czy tak było w zamierzeniu ale bardzo mi się podoba Smile
_________________
Oprogramowanie jest jak katedra - budujesz, budujesz, budujesz, a potem... modlisz się
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora Jabber (JID) Strona wiki
kmieciu



Dołączył: 12 Paź 2006
Posty: 24

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
hahaha... wielkie dzieki o to wlasnie mi chodzilo:)
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość Wyślij email
sapero



Dołączył: 28 Maj 2006
Posty: 19

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
Mój "wycinek" choinki wywali wam oczy z orbit Very Happy
Na szybciora przetłumaczyłem go na skrypty dev-cpp bo tylko to mam na tej maszynie.
c++:
#include <windows.h>
#define rnd(x) (double)((rand()/32767.0)*(double)x)
// winnow app
void line(HDC dc,int x,int y,int x2,int y2,COLORREF color)
{
        MoveToEx(dc,x,y,0);
        HPEN pen = (HPEN)SelectObject(dc, CreatePen(0,1,color));
        LineTo(dc,x2,y2);
        DeleteObject(SelectObject(dc,pen));
}
int WINAPI WinMain (HINSTANCE hThisInstance,HINSTANCE hPrevInstance,LPSTR lpszArgument,int nFunsterStil)
{
        float rise, rad, frad, xshorten;
        int left, top, width, height, bpx, bpy, tpx, tpy;
        int x1, y1, x2, y2, aa;
        RECT rc = {20, 5, 440, 460};

        HDC dc = GetDC(0);
        COLORREF brown = RGB(130, 100, 0);
        COLORREF green = RGB(0, 80+(int)rnd(40), 0);

        HBRUSH br = CreateSolidBrush(RGB(255,235,190));
        FillRect(dc,&rc,br);
        DeleteObject(br);

        //== GROW ===================


        bpx=220; bpy=410; tpx=bpx;
        for (aa=-4; aa<=4; aa++)
        {
                line(dc, bpx+aa, bpy, bpx, bpy-390, brown);
        }
        rad=160; tpy=bpy-40;
        for (int ht=1; ht<=40; ht++)
        {
                for (int xs=-100; xs<=100; xs+=40)
                {
                        xshorten=xs/100.0;
                        rise=rnd(.3);
                        line(dc, tpx, tpy, (int)(tpx+(xshorten*rad)), (int)(tpy-rise*rad), RGB(0,80+(int)rnd(40),0));
                        for (aa=1; aa<=30; aa++)
                        {
                                frad = rnd(.9)*rad;
                                x1 = (int)(tpx+(xshorten*frad));
                                y1 = (int)(tpy-rise*frad);
                                x2 = (int)(tpx+xshorten*(frad+rad/5));
                                y2 = (int)(tpy-rise*frad+(-rise+(rnd(.8)-.4)) * (rad/5));
                                line(dc, x1, y1, x2, y2, RGB(0, 80+(int)rnd(40), 0));
                        }
                }
                rad-=4; tpy-=9;
        }
        ReleaseDC(0,dc);
        return 0;
}

FillRect czyści tło dla choinki i wcale nie jest potrzebne.
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość Odwiedź stronę autora
Bru2s
On tu chyba mieszka


Dołączył: 03 Mar 2005
Posty: 93
Skąd: z Jasnej Góry ;)

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
sapero: super choineczka Very Happy
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość Odwiedź stronę autora
comboy
Site Admin


Dołączył: 23 Lut 2004
Posty: 294
Skąd: Kraków

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
mógłbyś jakiś zrzut ekranu sapero dołączyć ? Bo niestety nie mam windowsa w pobliżu
_________________
Oprogramowanie jest jak katedra - budujesz, budujesz, budujesz, a potem... modlisz się
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora Jabber (JID) Strona wiki
sapero



Dołączył: 28 Maj 2006
Posty: 19

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
No jasne że mogę
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość Odwiedź stronę autora
comboy
Site Admin


Dołączył: 23 Lut 2004
Posty: 294
Skąd: Kraków

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
whoa. rządzisz Very Happy
_________________
Oprogramowanie jest jak katedra - budujesz, budujesz, budujesz, a potem... modlisz się
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora Jabber (JID) Strona wiki
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum MOJA PASJA - PROGRAMOWANIE Strona Główna -> C i C++ Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


hosting sponsorowany przez hosted.pl
Powered by phpBB © 2001, 2002 phpBB Group