Choinka z gwiazdek

Choinka z gwiazdek
C8
  • Rejestracja:około 5 lat
  • Ostatnio:5 miesięcy
  • Postów:33
0

Witam,

próbuję zaprogramować choinkę z gwiazdek w C++. Niestety nie umiem zrobic pnia choinki (boottom) oraz gwiazdki wypisują się jedna pod droga zamiast łączyć się w nowej lini. Zauważyłem, że w niektorych choinkach są dwie pętle for (pętla w pętli). Przypuszczam, że do zbudowania choinki jest wymagany jeden for (nie licząc pnia choinki, który ma się składać z dwoch gwiazdek jedna pod drugą).

Ogólnie choinka zaczyna się od 5 gwiazdek.

Kod c++:

Kopiuj
#include <iostream>

using namespace std;

int main()
{

    int w = 1; // wierzcholek
    int d; // wpisywana liczba giwazdek
    int suma; // suma wszystkich gwiazdek
    int bottom = 2; // dol choinki 2 gwiazdki
    cout << "Podaj liczbe";
    cin >> d; // wpisuje liczbe gwiazdek
    suma = w + bottom + 2; // suma( dol choinki, wierzcholek)
	if(d>=suma) // jesli jest ponad 5 gwiazdek
	{
		for(int wa; wa <= d-2; wa + 2) // dla zmiennej wa dodaje 2 gwiazdki do czasu wszystkich gwiazdek procz bottom
		{
			cout << "*"; // wypisuje gwiazdke 
			cout << endl; // nowa linia
		}
	}
    return 0;
}
edytowany 2x, ostatnio: Riddle
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:4 dni
0

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
C8
  • Rejestracja:około 5 lat
  • Ostatnio:5 miesięcy
  • Postów:33
0

Jak do zmiennej = 1 dodać 2 i przejsc do nowej lini, dodawac 2 i nowa linia ma byc warunkiem do czasu uzyskania wyniku

C8
  • Rejestracja:około 5 lat
  • Ostatnio:5 miesięcy
  • Postów:33
0

Mogbly ktos dodac komentarze do kazdej linii kodu?
Najważniejsze komentarze w funkcji void

Kopiuj
#include <iostream>

using namespace std;

void choinka(int f, int n)
{

    int k = f + n - 2; 
    for (int z = 0; z < n; ++z) {
        int r = k;
        for (int i = 0; i < z+f; ++i)
        {

            for (int j = 0; j < r; ++j)
            {
                cout << (" ");
            }

            r--;
            for (int j = 0; j < (i * 2) +1; ++j)
            {
                cout << ("X");
            }
            cout << ("\n");
        }
    }
}



int main()
{
    int liczba_poziomow;
    int wysokosc;
    cout << ("x = ");
    cin >> (wysokosc);
    if (wysokosc > 0)
    {
        cout << ("y = ");
        cin >> (liczba_poziomow);
        if (liczba_poziomow > 0)
        {
            choinka(wysokosc, liczba_poziomow);
        }
        else
        {
            cout << "Liczba \"y\" powinna byc wieksza od 0!";
        }
    }
    else
    {
        cout << "Liczba \"x\" powinna byc wieksza od 0!";
    }
    return 0;
}
edytowany 1x, ostatnio: cerrato
BG
Ciekawy jestem - na jakiejś uczelni robią letni kurs poprawkowy z podstaw programowania ?
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:4 dni
2

Koszt czasowy komentowania tego badziewia jest jakieś 4 razy wyższy niż napisanie od nowa z komentarzami.
Sądzę że nikomu nie będzie się chciało, tym bardziej że tobie to nic nie da.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
BG
  • Rejestracja:prawie 6 lat
  • Ostatnio:3 dni
  • Postów:289
4

@_13th_Dragon: Oj nie bądź taki nieuprzejmy, przecież napisanie komentarzy do tego kodu to chwilka ;P

Kopiuj
void choinka(int f, int n)
{
  int k = f + n - 2;                             // deklaracja zmiennej k
  for (int z = 0; z < n; ++z) {                  // pętla for
      int r = k;                                 // deklaracja zmiennej r
      for (int i = 0; i < z+f; ++i)              // pętla for
      {
          for (int j = 0; j < r; ++j)            // pętla for
          {
              cout << (" ");                     // wyświetlenie spacji
          }
  
          r--;                                   // postdekrementacja r
          for (int j = 0; j < (i * 2) +1; ++j)   // pętla for
          {
              cout << ("X");                     // wyświetlenie X
          }
          cout << ("\n");                        // wyświetlenie \n
      }
  }
}
C8
  • Rejestracja:około 5 lat
  • Ostatnio:5 miesięcy
  • Postów:33
0

13th Twój program który zalinkowałeś ma błędy przy kompilacji, chciałem włączyć program żeby coś wyświetlił, niestety nie przydał się jako materiał edukacyjny.

Jaki program mógłbym zaprogramować żebym mógł pytać się o prace jako junior programista?

Słyszałem o grach karcianych, jaka grę proponujecie?

