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

Перевести с Паскаля на С++ - C++

Восстановить пароль Регистрация
 
Azazel-San
 Аватар для Azazel-San
26 / 26 / 11
Регистрация: 24.11.2015
Сообщений: 288
28.04.2016, 19:26     Перевести с Паскаля на С++ #1
Здравствуйте! Можете помочь, мне надо перевести код с Паскаля на С++ (код паскаля на фото).
Вот что получилось у меня. Но код не работает, так как должен хоть и запускается, помогите разобраться?
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream>
#include <fstream>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
 
const int size = 18;
int k,n;
long int count;
 
using namespace std;
 
void enter_file (int k, int n);
long int divRob (long int a);
void zavod ();
void out_file ();
 
int main()
{
    enter_file(k,n);
    zavod();
    out_file();
    return 0;
}
 
void enter_file(int k, int n)
{
    ofstream fout ("Robots.DAT", ios_base::out);
    fout << "K= " << k << "N= " << n;
    fout.close();
}
 
long int divRob (long int a)
{
    long int divRob = 0;
    switch (a % 5)
    {
    case 1:
        {
            divRob = (a/5)*9;
            break;
        }
    case 2:
        {
            if (a >= 6) divRob=((a-6)/5)*9+10;
            break;
        }
    case 3:
        {
            if (a >=12) divRob=((a-12)/5)*9+20;
            else if (a=7) divRob=10;
            break;
        }
    case 4:
        {
            divRob=((a-3)/5)*9+5;
            break;
        }
    case 5:
        {
            if (a>=9) divRob=((a-9)/5)*9+15;
            else divRob=5;
            break;
        }
    default:
        cout << "Error!";
    }
    return divRob;
}
 
void zavod ()
{
    int i,count;
    long int x[size];
    memset(x,sizeof(x),0);
    count=k;
    i=1;
    x[0]=k;
    while ((i<=n) && (count>0))
    {
        x[i]=divRob(count);
        count=count+x[i];
        if (i>=3) count=count-x[i-3];
        i++;
    }
}
 
void out_file ()
{
    ofstream fout ("Robots.DAT",ios_base::out);
    fout << count;
    fout.close();
}
Миниатюры
Перевести с Паскаля на С++   Перевести с Паскаля на С++  
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2016, 19:26     Перевести с Паскаля на С++
Посмотрите здесь:

C++ перевести на c++ с паскаля
Перевести из паскаля в C++ C++
перевести с Паскаля в с++ C++
C++ Перевести с паскаля на Си++
C++ перевести из паскаля в с++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4324 / 3745 / 1260
Регистрация: 14.04.2014
Сообщений: 14,685
28.04.2016, 21:02     Перевести с Паскаля на С++ #2
C++
1
2
3
4
5
6
7
8
9
10
11
void enter_file()
{
    ifstream fin ("Robots.DAT");
    fin >> k >> n;
}
 
void out_file()
{
    ofstream fout ("Robots.sol");
    fout << count << endl;
}
Azazel-San
 Аватар для Azazel-San
26 / 26 / 11
Регистрация: 24.11.2015
Сообщений: 288
28.04.2016, 21:58  [ТС]     Перевести с Паскаля на С++ #3
nmcf, не работает

Добавлено через 1 минуту
nmcf, нет ну запускается, но ничего вводить нельзя
Azazel-San
 Аватар для Azazel-San
26 / 26 / 11
Регистрация: 24.11.2015
Сообщений: 288
03.05.2016, 15:01  [ТС]     Перевести с Паскаля на С++ #4
Незнаю что не так, но выводит не верно..

Добавлено через 17 часов 11 минут
123
nmcf
4324 / 3745 / 1260
Регистрация: 14.04.2014
Сообщений: 14,685
03.05.2016, 15:08     Перевести с Паскаля на С++ #5
Зачем ты структуру программы изменил? Где-то несоответствие есть. И имена зачем менял?
Azazel-San
 Аватар для Azazel-San
26 / 26 / 11
Регистрация: 24.11.2015
Сообщений: 288
03.05.2016, 16:31  [ТС]     Перевести с Паскаля на С++ #6
nmcf, всмысле структуру? а разве имена что-то меняют? я могу вернуть назад?

Добавлено через 6 минут
nmcf,
Вот заменил все кроме названия циклов ибо очень долгое, вместо " х " у меня " а " в функции Max_Robots. И вместо названия массива " Quantity " у меня " x ".
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream>
#include <fstream>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
 
const int size = 18;
int k,n;
long int count;
 
using namespace std;
 
void Read_Data ();
long int Max_Robots (long int );
void Run ();
void Write_Data ();
 
int main()
{
    Read_Data ();
    Run ();
    Write_Data ();
    return 0;
}
 
void Read_Data ()
{
    ifstream fin ("Robots.DAT");
    cin >> k >> n;
    fin >> k >> n;
}
 
