![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 17.11.2008
Сообщений: 4
|
![]()
Всем доброй ночи
![]() Нужна помочь, дали брату задание по программированию, суть задания такова: Есть исходник на Паскале, но без раздела описи данных (var) но с переменными и присвоенными им значениями, надо восстановить раздел описи и присвоить переменным соответствующие типы данных, тоесть получить рабочий код. Вижу такое решение: -поиск в исходном коде - копирование - вставка в конечный код, но что искать? - и как определить тип данных? по попаданию в диапазон? или каким то другим условием? Жду Ваших советов ![]() |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 28.03.2007
Сообщений: 1,814
|
![]()
для начала исходник можно глянуть
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 17.11.2008
Сообщений: 4
|
![]()
Дело в том что исходник может быть любой, просто задание так звучит, а программа должна работать с любым исходником на Паскале.
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Вам нужно написать урезаннный лексический анализатор.
читайте литературу/ищите примеры... |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]()
y:=r+5.2;
получаем y: real(double,extended) s:=cv+'345'; s: string;
программа — запись алгоритма на языке понятном транслятору
|
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
я бы упростил задачу:
Цитата:
y:=12.5; i:=1; s:='stroka'; a[i]:=True; |
|
![]() |
![]() |
![]() |
#7 | |
Регистрация: 17.11.2008
Сообщений: 4
|
![]() Цитата:
var y:real; i:integer; s:string; a:array of boolean; |
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 17.11.2008
Сообщений: 4
|
![]()
вот попробовал решить так:
function MyPos(const FindStr, SourceString: PChar; Num: Integer): PChar; begin Result := AnsiStrPos(SourceString, FindStr); if (Result = nil) then Exit; //Подстрока не найдена Inc(Result); if Num = 1 then Exit; if num > 1 then Result := MyPos(FindStr, Result, num - 1); end; begin FirstSym := PChar(SourceString); Result := MyPos(PChar(FindStr), PChar(SourceString), Num) - FirstSym; if Result < 0 then Result := 0; end; procedure TForm1.Button2Click(Sender: TObject); var StrF, StrSrc,buf: string; n,m,i: Integer; begin StrF:=':='; m:=memo1.Lines.Count; for i:=0 to m do begin strsrc:=memo1.Lines.Strings[i]; n := SearchString(StrF, StrSrc,0); if n >0 then begin buf:=copy(memo1.Lines.Strings[i],0,n-1); end; end; end; находим строку :=, а дальше берем копируем переменную, что поместить в var, а как отделить числовое значения переменной? и проверить его тит даных? проверял вот на етом: begin x:=2.23; y:=2.63; z:=8.45; a:=x+y+z; end; мож кто то что посоветует? Последний раз редактировалось Lassard; 21.11.2008 в 13:57. Причина: дооформил |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]()
как узнать что это комментарий?
как отличить значения от операций? как отличить строку(символ) от числа? как отличить целое число от вещественного?
программа — запись алгоритма на языке понятном транслятору
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа со строками | GoAnd | Общие вопросы по Java, Java SE, Kotlin | 9 | 22.09.2010 03:36 |
Работа со строками. Delphi | defeat | Помощь студентам | 4 | 10.01.2008 13:39 |
[С++]работа со строками | Федор | Помощь студентам | 6 | 23.12.2007 12:35 |