Jump to content

Archived

This topic is now archived and is closed to further replies.

Seraphis

Pascal, trojkat pascala

Recommended Posts

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 to comment
Share on other sites



  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...