long int Max_Robots (long int a)
{
    long int Max_Robots = 0;
    switch (a % 5)
    {
    case 1:
        {
            Max_Robots = (a/5)*9;
            break;
        }
    case 2:
        {
            if (a >= 6) Max_Robots =((a-6)/5)*9+10;
            break;
        }
    case 3:
        {
            if (a >=12) Max_Robots =((a-12)/5)*9+20;
            else if (a=7) Max_Robots =10;
            break;
        }
    case 4:
        {
            Max_Robots =((a-3)/5)*9+5;
            break;
        }
    case 5:
        {
            if (a>=9) Max_Robots =((a-9)/5)*9+15;
            else Max_Robots =5;
            break;
        }
    default:
        cout << "Error!";
    }
    return Max_Robots;
}
 
void Run ()
{
    int i,count;
    long int x[size];
    memset(x,0,sizeof(x));
    count=k;
    i=1;
    x[0]=k;
    while ((i<=n) && (count>0))
    {
        x[i]=Max_Robots(count);
        count=count+x[i];
        if (i>=3) count=count-x[i-3];
        i++;
    }
}
 
void Write_Data ()
{
    ofstream fout ("Robots.sol");
    cout << count << endl;
    fout << count << endl;
}
nmcf
4324 / 3745 / 1260
Регистрация: 14.04.2014
Сообщений: 14,685
03.05.2016, 17:07     Перевести с Паскаля на С++ #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Что за ерунду ты там навставлял? С клавиатуры ничего не вводится.
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <iostream>
#include <fstream>
#include <cstring>
 
using namespace std;
 
const int Size = 18;
int K, N;
long Count;
 
void Read_Data ()
{
    ifstream fin ("Robots.dat");
    fin >> K >> N;
}
 
long Max_Robots (long x)
{
    long _Max_Robots = 0;
    switch (x % 5)
    {
    case 0:
    {
        _Max_Robots = (x / 5) * 9;
        break;
    }
    case 1:
    {
        if (x >= 6) _Max_Robots = ((x - 6) / 5) * 9 + 10;
        break;
    }
    case 2:
    {
        if (x >= 12) _Max_Robots = ((x - 12) / 5) * 9 + 20;
        else if (x == 7) _Max_Robots = 10;
        break;
    }
    case 3:
    {
        _Max_Robots = ((x - 3) / 5) * 9 + 5;
        break;
    }
    case 4:
    {
        if (x >= 9) _Max_Robots = ((x - 9) / 5) * 9 + 15;
        else _Max_Robots = 5;
        break;
    }
    }
    return _Max_Robots;
}
 
void Run ()
{
    int i;
    long Quantity[Size + 1];
    
    memset(Quantity, 0, sizeof(Quantity));
    
    Count = K;
    i = 1;
    Quantity[0] = K;
    while (i <= N && Count > 0)
    {
        Quantity[i] = Max_Robots(Count);
        Count += Quantity[i];
        if (i >= 3) Count -= Quantity[i - 3];
        ++i;
    }
}
 
void Write_Data ()
{
    ofstream fout ("Robots.sol");
    fout << Count << endl;
}
 
int main()
{
    Read_Data ();
    Run ();
    Write_Data ();
}
Azazel-San
 Аватар для Azazel-San
26 / 26 / 11
Регистрация: 24.11.2015
Сообщений: 288
03.05.2016, 17:13  [ТС]     Перевести с Паскаля на С++ #8
nmcf, разве это что-то меняет? моя ошибка видимо была в том что я оголосил не верно функцию и вот это
C++
1
long _Max_Robots = 0;
Кстати что оно делает символ " _ " перед названием переменной? И спасибо что помогли!
nmcf
4324 / 3745 / 1260
Регистрация: 14.04.2014
Сообщений: 14,685
03.05.2016, 17:15     Перевести с Паскаля на С++ #9
Просто чтобы не совпадало с именем функции. На всякий случай.
Azazel-San
 Аватар для Azazel-San
26 / 26 / 11
Регистрация: 24.11.2015
Сообщений: 288
03.05.2016, 17:34  [ТС]     Перевести с Паскаля на С++ #10
nmcf, ааа, а уж подумал.. ЛАдно ещё раз спасибо)

Добавлено через 8 минут
nmcf, эдинственное что я не понял так это то что делает переменная " х " вот тут
C++
1
long Max_Robots (long x)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2016, 17:58     Перевести с Паскаля на С++
Еще ссылки по теме:

Перевести с Паскаля на C++ C++
C++ Перевести с Паскаля на С++

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

Или воспользуйтесь поиском по форуму:
nmcf
4324 / 3745 / 1260
Регистрация: 14.04.2014
Сообщений: 14,685
03.05.2016, 17:58     Перевести с Паскаля на С++ #11
Так в оригинале.
Yandex
Объявления
03.05.2016, 17:58     Перевести с Паскаля на С++
Ответ Создать тему
Опции темы

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