Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конвертер кода, Pascal -> C++ 
:(
    Опции темы
Жанна23
Дата 17.12.2011, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 12.5.2011

Репутация: нет
Всего: нет



Уважаемые программисты!
Нужна ваша подсказка. Эта программа - конвертер с Pascal на C++ . На первый взгляд программа работает, но есть ньюансы – ошибки, которые я уже без вашей помощи уже не смогу исправить.
Если я очищаю левое поле и ввожу «program», то всё вроде бы нормально – конвертируется правильный С++. Если же добавляю к program имя программы – эта строчка игнорируется переводчиком.
Помогите исправить. Вот код:

Присоединённый файл ( Кол-во скачиваний: 159 )
Присоединённый файл  _________________.rar 271,04 Kb
PM MAIL   Вверх
Данкинг
Дата 17.12.2011, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Как игнорируется?

program asaiaia
procedure aaa

program asaiaia
void aa()



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Жанна23
Дата 17.12.2011, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 12.5.2011

Репутация: нет
Всего: нет



Вот блин, оказывается со второго раза только конвертация срабатывает. Короче в лучшем случае первая строка на С++ просто остается пустой. Где то я напортачила
PM MAIL   Вверх
Данкинг
Дата 18.12.2011, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



У меня с первого всё работает.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Жанна23
Дата 18.12.2011, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 12.5.2011

Репутация: нет
Всего: нет



Ну это наверное только когда вы просто "program", сверху добавляете. А вы попробуйте написать "program ab" , нажмите на "Перевести на С++" и посмотрите на код справа
PM MAIL   Вверх
Данкинг
Дата 18.12.2011, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Код

program ab
function Min(A:integer;B:integer):integer;
var
  m:integer;
begin
  if A>B then m:=A
  else m:=B;
  Result:=m;
end;

procedure Maximum;
var
  max,N,i:integer;
  a,b:real;
begin
  i:=1;
  write('Enter number of numbers');
  readln(N);
  readln(a);
  max:=a;
  repeat
    i:=i+1;
    write('Enter digit');
    readln(b);
    if b>max then max:=b;
  until i<=N;
  writeln(max);
end;

Код

program ab
main()
int Min(int A,int B)
{
int m;
if(A>B) m=A;
else m=B;
return m;
}
void Maximum()
{
int max,N,i;
double a,b;
i=1;
write('Enter number of numbers');
readln(N);
readln(a);
max=a;
do {
i=i+1;
write('Enter digit');
readln(b);
if(b>max) max=b;
} while(!(i<=N));
writeln(max);
}



Добавлено через 4 минуты и 3 секунды
Кстати, не проще вместо этого:
Код

procedure RemoveUnnessesarySpaces(var S:string);
begin
  while Pos(' ',S)=1 do Delete(S,1,1);
end;

Написать
Код

s:=Trim(s);

?!


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Жанна23
Дата 18.12.2011, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 12.5.2011

Репутация: нет
Всего: нет



Вообще-то я замышляла так, чтобы справа код С++ был, а значит вместо program - #include<stdio.h>  smile 
PM MAIL   Вверх
Данкинг
Дата 18.12.2011, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



А, вот оно что. smile 
Тогда меняем строчку:
Код

//if Memo1.Lines[0]='program' then Memo2.Lines[0]:= '#include<stdio.h>';
if pos('program',lowercase(Memo1.Lines[0]))<>0 then Memo2.Lines[0]:= '#include<stdio.h>';



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Жанна23
Дата 18.12.2011, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 12.5.2011

Репутация: нет
Всего: нет



Да, действительно помогло! Спасибо! smile 
Хотела ещё кое-что уточнить, но уже не могу, компьютер перед глазами расплывается. У нас уже пятый час утра. Завтра спрошу. (Т.е. уже сегодня  smile )
PM MAIL   Вверх
Данкинг
Дата 18.12.2011, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Пятый час утра сейчас где-то в районе Оренбурга. smile 

Цитата(Жанна23 @  18.12.2011,  02:11 Найти цитируемый пост)
Да, действительно помогло!

Естественно: так ищется именно вхождение строки, а не целая строка.



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Жанна23
Дата 18.12.2011, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 12.5.2011

Репутация: нет
Всего: нет



Добрый вечер!
Я вот что ещё хотела спросить, в этой программе есть ещё такой момент: если пользовтель ввёл начало кода (program) не в первую строку поля Memo1, а во вторую , т.е. весь исходник сместил на строку (или несколько строк) вниз, то конвертируется всё, кроме этого начала. Как это исправить?

Это сообщение отредактировал(а) Жанна23 - 18.12.2011, 18:04
PM MAIL   Вверх
Данкинг
Дата 18.12.2011, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(Жанна23 @  18.12.2011,  19:03 Найти цитируемый пост)
Как это исправить?

Удалить все пустые строки сверху, и дальше уже работать как обычно. Пустая строка - это если, например,
Код

if length(trim(Memo1.Lines[xxx]))=0 then
...



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Жанна23
Дата 18.12.2011, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 12.5.2011

Репутация: нет
Всего: нет



Точно ведь, и как мне это не пришло в голову?
Кстати что это за новинка такая "trim" ? С чем её едят? smile 
PM MAIL   Вверх
Данкинг
Дата 18.12.2011, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Какая ещё новинка - это функция обрезания пробелов с обеих сторон. smile Ты с Фоксом не работала - там без подобных функций никуда.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Жанна23
Дата 18.12.2011, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 12.5.2011

Репутация: нет
Всего: нет



Нее, Фокса  я знаю только как бандита из "Место встречи изменить нельзя". smile 
А серьёзно, в первый раз увидела, спасибо
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0572 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.