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

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

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.12.2009, 10:58   #1
QuadroX
323787261
Пользователь
 
Аватар для QuadroX
 
Регистрация: 19.12.2008
Сообщений: 49
По умолчанию Строки в Delphi

Написать функцию, которая будет форматировать код программы, представленный в виде строки в html c подсветкой синтаксиса (должны выделяться как минимум идентификаторы и комментарии, желательно также чтобы выделялись числа и строки). Возможный вариант работы функции приведен ниже.

Входная строка:

Код:
{$Apptype Console}
program First;

const
  A=5;

var
  B: Integer;

begin
  Write('Введите B: '); ReadLn(B);
  WriteLn('B*', A, ' = ', B*A);
end.
Результат обработки функцией:
Код:
<html>

<head>
  <title>program First</title>
</head>
<style>
  pre.program {
    font-family: courier new, monospace;
    font-style: normal;
    color: Black;
  }
  span.comment {
    font-style: italic;
    color: DarkGray;
  }
  span.ident {
    font-weight: bold;
    color: Blue;
  }
  span.number {
    color: Magenta;
  }
  span.string {
    color: DarkCyan;
  }
</style>

<body>
  <pre class="program">
<span class="comment">{$Apptype Console}</span>
<span class="ident">program</span> First;

<span class="ident">const</span>
  A=<span class="number">5</span>;

<span class="ident">var</span>
  B: Integer;

<span class="ident">begin</span>
  Write(<span class="string">'Введите B: '</span>); ReadLn(B);
  WriteLn(<span class="string">'B*'</span>, A, <span class="string">' = '</span>, B*A);
<span class="ident">end</span>.
  </pre>
</body>

</html>
В браузере:
{$Apptype Console}
program First;

const
A=5;

var
B: Integer;

begin
Write('Введите B: '); ReadLn(B);
WriteLn('B*', A, ' = ', B*A);
end.

Функцию реализовать следующим образом. Попробую сам объяснить так, как мне объяснял преподаватель. =) В общем у каждого объекта есть несколько состояний, которые в результате выполнения каких-то заданных условий и совершения над ними действий переходят в другие состояния. Например ближе к данной задачи в функции мы должны побуквенно пробегать указателем каждый символ строки и смотреть на его признаки. По умолчанию состояние будет Empty. Далее например, если мы встречаем символы ['_', 'a..z', 'A..Z'] то меняем это состояние на идентификатор. Присваиваем Identifier. После чего идентификатор может перейти в зарезервированное слово, для этого мы накапливаем полученную строку в каком-то буфере и если при прохождении указателя далее по буквам "вырисовывается" зарезервированное слово, то состояние объекта переходит в Keyword и в HTML строке оно выделяется как keyword. Всего таких состояний:

1) Empty - начальное состояние
2) String - строка в апострофах ' ';
3) Number - число;
4) Identefier - идентификатор;
5) Keyword - ключевые слова (все какие есть);
6) Comment1 - комментарий { }
7) Comment2 - комментарий (* *)
8) Comment3 - комментарий //

Думаю идею как-то донес. Саму программу реализовать желательно на формах, где есть 2 поля memo (ввод и вывод) и кнопка Форматировать. Во втором поле будет отформатированных как HTML текст с подсветкой синтаксиса. В файлах реализовывать необязательно.

За работу плачу 300р. Если сумма не устраивает, то предлагайте свою.
ICQ: 323787261
Email: pschegolevatykh@gmail.com
QuadroX вне форума Ответить с цитированием
Старый 31.12.2009, 11:04   #2
ess
Новичок
Джуниор
 
Регистрация: 19.12.2009
Сообщений: 0
По умолчанию

готов 435876325 shurik_e@mail.ru
ess вне форума Ответить с цитированием
Старый 31.12.2009, 11:34   #3
QuadroX
323787261
Пользователь
 
Аватар для QuadroX
 
Регистрация: 19.12.2008
Сообщений: 49
По умолчанию

ess взял заказ.
ICQ: 323787261
Email: pschegolevatykh@gmail.com
QuadroX вне форума Ответить с цитированием
Старый 02.01.2010, 17:08   #4
QuadroX
323787261
Пользователь
 
Аватар для QuadroX
 
Регистрация: 19.12.2008
Сообщений: 49
По умолчанию

Заказ был выполнен в сроки. Все отлично работает. =)
ICQ: 323787261
Email: pschegolevatykh@gmail.com
QuadroX вне форума Ответить с цитированием
Старый 06.02.2010, 19:52   #5
QuadroX
323787261
Пользователь
 
Аватар для QuadroX
 
Регистрация: 19.12.2008
Сообщений: 49
По умолчанию

