|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум 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 | |
|