Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2009, 12:51   #1
Vultar
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 12
Вопрос Помогите с двумерным массивом в С++

Есть задача со следующим условием:
Для массива a(m,m) действительных чисел и переменных x и k определить значение:
S=a[1][k]+a[2][k]*x+a[3][k]*x*x
мной была написана следующая программа:
Код:
#include <iostream> 
#include<conio.h> 
#include<math.h> 
#include<windows.h> 
using namespace std; 
const int m=3; 
int Std[m][m]; 
double x;
int k;

void vvod() { 
extern int Std[m][m]; 
extern double x;
int k;
cout<<"Write matrix";
for(int n=0;n<m;n++) 
{
for(int k=0;k<m;k++) 
{ 
cin>>Std[n][k]; 
cout<<"a["<<n<<"]"<<"["<<k<<"]="<<Std[n][k]<<" "; 
} 
cout<<"\n"; 
} 
cout<<"Write x";
cin>>x; 
} 
void matrix() { 
extern int Std[m][m];
for(int k =0;k<m;k++){ cout<<"\n"; 
for(int n=0;n<m;n++){ 
cout<<Std[n][k]<<" "; 
} 
} 
} 
double vichisleniya() { 
extern int Std[m][m]; 
extern double x;
int k;
double X=1,S=0;
cout<<"Vvedite nomer stolbza";
cin>>k;
for(int n=0;n<m;n++) { 
S+=Std[n][k]*X; 
X*=x; 
} 
return S; 
} 
int main() 
{ 
int Std[m][m]; 
double x;
int k;
vvod();  
cout<<"Your matrix";
matrix(); 
cout<<vichisleniya();
cout<<"Resoult = ";
getch(); 
return 0; 
}
У меня вопрос:как сделать так что бы можно было ввести номер столбца
и на числа x,x*x и так далее, умножались соответственно елементы заданного столбца
Жирным выделил ту часть программы которая по моему мнению написана неправильно

Последний раз редактировалось Stilet; 12.11.2009 в 13:33.
Vultar вне форума Ответить с цитированием
Старый 12.11.2009, 15:11   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Код:
#include <iostream>
#include<conio.h>
#include<math.h>
#include<windows.h>
using namespace std;
const int m=3;
int Std[m][m];
double x;
int k;

void vvod() {
extern int Std[m][m];
extern double x;
int k;
cout<<"Write matrix 3x3"<<endl;
for(int n=0;n<m;n++)
{
for(int k=0;k<m;k++)
{ 
cin>>Std[n][k];
cout<<"a["<<n<<"]"<<"["<<k<<"]="<<Std[n][k]<<endl;
}
cout<<endl;
}
cout<<"Write x="<<"";
cin>>x;
}
void matrix() { 
extern int Std[m][m];
for(int k=0;k<m;k++){ cout<<"\n";
for(int n=0;n<m;n++){ 
cout<<Std[n][k]<<" ";
} 
} 
}
double vichisleniya()
{
extern int Std[m][m];
extern double x;
int k;
double X=1,S=0;
cout<<"Vvedite nomer stolbza"<<" ";
cin>>k;
for(int n=0;n<m;n++)
{
   S+=Std[k][n]*X;
   X*=x;
}
return S;
}
int main()
{ 
int Std[m][m];
double x;
int k;
vvod();
cout<<"Your matrix"<<endl;
matrix();
cout<<endl;
cout<<"Resoult = "<<vichisleniya();
getch();
return 0;
}
Код:
Std[n][k]
n-это столбец, а k -это строка
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 12.11.2009, 15:44   #3
Vultar
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 12
По умолчанию

Спасибо и на этом,но если вас не затруднит не могли бы вы пояснить как сделать так чтобы считалась сумма елементов заданной строки или столбца а то похоже сдесь просто счет матрицы
Vultar вне форума Ответить с цитированием
Старый 12.11.2009, 15:54   #4
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Код:
Std[k][n]
Так сумма столбца и считается. Вы ведь задаете изменение строки от 0 до m и подсчитываете только элементы находящиеся в k столбце.
Если
Код:
Std[n][k]
считается сумма элементов по строке.
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 12.11.2009, 17:11   #5
Vultar
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 12
По умолчанию

Нет я проверял, но так не работает---оно считает ИМЕННО ЗНАЧЕНИЕ матрицы, а не сумму елементов в строке или столбце.Если скажем задать в матрице 3-го ранга вычислить 5-й!!!! столбец то оно считает значение. То же самое если там же задать 2-й столбец.
m-размерность которую мы задаем конкретным числом
Vultar вне форума Ответить с цитированием
Старый 12.11.2009, 17:20   #6
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Приведите пример, что Вы хотите.
Я Вводила матрицу 3х3.
1 4 7
2 5 8
3 6 9.
При вводе х=2 и второго столбца получала в ответе 59. Вы учитываете, что строки и столбцы начинаются с 0?
Неприятности приходят и уходят, а жизнь продолжается!

Последний раз редактировалось Sweta; 12.11.2009 в 17:23.
Sweta вне форума Ответить с цитированием
Старый 12.11.2009, 17:57   #7
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

По-моему это соответствует Вашему заданию.
Изображения
Тип файла: jpg 5x5.JPG (104.8 Кб, 149 просмотров)
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 12.11.2009, 18:08   #8
Vultar
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Sweta Посмотреть сообщение
По-моему это соответствует Вашему заданию.
ну по идее согласно заданной матрице должно быть так:
S=6*2+7*2*2+8*2*2*2+9*2*2*2*2+10*2* 2*2*2*2
что явно больше чем 439
Vultar вне форума Ответить с цитированием
Старый 12.11.2009, 18:11   #9
Vultar
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Sweta Посмотреть сообщение
Приведите пример, что Вы хотите.
Я Вводила матрицу 3х3.
1 4 7
2 5 8
3 6 9.
При вводе х=2 и второго столбца получала в ответе 59. Вы учитываете, что строки и столбцы начинаются с 0?
второй столбец состоит из елементов 4,5,6
4*x+5*x*x+6*x*x*x=59???
Vultar вне форума Ответить с цитированием
Старый 12.11.2009, 18:17   #10
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Еще раз.
Счет столбцов начинается с 0, а не с 1. Т.е 2-й стодбец 11,12,13,14,15
Берем калькулятор или в столбик
11+12*2+13*2*2+14*2*2*2+15*2*2*2*2 =
11+24+52+112+240=439. Смотрите свою формулу рассчета.
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с двумерным массивом nikita33321 Помощь студентам 0 30.09.2009 22:45
проблемы с двумерным массивом pancho Общие вопросы Delphi 10 29.01.2009 21:24
Помогите с двумерным массивом символов Anvilion Помощь студентам 1 18.01.2009 01:59
помогите пожалуйста с двумерным массивом Wi1D Помощь студентам 8 26.11.2008 23:04
Помогите с двумерным массивом ПЛЗ))) Distract Паскаль, Turbo Pascal, PascalABC.NET 2 09.10.2008 11:39