toy
27-05-2010, 02:08
Помогите переделать вот этот кусок программы в С++ :
uses crt;
type vekt=array[1..20] of real;
matr=array[1..20] of vekt;
function Sred(v:vekt;x:byte):real;
var i:byte;
вообщем в Си не сильна...)
Само задание вот:
Составить функцию вычисления среднего арифметического элементов вектора. Используя её, преобразовать квадратную матрицу следующим образом: диагональные элементы матрицы заменить средними арифметическими значениями соответствующих строк.
и вот решение на паскале:
uses crt;
type vekt=array[1..20] of real;
matr=array[1..20] of vekt;
function Sred(v:vekt;x:byte):real;
var i:byte;
s:real;
begin {
s:=0; s=0;
for i:=1 to x do
s:=s+v[i];
Sred:=s/x;
end;
var a:matr;
n,i,j:byte;
begin
clrscr;
repeat
write('Размер матрицы от 2 до 20 n=');
readln(n);
until n in [2..20];
writeln('Введите ',n*n,' элементов матрицы:');
for i:=1 to n do
for j:=1 to n do
begin
write('a[',i,',',j,']=');
readln(a[i,j]);
end;
clrscr;
writeln('Исходная матрица:');
for i:=1 to n do
begin {
for j:=1 to n do
write(a[i,j]:5:1);
writeln;
end
writeln;
for i:=1 to n do
a[i,i]:=Sred(a[i],n);
writeln('Результат:');
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:5:1);
writeln;
end;
readln
end.
Может быть кто-то знает как на С++ не ОПП реализовать? Или хотя бы тот кусочек?)
uses crt;
type vekt=array[1..20] of real;
matr=array[1..20] of vekt;
function Sred(v:vekt;x:byte):real;
var i:byte;
вообщем в Си не сильна...)
Само задание вот:
Составить функцию вычисления среднего арифметического элементов вектора. Используя её, преобразовать квадратную матрицу следующим образом: диагональные элементы матрицы заменить средними арифметическими значениями соответствующих строк.
и вот решение на паскале:
uses crt;
type vekt=array[1..20] of real;
matr=array[1..20] of vekt;
function Sred(v:vekt;x:byte):real;
var i:byte;
s:real;
begin {
s:=0; s=0;
for i:=1 to x do
s:=s+v[i];
Sred:=s/x;
end;
var a:matr;
n,i,j:byte;
begin
clrscr;
repeat
write('Размер матрицы от 2 до 20 n=');
readln(n);
until n in [2..20];
writeln('Введите ',n*n,' элементов матрицы:');
for i:=1 to n do
for j:=1 to n do
begin
write('a[',i,',',j,']=');
readln(a[i,j]);
end;
clrscr;
writeln('Исходная матрица:');
for i:=1 to n do
begin {
for j:=1 to n do
write(a[i,j]:5:1);
writeln;
end
writeln;
for i:=1 to n do
a[i,i]:=Sred(a[i],n);
writeln('Результат:');
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:5:1);
writeln;
end;
readln
end.
Может быть кто-то знает как на С++ не ОПП реализовать? Или хотя бы тот кусочек?)