С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Найти ошибку в переводе программы с Pascal на C++ - C++

09.12.2013, 18:44. Просмотров 260. Ответов 0
Метки нет (Все метки)

Очень прошу помочь найти ошибку

Код на 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
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
110
111
var
  arrMatrix: array of array of Integer;
  i: Integer;
 
procedure Print;
var
  i, j, arrCount: Integer;
begin
  arrCount := Length(arrMatrix);
  for i := 0 to arrCount - 1 do
  begin
    for j := 0 to arrCount - 1 do
      Write(arrMatrix[i, j]:5);
    Writeln;
  end;
end;
 
procedure perestanovka(var oldI: Integer; var oldJ: Integer; i, j: Integer);
var
  tmp: Integer;
begin
  if arrMatrix[oldI, oldJ] > arrMatrix[i, j] then
  begin
    tmp := arrMatrix[oldI, oldJ];
    arrMatrix[oldI, oldJ] := arrMatrix[i, j];
    arrMatrix[i, j] := tmp;
  end;
  oldI := i;
  oldJ := j;
end;
 
procedure zmeika;
var
  i, j, oldI, oldJ: integer;
  arrCount: Integer;
begin
  arrCount := Length(arrMatrix) - 1;
  i := arrCount;
  j := 0;
  oldI := i;
  oldJ := j;
  repeat
    if j < arrCount then
    begin
      Inc(j);
      perestanovka(oldI, oldJ, i, j);
    end
    else
    begin
      Dec(i);
      perestanovka(oldI, oldJ, i, j);
    end;
 
    while (i > 0) and (j > 0) do
    begin
      Dec(j);
      Dec(i);
      perestanovka(oldI, oldJ, i, j);
    end;
 
    if i > 0 then
    begin
      Dec(i);
      perestanovka(oldI, oldJ, i, j);
    end
    else
    if j < arrCount then
    begin
      inc(j);
      perestanovka(oldI, oldJ, i, j);
    end;
 
    while (i < arrCount) and (j < arrCount) do
    begin
      Inc(i);
      Inc(j);
      perestanovka(oldI, oldJ, i, j);
    end;
  until (i = 0) and (j = arrCount);
end;
 
procedure RandMatr;
var
  arrCount: Integer;
  i, j: integer;
begin
  Randomize;
 
  Writeln('Введите размер матрицы');
  Readln(arrCount);
  SetLength(arrMatrix, arrCount);
 
  for i := 0 to arrCount - 1 do
  begin
    SetLength(arrMatrix[i], arrCount);
    for j := 0 to arrCount - 1 do
      arrMatrix[i, j] := Random(898) + 101;
  end;
end;
 
begin
  RandMatr;
  Writeln;
  Print;
  Writeln;
  for i := 1 to Length(arrMatrix) * Length(arrMatrix) - 1 do
    zmeika;
  Print;
 
  Readln;
end.
Код программы на С++


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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#include <iostream>
#include <conio.h>
#include <ctime>
#include <cstdlib>
#include <string>
 
using namespace std;
 
int i,arrCount;
 
int** arrMatrix = new int* [arrCount];
 
void Print ()
{
    
    int arrCount=arrCount*arrCount;
    
    for(int i=0;i < (arrCount - 1); i++)
    {
        for(int j=0; j<(arrCount-1);j++)
        {
        
        cout.width(3);
        cout<< arrMatrix[i][j];
        cout<<"\n";
        } 
    }
}
int perestanovka(int oldI, int oldJ, int i, int j)
{
    if(arrMatrix[oldI][oldJ]>arrMatrix[i][j])
    {
        int tmp=arrMatrix[oldI][oldJ];
        arrMatrix[oldI][oldJ]=arrMatrix[i][j];
        arrMatrix[i][j]=tmp;
    }
    oldI=i;
    oldJ=j;
    return (oldI);
    return (oldJ);
}
 
