Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
andru160596
1 / 1 / 1
Регистрация: 14.05.2014
Сообщений: 39
1

Переделать код программы с паскаля на с++

11.02.2015, 19:24. Просмотров 1133. Ответов 8
Метки нет (Все метки)

Нужно перевести код с паскаля на с++

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
58
59
60
61
62
63
Program Podrazdelenie;
Uses crt;
Const
nmax=20;
nalog=20;
TYPE
mas = array [1..nmax] of integer;
VAR
Y,G : mas;
i, n, x : byte;
B, prc, Bm, d : real;
 
Procedure Create(Var P:mas; n : byte; c:char);
Begin
For i:=1 to n do
  Begin
    P[i]:=Random(31);
    Write(c,'[',i,']=',P[i],' ')
  End
End;
 
Procedure Pt(var P:mas; n : byte; c:char);
Begin
x:=0;
For i:=1 to n do
  Begin
    B:=0;
    prc:=0;
    Bm:=0;
    B:=P[i] * d;
    prc:=(B*nalog)/100;
    Bm:=B-prc;
      If Bm > 100 then write(c,'[',i,']=',Bm:3:2,' ') else inc(x)
  End;
    IF x = n then
      begin
        writeLn('Сотрудников с зарплатой больше 100 у.е.');
        write('в подразделении ',c,' нет.')
      end;
WriteLn
End;
 
BEGIN
clrscr;
Randomize;
WriteLn('Заполняем массив Y из 15 сотрудников');
Create(Y,15,'Y');
WriteLn;
WriteLn('Заполняем массив G из 20 сотрудников');
Create(G,20,'G');
WriteLn;
Write('Введите дневную оплату труда сотрудников ');
ReadLn(d);
WriteLn;
WriteLn('Список сотрудников Y с окладом больше 100 у.е.');
WriteLn;
Pt(Y,15,'Y');
WriteLn;
WriteLn('Список сотрудников G с окладом больше 100 у.е.');
WriteLn;
Pt(G,20,'G');
Readkey
END.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2015, 19:24
Ответы с готовыми решениями:

Переделать код с паскаля в с++
Код на скриншоте

Переделать код из Паскаля в С++
Type mas = Array of Real; {--------------} Procedure Sort(var a: mas; n: Byte); var i,j:...

Переделать код из Паскаля в С++
program Param40; type St=String; var S:St; i,K:integer; Function...

Как переделать код из паскаля в с++
uses graph,crt; var x,y,d,i,j:integer; procedure CircleK(xc,yc,r:integer); procedure...

Перевести код программы Паскаля в код С++
В массиве Х (15) найти произведение и количество элементов расположенных между наибольшими и...

8
Гоблин-инженер
114 / 111 / 65
Регистрация: 18.09.2014
Сообщений: 337
12.02.2015, 05:10 2
Лучший ответ Сообщение было отмечено andru160596 как решение

Решение

andru160596,
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
#include <iostream>
#include <time.h>
 
using namespace std;
 
const float taxes = 20.0;
const int maxN = 20;
 
void create(int *array, int n, char c) {
    for (int i = 0; i < n; ++i)
        cout << c << "[" << i << "]=" << (array[i] = rand()%31) << " ";
}
 
void pt(int *array, int n, char c, float d) {
    float B, prc, Bm;
    int x = 0;
    for (int i = 0; i < n; ++i) {
        // Зачем тут обнуления?
        B = (float)array[i]*d;
        prc = (B*taxes)/100;
        Bm = B-prc;
        if (Bm > 100) cout << c << "[" << i << "]=" << Bm << " ";
        else x++;
    }
    if (x == n) cout << "Сотрудников с 100уе" << endl << "в подразделении " << c << " нет.";
    cout << endl;
}
 
static int Y[maxN];
static int G[maxN];
 
int main(int argc, char *argv[]) {
    float d;
    srand(time(NULL));
    cout << "Заполняем Y" << endl;
    create(&Y[0], 15, 'Y');
    cout << "Заполняем G" << endl;
    create(&G[0], 20, 'G');
    cout << "Введите дневную оплату" << endl;
    cin >> d;
    cout << "Список Y";
    pt(&Y[0], 15, 'Y', d);
    cout << "Список G";
    pt(&G[0], 20, 'G', d);
    system("pause");
}
нужно ли вам такое количество переменных для вычисления непонятного мне Bm?

