Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Вектор и матрица

Ответить
Настройки темы
C/C++ - Вектор и матрица
toy toy вне форума

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Помогите переделать вот этот кусок программы в С++ :

Код: Выделить весь код
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.
Может быть кто-то знает как на С++ не ОПП реализовать? Или хотя бы тот кусочек?)

Отправлено: 02:08, 27-05-2010

 

В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


ну , если, я правильно понял задание то приблизительно получится вот так вот :

Код: Выделить весь код
#include "stdafx.h"
#include "iostream"
using namespace std;


void main()
{
	const int n = 20;		//размер для вектора и массива
	int vektor[n];			//объявление векотра
	int matrix[n][n];		//объявление матрицы
	int sum = 0;			//переменная для нахождения среднего арифметического

	cout << "Enter Elements of vektor";
	for (int i = 0; i < n; i++)
	{
		cin >> vektor[i];			//заполняем вектор
		sum = sum + vektor[i];
	}
	sum = sum/n;					//это и есть среднее арифметическое
	cout << "Enter Elements Of Matrix";
	for ( int i = 0; i < n; i++)
	{
		for ( int j = 0; j < n; j++)
		{
			cin >> matrix[i][j];	//заполняем матрицу
		}
	}

	for ( int i = 0; i < n; i++)
	{
		matrix[i][i] = sum;			//элементы диагонали заменяем на среднее арифметическое
	}
	for (int i = 0; i < n; i++)
	{
		cout << "\n";
		for (int j = 0; j < n; j++)
		{
			cout << matrix[i][j] << "\t";	//выводим матрицу на экран
		}
	}
}
З.Ы. Матрица и вектор - целочисленные...

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:01, 27-05-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

toy toy вне форума Автор темы

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


LilLoco LilLoco, спасибо большое только он как-то странно считает....

Отправлено: 13:32, 30-05-2010 | #3


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


эм, в чем именно странность?

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 15:32, 30-05-2010 | #4

toy toy вне форума Автор темы

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


она как-то странно считает... Я вот как понимаю задание: составить ф-ю вычисления среднего арифметического, затем с помощью нее найти ср. а. в каждой строке... т.е. если матрица 3Х3 то в первой строке будет заменяться первый элемент, во второй второй и в третьей третий соответственно.

К примеру первая строка выглядит так: 1 2 3 складываем все элементы, получаем 6 делим на 3 получаем 2, и затем заменяем 1 на 2. Т. е. получаем 2 2 3
Как - то так)

Последний раз редактировалось toy, 31-05-2010 в 01:24.


Отправлено: 01:01, 31-05-2010 | #5


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Ну вроде как в задании найти среднее арифметическое для вектора, а не матрицы

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 08:24, 31-05-2010 | #6

toy toy вне форума Автор темы

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


в задание сказано составить функцию вычисления ср.а. для вектора и с помощью него преобразовать матрицу)) ведь каждая строка матрицы это и будет вектор

Отправлено: 15:42, 31-05-2010 | #7


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


ммм, ну не правильно задание понял ну сделай из этого всего через функцию

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 19:09, 31-05-2010 | #8

toy toy вне форума Автор темы

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


если бы я знала как... я задание-то понимаю, а что-то сделать из этого для меня огромная проблема(

Отправлено: 19:15, 01-06-2010 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Вектор и матрица

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Матрица ноутбука Vlademort Ноутбуки 2 26-10-2009 12:03
матрица - Windows belyinosorog Ноутбуки 5 05-05-2009 08:03
C/C++ - Класс “ вектор в n-мерном пространстве” .::.DIMA.::. Программирование и базы данных 2 27-01-2009 07:40
Rowerbooke512wh матрица Pasha_11 Ноутбуки 0 13-12-2008 11:48
C/C++ - класс вектор root_777 Программирование и базы данных 8 12-12-2007 00:40




 
Переход