Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Блок схема (https://forum.antichat.xyz/showthread.php?t=55943)

rubik-nerubik 16.12.2007 20:04

Блок схема
 
Люди вот есть задача, я сделал блок-схему кто-нибудь проверит???
задача:
Код:

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<br />

rubik-nerubik 16.12.2007 20:05

http://slil.ru/25242496/2031462441/Программа_н_4.doc

TTyck 21.12.2007 19:38

Для таких целей я юзаю сие чудо =>
FCEditor -редактор блок-схем. Позволяет импортировать схемы из кода программы. При этом выравнивание блоков, стрелок происходит автоматически.
Особенности :

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

_http://www.fceditor.nm.ru/fceditor.zip

Loker 28.12.2007 17:45

Вот за эту прогу спасибо огромное, я искал по всему инету проги для автоматического рисования блок схем, и все они не работали...


Время: 01:12