Skocz do zawartości

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

Seraphis

Pascal, trojkat pascala

Polecane posty

Programik, ktory w pewnym sensie jest zwyklym, wyliczajacym k-ty element n-tego wiersza tego trojkata. Jedyna modyfikacja to ten round i warunek przy nim, ktory ma zapewnic to, by nie sprawdzal zbyt gleboko w wierszu (jesli to okaze sie istotne, to sie rozpisze co to dokladnie za problem ten programik ma rozwiazywac, ale wydaje mi sie, ze nie o to tutaj chodzi).

Wiadomo o co z tym trojkatem chodzilo: element jest rowny sumie elementow 'nad nim'. Dla uproszczenia, jesli 'k' jest

no i tutaj kod:

Function bramki(n,k:integer):integer;
  if k<=1 then bramki:=1;
  if k>round((n/2)+0.5) then bramki:=0;
  if (k>1) and (k<=round((n/2)+0.5)) then bramki:=bramki(n-1,k-1)+bramki(n-1,k);
end;

Ot taka funkcja. Jednakze ma problemy z liczeniem elementow. Dla elementu (6, 3), czyli 6 wiersz, 3 element, wywala '7'.

Cos jest nie tak z tym drugim 'ifem', tak mi sie zdaje.

Jakies pomysly?

PS. Ten trojkat bedzie wygladal dla mojego zadania mniej wiecej tak:

      1
    1   1
   1  2  
  1 3  2  
1 4  5  
1 5  9  5

EDIT: Ok, problem rozwiazany :-P Okazuje sie, ze mialem bledne zrodlo informacji o funkcji 'round()'. Do gory zaokragla powyzej 0.5, a nie od 0.5 :-\

Link do komentarza
Udostępnij na innych stronach



  • Kto przegląda   0 użytkowników

    • Brak zalogowanych użytkowników przeglądających tę stronę.
×
×
  • Utwórz nowe...