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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2009, 01:40   #1
aka_faith
Пользователь
 
Аватар для aka_faith
 
Регистрация: 15.05.2009
Сообщений: 74
Вопрос функции для формирования и обработки матриц

Многоуважаемые программисти или программеры-любители, помогите, плиз, подкоректировать прогу, а то я уже измучалась сама и измучала весь компилятор...

Задание :
Получить элементы квадратной матрицы А=||А(i,j)||, где A(i,j)=F(i,j)=2^i/((i-5/2)*(i+1)^2)*(2-|j-5|)^2 .из полученной матрицы получить компоненты массива Х, если в качестве X(i) принять max(a(i,j)-min(a(i,j)) каждой строки матрицы А. Вычислить значение U=f(X), где f(X)=min{|x(i+1)|-|x(i)|} ,1<=i<=n-1. Предусмотреть вывод на печать строк матрицы А, промежуточных матриц или массивов, результирующего массива Х, а также значение U.

Требования к выполнению работы:
1. Разработать функции формирования матриц
2. Разработать функции печати и обработки массивов
3. Для печати массивов функциям использовать указатели

Код:

Код:
#include <stdio.h>  
#include <conio.h>
#include <math.h>

void Form_Matrix(float *x,float k1,float k2,float k3,int *n)
{
  int i,j,k;
  scanf("%d",n);
  for(i=0;i<*n;i++)
    for(j=0;j<*n;j++)
    *(x+i**n+j)=fabs(pow(2,i)/((i-k1)*(i+k2)*(i+k2)))*((2-fabs(j-k3))*(2-fabs(j-k3)));
}

void Print_Matrix(float *x,int n,int m)
{
  int i,j;
    for(i=0;i<n;i++,printf("\n"))
      for(j=0;j<m;j++)
      printf(" %3.1f ",x[i*m+j]);
}

void Min_Max(float *f,int n, float *x)
{
  int i,j;
  float min=-1000,max=1000;
    for (i=1; i<n; i++)
      for (j=1; j<n; j++)
      {
       max = f[i][1] ;
       min = f[i][1] ;
       for (j=1; j<n; j++)
       {
	if (f[i][j]>max) max=f[i][j];
	if (f[i][j]<min) min=f[i][j];
       }
       printf ("min i max strok %d", i);
       printf ("max=%5.1f", max);
       printf ("min=%5.1f", min);
       x[i]=max-min;
      }
    
float U(float *x, int n)
for(i=1;i<n;i++)
      printf ("x[%d]=%5.1f\n", i, x[i]);
      if (n<3) printf ("U is not found: n<3");
      else
      {
      min=fabs(x[2])-fabs(x[1]);
      for (i=2; i<n; i++);
      {
       float xx=fabs(x[i+1])-fabs(x[i]);
	if(xx<fabs(min) min=xx;
	return min;
       } }



void main ()
{
  float F[36],min,x[6];
  int n1;
  clrscr();


  printf("matriza A\n");
  printf("razmer=");
  Form_Matrix(F,2.5,1,5,&n1);
  Print_Matrix(F,n1,x);
  printf("matriza Max-Min");
  Min_Max(F,6,x);
  min=U(F,n1,x);
  printf("\n %5.1f\n", min);
  


  getch();
}
Функции, которые вводят и печатают матрицу работают, а вот с обработкой беда..
aka_faith вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка Матриц(Упорядочивание Элементов,Вывод На Экран Матриц При Условии...) timepoka Помощь студентам 8 01.07.2011 13:20