Вам необходимо преобразовать множество старых программ для новой версии компилятора. Для...

0 голосов
80 просмотров

Вам необходимо преобразовать множество старых программ для новой версии компилятора. Для этого необходимо заменить "->" на "." везде, кроме комментариев. Комментарии в данном языке программирования начинаются с символов "//" и продолжаются до конца строки. Напишите программу, выполняющую такое преобразование. Входной файл содержит от 1 до 500 строк длиной не более 50 символов с ASCII-кодами от 32 до 127 – текст программы, которую нужно преобразовать. В выходной файл вывести преобразованный текст программы.

Пример ввода

Test* t = new Test(); t->a = 1; t->b = 2; t->go(); // a=1, b=2 -> a=2, b=3

Вывод для примера

Test* t = new Test(); t.a = 1; t.b = 2; t.go(); // a=1, b=2 -> a=2, b=3

Информатика (1.2k баллов) | 80 просмотров
0

var a,b,c:real; i,n:integer;beginreadln(n);if n>0 then beginif n=0 then writeln;for i:=0 to n-2 do begin readln(a,b,c);if (a+b>=c)and(b+c>=a)and(a+c>=b) then writeln('yes')else writeln('no');end;end;writelnend.

0

ошибка у меня через каждые три цифры выводит и цикл должен повторяться пока значение не равно 0

Дан 1 ответ
0 голосов
Правильный ответ

Var  sFile: array of string := System.IO.File.ReadAllLines('in.txt');
  sComm, str2: string;
begin
  foreach str: string in sFile do
  begin
    sComm := System.Text.RegularExpressions.Regex.Matches
      (str, '.*(//.*)').Item[0].Groups[1].Value;
    System.IO.File.AppendAllText('out.txt', String.Format('{0}{1}', sComm.Insert(0, System.Text.RegularExpressions.Regex.Replace(str, '(.*)//.*', '$1').Replace('->', '.')), System.Environment.NewLine));
  end;
end.

(16.9k баллов)
0

Аццки, знаю

0

Зато работает и довольно лаконично вышло

0

Я пока не знаю, как String.Format заменять, плюс не подходит, запятая - тоже

0

спасибо. сейчас проверю

0

какой язык у меня просто ошибку компиляции выдает

0

на паскале

0

Pascal + .NET

0

Например PascalABC.NET запросто берёт