Блок схема

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by rubik-nerubik, 16 Dec 2007.

  1. rubik-nerubik

    rubik-nerubik Elder - Старейшина

    Joined:
    4 May 2007
    Messages:
    248
    Likes Received:
    9
    Reputations:
    -2
    Люди вот есть задача, я сделал блок-схему кто-нибудь проверит???
    задача:
    Code:
    program f4;
    uses crt; { Подключаем стандартный модуль crt, без него не работает intTostr }
    var ss,s:string; n,i,k:longint;
    procedure um(a,b:string;var c:string);  
    var n,k,i,j,x,p:integer;
        d:string;
    begin
     n:=length(s); { возвращает количество элементов в массиве или строке }
     k:=length(b); { аналогично }
     c:=''; d:=''; p:=0;
     for i:=1 to n+k do d:=d+'0';
     for j:=k downto 1 do
      begin
      p:=0;
      for i:=n downto 1 do begin
      x:=(ord(a[i])-ord('0'))*(ord(b[j])-ord('0'))+p+ord(d[i+j])-ord('0');
      d[i+j]:=chr((x mod 10)+ord('0')); { показывает порядковый номер integer }
      p:=x div 10;
                            end;
      d[j]:=chr(ord(d[j])+p);
      end;
     i:=1;
     n:=length(d);
     while (d[i]='0') and (i<n) do inc(i);
     for k:=i to n do c:=c+d[k];
    end;
    
    procedure sum(a,b:string;var c:string);
    var x,i,p,n,k:integer;
    begin
     n:=length(a);
     k:=length(b);
     p:=0;
     c:='';
     if n<k then begin
     for i:=n+1 to k do
     a:='0'+a;
                 end else
     begin
     for i:=k+1 to n do
     b:='0'+b; end;
     n:=length(a);
     for i:=n downto 1 do
      begin
      x:=ord(a[i])-ord('0')+ord(b[i])-ord('0')+p;
      c:=chr((x mod 10)+ord('0'))+c; 
      p:=x div 10;
      end;
     if p<>0 then
     begin
      inc(n);
      c:='1'+c;
     end;
    end;
    
    function chstr(a: Integer): string;
    var  s: string;
    begin
      Str(a, s); { Конвертирует целое число или число с плавающей точкой в строку }
      chstr:= s; 
    end;
    
    begin
    writeln('+--------------------------------------------------------+');
    Writeln('+-‡*¤*з* ** **宦¤Ґ*ЁҐ д*Єв®аЁ*«*, ўЁ¤*: 1!+2!+3!+..+n!');
    write('+-‚ўҐ¤ЁвҐ зЁб«®, n>10: ');
    read(n);
    if(n>=10) then begin
    ss:='';
    for i:=1 to n do begin
     s:='1';
     for k:=1 to i do   um(s,chstr(k),s);
     sum(ss,s,ss);
                     end;
    writeln('+-1!+2!+3!+..+',n,'!=',ss);
    writeln('+--------------------------------------------------------+');
    write('+-‚ўҐ¤ЁвҐ «оЎ®Ґ зЁб«® Ё **¦¬ЁвҐ Enter ');
    read(n);
    end
    else
    writeln('+-?§ўЁ*ЁвҐ, *® ў*иҐ зЁб«® ¬Ґ*миҐ 10----------------------+');
    writeln('+--------------------------------------------------------+');
    
    
    end.
    а вот и блок-схема,
    я там отдельно описал две процедуры и саму блок-схему, в ворде
    http://slil.ru/25242496/2031462441/Программа_н_4.doc
     
  2. rubik-nerubik

    rubik-nerubik Elder - Старейшина

    Joined:
    4 May 2007
    Messages:
    248
    Likes Received:
    9
    Reputations:
    -2
    http://slil.ru/25242496/2031462441/Программа_н_4.doc
     
  3. TTyck

    TTyck Elder - Старейшина

    Joined:
    12 Nov 2005
    Messages:
    91
    Likes Received:
    41
    Reputations:
    11
    Для таких целей я юзаю сие чудо =>
    FCEditor -редактор блок-схем. Позволяет импортировать схемы из кода программы. При этом выравнивание блоков, стрелок происходит автоматически.
    Особенности :

    Импорт схемы из программного кода
    Автоматическое выравнивание блоков и стрелок
    Возможность изменения типа блоков
    Копирование и вставка блоков схемы
    Отдельная схема для каждой процедуры
    Возможность вставки разрывов страниц
    Экспорт схемы в графический файл
    Экспорт схемы в код
    Низкая цена реализации

    _http://www.fceditor.nm.ru/fceditor.zip
     
    2 people like this.
  4. Loker

    Loker Elder - Старейшина

    Joined:
    25 Oct 2007
    Messages:
    46
    Likes Received:
    23
    Reputations:
    5
    Вот за эту прогу спасибо огромное, я искал по всему инету проги для автоматического рисования блок схем, и все они не работали...