Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var
- fn, n, l, i, r, m: LongInt;
- f, g: array of byte;
- c, expr: string;
- begin
- write('Введите номер функции: ');
- readln(fn);
- if fn <= 1 then
- n := 1
- else
- n := Ceil(Log2(Log2(fn + 1)));
- l := trunc(power(2, n));
- SetLength(f, l);
- SetLength(g, l);
- for i := 0 to l - 1 do
- begin
- r := trunc(power(2, l - 1 - i));
- if (fn - r) >= 0 then begin
- fn := fn - r;
- f[i] := 1;
- g[i] := 1;
- end;
- end;
- for m := 0 to l - 1 do
- begin
- write(' ' * m);
- if m <> 0 then
- for i := l - 1 downto m do
- g[i] := (g[i] + g[i - 1]) mod 2;
- for i := m to l - 1 do write(g[i], ' ');
- writeln();
- end;
- for i := 1 to n do
- begin
- write(('x' + i):4);
- end;
- writeln('f':4, 'g ':5, 'c');
- for i := 0 to l - 1 do
- begin
- if i = 0 then c := '1' else c := '';
- for m := 1 to n do
- begin
- r := (i div trunc(power(2, n - m))) mod 2;
- write(r:4);
- if r = 1 then begin
- if c.Length > 0 then c:=c+chr(8896);
- c := c + 'x' + m;
- end;
- end;
- if g[i] = 1 then
- if (expr.Length > 0) and (c.Length > 0)
- then expr := expr + ' ' + chr(8853) + ' ' + c
- else expr := c;
- writeln(f[i]:4, g[i]:4, ' ', c);
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement