Trójkąt Pascala w zmienionej formie . Potrzebne porady.

0

Witam
TEMAT ZADANIA:

Wypisanie trójkąta Pascala do zadanego wiersza.

Trójkąt ma wyświetlać się w formie choinki w zadanym wierszu.

Wiadomo ,że w nie których miejscach choinka nie pokaże się cała.Więc profesor kazał zrobić funkcje obliczająca czy wystarczy miejsca na pokazanie choinki.Jeśli nie wystarczy to mam obciąć początek trójkąta,górę i koniec.Na koniec mam wyświetlić ta choinkę w takiej formie : ten początek,środek,góra i koniec.

Wiem jak zrobić by się taki trójkąt robił,ale nikt nie potrafi mi pomóc z tym wyświetlaniem oraz z zapisem jej do pliku .Trochę kodu zrobiłem,ale dalej nie dam rady. Miło by było jakby ktoś wspomógł.

Pozdrawiam

0

"Trójkąt ma wyświetlać się w formie choinki w zadanym wierszu." - jakoś nie wyobrażam sobie choinki w jednym wierszu.

0

Pierwszy program z internetu zalacznik 1: wyświetla tak jakby pół choinki :
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1

i tak dalej.
Wiec ta choinka jest wyświetlana w 1 wierszu,tam gdzie stoi ta pierwsza jedynka. Wiec to jest tak jakby obcięta choinka. Wiec jeśli pojawi się taka sytuacja ,mam obciąć początek ,górę i koniec.I wyświetlić wtedy taka choinkę w kawałkach.Nie mam pojęcia jak to zrobić ;/
W pozostałych przypadkach dla większych wierszy wskazanych przez użytkownika,Od razu pokazała by się pełna choinka.

0

to nie jest „obcięta” choinka, tylko niewyśrodkowana choinka. porównaj z czymś takim (robię na oko):

         1
       1 1
      1 2 1
     1 3 3 1
    1 4 6 4 1
  1 5 10 10 5 1
 1 6 15 20 15 6 1
0

Wypisanie trójkąta Pascala do zadanego wiersza.Dostałem takie zadanie. Jak będzie chciał użytkownik 1 wiersz to wiadomo,że ta choinka bedzię wygladać tak jak napisałem .Mam nic nie wyśrodkować.Tylko obciąć jej początek ,gore i koniec jeśli będzie taka sytuacja. I potem to wyswietlic w formacie: poczatek,gora,srodek i koniec tej choinki.

0

dziwne to zadanie,ale takie mam :[

0

ZADANIE INDYWIDUALNE

 Z zadaniem indywidualnym należy zgłosić się na konsultacje, w celu doprecyzowania jak ma działać program.
Zadanie indywidualne bronimy na ostatnim laboratorium
Dokumentacja powinna zawierać
    stronę tytułową
    spis treści
    matematyczny opis problemu i algorytm ( o ile dotyczy)
    schemat blokowy programu i wszystkich funkcji
    instrukcję działania programu dla użytkownika
    kod programu wraz z komentarzami
Do dokumentacji należy dołączyć nośnik z kodem źródłowym programu i plikiem wykonywalnym programu
Program powinien mieć zabezpieczone wszystkie we/wy danych
należy również w programach bazodanowych lub takich co potrzebują dużo danych na wejściu pliki z danymi do wczytania

TEMAT ZADANIA:

Wypisanie trójkąta Pascala do zadanego wiersza

Taka jest treść. Dostałem tłumaczenie takie,użytkownik ma podać wiersz i stopień trójkąta. Wiadomo,że jeśli podam np 20 stopnia i będzie chciał wyświetlić ten trójkąt w 2 wierszu to zabraknie mi miejsc na jedynki po lewym boku. Mam obciąć tak ten trojkąt tak by utworzyć z niego pełną choinkę.Jesli np bym zrobił trojkąt 5 stopnia i wpisal ten trojkąt w 10 wiersz,to chyba oczywiste ,ze bym mial piękną choinke ;] Dragon myslisz,że się go nie pytałem? Profesorowie na uczelniach nie są zbyt mili i nie interesują się.Zadał coś i masz to zrobić,powiedział żebym pokombinował .

0

O to chodzi:

typedef vector<string> Strings;
typedef Strings::iterator StIt;

Strings pas(unsigned n,unsigned width,unsigned height)
  {
   Strings st(n+1);
   vector<unsigned> v(n+2);
   for(unsigned i=0;i<=n;++i)
     {
      for(unsigned k=i;k>=1;--k) v[k]+=v[k-1];
      v[0]=v[i]=1;
      stringstream s;
      for(unsigned k=0;k<=i;++k) s<<(" "+!k)<<v[k];
      st[i]=s.str();
     }
   unsigned max=st[n].length();
   for(unsigned i=n-1;i<n;--i)
     {
      st[i]=string((max-st[i].length())>>1,' ')+st[i];
     }
   if(n+1>height)
     {
      st.erase(st.begin(),st.begin()+n+1-height);
      st.resize(height);
     }
   if(max>width)
     {
      unsigned del=(max-width)>>1;
      for(unsigned i=0;(i<=n)&&(i<height);++i)
        {
         unsigned len=min(st[i].length()-del,width);
         st[i].erase(0,del);
         st[i].resize(len);
        }
     }
   return st;
  }
0

Nie kompiluje się ,ąż tak bardzo nawet nie orientuje się w tym co napisałeś. Ciezko mi to zrozumiec jak na to patrze,za mała wiedza ;p O trojkącie czytałem,wcześniej zrobiłem zadanie z wypisem o trojkącie i przeszukałem cały internet.Nie jest tak,że zadaje pytanie i nic nie robie .Tak to niczego sie nie naucze,ale tej cześci mimo czasu nie potrafie zrobic ;/

0

To się kompiluje i dobrze działa, trzeba tylko dołaczyć odpowiednie nagłówki oraz dodać stosownego main'a. Wszystko co potrzebujesz jest w tym kodzie. Więc nawet jak nie uda ci się skompilować to prześledź kod i zrób po swojemu. Lub zamów gotowca.

1 użytkowników online, w tym zalogowanych: 0, gości: 1