Добавлено через 13 секунд
andru160596,
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
#include <iostream>
#include <time.h>
 
using namespace std;
 
const float taxes = 20.0;
const int maxN = 20;
 
void create(int *array, int n, char c) {
    for (int i = 0; i < n; ++i)
        cout << c << "[" << i << "]=" << (array[i] = rand()%31) << " ";
}
 
void pt(int *array, int n, char c, float d) {
    float B, prc, Bm;
    int x = 0;
    for (int i = 0; i < n; ++i) {
        // Зачем тут обнуления?
        B = (float)array[i]*d;
        prc = (B*taxes)/100;
        Bm = B-prc;
        if (Bm > 100) cout << c << "[" << i << "]=" << Bm << " ";
        else x++;
    }
    if (x == n) cout << "Сотрудников с 100уе" << endl << "в подразделении " << c << " нет.";
    cout << endl;
}
 
static int Y[maxN];
static int G[maxN];
 
int main(int argc, char *argv[]) {
    float d;
    srand(time(NULL));
    cout << "Заполняем Y" << endl;
    create(&Y[0], 15, 'Y');
    cout << "Заполняем G" << endl;
    create(&G[0], 20, 'G');
    cout << "Введите дневную оплату" << endl;
    cin >> d;
    cout << "Список Y";
    pt(&Y[0], 15, 'Y', d);
    cout << "Список G";
    pt(&G[0], 20, 'G', d);
    system("pause");
}
нужно ли вам такое количество переменных для вычисления непонятного мне Bm?
И не проще ли контролировать наличие записей флажком bool ?
1
nmcf
6528 / 5752 / 2621
Регистрация: 14.04.2014
Сообщений: 24,493
12.02.2015, 13:00 3
Гоблин-инженер, а для чего static?
0
Гоблин-инженер
114 / 111 / 65
Регистрация: 18.09.2014
Сообщений: 337
12.02.2015, 14:37 4
nmcf, таким макаром эти массивы хранятся не в стеке, а в статической памяти (не знаю точный термин). Размеры стека имеют ограничения, так что я слышал советы в подобных задачах размещать массивы в статической памяти. Или в динамической, но там программа немного усложнилась бы
0
12.02.2015, 14:37
nmcf
6528 / 5752 / 2621
Регистрация: 14.04.2014
Сообщений: 24,493
12.02.2015, 14:38 5
Но они же не внутри main(), почему в стеке?
0
Гоблин-инженер
114 / 111 / 65
Регистрация: 18.09.2014
Сообщений: 337
12.02.2015, 14:40 6
nmcf, не понял - вне функций переменные и так размещаются статически?
0
nmcf
6528 / 5752 / 2621
Регистрация: 14.04.2014
Сообщений: 24,493
12.02.2015, 15:12 7
А разве нет?
1
Гоблин-инженер
114 / 111 / 65
Регистрация: 18.09.2014
Сообщений: 337
12.02.2015, 15:22 8
nmcf, действительно, мой затык, static в листинге не нужен) Благодарю за поправку и уточнение
0
Issues
432 / 367 / 149
Регистрация: 06.08.2012
Сообщений: 961
12.02.2015, 15:26 9
Цитата Сообщение от Гоблин-инженер Посмотреть сообщение
действительно, мой затык, static в листинге не нужен)
в любом случае, он не навредит:
Когда спецификатор static применяется к глобальной переменной, он сообщает компилятору о необходимости создания глобальной переменной, которая будет известна только в файле, где статическая глобальная переменная объявлена. Это означает, что, даже если переменная является глобальной, другие подпрограммы в других файлах не будут знать о ней.
1
12.02.2015, 15:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2015, 15:26

Переделать код программы С++
Программа работает но мне нужно ее переделать. У меня не получается( Нужно как бы целый тип...

Переделать код программы для Borland++?
#include&lt;iostream&gt; #include&lt;fstream&gt; #include&lt;string&gt; using namespace std; void main() {...

Переделать код программы так, чтобы решалась через указатели и функцию
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; void main() { char st; int i; printf(&quot;\nEnter the...


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

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

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