Witam wszystkich!
Mam taki problem, poniżej zamieszczam źródło programu pod TurboPascala i chodzi o to, aby ten programik napisać w Delphi. W tym miejscu prosiłbym o pomoc. Jestem początkującym użytkownikiem Delphi i nie wiem jak się do tego zabrać.
Oto ten program:
PROGRAM Kombinacja_n_po_k;
USES
Crt;
CONST
Max_el = 100;
TYPE
Tablica = ARRAY [1 .. Max_el] OF INTEGER;
VAR
n : INTEGER;
k : INTEGER;
Tab : Tablica;
(-----------------------------------------------------------)
PROCEDURE Wyswietlanie(k :INTEGER);
VAR
Nr_elementu :INTEGER;
BEGIN
FOR Nr_elementu := 1 TO k DO
Write(Tab[Nr_elementu] : 4);
Writeln;
END;
(-----------------------------------------------------------)
PROCEDURE Kombinacja(a, b : INTEGER);
VAR
Element : INTEGER; (* dla Kombinacja *)
BEGIN
FOR Element := b to n - k + a DO
BEGIN
Tab[a] := Element;
IF a < k THEN
Kombinacja(a +1, Element+1)
ELSE
Wyswietlanie(k)
END
END;
(--------------------------------------------------------)
BEGIN
WHILE n<=k DO
BEGIN
ClrScr;
Writeln(' Wyznaczenie wszystkich kombinacji n po k');
Writeln;
Write(' Podaj ilosc elementow zbioru n........ : ');
ReadLn(n);
Write(' Podaj ilosc elementow podzbioru k .... : ');
ReadLn(k);
END;
Writeln;
IF n >= k THEN
Kombinacja(1,1);
Writeln;
REPEAT UNTIL KeyPressed;
END.
Jak się domyślacie wyznacza on wszystkie k-elementowe kombinacje bez powtórzeń ze zbioru n-elementowego dla 0=<k=<n.
Czekam na Wasze wskazówki i sugestie, a być może nawet na gotowe źródło.
Z góry dzięki
Mam taki problem, poniżej zamieszczam źródło programu pod TurboPascala i chodzi o to, aby ten programik napisać w Delphi. W tym miejscu prosiłbym o pomoc. Jestem początkującym użytkownikiem Delphi i nie wiem jak się do tego zabrać.
PROGRAM Kombinacja_n_po_k;
USES
Crt;
CONST
Max_el = 100;
TYPE
Tablica = ARRAY [1 .. Max_el] OF INTEGER;
VAR
n : INTEGER;
k : INTEGER;
Tab : Tablica;
(-----------------------------------------------------------)
PROCEDURE Wyswietlanie(k :INTEGER);
VAR
Nr_elementu :INTEGER;
BEGIN
FOR Nr_elementu := 1 TO k DO
Write(Tab[Nr_elementu] : 4);
Writeln;
END;
(-----------------------------------------------------------)
PROCEDURE Kombinacja(a, b : INTEGER);
VAR
Element : INTEGER; (* dla Kombinacja *)
BEGIN
FOR Element := b to n - k + a DO
BEGIN
Tab[a] := Element;
IF a < k THEN
Kombinacja(a +1, Element+1)
ELSE
Wyswietlanie(k)
END
END;
(--------------------------------------------------------)
BEGIN
WHILE n<=k DO
BEGIN
ClrScr;
Writeln(' Wyznaczenie wszystkich kombinacji n po k');
Writeln;
Write(' Podaj ilosc elementow zbioru n........ : ');
ReadLn(n);
Write(' Podaj ilosc elementow podzbioru k .... : ');
ReadLn(k);
END;
Writeln;
IF n >= k THEN
Kombinacja(1,1);
Writeln;
REPEAT UNTIL KeyPressed;
END.
Jak się domyślacie wyznacza on wszystkie k-elementowe kombinacje bez powtórzeń ze zbioru n-elementowego dla 0=<k=<n.
Czekam na Wasze wskazówki i sugestie, a być może nawet na gotowe źródło.