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

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

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

Проблемма с кодом - C++

03.10.2009, 23:15. Просмотров 525. Ответов 8
Метки нет (Все метки)

Помогите пожалуйста,если кто знает, нужно перевести этот код на С++.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure OGI(R,S,M,N:integer;Var A:matrix);
{R,S – разрешающий элемент}
Var i,j:integer;
begin
for i:=1 to M do
  for j:=1 to N do
    if (i<>R)and(j<>S) 
      then A[i,j]:=(A[i,j]*A[r,s]-A[i,s]*A[r,j])/A[r,s];
for i:=1 to M do
  for j:=1 to N do
    begin
      if (i=r)and(j<>s) then A[r,j]:=-A[r,j]/A[r,s];
      if (i<>r)and(j=s) then A[i,s]:=A[i,s]/A[r,s]
    end;
A[r,s]:=1/A[r,s];
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2009, 23:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проблемма с кодом (C++):

Проблемма с вложенными классами - C++
Собственно, код программы. Компилятору не нравятся строки №41 и 47. Можете подсказать, в чем может быть причина? Компилятор gcc 4.5 ...

Проблемма с логическим оператором if - C++
Всем привет. Мне надо было написать такую програмку: если пользователь вводит символ 'y' (yes), то он задаёт данные в структуру, которые в...

Проблемма с компиляцией в Visual C++ 2010 - C++
Проект(empty) создан в консольном режиме, код ниже: #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;fstream&gt; //----------------...

Проблемма с функцией,подскажите что не так - C++
#include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include &lt;clocale&gt; #include &lt;cmath&gt; using namespace std; void input (double x,...

Проблемма с заполнением динамического двумерного массива - C++
По заданию,нужно: -объявить двумерный динамический массив -спросить и пользователя размеры массива -выделить память -заполнить...

Проблемма при работе с массивами структур - C++
Разработать программу , позволяющую добавлять данные структур с указанными полями в массив, просматривать массивы, а также выполнять...

8
ISergey
Maniac
Эксперт С++
1396 / 907 / 56
Регистрация: 02.01.2009
Сообщений: 2,712
Записей в блоге: 1
03.10.2009, 23:31 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void ogi (float **arr, int row, int col, int r, int s){
    for(int i = 0; i < row; ++i)
        for(int j = 0; i < col; ++j){
            if ((i != r) && (j != s)) 
                 arr[i][j] = (arr[i][j] * arr[r][s] - arr[i][s] * arr[r][j]) / arr[r][s];
        }
 
    for(int i = 0; i < row; ++i)
        for(int j = 0; i < col; ++j){
            if ((i == r) && (j != s))
                arr[r][j] = -arr[r][j] / arr[r][s];
            if ((i != r) && (j == s))
                arr[i][s] = arr[i][s] / arr[r][s];
        }
    arr[r][s] = 1.0f / arr[r][s];
}
1
gather
1 / 1 / 0
Регистрация: 03.10.2009
Сообщений: 8
03.10.2009, 23:47 #3
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
double* OGI(int R, int S, int n, int m, double* matr)
/*Для того, чтобы сильно не мучиться с передачей параметров
вместо matr[i][j] буду использовать matr(i*n+j)*/
{
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            if(i!=R&&j!=S)
                *(matr+i*n+j)=(*(matr+i*n+j)**(matr+R*n+S)-*(matr+i*n+S)**(matr+R*n+j))/(*(matr+R*n+S));
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
        {
             if(i==R&&j!=S) then *(matr+R*n+j)=-*(matr+R*n+j)/(*(matr+R*n+S));
             if(i!=R&&j==S) then *(matr+i*n+S)=*(matr+i*n+S)/(*(matr+R*n+S));
        }
    *(matr+R*n+S)=1/(*(matr+R*n+S));
}
 
int main()
{
     int R=2,S=3;
     int n=10,m=10;
     double* matr=new double[n*m];
     for(int i=0;i<n;i++)
         for(int j=0;j<m;j++)
             *(matr+i*n+j)=(double)(i*j/(i+j+1));
     matr=OGI(R,S,n,m,matr);     
     delete[] matr;
     return 0;
}
1
Golovastik
11 / 11 / 0
Регистрация: 25.05.2009
Сообщений: 435
04.10.2009, 20:59  [ТС] #4
Спасибо большое всем, попробывал код gathera
Программа не компилится, выдаёт ошибку на строке:
C++
1
             if(i==R&&j!=S) then *(matr+R*n+j)=-*(matr+R*n+j)/(*(matr+R*n+S));
c:\documents and settings\admin\мои документы\visual studio 2005\projects\class\class\class.cpp(16) : error C2065: 'then' : undeclared identifier
0
gather
1 / 1 / 0
Регистрация: 03.10.2009
Сообщений: 8
04.10.2009, 21:27 #5
блин, сорри
я смотрел на исходный код и перепутал
просто убери then
0
Golovastik
11 / 11 / 0
Регистрация: 25.05.2009
Сообщений: 435
04.10.2009, 21:29  [ТС] #6
Убрал, теперь другая проблемма:
Код
             if(i==R&&j!=S) (matr+R*n+j)=-*(matr+R*n+j)/(*(matr+R*n+S));
             if(i!=R&&j==S) (matr+i*n+S)=*(matr+i*n+S)/(*(matr+R*n+S));
c:\documents and settings\admin\мои документы\visual studio 2005\projects\class\class\class.cpp(16) : error C2440: '=' : cannot convert from 'double' to 'double *'

Меня ещё смущает вот это: -* и вот это:
(*(matr+R*n+S))
0
gather
1 / 1 / 0
Регистрация: 03.10.2009
Сообщений: 8
04.10.2009, 21:42 #7
C++
1
2
             if(i==R&&j!=S) *(matr+R*n+j)=-*(matr+R*n+j)/(*(matr+R*n+S));
             if(i!=R&&j==S) *(matr+i*n+S)=*(matr+i*n+S)/(*(matr+R*n+S));
"-" это операция минус, она возвращает отрицательное число
"*" это операция разименования, она возращает значения по адресу указателя
приоритет у операции "*" выше чем у "-" поэтому так можно написать
0
Golovastik
11 / 11 / 0
Регистрация: 25.05.2009
Сообщений: 435
04.10.2009, 21:44  [ТС] #8
Код
    *(matr+R*n+S)=1/(*(matr+R*n+S));
c:\documents and settings\admin\мои документы\visual studio 2005\projects\class\class\class.cpp(21) : error C4716: 'OGI' : must return a value
0
gather
1 / 1 / 0
Регистрация: 03.10.2009
Сообщений: 8
04.10.2009, 21:46 #9
так много ошибок потому что писал без студии прям в окне
после этой строки нужно написать
C++
1
return matr;
0
04.10.2009, 21:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2009, 21:46
Привет! Вот еще темы с ответами:

Проблемма при компиляции функции (Linker error) - C++
При компиляции функции линковщик выдает- Сама функция #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include...

Visual Studio 2010 и 2012. Проблемма после установки 12 - C++
Наверное уже кто-то сталкивался с этим и уже написал топик сюда или куда-либо-нибудь, но вот гугл и я убеждаемся в обратном (если я не прав...

Надоедливая проблемма с допуском к базе данных на удаленном компе... - C++
Люди, проблемма в следующем. Когда соединяюсь к базе, требует юзернаме и пассворд. Стоит хоть один раз подключится через Windows Explorer...

Как создать объект класса? ПРоблемма из-за раздельной компиляции - C++
Есть 4 файла engine.h - базовый класс engine.cpp - реализация методов базового класса car.h - класс поизводный от engine car.cpp -...


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

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

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