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

Перевести из Pascal на С++ - C++

Восстановить пароль Регистрация
 
Best-pm07
..:::BesT:::..
 Аватар для Best-pm07
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
14.06.2010, 18:49     Перевести из Pascal на С++ #1
условие:
Данная целочисленные квадратная матрица.
Вычислить:
1) сумму элементов в тех строках, которые не содержат отрицательных элементов
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
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
uses wincrt;
const nmax=20;
var a:array[1..nmax,1..nmax]of integer;
    n,i,j,c,sum,k,max,l,p:integer;
begin
clrscr;
repeat
write('Размер матрицы до ',nmax,' n= ');
readln(n);
until n in [1..nmax];
randomize;
writeln('Матрица:');
for i:=1 to n do
 begin
  for j:=1 to n  do
   begin
    a[i,j]:=random(10)-1;
    write(a[i,j]:4);
   end;
  writeln;
 end;
writeln('Суммы в тех строках, которые не содержат отрицательных элементов:');
l:=0;
for i:=1 to n do
 begin
  sum:=0;k:=0;
  for j:=1 to n do
  if a[i,j]<0 then k:=1;
  if k=0 then
   begin
    l:=1;
    for j:=1 to n do
    sum:=sum+a[i,j];
    writeln('Сумма в строке ',i,' =',sum);
   end;
 end;
if l=0 then writeln('Строк без отрицательных элементов нет!');
write('Нажмите Enter...');
readln;
writeln('Суммы элементов на диагоналях, параллельных главной:');
max:=a[n,1];
for l:=1 to 2*n-1 do
 begin
  sum:=0;
  if l<n then{если нужна и сама главная, то l<=n}
   begin
    for i:=n-l+1 to n do
    for j:=1 to l do
    if j=i-n+l then sum:=sum+a[i,j];
    writeln('Сумма ',l:2,'=',sum:3);
    if sum<max then max:=sum;
   end
  else if l>n then
   begin
    for i:=1 to 2*n-l do
    for j:=l-n+1 to n do
    if j=i+l-n then sum:=sum+a[i,j];
    writeln('Сумма ',l:2,'=',sum:3);
    if sum<max then max:=sum;
   end;
 end;
writeln('Максимальная сумма=',max);
readln
end.
Добавлено через 10 часов 36 минут
обычно для вас это не сложно...

Добавлено через 17 часов 35 минут
помогите
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2010, 18:49     Перевести из Pascal на С++
Посмотрите здесь:

C++ перевести с pascal в С++
Перевести на C++ из Pascal C++
Перевести из Pascal в C++ C++
C++ Перевести с pascal в C++
Перевести с Pascal на С++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
14.06.2010, 19:08     Перевести из Pascal на С++ #2
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
#include <iostream>
using namespace std;
 
int GetItem(int **A, int i, int j){
if ((j<i)&& (j>i))
return 0;
else 
return A[i][j];}
 
 
int ShowMatrix (int **A, int n, int m){
for (int i=0; i<n; i++){
cout << endl; 
for (int j=0; j<m; j++)
printf("%5d ", GetItem(A,i,j)); }
cout << endl;
return 0;}
 
