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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2012, 20:19   #1
GamBitFRK
Пользователь
 
Регистрация: 17.12.2011
Сообщений: 78
По умолчанию Текстовые файлы Паскаль

Вывести на экран все идентификаторы переменных, которые используются в программе. Программу брать любую, главное чтобы была рабочая на 100 %
GamBitFRK вне форума Ответить с цитированием
Старый 10.05.2012, 21:01   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

И в чем проблема?
s-andriano вне форума Ответить с цитированием
Старый 10.05.2012, 21:06   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Любую любую? Без ограничения по языкам?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.05.2012, 21:09   #4
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Любую любую? Без ограничения по языкам?
Цитирую заголовок темы:
Текстовые файлы Паскаль
Есть другие идеи?
s-andriano вне форума Ответить с цитированием
Старый 10.05.2012, 21:36   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Есть. На паскале нужно написать анализатор программ, который выбирает из них список переменных. Не сказано что сами программы, которые нужно анализить, должны быть написаны на паскале.
Читай Внимательно -
Цитата:
Программу брать любую
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.05.2012, 22:20   #6
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

В заголовке нет точки, следовательно, это одно предложение.
Значит, исходники (текстовые файлы) - на Паскале.
Язык реализации - любой.

Так написано.
Хотя, что хотел написать ТС, я не знаю.

Последний раз редактировалось s-andriano; 10.05.2012 в 22:23.
s-andriano вне форума Ответить с цитированием
Старый 10.05.2012, 22:47   #7
GamBitFRK
Пользователь
 
Регистрация: 17.12.2011
Сообщений: 78
По умолчанию

Сама программа должна быть тоже на паскале
GamBitFRK вне форума Ответить с цитированием
Старый 10.05.2012, 23:22   #8
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Скажите, вот если у Вас будет листок с текстом программы, Вы вручную сможете найти в ней все идентификаторы?
s-andriano вне форума Ответить с цитированием
Старый 12.05.2012, 09:21   #9
GamBitFRK
Пользователь
 
Регистрация: 17.12.2011
Сообщений: 78
По умолчанию

Смогу, почему нет
GamBitFRK вне форума Ответить с цитированием
Старый 12.05.2012, 11:05   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

задание сложное. по хорошему здесь нужно писать лексический и синтаксический анализатор.


по простому (исключительно в учебных целях!)
можно поступить так:

читаем код. ищем
либо секуцию VAR и выбираем всё из данной секции, нас интересует всё до двоеточия, пока не начнётся новая секция кода.

если нужно учитывать идентификаторы, являющиеся параметрами процедур/функций
то ещё ищем ключевые слова procedure / function - и разбираем параметры этих функций (всегда в круглых скобках)

И НЕ забывать игноровать код в строковых константах и закомментаренный код...

Цитата:
Сообщение от GamBitFRK
Смогу, почему нет
покажите, пожалуйста, свои возможности на этом коде:
Код:
uses Dos;
type
   BytePtr = ^byte;
var
   MyMelody : BytePtr;
   Quadro   : BytePtr;
   DeathMarch : BytePtr;
   Scerco : BytePtr;
   Dur    : Integer;
var
   Int1CSave : pointer;
procedure TurnMusicOff; begin end;
procedure IncludeMelody(NewMelody : pointer);
const
   Pause = 0;
   EndOfMelody = $FF;
   TimerTick = 1193180;
   Hz : array[1..12] of LongInt =
      (13081,13859,14683,15556,16481,17461,18499,19599,20765,22000,23308,24694);
   UserClockHandle = 16;
var
   MelodyTable : BytePtr;
   StartOfMelody : BytePtr;
   Dur : byte;
   CurNote : byte;
   Notes : array[Pause..72] of word;
const
   FakeCode : string = 'test code var i,j : integer ';
   MyMelodyTable : array[1..5] of byte =(  10,4,10,4,13);
   QuadroTable : array[1..2] of byte =(3,$FF);
   DeathMarchTable : array[1..23] of byte = (
      10,8,10,12,10,4,10,8,13,12,12,4,12,12,10,4,10,8,8,9,9,4,$FF);
   ScercoTable : array[1..5] of byte =(45,2,49,2,$FF);
   procedure Incr(var P : BytePtr);
   type PtrType = record
      O,S : word;
   end;
   var
      V : PtrType absolute P;
      {
      buga : Integer;
      }
   begin
      Inc(V.O);
   end;
begin
   Dec(Dur);
   if Dur<>0 then
     exit;
   Port[$61]:=Port[$61] and $FC;
   if MelodyTable^=$FF then
     MelodyTable:=StartOfMelody;
   CurNote:=MelodyTable^;
   Incr(MelodyTable);
   Dur:=MelodyTable^;
   Incr(MelodyTable);
   if CurNote=Pause then
     exit;
   Port[$43]:=$B6;
   Port[$42]:=Lo(Notes[CurNote]);
   Port[$42]:=Hi(Notes[CurNote]);
   Port[$61]:=Port[$61] or 3;
end;
begin
end.
выпишите из этого кода все идентификаторы переменных
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текстовые файлы в Паскаль Юлька) Паскаль, Turbo Pascal, PascalABC.NET 6 05.01.2012 16:49
текстовые файлы [Паскаль] <Tyz> Помощь студентам 9 25.12.2010 12:17
Текстовые файлы!(Паскаль) Cas01 Помощь студентам 3 18.12.2010 15:43
Текстовые файлы. Паскаль катя123 Помощь студентам 3 06.01.2010 23:38