void zmeika()
{
    i=arrCount=arrCount*arrCount- 1;
    
    int j=0;
    int oldI=i;
    int oldJ=j;
    
    do
    {
        if (j<arrCount)
        {
            ++j;
            perestanovka(oldI,oldJ,i,j);
            
        }
        else
        {
            --i;
            perestanovka(oldI,oldJ,i,j);
        }
        
        while ((i>0) && (j>0))
        {
            --j;
            --i;
            perestanovka(oldI,oldJ,i,j);
        }
        if(i>0)
        {
            --i;
            perestanovka(oldI,oldJ,i,j);
        }
        else
        {
            if (j<arrCount)
            {
                ++j;
                perestanovka(oldI,oldJ,i,j);
            }
        }
        while((i<arrCount) && (j<arrCount))
        {
            ++i;
            ++j;
            perestanovka(oldI,oldJ,i,j);
        }
    }
    while((i==0) && (j==arrCount));
    
}
 
void RandMatr()
{
    setlocale(LC_ALL, "Russian");
    cout<<"Введите размер матрицы "<<"\n";
    cin>> arrCount;
    srand (time(NULL));
    for(int i=0;i<(arrCount-1);i++)
    {
        for (int j=0;j<(arrCount-1);j++)
        {
            arrMatrix[i][j]=rand();
        }
    }
}
 
 
int main ()
{
 
 
 int** arrMatrix = new int* [arrCount];
 for( i = 0; i< arrCount; i++)
 {
 arrMatrix[i] = new int [arrCount];
 }
 
    
    
     RandMatr();
     Print();
     for(i = 1;i<(arrCount*arrCount) *(arrCount*arrCount) - 1;i++) 
     zmeika();
     Print();
     
     for(int i = 0; i < arrCount; i++)
     {
        delete [] arrMatrix[i];
     }
     delete [] arrMatrix;
 
     getch();
     return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2013, 18:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти ошибку в переводе программы с Pascal на C++ (C++):

Ошибка при переводе программы с языка Pascal - C++
Задание гласит: Вычислить 18 значений функции a{x}^{2}+bx+c на отрезке , сохранив их в массиве Y и определить, имеет ли уравнение на...

Ошибка в переводе программы с паскаля на с++ - C++
вот код паскаля. я перевел эти коды в с++. но в с++ не работает помогите найти ошибку пожалуйста 1. program desicion1; ...

Найти ошибку в коде после перевода с языка Pascal - C++
nmcf, #include &lt;iostream&gt; #include&lt;stdio.h&gt; #include &lt;cstdlib&gt; using namespace std; #include &quot;stdafx.h&quot; div_t c,r; int...

При переводе программы с VS c++ 6.0 на VS c++ 2010 express выходят ошибки, как их исправить? - C++
На Vusial Studio c++ 6.0 все прекрасно работало, но стоило мне все это перевести на visual c++ 2010 express, то вышли ошибки и куча...

Найти ошибку в работе программы - C++
Что не так ? не могу понять #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;clocale&gt; using namespace std; ...

Найти ошибку в листинге программы Borland - C++
Выдает ошибку в 10 и 13 строках! Помогите пожалуйста найти ошибку!!! #include &lt;iostream.h&gt; #include &lt;stdio.h&gt; #include...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2013, 18:44
Привет! Вот еще темы с ответами:

Зацикливание программы, найти ошибку в коде - C++
#define EE 1E-80 #define MAX_ROOTS 15 typedef struct { Complex root; int nor; // number of root int deg; // degree }...

Найти ошибку в выделенном тексте программы - C++
Условие : Задано 2 матрицы Х(4,4) и У(4,4) . Сформировать из них матрицу Z(4,8), включая в первые 4 строки матрицу Х , а во вторые 4 -...

Неожиданное поведение программы: найти ошибку в коде - C++
Программа запрашивает у пользователя «Сколько Вам лет?» . Вы вводите положительное число до 100. Программа должна выдать пол-ный ответ «...

Блок схема программы неправильная, помогите найти ошибку - C++
Вывести на экран сообщение в зависимости от введенного значения оценки (по десятибалльной системе), например: оценки 1, 2 - плохо, 3,...


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

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

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