BG
Tamten kod jak najbardziej się kompiluje. Jakiego środowiska używasz i jaką masz wersję kompilatora ?
C8
Używam dev c++ najnowsza wersje
BG
Najnowsza wersja to znaczy która dokładnie ?
RE
@Cyber84 Proponuję "Brydża" z jakimiś 7 systemami licytacyjnymi, w tym około 80 konwencji licytacyjnych i własnym generatorem rozdań układów kart na jakieś 53 kwadryliardy. have fun
_13th_Dragon
@Cyber84, na początek proponuje jakikolwiek kurs dla początkujących z internetu. Zaś przed tym jakiś kurs wyszukiwania w google, bo jak na razie nie jesteś w stanie najnowszej wersji znaleźć.
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:4 dni
0
Cyber84 napisał(a):

13th Twój program który zalinkowałeś ma błędy przy kompilacji, chciałem włączyć program żeby coś wyświetlił, niestety nie przydał się jako materiał edukacyjny.

Nie pierGol: https://ideone.com/nZxapB


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
BG
Ma pewnie antyczne dev-c++ z kompilatorem w trybie c++98 (c++03 w najlepszym wypadku)
_13th_Dragon
I piszę że najnowsza wersja?
BG
Niektóre "najnowsze" wersje dev-c++ mają gcc 4.8
C8
  • Rejestracja:około 5 lat
  • Ostatnio:5 miesięcy
  • Postów:33
0

Bez tytułu.jpg

Błąd przy kompilacji

RE
no tylko wiesz o tym że dragon podał ci link do nowych wersji dev-c++? No i c++11 w gcc 4.8 jest jako emsperymentalne i trzeba flagi przestawić. Znaczy ogólnie najlepiej ustawiać flagi.....
BG
Masz ANTYCZNE środowisko. Zaktualizuj i sprawdź ponownie. Dodatkowo - sprawdź jak w Dev-C++ włączyć standard C++11
_13th_Dragon
Obstawiam, że 5.11 pojawił się przed twoim urodzeniem, w świecie programowania to są eony.
Althorion
Moderator C/C++
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 6 godzin
  • Postów:1605
3

Poszukaj kompilatora z tego tysiąclecia. To jest poważna rada, nie zgrywam się — auto weszło w C++11 (jako dedukcja typów; jako określenie storage duration istniało już wcześniej), jedenaście lat temu. W komputerowej skali czasu to wieczność.

C8
  • Rejestracja:około 5 lat
  • Ostatnio:5 miesięcy
  • Postów:33
0
Kopiuj
#include <iostream>

using namespace std;

void choinka(int w, int s)
{
	int suma= w + s - 2;
	for(int sa=0;sa<s;sa++)
	{
		int w1=sa;
		int r = suma; // poczatkowe r co robi
		for(int w1=0;w1<w;w1++)
		{
			for(int s1=1;s1<r;s1++) // tutaj co robi r
			{
				cout << (" ");
			}
			r--; // co robi te r
			for(int gw=0;gw<(w1*2)+1;gw++)
			{
				cout << ("X");
			}
				cout << ("\n");
		}
	
	}
}

int main()
{

    int liczba_poziomow;
    int wysokosc;
    cout << ("x = ");
    cin >> (wysokosc);
    if (wysokosc > 0)
    {
        cout << ("y = ");
        cin >> (liczba_poziomow);
        if (liczba_poziomow > 0)
        {
            choinka(wysokosc, liczba_poziomow);
        }
        else
        {
            cout << "Liczba \"y\" powinna byc wieksza od 0!";
        }
    }
    else
    {
        cout << "Liczba \"x\" powinna byc wieksza od 0!";
    }
    return 0;
}

Co robi poczatkowe r = suma? dlaczego gdy zmieniam r w warunku for zmienia sie kod? Ogolnie co wykonuje te r w 3 przypadkach

edytowany 1x, ostatnio: kq
BG
  • Rejestracja:prawie 6 lat
  • Ostatnio:3 dni
  • Postów:289
1

@Cyber84:

Jako potencjalny "Programista Junior" powiedz mi, co robi ten fragment kodu ?

Kopiuj
for(int s1=1;s1<r;s1++) 
{
   cout << (" ");
}

Jak odpowiesz na to pytanie, to zadam Ci kolejne - aż do skutku (czyli do momentu w którym zrozumiesz co Twój(?) kod robi).

_13th_Dragon
Okrutny sadlista z ciebie, zmuszasz człowieka do myślenia, wiesz że mu to strasznie boli? :D
BG
Ja się na stare lata zacząłem uczyć js - to dopiero boli ;P
C8
  • Rejestracja:około 5 lat
  • Ostatnio:5 miesięcy
  • Postów:33
0
Bartłomiej Golenko napisał(a):

@Cyber84:

Jako potencjalny "Programista Junior" powiedz mi, co robi ten fragment kodu ?

Kopiuj
for(int s1=1;s1<r;s1++) 
{
   cout << (" ");
}

Jak odpowiesz na to pytanie, to zadam Ci kolejne - aż do skutku (czyli do momentu w którym zrozumiesz co Twój(?) kod robi).

Wyswietla spacje, dopelnia spacje do choinki zeby wyswietlic nie trojkat prostokatny tylko rownoboczny trojkat

BG
Tu nie ma żadnej choinki - zapomnij o niej. Napisz co DOKŁADNIE robi ten fragment.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.