05.05.2012, 20:06. Просмотров 827. Ответов 5
Помогите решить задачку второго курса на языке С++...
Дана квадратная матрица размерности nxn. необходимо построить логический вектор, каждый элемент которого равен true, если в строке существует элемент, который делит весь массив на две части с одинаковой суммой элементов в каждой
есть эта задачка на языке Delphi, c++ не знаю... может кто нибудь ее преобразовать в С++, ну или написать ее самому, буду премного благодарен.
вот сам код на делфи
Delphi |
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
| program str105n17;
{$APPTYPE CONSOLE}
uses
SysUtils,
windows;
const n=4;
Type str=array[1..n] of integer;
massiv=array[1..n] of str;
function f(var stroka:str):boolean;
var i,k:integer;
sum1,sum2:integer;
begin
f:=false;
k:=2;
repeat
sum1:=0;sum2:=0;
for i:=1 to k-1 do sum1:=sum1+stroka[i];
for i:=k+1 to n do sum2:=sum2+stroka[i];
if sum1=sum2 then f:=true;
k:=k+1;
until (sum1=sum2) or (k>=n);
end;
procedure create_matr (var m:massiv);
var i,j:integer;
begin
for i:=1 to n do
for j:=1 to n do
//m[i][j]:=random(10);
read(m[i][j]);
readln;
end;
procedure write_matr (var m:massiv);
var i,j:integer;
begin
for i:=1 to n do
begin
for j:=1 to n do
write(m[i,j]:4);
writeln;
end;
end;
var a:massiv;
v:array[1..n] of boolean;
stolbec:str;
i,j:integer;
begin
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
writeln('Введите элементы матрицы размером ',n,'x',n);
create_matr(a);
writeln('Матрица A:');
write_matr(a);
writeln('Результаты по строкам:');
for i:=1 to n do
begin
v[i]:=f(a[i]);
write(v[i],' ');
end;
writeln;
writeln('Результаты по столбцам:');
for j:=1 to n do
begin
for i:=1 to n do
stolbec[i]:=a[i,j];
v[j]:=f(stolbec);
write(v[j],' ');
end;
readln;
end. |
|