Trójkąt Pascala [Pomoc z programem !]

0

Witam. Mam problem, a jednocześnie prośbę, o dokończenie i poprawienie jednego programu w MATLABIE.
Miałem na studiach dopiero drugie zajęcia z tym programem, jednakże profesor już dał nam do zrobienia taki program, że naprawde nie mam za bardzo pomysłu jak go ruszyc :/ A niedługo muszę mu go oddac wydrukowanego i działającego :/ Inaczej będe miał przerąbane :/

[b]Oto program:[/b] Program ma za zadanie ma jeśli dobrze zrozumiałem, za pomocą dwumianu Newtona:
user image

wyświetlac na ekranie tzw. Trójkąt Pascala, czyli cos takiego:
user image

Pobierane z klawiatury ma byc tylko [b]n[/b] i spełnione mają byc warunki:
N>=0
K>=0
N-K>=0

Trzeba zrobic też funkcję osobno, która będzie to wyliczała, funkcję mam chyba dobrze, tylko nie wiem jak w taki sposób wyświetlic, żeby ten zasrany trójkąt Pascala wyświetlało. Oto co do tej pory udało mi się zrobic:

[b]1. FUNKCJA:[/b]

function s=silniadwumian(N)
if N~=0;
s=N*silniadwumian(N-1);
else
s=1;
end

[b]2. KOD PROGRAMU:[/b]

clc
clear

disp(' ');
disp('Podaj wartosc N: ');
disp(' ');

N=input('Podaj N = ');

a=ones(N+1);
for i=0N
for j=0i

end

end

if (N>=0);

dn=silniadwumian(N)/(silniadwumian(K)*silniadwumian(N-K));

fprintf('Silnia wynosi: %d',dn);

else
disp('Podales zle wartosci.');
end

Bardzo proszę o pomoc, wierzę że znadzie się ktoś, kto mi pomoże !!

0

No to liczysz po kolei dwumiany, od k = 0 i n = 0. Czyli, gdy poda się n = 4, k = 2, jest jedna pętla od k, a nad nią od n, która też dodaje następny wierszy przy następnym n.

Wejście:
iN = 4
iK = 2
-------
for (int n = 0; n <= iN; n++)
{
    // nowy wiersz
    for (int k = 0; k <= iK; k++)
    {
        // obliczasz dwumian dla n po k i wyświetlasz
        // dodatkowo można spację dać po wyniku dla czytelności, tzn. powinno się
    }
}

Coś takiego, nie znam Matlab'a, ale przedstawiłem ogólny zarys. Chyba się nie pomyliłem :P

0

Owszem, byc może ten warunek jest prawdziwy, ale nie mam pojęcia jak zapisac go w matlabie 0_o

Na kilkanascie sposobów próbowałem, zawsze wywala mi błąd :/

0

trójkąt już mi działa tyle, że w ten sposób:

**



A chciałbym żeby było to mniej więcej tak:

*


Nie mam pojęcia jak to do tego doprowadzic :/

0

A chciałbym żeby było to mniej więcej tak:

Dodawaj spacje.

Naiwna wersja: (pseudokod bo matlaba nie umiem):

def WypiszSpacje(n):
    for i in <0, n):
        print ' '

for i in <0, IloscWierszy):
    WypiszSpacje(IloscWierszy - ObecnyNumerWiersza)
    WypiszWiersz(i);

Tak naprawdę powinno być:

def zmierzDlugoscWiersza(wiersz):
    int len = 0;
    for liczba in wiersz:
        len += strlen(liczba.toString()) + 1
    return len - 1

int max = zmierzDlugoscWiersza(IloscWierszy - 1); // ostatni wiersz
for i in <0, IloscWierszy):
    int l = zmierzDlugoscWiersza(i);
    WypiszSpacje((max - l) / 2)

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