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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2010, 18:40   #1
Dortmuns
 
Регистрация: 16.12.2010
Сообщений: 6
По умолчанию С++(Матрицы)

Здравствуйте,дана задача:
Матрица (3.5)
1)Найти наибольший элемент среди элементов чётных столбцов.
2)Подсчитать произведение для 4-го столбца по формуле (P=P*((1+cos(1-1/a[i,4]))+8.3)
3)Поменять местами найденный наибольший элемент в задании (1) с последним элементом матрицы.

Программу пытался написать,но выдаёт много ошибок.
Могзов их исправить не хватает.
Подскажите пожалуйста.
Dortmuns вне форума Ответить с цитированием
Старый 21.12.2010, 18:40   #2
Dortmuns
 
Регистрация: 16.12.2010
Сообщений: 6
По умолчанию

Наработки:
Код:
#include<iostream.h>
#include<math.h>
#include<stdio.h>
void main()
{
float a[3][5], min, P;
int i, j, imin, jmin;
printf("Vvedite a(3,5)\n");
for (i=0; i<3; i++)
for (j=0; j<5; j++)

cin>>a[i][j];
  cout<<"Matrica a"<<endl;
   for(i=0; i<3; i++)
   {for(j=0; j<5; j++)
  cout<<" "<<a[i][j];
  cout<<endl;}
  cout<<"min + elementy"<<endl;
  min=1000;
   for (i=0; i<3; i++)
   for (j=0; j<5; j++)
   if (min>a[i][j], a[i][j]>0) {
   min=a[i][j];
   imin=i;
   jmin=j;}
   cout<<" min="<<min<<" imin="<<imin<<" jmin="<<jmin<<endl;
   cout<<"Proizvedenie"<<endl;
   P=1;
   for (i=0; i<3; i++)
   P=P*(1/cos(1-1/a[i,4]))+8.3);
   cout<<" P="<<P<<endl;
   a[3,5]:=a[imax,jmax];
   a[imax;jmax]"=a[3,5];
   for (i=0; i<3; i++)
   {
   for (j=0; j<5; j++)
   cout<<a[i][j]<<"\t";}cout<<"\n";]
}

Последний раз редактировалось ACE Valery; 21.12.2010 в 21:42.
Dortmuns вне форума Ответить с цитированием
Старый 21.12.2010, 19:21   #3
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Вот, к примеру,
Код:
if (min>a[i][j] && a[i][j]>0)
А вот это паскалевское
Код:
a[3,5]:=a[imax,jmax];
a[imax;jmax]"=a[3,5];
сделать так:
Код:
float temp = a[3][5];
a[3][5] = a[imax][jmax];
a[imax][jmax] = temp;
Больше вроде не нашел.
На будущее учтите, что оформление кода в тег CODE (значок #) и указание ошибок, выдаваемых компилятором и строчек, где эти ошибки появляются, значительно упрощают поиск проблем и способов их устранения.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 21.12.2010, 19:31   #4
UltimaBeaR
Форумчанин
 
Аватар для UltimaBeaR
 
Регистрация: 21.12.2010
Сообщений: 199
По умолчанию

Код:
const int matrixWidth = 3;
const int matrixHeight = 5;

int i, j;
float a[matrixWidth][matrixHeight];

// ToDo: ввод элементов матрицы

// 1)Найти наибольший элемент среди элементов чётных столбцов.

int maxI = 1; int maxJ = 0;
int max = a[maxI][maxJ]

// будем считать что четные столбцы это номера индексов 1, 3, 5, ...
for (j = 0; j < matrixHeight; j++)
	for (i = 1; i < matrixWidth; i += 2) // начинаем с первого четного столбца и прыгаем через столбец
		if (a[i][j] > max)
		{
			max = a[i][j];
			maxI = i;
			maxJ = j;
		}
		
// 2)Подсчитать произведение для 4-го столбца по формуле (P=P*((1+cos(1-1/a[i,4]))+8.3)

// по формуле это не 4ый столбец а 4ая строка, т.к. [номер столбца, номер строки]

float p = 1.0f;
for (i = 0; i < matrixWidth; i++)
	p *= 1.0f + cos(1.0f - 1.0f / a[i][4]) + 8.3f; // насколько я понял из формулы  + 8.3f надо делать тут, если нет то сделаешь это после цикла
	
// 3)Поменять местами найденный наибольший элемент в задании (1) с последним элементом матрицы.

int temp = a[matrixWidth - 1][matrixHeight - 1];
a[matrixWidth - 1][matrixHeight - 1] = max;
a[maxI][maxJ] = temp;
Вот код, я его не проверял но надеюсь правильно. Разберешся куда его вставлять и что исправлять (обрати внимание на 2ое задание и ToDo) значит еще не все пропало. Код твой ниасилил, компилятор его тоже ниасилил

Последний раз редактировалось UltimaBeaR; 21.12.2010 в 19:35.
UltimaBeaR вне форума Ответить с цитированием
Старый 21.12.2010, 19:56   #5
Dortmuns
 
Регистрация: 16.12.2010
Сообщений: 6
По умолчанию

Огромное спасибо граждане)
P.S На счёт кусков на Паскале-да,не заметил)3 месяца программировали на нём,а сейчас на СИ пересели,непревык))
Dortmuns вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение матрицы методом союзной матрицы dofmat Помощь студентам 6 03.10.2011 15:01
TurboPascal: графы, матрицы смежности и матрицы инцидентности. ulala Помощь студентам 1 03.03.2011 19:28
Матрицы:функция изменения порядка столбцов матрицы Fajyz Помощь студентам 0 13.01.2010 09:40
На главную диагональ матрицы поместить наибольшие элементы этой матрицы mivel Помощь студентам 2 23.12.2009 21:19