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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2009, 07:00   #1
alex67
Новичок
Джуниор
 
Регистрация: 09.12.2009
Сообщений: 2
По умолчанию Анализ текста программы на Delphi. Сколько раз встречается оператор.

Доброго времени суток!

Подскажите пожалуйста решение вот такой задачки: посчитать сколько раз в тексте произвольной программы встречается оператор FOR.

Заранее благодарен!
alex67 вне форума Ответить с цитированием
Старый 09.12.2009, 07:06   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Ну так загружаешь в Мемо файл проги и подсчитваешь число слова For.
Для этого нужно две функции:
1. Подсчет сколько раз встречается For в строке
2. Подсчет сколько раз встречается For в Мемо (основываясь на первой).

Искать в строке можно по функции Pos (описание можно найти и в справке и в инете)
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 09.12.2009, 07:16   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Ну так загружаешь в Мемо файл проги и подсчитваешь число слова For.
ну, это только если упростить задачу.
в реальной жизни такой алгоритм может дать сбой - он подсчитает и те FOR, которые закомментированы (ну это ещё не так страшно), но и те, которые написаны в тексте.
Характерно, что для самой программы подсчёта этот подсчёт будет работать некорректно:
Код:
  if Pos('FOR', Memo1.Lines[i])>0 then ...
сколько в этом код встречается оператор FOR ?

alex67, но, я думаю, что Вас (и Вашего преподавателя) должен устроить алогоритм, предложенный Utkin - в противном случае надо писал лексический анализатор, а это уже совершенно иной уровень сложности!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.12.2009, 08:32   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

В задании о комментариях не слова, я тоже о них думал, но нет так нет . Разве комментарий не текст программы?
Цитата:
посчитать сколько раз в тексте произвольной программы встречается оператор FOR.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 09.12.2009, 08:41   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Все робята, хватит дракона ремонтировать.
Автор помоему уже понял что залез в склюзкую тему.
От себя дополню своим способом, использую его давно и сбоя он еще не давал
Код:
var s:string;k,i:integer;
begin
 s:='For to do my FOR by o by';
 s:=UpperCase(s);k:=0;
 for I := 1 to length(s) do
   k:=k+byte(copy(s,i,3)='FOR');
 writeln(k);
 readln;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.12.2009, 16:24   #6
alex67
Новичок
Джуниор
 
Регистрация: 09.12.2009
Сообщений: 2
По умолчанию

Всем большое спасибо за идеи! Буду пробовать.
alex67 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сколько раз слово встречается в строке ksu25 Паскаль, Turbo Pascal, PascalABC.NET 1 25.09.2009 15:53
Сколько раз в тексте встречается каждое слово. 08ekhiv1 Помощь студентам 2 11.03.2009 10:56
сколько раз заданное слово встречается в данной строке pascal1994 Помощь студентам 4 04.02.2009 08:41
Сколько раз встречается данное слово n1k1c4 Помощь студентам 4 13.12.2007 20:33