Поднимаю тему. В общем задание остается прежним. Программу, которую написал мне ess, я не смог защитить и вообще не смог ничего понять в коде. Как следствие не смог добавить туда элементарную вещь: заголовок программы выводить в заголовок HTML страницы. Заголовком программы считается все после ключевого слова program или unit и до точки с запятой. В общем задача теперь. Сделать или по возможности переделать готовую прогу с исходниками на "простой и понятный лад". Мне не нужны громоздкие классы и объекты. Программа изначально была расчитана на работу со строками. То есть там даже до темы "Записи" далеко, не то что до классов и объектов. Разумеется преподаватель понял, что я не мог это написать сам. Так что основное требование сделать прогу понятной новичку и без лишних "понтов" и сложных конструкций.

Теперь конкретнее что я хочу:

1) Сделать задачу описанную выше на Delphi с помощью простых конструкций, так, чтобы было все ясно и понятно новичку т.е. мне. Пройденные темы: Линейные алгоритмы, Условия, Циклы, Массивы, Процедуры и функции, Строки. Не надо ничего больше накручивать, если можно обойтись более простыми вещами.

2) Снабдить задачу построчными комментариями, там где это возможно и (или) объяснить мне принцип работы и все аспекты по ICQ или скайпу. Повторю, что главное, чтобы я в ней разобрался и смог что-то добавить по требованию преподавателя. Теорию по строкам я разумеется знаю. Думаю будет не очень трудно мне объяснять.

3) Логику и интерфейс делать отдельно. Отдельно это не обязательно в разных модулях. Модуль то как раз лучше оставить один. Так меньше путаницы. Просто нужно сделать так чтобы все вычисления и преобразования (логика) проходили в отдельных функциях и не были привязаны к интерфейсной части, т.е. там не должно быть всяких Memo и Button. Это делает программу универсальной и переписать ее будет просто как на паскале, так и на других языках не цепляясь за объекты интерфейса. Интерфейсные объекты (memo и кнопки) используются просто как средства ввода/вывода и никакой логики в их процедурах быть не должно. Они просто должны вызывать расчетные функции, передавая им параметры.

4) Как я уже говорил готовая задача есть. Исходники я без проблем предоставлю. К тому же есть некоторые наработки, которые тоже могут помочь в решении.

Пишите цены, кто возьмется лучше сюда либо в ICQ. Задание и исходники скину в *.doc файле. Теперь по поводу оплаты, ясен пень послать мне работающую программу не достаточно, ибо я не смогу оценить качество исходников и не смогу разобраться. Так что предоплаты не будет. Оплата только после того как все будет сделано и я во всем разберусь. Ограничения на сроки пока нет. У меня уже из-за нее хвост висит. Думаю все расписал. Если что-то не понятно то в пишите в ICQ. Обсудим.
ICQ: 323787261
Email: pschegolevatykh@gmail.com
QuadroX вне форума Ответить с цитированием
Старый 06.02.2010, 20:31   #6
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Препод вам объяснял тему "конечных автоматов". Могу переписать все по простому, без предоплаты, с объяснениями, пишите на почту (исходники + другая информация).
Почта: intel-art@ya.ru
Оплата 150 рублей, после выполнения и объяснения работы.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума Ответить с цитированием
Старый 06.02.2010, 20:36   #7
Volt
Форумчанин
 
Аватар для Volt
 
Регистрация: 07.12.2008
Сообщений: 244
По умолчанию

пишите готов сделать 356-774-206
|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅]
Volt вне форума Ответить с цитированием
Старый 06.02.2010, 21:59   #8
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Заказ взят
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума Ответить с цитированием
Старый 08.02.2010, 12:06   #9
QuadroX
323787261
Пользователь
 
Аватар для QuadroX
 
Регистрация: 19.12.2008
Сообщений: 49
По умолчанию

Заказ еще актуален.
ICQ: 323787261
Email: pschegolevatykh@gmail.com
QuadroX вне форума Ответить с цитированием
Старый 08.02.2010, 16:20   #10
QuadroX
323787261
Пользователь
 
Аватар для QuadroX
 
Регистрация: 19.12.2008
Сообщений: 49
По умолчанию

Заказ взят.
ICQ: 323787261
Email: pschegolevatykh@gmail.com
QuadroX вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
строки в Delphi Михаил70 Помощь студентам 2 15.09.2009 02:05
delphi строки motaro Общие вопросы Delphi 5 21.08.2009 18:45
Delphi. Строки. inmate Помощь студентам 2 19.05.2008 18:14
#Delphi Строки forumu Помощь студентам 3 24.12.2007 23:31
Строки в Delphi. Wise Помощь студентам 9 03.12.2007 17:58