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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
Huk
3 / 3 / 0
Регистрация: 12.10.2009
Сообщений: 79
#1

Перевод кода из Паскаля в С++ - C++

18.05.2010, 08:59. Просмотров 1998. Ответов 12
Метки нет (Все метки)

Я в С++ не бум бум, написал прогу на паскале а нуно на Си++ помогите перевести
Задача :
Назовем допустимым преобразованием матрицы перестановку двух строк или двух столбцов.
Дана действительная квадратная матрица порядка n.
С помощью допустимых преобразований добиться того, чтобы один из элементов матрицы обладающий
наибольшим по модулю значением, располагался в левом верхнем углу матрицы.
Заранее вас Благодарю
Вот сам код
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
uses crt;
const n=5;
var max,maxi,maxj,k,i,j,prom:integer;
a: array [1..n,1..n]of integer;
begin
writeln('vvod mass');
for i:=1 to n do
for j:=1 to n do
readln(a[i,j]);
 
max:=0;
maxi:=1;
maxj:=1;
for i:=1 to n do
for j:=1 to n do begin
if abs(a[i,j])>=max then begin
max:=abs(a[i,j]);
maxi:=i;
maxj:=j;
end;
end;
for k:=1 to n do begin
prom:=a[k,1];
a[k,1]:=a[k,maxj];
a[k,maxj]:=prom;
end;
for k:=1 to n do begin
prom:=a[1,k];
a[1,k]:=a[maxi,k];
a[maxi,k]:=prom;
end;
for i:=1 to n do begin
writeln;
for j:=1 to n do
write(a[i,j],' ');
end;
readln;
end.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
18.05.2010, 09:27     Перевод кода из Паскаля в С++ #2
Так:
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
uses crt;
const n=5;
var max,maxi,maxj,k,i,j,prom:integer;
a: array [1..n,1..n]of integer;
begin
writeln('vvod mass');
for i:=1 to n do
for j:=1 to n do
readln(a[i,j]);
 
max:=0;
maxi:=1;
maxj:=1;
for i:=1 to n do
for j:=1 to n do begin
if abs(a[i,j])>=max then begin
max:=abs(a[i,j]);
maxi:=i;
maxj:=j;
end;
end;
for k:=1 to n do begin
prom:=a[k,1];
a[k,1]:=a[k,maxj];
a[k,maxj]:=prom;
end;
for k:=1 to n do begin
prom:=a[1,k];
a[1,k]:=a[maxi,k];
a[maxi,k]:=prom;
end;
for i:=1 to n do begin
writeln;
for j:=1 to n do
write(a[i,j],' ');
end;
readln;
end.
?

