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

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

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

Переделать программу из Pascal в C++ - C++

31.01.2010, 23:28. Просмотров 999. Ответов 0
Метки нет (Все метки)

Добрый день! Прошу помочь, подсказать.
Есть программа на Pascal, ее необходимо перевести в C++.
Сам C++ знаю слабо, побробывал сам, но вкрались ошибки.
Pascal
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
53
54
55
56
57
program Perevod; {Nazvanie programmi}
var A,  i, n, z: integer; B,C,D,E,F: string; res,res1,res2: real; {obyavlenie peremennih}
function RtoDec (s: string; R: word): string; {ob`yavlenie funkcii}
begin
    n:=0;
    A:=0;
    A:=pos('.',S);
    B:=copy(S,0,length(S)-A);
    C:=copy(S,A,8);
    A:=POS('.',C);
    delete(C,1,A);
    res1:=0;
    res2:=0;
    z:=0;
    for i:=length (B) downto 1 do
    begin
        B[i]:=UpCase (B[i]);
        if B[i] in ['0'..'9'] then
            n:=ord (B[i]) - ord ('0');
        if B[i] in ['A'..'Z'] then
            n:=10+ord(B[i])-ord('A');
        res1:=res1+(n*(exp(z*ln(r))));
        z:=z+1;
    end;
    n:=0;
    z:=0;
    for i:=length (C) downto 1 do
    begin
        C[i]:=UpCase (C[i]);
        if C[i] in ['0'..'9'] then
            n:=ord (C[i]) - ord ('0');
        if C[i] in ['A'..'Z'] then
            n:=10+ord(C[i])-ord('A');
        z:=z-1;
        res2:=res2+(n*(exp(z*ln(r))));
 
    end;
    res2:=abs(res2);
    str(res1:0:0,D);
    str(res2:0:8,E);
A:=pos('.',E);
    delete(E,1,A);
    F:=D+'.'+E;
    RtoDec := f;
end; {konec funkcii}
var B,C,S,F:string; {obyavlenie peremennih}
r: word;
a: integer;
begin
    writeln('Vvedite chislo i nagmite Enter'); {zapros chisla}
    readln(s); {prisvoenie peremennoy "S" chisla}
    writeln('Viberite sistemu chillenia'); {zapros vvoda osnovaniya}
    readln(r); {prisvoenie peremennoy "R" znacheniya osnovaniya}
    F:=RtoDec(s,r); {vipolnenie funkcii perevoda}
    write('Chislo ',s,' v sisteme schisleniya s osnovaniem ',r, ' ravno ', F); {vivod resultata}
    read(s); {ogidania nagatiya luboy klavishi}
end. {konec programmi}
а вот С++
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream.h>
#include <math.h>
#include <string.h>
#include <conio.h>
#include <dos.h>
#include <stdlib.h>
#include <stdio.h>
 
int main(int s, int r) RtoDec;                             //ob`yavlenie funkcii/
{
    int a, i, n, z, B, C, D, E, f, res, res1, res2; //obyavlenie peremennih/
    n=0;
    a=0;
    a=pos(".",s);
    B=copy(s,0,length(s)-a);
    C=copy(s,a,8);
    a=pos(".",C);
    delete(C,1,a);
    res1=0;
    res2=0;
    z=0;
    for (i=length(B); i>=1; i++)
    {
        B[i]=UpCase (B[i]);
        if B[i] in [<"0","9">] then
            n=ord (B[i])-ord ("0");
        if B[i] in [<"a","Z">] then
            n=10+ord(B[i])-ord("a");
        res1=res1+(n*(exp(z*log(r))));
        z=z+1;
    };
    n=0;
    z=0;
    for (i=length(C); i>=1; i++)
    {
        C[i]=UpCase (C[i]);
        if C[i] in [<"0","9">] then
            n=ord (C[i])-ord("0");
        if C[i] in [<"a","z">] then
            n=10+ord(C[i])-ord("a");
        z=z-1;
        res2=res2+(n*(exp(z*log(r))));
    };
    res2=abs(res2);
    str(res1:0:0,D);
    str(res2:0:8,E);
a=pos(".",E);
    delete(E,1,a);
    f=D+"."+E;
    RtoDec=f;
};                                                 //konec funkcii/
 
 
 
int (s);
int (f);
int (r);
int (a);
{
    clrscr();
    cout <<"Vvedite chislo i nagmite Enter";             //zapros chisla/
        cin >> s;                                 //prisvoenie peremennoy "S" chisla/
    cout <<"Viberite sistemu chillenia";         //zapros vvoda osnovaniya/
        cin >> r;                                 //prisvoenie peremennoy "R" znacheniya osnovaniya/
    f=RtoDec(s,r);                             //vipolnenie funkcii perevoda/
    cout <<"Chislo ",s," v sisteme schisleniya s osnovaniem ",r, " ravno ", f; //vivod resultata/
    cin;
}
Программа запрашивает число, затем запрашивает систему счисления этого числа, а затем переводит в десятчную систему счисления.
При этом после запятой допускается до 6ти знаков.
После удачного выполнения закрывается

Ну или хотябы принцип опишите
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2010, 23:28     Переделать программу из Pascal в C++
Посмотрите здесь:

C++ переделать программу из Pascal в язык С
Переделать программу. C++
переделать программу C++
C++ Переделать программу
переделать программу из pascal в C++ C++
переделать программу Pascal -> C++ (Восстановить исходную матрицу и напечатать ее по строкам) C++
C++ Переделать программу
C++ Найти максимальную цифру в тексте строки (Переделать с Pascal на С++)
Переделать программу написанную на Pascal в С++ C++
C++ Переделать из Pascal в C++. Сумма ряда
C++ Переделать код с Pascal на С++
C++ Переделать код с Pascal на С++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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