Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2012, 08:14   #1
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию Программа или модуль для автоматического построения алгоритмов из языка Pascal/Delphi/C

Нужен модуль для интеграции в своё приложение возможности рисования блок схем.
есть ли где исходники в свободном доступе (на языке Delphi) или лучше писать свой?

переводчик из кода в схему
пример программы
http://almiur.ru/show_prog_9.html
но нужен исходник или компонент. есть такой в сети или нет. бесплатно
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype

Последний раз редактировалось denisbrain; 20.04.2012 в 08:27.
denisbrain вне форума Ответить с цитированием
Старый 20.04.2012, 09:35   #2
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию Функции для работы блока

функция удаления комментариев из тексте программы

Цитата:

Function DeleteCommentPas(s:string):string;
var l : Integer; // Длина текста
x : Integer; // временная переменная
s2:string; // полученный текст
beg:boolean; // Признак того что началась строка '' например s2:='}';
CommentRow:boolean; // признак того что начался комментарий до конца строки
CommentBlock:boolean; // признак того что начался Блок коментариев

begin
s2:='';
l:=length(s);
beg:=false;
CommentRow:=false;
CommentBlock:=false;
for X:=1 to l do begin
if (not CommentRow) and ( not CommentBlock) // если символ не входит ни в один из блоков то продолжить изучение строки
then begin
if s[x]=#39 {'} then if beg then beg:=false else beg:=true; // если строка началась значит коментарий не может быть
if beg=false then begin // если стока не началась то продолжаем изучение
if (s[x]='{') then CommentBlock:=true
else if (s[x]+s[x+1]='//') then CommentRow:=true
else s2:=s2+s[x];
end else s2:=s2+s[x]; // если стока началась то просто копируем символы строки в исходную строку
end else begin // если символ входит в один из блоков
if CommentRow then begin
if s[x]+s[x+1]=#13#10 then begin CommentRow:=false; s2:=s2+s[x]; end
end;
if CommentBlock then begin
if s[x]='}' then begin CommentBlock:=false; end;
end;


end;
end;
result:=s2;
end;


прошу протестировать
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype

Последний раз редактировалось denisbrain; 20.04.2012 в 09:38.
denisbrain вне форума Ответить с цитированием
Старый 22.04.2012, 08:57   #3
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

определим для программы список ключевых слов Pascal

Код:
const
  WordList:array [1..65] of string =('and','except','label','resourcestring',
  'array','exports','library','set','as','file','mod','shl','asm',
  'finalization','nil','shr','begin','finally','not','string','case','for',
  'object','then','class','function','of','threadvar','const','goto','or','to',
  'constructor','if','out','try','destructor','implementation','packed','type',
  'dispinterface','in','procedure','unit','div','inherited','program','until',
  'do','initialization','property','uses','downto','inline','raise','var',
  'else','interface','record','while','end','is','repeat','with','xor');

и напишем процедуру проверки ключевого слова
Код:
Function GetSlovoInArray(s:string):Boolean;
 var x:integer;
begin
  result:=false;
  for X:=1 to 65 do if  WordList[x]=s then begin result:=true; exit; end;
end;
и определим список разделителей для операций в паскале
Код:
 WordDelimiters := [' ',';',':'];

кроме того необходимо разделить слова на управляющие и те которые могут быть в выражениях
If/then while/do repeat/until
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype

Последний раз редактировалось denisbrain; 22.04.2012 в 09:00.
denisbrain вне форума Ответить с цитированием
Старый 24.11.2012, 10:16   #4
niki-maximal
Пользователь
 
Регистрация: 11.09.2012
Сообщений: 13
По умолчанию

исходника так и не у кого нет? просто я не могу понять
niki-maximal вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для вычисления значений координаты и скорости и для построения графика орбиты планет (Паскаль) katyazpk Помощь студентам 9 06.12.2011 05:16
программа для автоматического добавления статей на сайт FastMasters Помощь студентам 0 13.10.2010 16:27
Программа по дискретной математике на Delphi или pascal Bender333 Помощь студентам 5 10.01.2009 18:48
написать модуль в Делфи для построения графика Анютик Общие вопросы Delphi 2 26.03.2008 03:04
Программа для автоматического заполнения полей Маркъ Общие вопросы Delphi 2 23.06.2007 12:38