Добавлено через 9 минут
Тогда:
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
#define n 5
#include <iostream.h>
int main ()
{
 int max,maxi,maxj,k,i,j,prom;
 int a[n][n];
 cout<<"vvod mass";
 for (i=1; i<=n; ++i)
 {
  for (j=1; j<=n; ++j)
  {
   cin>>a[i-1][j-1];
  }
 }
 max=0;
 maxi=1;
 maxj=1;
 for (i=1; i<=n; ++i)
 {
  for (j=1; j<=n; ++j)
  {
   if (abs(a[i-1][j-1])>=max)
   {
    max=abs(a[i-1][j-1]);
    maxi=i;
    maxj=j;
   }
  }
 }
 for (k=1; k<=n; ++k)
 {
  prom=a[0][k-1];
  a[0][k-1]=a[maxi-1][k-1];
  a[maxi-1][k-1]:=prom;
 }
 for (i=1; i<=n; ++i)
 {
  cout<<"\n";
  for (j=1; j<=n; ++j)
  {
    cout<<a[i-1][j-1]<<" ";
  }
 }
 return 0;
}
Добавлено через 1 минуту
Но лучше перепиши на явную индексацию с нуля.
Huk
3 / 3 / 0
Регистрация: 12.10.2009
Сообщений: 79
18.05.2010, 09:47  [ТС]     Перевод кода из Паскаля в С++ #3
спс но прога не работает=) там куча ощибок итд
1) `cout' undeclared (first use this function)
2) `cin' undeclared (first use this function)
3) expected `;' before ':' token
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
18.05.2010, 09:50     Перевод кода из Паскаля в С++ #4
Проект в студии?
Huk
3 / 3 / 0
Регистрация: 12.10.2009
Сообщений: 79
18.05.2010, 09:52  [ТС]     Перевод кода из Паскаля в С++ #5
#include <iostream>
#define n 5
int main ()
{
int max,maxi,maxj,k,i,j,prom;
int a[n][n];
cout << "vvod mass: \n";
for (i=1; i<=n; ++i)
{
for (j=1; j<=n; ++j)
{
cin>>a[i-1][j-1];
}
}
max=0;
maxi=1;
maxj=1;
for (i=1; i<=n; ++i)
{
for (j=1; j<=n; ++j)
{
if (abs(a[i-1][j-1])>=max)
{
max=abs(a[i-1][j-1]);
maxi=i;
maxj=j;
}
}
}
for (k=1; k<=n; ++k)
{
prom=a[0][k-1];
a[0][k-1]=a[maxi-1][k-1];
a[maxi-1][k-1]:=prom;}
for (i=1; i<=n; ++i)
{
cout<<"\n";
for (j=1; j<=n; ++j)
{
cout<<a[i-1][j-1]<<" ";
}
}
}

вот твоя прога она выдает те ощибки которые я привел выше, я на Dev-C++ работаю
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
18.05.2010, 10:01     Перевод кода из Паскаля в С++ #6
microsoft development studio и на мои консольные тексты ругается, а gcc - нет, хотя всё, что относится к потокам, пишу одинаково и инкладю для них один и тот же файл.
Huk
3 / 3 / 0
Регистрация: 12.10.2009
Сообщений: 79
18.05.2010, 10:11  [ТС]     Перевод кода из Паскаля в С++ #7
ну дык что получается мне компелятор сменить?
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
18.05.2010, 10:17     Перевод кода из Паскаля в С++ #8
C++
1
cout
меняй на
C++
1
sprintf
, а
C++
1
cin
на
C++
1
scanf
(это функции, синтаксиса не помню) и приделай непосредственно ввод/вывод (строчный).

Добавлено через 2 минуты
в 34-й строке очепятка: осталось двоеточие от паскаля. Замени
C++
1
 :=
на
C++
1
=
.

Добавлено через 22 секунды
Цитата Сообщение от Huk Посмотреть сообщение
ну дык что получается мне компелятор сменить?
Какая у тебя ось?
Huk
3 / 3 / 0
Регистрация: 12.10.2009
Сообщений: 79
18.05.2010, 10:19  [ТС]     Перевод кода из Паскаля в С++ #9
XP SP3
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
18.05.2010, 10:21     Перевод кода из Паскаля в С++ #10
Тогда gcc тебе не светит.
Huk
3 / 3 / 0
Регистрация: 12.10.2009
Сообщений: 79
18.05.2010, 10:23  [ТС]     Перевод кода из Паскаля в С++ #11
я поменял как ты и говорил, но все равно она не пашет что то всякие ошибки выдает, кстати cout у меня в других прогах работает что делать???
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
18.05.2010, 10:25     Перевод кода из Паскаля в С++ #12
Сравни инклады и делай каутом.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2010, 10:37     Перевод кода из Паскаля в С++
Еще ссылки по теме:

Перевод кода из Паскаля в С++ C++
C++ Перевод кода с Паскаля на C++
C++ Перевод кода на с++ с паскаля. Фракталы: Кривая Коха
Перевод кода с паскаля на С++ C++
Перевод кода из Паскаля в C++ C++

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

Или воспользуйтесь поиском по форуму:
Huk
3 / 3 / 0
Регистрация: 12.10.2009
Сообщений: 79
18.05.2010, 10:37  [ТС]     Перевод кода из Паскаля в С++ #13
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
#include <iostream>
#include <stdlib.h>
#include <iomanip>
int main()
{const int n = 4; /* ïîðÿäîê Г¬Г*òðèöû */
int a[n][n];
int i,j;
int max,maxi,maxj,k,prom;
std::cout << "Array:\n";
for (i = 1; i <= n; i++){
for (j = 1; j <= n; j++){
a[i][j] = rand()%9;
std::cout << std::setw(3) << a[i][j];}}
max=0;
maxi=1;
maxj=1;
for (i=1; i<=n; ++i){
for (j=1; j<=n; ++j){
if (abs(a[i-1][j-1])>=max){
max=abs(a[i-1][j-1]);
maxi=i;
maxj=j;}}}
for (k=1; k<=n; ++k){
prom=a[0][k-1];
a[0][k-1]=a[maxi-1][k-1];
a[maxi-1][k-1]=prom;}
std::cout << "Result:\n";
for (i = 0; i < n; i++){
for (j = 0; j < n; j++)
std::cout << std::setw(3) << a[i][j];
std::cout << std::endl;}
system("pause");
return 0;}
я вот тут подшаманил но ни как не могу добиться чтоб матрица нормально на экран выводилась помоги если не трудно плз=)
тут что то не так помоги найти ощибку=)))))))
Yandex
Объявления
18.05.2010, 10:37     Перевод кода из Паскаля в С++
Ответ Создать тему
Опции темы

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