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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2010, 18:05   #1
Aндрей
Пользователь
 
Регистрация: 15.02.2009
Сообщений: 33
По умолчанию Алгоритм

Посмотрите пожалуйста правильно ли я составил алгоритм при использовании функции. (Посмотрите мою фотографию, привильно ли я оформил алгоритм при вызове функции)

Заданы матрица a={aij} размера 3×3 и матрица b={bij} размера 4×4; xn; xk; dx. Вычислить след c матрицы a и след d матрицы b. Вычислить y=cx2+d, при x, изменяющимся от xn до xk с шагом dx.
Вычисление следа матрицы оформить в виде подпрограммы типа FUNCTION. (След s матрицы x вычисляется по формуле S=∑xij).

Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
			//FUNCTION
double sled(double x[][25], int k)
{
double S=0; int i,j;

	for(i=0;i<k;i++)
	 {
		for(j=i;j<=i;j++)
		 {
			S+=x[i][j];
		 }
	 }
return S;
}
	void main()
	{
	 clrscr();
	 double a[25][25];
	 double b[25][25];
	 double xn=2.4,xk=3.6,dx=0.2,y,c,d;
	 int i,j,n=3,m=4;
	 a[0][0]=1; a[0][1]=2; a[0][2]=3;
	 a[1][0]=4; a[1][1]=5; a[1][2]=6;
	 a[2][0]=7; a[2][1]=8; a[2][2]=9;
	 b[0][0]=1.2; b[0][1]=8; b[0][2]=4;   b[0][3]=1;
	 b[1][0]=7.5; b[1][1]=3; b[1][2]=1.2; b[1][3]=6;
	 b[2][0]=-2;  b[2][1]=1; b[2][2]=-1;  b[2][3]=7;
	 b[3][0]=5;   b[3][1]=4; b[3][2]=3;   b[3][3]=2;
				//VIVOD MASSIVA a[i][j]
	 printf("       a[i][j]");
	 for(i=0; i<n; i++)
		{
			printf("\n");
			for(j=0; j<n; j++)
			 {
				printf(" %-5.2lf ", a[i][j]);
			 }
		}
	 printf("\n\n");
				//VIVOD MASSIVA b[i][j]
	 printf("          b[i][j]");
	 for(i=0; i<m; i++)
		{
		 printf("\n");
		 for(j=0; j<m; j++)
			{
				printf(" %-5.2lf ", b[i][j]);
			}
		}
	 printf("\n\n");
			//SLED c MATRICI a[i][j]
	 c=sled(a, n);
	 printf(" c(a[i][j]) = %-5.2lf ", c);
	 //c=S;
			//SLED d MATRICI b[i][j]
	 d=sled(b, m);
	 printf(" d(b[i][j]) = %-5.2lf\n", d);
	 //d=S;
			 //Y=CX^2+D
	 while (xn <= xk + 0.00000001)
		{
		 y=c*pow(xn,2)+d;
		 printf("\n y(%-5.2lf) = %-5.2lf", xn, y);
		 xn+=dx;
		}
	 printf("\n\n Нажмите любую клавишу для выхода "); 
	 getch();
 }
Изображения
Тип файла: jpg 1.jpg (61.4 Кб, 133 просмотров)

Последний раз редактировалось Aндрей; 21.02.2010 в 18:36.
Aндрей вне форума Ответить с цитированием
Старый 21.02.2010, 18:49   #2
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Правильно. Только уж больно... как бы это помягче... неэлегантно
Код:
double sled( double x[][25], int k ) {

   double S=0; 
   int i;

   for ( i=0; i<k; i++)
      S += x[i][i];

   return S;

}
Б-С - не по ГОСТу!
Vago вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм А* Claster Помощь студентам 1 24.05.2011 18:45
Алгоритм G@sh!sh Общие вопросы по Java, Java SE, Kotlin 4 21.06.2009 16:17
Алгоритм JoSkream Общие вопросы C/C++ 5 04.06.2009 23:22
Алгоритм?! Spartaner Фриланс 2 28.05.2009 03:22