Advertisement
MierivaL

Untitled

Apr 23rd, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.70 KB | None | 0 0
  1. uses crt;
  2.  
  3. var
  4.     n, cnt: word;
  5.     s: string;
  6.     mas: array[1..100] of string;
  7.     d: array[1..100] of boolean;
  8.     pvt: boolean; pvtnm: char;
  9.  
  10.  
  11. procedure draw(const count: word);
  12. var
  13.     i: word; toDraw: boolean;
  14.  
  15.  
  16. begin
  17.     for i := 1 to n do
  18.     begin
  19.         if count = cnt then s := '';
  20.         if (pvt = true) then toDraw := false else toDraw := d[i];
  21.         if (toDraw = false) then
  22.         begin
  23.             s := s + mas[i];
  24.             d[i] := true;
  25.             if count = 1 then write(s, ' ') //writerzm
  26.             else draw(count - 1);
  27.             s[0] := chr(ord(s[0]) - length(mas[i]));
  28.             d[i]:=false;
  29.         end;
  30.     end;
  31. end;
  32.  
  33. procedure work(const n: word);
  34. var
  35.     i: word;
  36.  
  37. begin
  38.     for i := 1 to n do
  39.     begin
  40.         writeln('Введите ', i, ' элемент');
  41.         readln(mas[i]); d[i] := false;
  42.     end;
  43.     writeln('Введите количество размещений');
  44.     readln(cnt);
  45.     writeln('---');
  46.     draw(cnt);
  47. end;
  48.  
  49. function getNums(n, cnt: integer): LongInt;
  50. var num: longint; i: integer;
  51. begin
  52.     num := 1;
  53.     case pvt of
  54.         false:  for i := n downto cnt do num := num * i;
  55.         true: for i := 1 to cnt do num := num * n;
  56.     end;
  57.     getNums := num;
  58. end;
  59.  
  60. begin
  61.     clrscr;
  62.     writeln('1 - с повторениями, иначе - без');
  63.     readln(pvtnm);
  64.     if (pvtnm = '1') then pvt := true else pvt := false;
  65.     writeln('Введите кол-во элементов');
  66.     readln(n);
  67.     work(n);
  68.     writeln;
  69.     writeln('Количество: ', getNums(n, cnt));
  70.     writeln('Программа завершена. Нажмите любую клавишу...');
  71.     readkey;
  72. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement