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

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

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

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

31.01.2010, 23:28. Просмотров 1008. Ответов 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ти знаков.
После удачного выполнения закрывается

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

переделать программу из pascal в C++ - C++
Ребят помогите пожалуйста переделать программу в с++ вот ссылка на прогрумму тут просто не все формулы открывает ...

переделать программу из Pascal в язык С - C++
Дано натуральное число n, равное выраженной в копейках цене некоторого товара, например, 317, 5005, 100 и т. д. Выразить цену в рублях и...

Переделать программу написанную на Pascal в С++ - C++
Задание Вариант 1 Вычислить определенный интеграл от функции f(x) на промежутке методом прямоугольников. f(x) = 2sin x cos x + sin...

переделать программу Pascal -> C++ (Восстановить исходную матрицу и напечатать ее по строкам) - C++
с паскаля на с++...буду очень признателен. вот текст задачи. Квадратная матрица, симметричная относительно главной диагонали, задана своим...

Переделать код с Pascal на С++ - C++
uses crt; const n1='Name1.txt'; n2='Name2.txt'; n3='Name3.txt'; var f1,f2,f3:text; s1,s2:string; begin clrscr; ...

Переделать код с Pascal на С++ - C++
Имеется данный код: uses crt; var f,h,g:text; s:arrayof string; n,i:integer; begin clrscr; assign(f,'file_ob.txt'); ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2010, 23:28
Привет! Вот еще темы с ответами:

Переделать из Pascal в C++. Сумма ряда - C++
Program besconecs; uses crt; var n,k:integer; S,elem,e:real; begin clrscr; e:=0.0001; S:=0; n:=0; elem:=1;

Найти максимальную цифру в тексте строки (Переделать с Pascal на С++) - C++
Всем привет. Вот необходимо переписать этот код на С++ помогите плз: Задание 1. Найти максимальную цифру в тексте строки. uses...

Нужно программу на Паскале переделать в программу на С++ - C++
Помогите, пожалуйста!!! У меня есть программа на Паскале , а нужно ее переписать, чтобы она была на С++ (windows консоль). Текст...

Переделать программу 1 в программу 2 с использованием функций - C++
проблема в том, что компилятор не ругается, но программа зависает при выполнении. уже много времени на это потратил. вроде задание не...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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