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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2009, 21:56   #1
Wertex
 
Регистрация: 17.09.2009
Сообщений: 6
По умолчанию Массивы и функции на Си

В общем, задача по работе с массивом: задание єлементов матрицы по формуле, получение компонентов вектора, вычисление функции по формуле,... с этим я справился(код написал) НО! В задании написано-"В предложенных для каждого варианта задачах нужно повторяющиеся части алгоритма оформить, в виде процедур. ", я так понял с помощью функции(изучаю Си), ума не приложу как это все впихнуть в одну функцию.
Код:
#include <iostream.h>
#include <math.h>
#include <conio.h>

int main()	{
   const int n=6;
	float mass[n][n];
   for(int i=1;i<n;i++)	{
   	for(int j=1;j<n;j++)	{
      	mass[i][j]=2*(pow(exp(1),i))-2*i+8.756*log(j);
      }
   }
   //------------------------------------------------------------------
   float vec[n],sum_el=0;
   int g;
   for(int i=1;i<n;i++)	{
   	float imin=10000;
   		for(int j=1;j<n;j++)	{
      		if(mass[i][j]<imin)	{
            	imin=mass[i][j];     //Определение минимального єлемента
            	g=j;
            }
         }
   //-------------------------------------------------------------------
         for(int j=g+1;j<n;j++)	{  //Вычисление суммы элементов массива
             sum_el+=mass[i][j];    //стоящих за минимальным в строке
         }
         cout.width(5);
         cout<<imin<<">>"<<sum_el<<"  "<<endl;
         vec[i]=-sum_el;            //В отриманому векторi змiнити знаки 
                                          //елементiв на протилежнi
   }
   //-------------------------------------------------------------------
   cout<<"\nvec>>";
   float U;
   for(int i=1;i<n;i++)	{
      U=abs(vec[i]+2);
      cout<<vec[i]<<" ";}
   //-------------------------------------------------------------------
   cout<<"\n\n";
	for(int i=1;i<n;i++)	{
   	for(int j=1;j<n;j++)	{
         cout.width(5);
      	cout<<mass[i][j]<<" ";
      }
   cout<<endl;
   }
	getch();
	return 0;
}

Последний раз редактировалось Wertex; 17.09.2009 в 22:25.
Wertex вне форума Ответить с цитированием
Старый 17.09.2009, 23:04   #2
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
ума не приложу как это все впихнуть в одну функцию
Вобщем-то сейчас оно у вас кокрас и "впихнуто" в одну функцию (main).

Вам наоборот надо "выпихнуть" в несколкьо функций.

Ну что-то вроде этого (если я правильно понял суть вашего вопроса):

Код:
//Простенький пример

int fun1();//прототип функции которая не принимает параметров, но возвращает переменную типа int
int fun2(int a, int b);//Прототип функции которая как и верхняя, только ее принимает параметры

int main()
{
//...
int x=5;
int y=10;
fun1();//вызов функции 1
fun2(x,y);//вызов функции 2 и передача ей параметров (в качестве параметра a  она получит значение переменной x, а в качестве b - y)

//...
return 0;
}

//теперь надо расписать сами функции которые в прототипах мы указали

int fun1()
{
cout<<"была вызванная функций 1"<<endl;
return 0;
}


int fun2(int a, int b)
{

cout<<"Была вызванна функция 2"<<endl;
cout<<"были получены параметры:"<<endl;
cout<<"a = "<<a<<endl;
cout<<"b = "<<b<<endl;
return 0;
}
Такой код будет более удобочитаем, и к тому же мы можем вызывать одну и туже функцию сколкьо угодно раз.

например в цикле
Код:
...
for(i=0;i<n;i++)
{
fun1();
}
//на экране будет n раз выведена надпись "Была вызванна функция 1"
...
или так как-нибудь
Код:
...
fun1();
...
//много строк кода
...
fun1();
...
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 17.09.2009 в 23:07.
ROD вне форума Ответить с цитированием
Старый 17.09.2009, 23:26   #3
Wertex
 
Регистрация: 17.09.2009
Сообщений: 6
По умолчанию

Это вместо повторяющихся циклов, писать 5 функций. Или их можно както совместить, в данной программе.
Wertex вне форума Ответить с цитированием
Старый 17.09.2009, 23:40   #4
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Я в вашей программе не вижу ничего, что могло бы повторяться. Придется отдельно писать 5 разных функций.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 17.09.2009, 23:55   #5
Wertex
 
Регистрация: 17.09.2009
Сообщений: 6
По умолчанию

Может я из задания что-то не понял:"В предложенных для каждого варианта задачах нужно повторяющиеся части алгоритма оформить, в виде процедур. Значения элементов векторов или элементов матриц задать самостоятельно таким образом, чтобы в алгоритме обработки массива были проверены всевозможные ситуации, связанные с отсутствием искомого элемента его многократным повторением, местоположением и т.д."
Wertex вне форума Ответить с цитированием
Старый 17.09.2009, 23:59   #6
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
"В предложенных для каждого варианта задачах нужно повторяющиеся части алгоритма оформить, в виде процедур.
У вас в алгоритме нету повторяющихся частей.

Цитата:
Значения элементов векторов или элементов матриц задать самостоятельно таким образом, чтобы в алгоритме обработки массива были проверены всевозможные ситуации, связанные с отсутствием искомого элемента его многократным повторением, местоположением и т.д.
Наличие этого я не смотрел
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
Delphi,массивы, процедуры и функции Annn Помощь студентам 1 19.06.2009 01:50
Процедуры и функции, двумерные массивы. (QBasic) poad_hok Помощь студентам 2 27.05.2009 18:59
Массивы, процедуры/функции Вампирёк Помощь студентам 1 16.03.2009 10:15