|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Вектор и матрица |
|
C/C++ - Вектор и матрица
|
Новый участник Сообщения: 5 |
Помогите переделать вот этот кусок программы в С++ :
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
|
Профиль | Отправить 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"; //выводим матрицу на экран } } } |
------- Отправлено: 19:01, 27-05-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать LilLoco LilLoco, спасибо большое только он как-то странно считает....
|
Отправлено: 13:32, 30-05-2010 | #3 |
В Поисках Истины Сообщения: 802
|
Профиль | Отправить PM | Цитировать эм, в чем именно странность?
|
------- Отправлено: 15:32, 30-05-2010 | #4 |
Новый участник Сообщения: 5
|
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать Ну вроде как в задании найти среднее арифметическое для вектора, а не матрицы
![]() |
------- Отправлено: 08:24, 31-05-2010 | #6 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать в задание сказано составить функцию вычисления ср.а. для вектора и с помощью него преобразовать матрицу)) ведь каждая строка матрицы это и будет вектор
![]() |
Отправлено: 15:42, 31-05-2010 | #7 |
В Поисках Истины Сообщения: 802
|
Профиль | Отправить PM | Цитировать ммм, ну не правильно задание понял
![]() ![]() |
------- Отправлено: 19:09, 31-05-2010 | #8 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать если бы я знала как... я задание-то понимаю, а что-то сделать из этого для меня огромная проблема(
|
Отправлено: 19:15, 01-06-2010 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Матрица ноутбука | 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 |
|