void main()
{
setlocale(LC_ALL, ".1251");
cout << "Введите размерность квадратной матрицы не больше 10" << endl; 
int n;
while (true){
cin >> n;
if (n > 0 && n <=10) 
break; 
cout << "Повторите ввод!" << endl; }
 
int m;
m=n;
int ** p; // выделяем память под элементы ниже побочной диагонали
p = new int * [n];
for (int i = 0; i < n; i++)
p[i] = new int [i+1];
 
cout << "Введите элементы матрицы:" << endl; //ввод матрицы
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
if ((j+i)<(n-1))
p[i][j]=0;
else {
cout << "Введите элемент " << i<<"."<< j <<":"; 
cin >> p[i][j];}
 
ShowMatrix (p,n,m);
cout<<endl;
 
int sum;
bool FoundLine = false; 
for (int i=0; i<n; i++)
for (int j=0; j<m; j++){
if (p[i][j]<0) 
break;
if (j==(m-1)){
FoundLine = true;
sum = 0;
for (int j=0; j<m; j++)
sum = sum + p[i][j];
cout << "Сумма элементов -" << (i) << " - строки, в которой нет отрицательных элементов = " << sum << endl<<endl;
}}
if (!FoundLine) 
cout << "Каждая строка содержит отрицательный элемент"<<endl<<endl;
 
//минимум ниже главной диагонали 
int min=37687;
int globMin = 32767;
for (int k = n-1; k>0; k--){
for(int i=n-1; i>0; i--){
for (int j=0; j<n-1; j++){
if ((i-j)==k)
if (p[i][j]<min)
min=p[i][j]; 
}
}
if (min < globMin)
globMin = min;
cout << "Минимум в диагонали = "<<k<<" ниже главной "<< min<<endl;
}
//минимум выше главной диагонали
int minn=37688;
for (int k = n-1; k>0; k--){
for(int i=0; i<n-1; i++){
for (int j=n-1; j>0; j--){
if ((j-i)==k)
if (p[i][j]<minn)
minn=p[i][j]; 
}
}
if (minn < globMin)
globMin = minn;
cout << "Минимум в диагонали = "<<k<<" выше главной "<< minn<<endl;
}
cout << endl << "Наименьший из минимальных по диагоналям = "<< globMin<<endl;
}
Пришлось попариться))
Best-pm07
..:::BesT:::..
 Аватар для Best-pm07
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
14.06.2010, 19:41  [ТС]     Перевести из Pascal на С++ #3
mexx-nikitin, а можно это как то упростить?
сильно сложно написано

пишу на Borland С++ ver. 4.5, поэтому всякие true и false не работают
переделал код под свой компилятор, чтобы работало, но считает и работает не так...((
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
14.06.2010, 19:53     Перевести из Pascal на С++ #4
попробуй true и false заменить на if,переписать полностью прогу я сейчас немогу готовлюсь к экзамену
Best-pm07
..:::BesT:::..
 Аватар для Best-pm07
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
14.06.2010, 19:57  [ТС]     Перевести из Pascal на С++ #5
попробую, но все же кто может помогите...
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
14.06.2010, 19:59     Перевести из Pascal на С++ #6
тут впринципе всё просто,если условие выпоняется то труе если нет то фалс или наоборот
Best-pm07
..:::BesT:::..
 Аватар для Best-pm07
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
14.06.2010, 22:22  [ТС]     Перевести из Pascal на С++ #7
граждане, помогите, не получается
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
14.06.2010, 22:24     Перевести из Pascal на С++ #8
что не работает то? какие ошибки?
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
14.06.2010, 22:50     Перевести из Pascal на С++ #9
Если проблема в true/false, то это
C++
1
2
3
#define bool int
#define true 1
#define false 0
А если нет, то в чём?
Best-pm07
..:::BesT:::..
 Аватар для Best-pm07
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
14.06.2010, 23:41  [ТС]     Перевести из Pascal на С++ #10
вот ту программу, что перевели, можно написать без использование true или false
просто пишу я на простеньком компиляторе, который не всё понимает
и препод скажет, что сделано не так как делается всегда

прошу просто поправить код, чтобы без тру и фолс было

вот и рандом, чтобы задавался через библиотеку stdlib.h

вот даже есть строчка:
C++
1
printf("%5d ", GetItem(A,i,j)); }
это же ведь язык Си
а нужно на C++
непонятно...

а можно помочь, написать эту программу просто по условию, не смотря уже на ПАСКАЛЬ и на перевод с паскаля, м?

условие выше
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2010, 16:46     Перевести из Pascal на С++
Еще ссылки по теме:

C++ Перевести с Pascal на C++
перевести с pascal на С++ C++
C++ Перевести с Pascal на C++

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

Или воспользуйтесь поиском по форуму:
Best-pm07
..:::BesT:::..
 Аватар для Best-pm07
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
20.06.2010, 16:46  [ТС]     Перевести из Pascal на С++ #11
я думал помогут
Yandex
Объявления
20.06.2010, 16:46     Перевести из Pascal на С++
Ответ Создать тему
Опции темы

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