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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Связать программу http://www.cyberforum.ru/cpp-beginners/thread1034697.html
Надо написать программу, в которую вводишь текст и она выводит этот же текст только цифры от 0 до 9 заменены словами. 4 = four а если 45 = 45 по отдельности не должно писать как four five. #include <iostream> #include<string> using namespace std;
C++ Массивы (двумерный) Дан двумерный массив, элементы которого - целые числа. Вставьте новую строку, каждый элемент которой число ноль, после всех строк, в которых нет ни одного элемента, равного нулю. Формат входных данных В первой строке входного файла даны два числа: N и M, где N - количество строк в массиве, а M - количество столбцов (1 =<e N, M =<e 100). В следующих N строках находится по M чисел, по... http://www.cyberforum.ru/cpp-beginners/thread1034682.html
одномерный массив C++
нужно удалить все элементы массива больше среднего арифметического элемента. делаю в цикле for(int i = 0;n>i;) { if(a > avg) { a = a; n--; if(a < avg) {
C++ Транспортная задача с промежуточными пунктами C++
Доброго времени суток,прошу прощение если умудрился закинуть тему не в тот раздел. Но просто задача есть, и решить нужно как можно быстрее.Нужно написать на С++ или С++ Builder "Транспортную задачу с промежуточными пунктами",может у кого то завалялась в старых архивах. Если кто то поможет буду при много благодарен.Условия нет, просто нужна любая транспортная задача такого типа.
C++ Ввести двумерный массив A3×4 . Определить в нём количество тех элементов, которые при делении на 3 дают остаток 2 http://www.cyberforum.ru/cpp-beginners/thread1034670.html
Ввести двумерный массив A3×4 . Определить в нём количество тех элементов, которые при делении на 3 дают остаток 2
C++ Организация шаблонов на языке С++, библиотека STL Огромная просьба, подсобите кодик: Используя стандартную библиотеку шаблонов STL и класс list по работе с двунаправленным списком, выполнить следующие задачи: подробнее

Показать сообщение отдельно
Daisy23
Сообщений: n/a
09.12.2013, 18:44     Найти ошибку в переводе программы с Pascal на 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
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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru