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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 27.03.2009, 00:58   #1
HoOpe
Пользователь
 
Аватар для HoOpe
 
Регистрация: 09.03.2009
Сообщений: 52
Лампочка операции с квадратной матрицей

Задание :
Получить элементы квадратной матрицы А=||А(i,j)||, где A(i,j)=F(i,j)=2^i/((i-5/2)*i^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.

вот мой бред:
Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>

const n=6;
void main ()
{
   clrscr ();
   float F[n][n], X[n], min=1000,max=-1000;
   int i, j;
   printf ("matriza A");
     for (i=0; j<n; i++)
     {printf("\n")
        for (j=0; j<n; j++)
        {F[i][j]=(pow(2,i)/((i-2.5)*i*i))*((2-fabs(j-5))*(2-fabs(j-5)));
         printf("%5.1f  ", F[i][j]);}
           {if (F[i][j]>max) max=F[i][j];
            if F[i][j]<min) min=F[i][j];
            printf('min i max strok');
            printf ("max=%5.1f\n", max");
            printf ("min=%5.1f\n", min);
            X[i]=X[i]+(max-min)
            printf ("%5.1f", X[i])}
         printf("\n")
         }
   getch();
}
помогите исправить ошибки, плизз))

и еще трабл: как найти f(X)=min{|x(i+1)|-x(i)|} ,1<=i<=n-1?? надо формировать массив minов?
когда всё становится на свои места, выясняется, что это кладбище...
HoOpe вне форума
Старый 27.03.2009, 15:50   #2
Svetlag
Пользователь
 
Аватар для Svetlag
 
Регистрация: 24.02.2009
Сообщений: 85
По умолчанию

i,j, т.к. квадратная матрица, нужно изменять 1<=i<=n-1.
У вас со скобками какая-то путаница в задании. Исправляла, иcходя из того, что X(i) принимает значение max(a(i,j))-min(a(i,j)), f(X)=min{|x(i+1)|-|x(i)|}. Результаты можете выводить, какие нужно.

Если правильно поняла задание, то так.
Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>

const n=6;
void main ()
{
   clrscr ();
   float F[n][n], X[n], min=1000,max=-1000;
   int i, j;
   printf ("matriza A\n");
   for (i=1; i<n; i++)
   {
      for (j=1; j<n; j++)
      {
        F[i][j]=fabs(pow(2,i)/((i-2.5)*i*i))*((2-fabs(j-5))*(2-fabs(j-5)));
        printf("%5.1f  ", F[i][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("\nmin i max strok %d ", i);
      printf ("max=%5.1f  ", max);
      printf ("min=%5.1f\n", min);
      X[i]=max-min;
      printf ("X[%d] = %5.1f\n", i, X[i]);		        
    }
   if(n<3) printf ("U is not found: n<3.");//определение U
   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<min) min=xx;
     }	
     printf ("U = %5.1f\n", min);
   }
   getch();
}
Svetlag вне форума
Старый 27.03.2009, 21:40   #3
HoOpe
Пользователь
 
Аватар для HoOpe
 
Регистрация: 09.03.2009
Сообщений: 52
По умолчанию

Svetlag, пасибки огромное, вроде так)))

а можно как-то переделать код, чтобы сначала красивенько выводило матрицу, потом мин и макс, затем красивенько вектор Х и U?
когда всё становится на свои места, выясняется, что это кладбище...
HoOpe вне форума
Старый 29.03.2009, 18:25   #4
Svetlag
Пользователь
 
Аватар для Svetlag
 
Регистрация: 24.02.2009
Сообщений: 85
По умолчанию

Попробуйте так:
Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>

const n=6;
void main ()
{
   clrscr ();
   float F[n][n], X[n], min=1000,max=-1000;
   int i, j;
   printf ("matriza A\n");
   for (i=1; i<n; i++)
   {
      for (j=1; j<n; j++)
      {
        F[i][j]=fabs(pow(2,i)/((i-2.5)*i*i))*((2-fabs(j-5))*(2-fabs(j-5)));
        printf("%5.1f  ", F[i][j]);
      }
      printf("\n");
   }
   
    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\n", min);
       X[i]=max-min;	   
      }

   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.");//определение U
   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<min) min=xx;
     }	
     printf ("U = %5.1f\n", min);
   }
   getch();
}
Svetlag вне форума
Старый 01.04.2009, 01:07   #5
HoOpe
Пользователь
 
Аватар для HoOpe
 
Регистрация: 09.03.2009
Сообщений: 52
По умолчанию

все именно так)) пасибки, Svetlag!!!

а можно программку еще четь-чуть переделать? сделать ее с функциями? с такими вот требованиями:
1. разработать функции формирования матриц
2. разработать функции печати и обработки массивов
3. для передачи массивов функциям исполльзовать указатель...

а как здеся мона симпу ставить? куда плюсик челове4ку ставить??

Модератор: а штраф можно еще? Не сильно ли много вы просите. Сами попробуйте хоть что-то сделать.
когда всё становится на свои места, выясняется, что это кладбище...

Последний раз редактировалось MaTBeu; 01.04.2009 в 22:30.
HoOpe вне форума
Старый 01.04.2009, 14:38   #6
Svetlag
Пользователь
 
Аватар для Svetlag
 
Регистрация: 24.02.2009
Сообщений: 85
По умолчанию

Отзыв можно остаивить, нажав на весы в левом нижнем углу моего сообщения.
Я написала 2 функции - формирования и печати матрицы, остальное подобное.
Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>


float** formMatrix(float** F, int& n)
{
   int i, j;
   printf ("Input N = ");
   scanf("%d", &n);
   if(n<1) return NULL;
   F = new float*[n];
   for (i=0; i<n; i++) F[i] = new float[n];
   for (i=1; i<n; i++)
      for (j=1; j<n; j++)
        F[i][j]=fabs(pow(2,i)/((i-2.5)*i*i))*((2-fabs(j-5))*(2-fabs(j-5)));
   return F;
}

void printMatrix(float** F, int& n)
{
   int i, j;
   printf ("matriza A\n");
   for (i=1; i<n; i++)
      for (j=1; j<n; j++)   
        printf("%5.1f  ", F[i][j]);      
   printf("\n");  
}


void main ()
{
   clrscr ();
   float **F, min=1000,max=-1000;
   int n;

   F = formMatrix(F, n);
   printMatrix(F, n);

   float* X = new float[n];
   
    for (int i=1; i<n; i++)
      for (int 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\n", min);
       X[i]=max-min;	   
      }

   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.");//определение U
   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<min) min=xx;
     }	
     printf ("U = %5.1f\n", min);
   }

   if(n>1)
   {
	   delete [] X;
	   for(i=0; i<n; i++) delete [] F[i];
	   delete [] F;
   }
   getch();
}
Svetlag вне форума
Старый 01.04.2009, 22:30   #7
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Тема закрыта. Причина - сильно наглый ТС.
MaTBeu вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++, Операции с прямоугольной матрицей WinterLord Помощь студентам 5 14.12.2008 04:03
транспонирование квадратной матрицы 777UFO777 Общие вопросы Delphi 1 04.12.2008 19:31
Найти вектор в квадратной матрице... (С++) Alex88 Помощь студентам 2 19.11.2008 18:25
Определитель квадратной матрицы Tomoyo Помощь студентам 22 04.11.2008 22:37