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

Перестановки. Перевод с Pascal на C++ - C++

Восстановить пароль Регистрация
 
Xagon
0 / 0 / 0
Регистрация: 22.05.2014
Сообщений: 11
04.06.2014, 16:21     Перестановки. Перевод с Pascal на C++ #1
Пожалуйста, помогите перевести эту программу на 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
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
Program z3;
type Pere=array [byte] of byte;
var
file1,file2: text; {файловые переменные, связанные с файлами ввода и вывода}
N: byte; {количество станков}
effect: array [1..20,1..20] of byte; {массив }
status: array [1..20,1..20] of integer; {массив }
flag: boolean;
sum: byte;
i,j: byte; {счетчики цикла}
min, max:array [1..20] of byte;
nv: longint; {количество вариантов}
f: string; {Номер теста}
f1,f2: string; {имена входного и выходного файлов}
      X:Pere;
      Yes:boolean;
{***************************************************}
      procedure Next2(var X:Pere;var Yes:boolean);
    var i:byte;
    procedure Swap(var a,b:byte);  {обмен переменных}
      var c:byte;
    begin c:=a;a:=b;b:=c end;
      begin
    i:=N-1;
    {поиск i}
    while (i>0)and(X[i]>X[i+1]) do dec(i);
    if i>0 then
      begin
        j:=i+1;
        {поиск j}
        while (j<N)and(x[j+1]>X[i]) do inc(j);
        Swap(X[i],X[j]);
        for j:=i+1 to (N+i) div 2 do Swap(X[j],X[N-j+i+1]);
        Yes:=true
      end
    else Yes:=false
      end;
{*************************************************}
Begin
write('Введите номер входного и выходного файлов: ');
readln(f);
f1:='test'+f+'.txt'; {формируем имя входного}
f2:='result'+f+'.txt'; {и выходного файлов}
assign(file1,f1); {связываем файловую переменную с файлом ввода}
assign(file2,f2); {связываем файловую переменную с файлом вывода}
reset(file1); {открываем файл для чтения}
rewrite(file2); {открываем файл для записи}
readln(file1,N);{считываем размеры}
 for i:=1 to N do  {читаем}
 begin
  for j:=1 to N do  {читаем}
  begin
   read(file1,effect[i,j]);
   write(effect[i,j]:4);
  end;
  readln(file1);
  writeln;
 end;
 
 writeln;
 
 for j:=1 to N do
 begin
  min[j]:=effect[1,j];
  max[j]:=effect[1,j];
  for i:=2 to N do
  begin
   if effect[i,j]>max[j] then max[j]:=effect[i,j];
   if effect[i,j]<min[j] then min[j]:=effect[i,j];
  end;
 end;
 
 for j:=1 to N do
  for i:=1 to N do
 
 
 for i:=1 to N do
 begin
  for j:=1 to N do
  begin
  if effect[i,j]=max[j] then status[i,j]:=1 else
   if effect[i,j]=min[j] then status[i,j]:=-1 else status[i,j]:=0;
  write(status[i,j]:4);
  end;
  writeln;
 end;
 
{***********Perestanovki*****************************}
 nv:=0;
   for i:=1 to N do X[i]:=i;
      repeat           {i-номер станка}
        flag:=true;
        sum:=0;
        for i:=1 to N do
         if status[X[i],i]=-1 then flag:=false else sum:=sum+status[X[i],i];
         if sum<((n-1) div 4)+1 then flag:=false;
    if flag then
        begin      {сохраняем результат в файл}
         for i:=1 to N do write(file2,'(',i,';',X[i],') ');writeln(file2);
         inc(nv);
        end;
    Next2(X,Yes)
      until not Yes;
     Writeln('Всего вариантов: ',nv);
readln;
{*********************************************}
close(file1); {закрываем файл}
close(file2); {закрываем файл}
End.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2014, 16:21     Перестановки. Перевод с Pascal на C++
Посмотрите здесь:

перевод из PASCAL в C++ C++
C++ Перевод из pascal в С
C++ Перевод с Pascal на C++
Перевод с pascal на c++ C++
Перевод с Pascal на С++ C++
C++ Перевод с Pascal на С++
Перевод из Pascal в C++ C++
C++ Перевод с pascal на c++

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

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

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