Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
i_SamSky
6 / 6 / 0
Регистрация: 13.04.2012
Сообщений: 57
#1

Pascal to C++ - C++

21.04.2012, 20:46. Просмотров 688. Ответов 7
Метки нет (Все метки)

Может кто-нибудь перевести из Pascal на C++?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
var 
    os: string; 
    s: string; 
    p: integer; 
    ts: string; 
    c: boolean; 
begin 
    Assign(input, 'input.txt'); 
    reset(input); 
    Assign(output, 'output.txt'); 
    rewrite(output); 
 
    while not EOF(input) do 
    begin 
        readln(os); 
        c:= false; 
        s:=os; 
 
        repeat 
            p := Pos(' ', s); 
            if p>0 then Delete(s, p, 1); 
        until p=0; 
 
        ts := Copy(s, Length(s)-2, 3); 
        if (ts='+1;') or (ts='-1;') then 
        begin 
          Delete(s, Length(s)-2, 3); 
          p := pos(':=', s); 
          if p>0 then 
          begin 
            if Length(S) mod 2 = 0 then 
            begin 
                if Copy(s, 1, Length(s) div 2-1) = Copy(s, 2+Length(s) div 2, Length(s)) then 
                begin 
                    c:= true; 
                    if ts[1] = '-' then 
                        s := 'Dec('+Copy(s, 1, Length(s) div 2-1)+');' 
                    else 
                        s := 'Inc('+Copy(s, 1, Length(s) div 2-1)+');' 
 
                end; 
            end; 
          end; 
 
        end; 
        if c then 
            writeln(s) 
        else 
            writeln(os); 
    end; 
 
end.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2012, 20:46     Pascal to C++
Посмотрите здесь:

Turbo Pascal, Pascal ABC, Free Pascal, PascalABC.NET - в чем разница? - Pascal
Всем привет, решил изучать Паскаль, но на форуме увидел 4 его версии - Turbo Pascal, Pascal ABC, Free Pascal, PascalABC.NET и не понял, в...

Различия трансляторов Pascal ABC.Net и Turbo/Borland Pascal - Pascal
Пожалуйста, объясните различия между компиляторами Pascal ABC.Net и Turbo/Borland Pascal

Из множества выбрать три различные точки по условию -из Turbo Pascal во Free Pascal - Turbo Pascal
Даны 2 множества точек на плоскости. Выбрать три различные точки первого множества так, чтобы круг ограниченный окружностью , проходящий...

Можно как-то переделать код из Turbo Pascal чтобы он работал в pascal abc.net? - PascalABC.NET
Сделайте пожалуйста, я просто не вникаю uses Graph, Crt; var grDriver: integer; grMode: integer; ErrCode: integer; ...

Необходимо перевести программу с Pascal ABC на free pascal - Free Pascal
var a, factorial:longint; const c:array of char= ('0','1'); var res:string; d:0..1; k, n, i:byte; begin ...

Перевод программы с Turbo Pascal на Pascal ABC.NET - PascalABC.NET
написала программу в паскаль турбо на рабочем компьютере. перенесла в паскаль авсNet так как дома стоит эта версия /перестала работать что...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
21.04.2012, 20:55     Pascal to C++ #2
если объясните зачем тут нужны файлы и что в общем делает программа, то я попробую
i_SamSky
6 / 6 / 0
Регистрация: 13.04.2012
Сообщений: 57
21.04.2012, 21:07  [ТС]     Pascal to C++ #3
Добрый вечер!

Программа должна считывать из файла текст-программу и преобразовывать в ней строки.
Исходный файл:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int main()
{
int a;
int b;
a=1;
b=2;
a=a+1;
b=b-1;
 
return 0;
}
Строка "a=a+1;" должна замениться на "а++;", а "b=b-1;" на "b--;".
Т.е. "переменная=переменная+1" должна меняться на "переменная++", при этом длина названия переменной может быть любой. Остальные строки должны остаться неизменными.

Следовательно на выходе получается:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int main()
{
int a;
int b;
a=1;
b=2;
a++;
b--;
 
return 0;
}
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
21.04.2012, 22:15     Pascal to C++ #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <string>
#include <fstream>
 
using namespace std;
 
int main()
{
    ifstream input("input.txt");                    //Файл с входными данными
    ofstream output("output.txt");                  //Файл с выходными данными
    do {
        string line;
        getline(input, line);                       //Считываем строку
        int rpos;
        if((rpos = line.find("=")) == line.npos)    //Если в строке нет знака =
        {
            output << line << "\n";                 //Записываем строку в вывод
            continue;                               //Переходим к следующей строке
        }
        //-----------
        int pos;
        while((pos = line.find(" ")) != line.npos)  //Удаляем все пробелы
        {
            line.erase(pos, 1);
        }
        //-----------
        int zpos;
        if((zpos = line.find("+")) != line.npos || (zpos = line.find("-")) != line.npos) //Если в строке есть + или -
        {
            string lvalue = line.substr(0, rpos);   //То, что слева от равно
            if(lvalue == line.substr(rpos + 1, zpos - rpos - 1)) //если a=a+... или a=a-...
            {
                if(line.find(lvalue+"+1;") != line.npos)
                    line = lvalue+"++;\n";
                else if(line.find(lvalue+"-1;") != line.npos)
                    line = lvalue+"--;\n";
            }
        }
        output << line << "\n";                     //Записываем строку в вывод
    } while(!input.eof());
 
    input.clear();
    input.close();
    output.clear();
    output.close();
    return 0;
}
как-то так)
i_SamSky
6 / 6 / 0
Регистрация: 13.04.2012
Сообщений: 57
21.04.2012, 22:24  [ТС]     Pascal to C++ #5
Большое спасибо, все работает. Пойду разбираться :)
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
21.04.2012, 22:36     Pascal to C++ #6
по-моему паскалевская программа с файлами не работает, или я ошибаюсь?
i_SamSky
6 / 6 / 0
Регистрация: 13.04.2012
Сообщений: 57
21.04.2012, 23:04  [ТС]     Pascal to C++ #7
Без понятия, не проверял. Но С-шная точно работает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2012, 23:14     Pascal to C++
Еще ссылки по теме:

Нужен Turbo pascal или Free pascal на русском - Pascal
Нужен Turbo pascal или Free pascal на русском языке, есть такой или нет? По книге обучаюсь по Turbo pascal, а установлен pascalABC, в книге...

Перевести в код Pascal ABC из кода Pascal Delphi - Pascal ABC
Помогите перевести в код ABC а то с Delphi вообще не знаком. Задание было такое: Записать в файл последовательного доступа N...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
21.04.2012, 23:14     Pascal to C++ #8
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
по-моему паскалевская программа с файлами не работает, или я ошибаюсь?
да походу, там файл открывается, а строка считывается с клавиатуры
Yandex
Объявления
21.04.2012, 23:14     Pascal to C++
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru