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

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

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

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

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

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

Ой, на экране получилось что-то ужасное:
Цитата:
12.3 615186520952039023000000.0 0.0 3284.6 0.0 3424.2
0.0 36163851124736.0 134449.2 0.0 0.0 0.0
803972.2 0.0 136903520.0 0.0 140050304.0 216108548096.0
-14069340813103178900000000000000000 .0 840.0 0.0 220223744.0 0.0 -0.0
3364.1 38455989520137160000000.0 0.0 861269.4 -0.0 0.0
0.0 -0.0 3528459776.0 0.0 -0.0 3321084510208.0
matriza Max-Min
615186520952039023000000.0 36163851124736.0 216108548096.0 14069340813103178900
000000000000000.0 38455989520137160000000.0 3321084510208.0
U=-14069340813103178900000000000000000 .0
когда функция Form_Matrix стала вот такой:
Код:
void Form_Matrix(float *x,int n)
{
  int i,j,k;
  float a=2;
  for(i=0;i<n;i++)
    for(j=0;j<n;j++)
    a=a*2;
    x[i*n+j]=fabs(a/(((i+1)-5/2)*(i+2)*(i+2)))*((2-fabs(j-4))*(2-fabs(j-4)));
}
Почему?
aka_faith вне форума Ответить с цитированием
Старый 31.05.2009, 01:42   #22
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Во-первых, на 2 нужно умножать на каждой итерации по i.
Во-вторых, скобки-то, вообще-то, не помешало бы поставить.
Код:
void Form_Matrix(float *x,int n)
{
  int i,j,k;
  float a=2;
  for(i=0;i<n;i++,a*=2)
    for(j=0;j<n;j++)
     x[i*n+j]=fabs(a/(((i+1)-5/2)*(i+2)*(i+2)))*((2-fabs(j-4))*(2-fabs(j-4)));
}
Только вот вы на результат работы программы вообще смотрели? (в том числе и той, которую вы назвали рабочей). Доллары какие-то выводит...
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 31.05.2009, 01:53   #23
aka_faith
Пользователь
 
Аватар для aka_faith
 
Регистрация: 15.05.2009
Сообщений: 74
По умолчанию

а такие результаты могли же получится??

Цитата:
matriza A
1.3 0.3 0.0 0.3 1.3 0.3
3.6 0.9 0.0 0.9 3.6 0.9
4.0 1.0 0.0 1.0 4.0 1.0
1.7 0.4 0.0 0.4 1.7 0.4
1.4 0.4 0.0 0.4 1.4 0.4
1.5 0.4 0.0 0.4 1.5 0.4
matriza Max-Min
1.3 3.6 4.0 1.7 1.4 1.5
U=-2.3
aka_faith вне форума Ответить с цитированием
Старый 31.05.2009, 01:57   #24
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от aka_faith
а такие результаты могли же получится??
Хм.. Ну значит это у меня что-то глючит..
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 05.06.2009, 02:34   #25
aka_faith
Пользователь
 
Аватар для aka_faith
 
Регистрация: 15.05.2009
Сообщений: 74
По умолчанию

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


void Form_Matrix(float *x,int n)
{
  int i,j,k;
  float a=2;
  for(i=0;i<n;i++,a*=2)
    for(j=0;j<n;j++)
     x[i*n+j]=fabs(a/(((i+1)-2.5)*(i+2)*(i+2)))*((2-fabs(j-4))*(2-fabs(j-4)));
     printf(" %3.1f ",x[i*n+j]);
}

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


void Min_Max(float *f,int n, float x[])
{
  int i,j;
  int min,max;
  for (i=0; i<n; i++)
   {
    min=0;
    max=0;
    for (j=0; j<n; j++)
      {
	if (f[i*n+j]>f[i*n+max]) max=j;
	       if (f[i*n+j]<f[i*n+min]) min=j;
       }
	   x[i]=f[i*n+max]-f[i*n+min];
    }
}

float U(float *X, int n)
{
 float min;
 int i;
 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;
  }
 return min;
}


void main ()
{

  float F[30][30], X[30], n=6, min;
  int i;

  printf("matriza A\n");
  Form_Matrix(&F[0][0],n);
  Print_Matrix(&F[0][0],n);
  printf("matriza Max-Min\n");
  Min_Max(&F[0][0],n,X);
  for (i=0; i<n; i++)
    printf (" %3.1f", X[i]);
  printf("\nU=");
  min=U(X,n);
  printf("%3.1f", min);

  getch();

}
Код:
matriza A
 0.0  bred bred bred bred bred bred
 bred bred bred bred bred bred
 bred bred bred bred bred bred
 bred bred bred bred bred bred
 bred bred bred bred bred bred
 bred bred bred bred bred bred
 0.0 matriza Max-Min
 1.3 3.6 4.0 1.7 1.4 1.5
U=-2.3
должны же быть две одинаковые матрицы...

Последний раз редактировалось Sazary; 05.06.2009 в 13:08.
aka_faith вне форума Ответить с цитированием
Старый 05.06.2009, 13:12   #26
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Все совпадает. Скобки забыли расставить:
Код:
void Form_Matrix(float *x,int n)
{
  int i,j,k;
  float a=2;
  for(i=0;i<n;i++,a*=2)
   {
     for(j=0;j<n;j++)
     {
      x[i*n+j]=fabs(a/(((i+1)-2.5)*(i+2)*(i+2)))*((2-fabs(j-4))*(2-fabs(j-4)));
      printf(" %3.1f ",x[i*n+j]);
    }
    printf("\n");
   }
}

void Print_Matrix(float *x,int n)
{
  int i,j;
    for(i=0;i<n;i++,printf("\n"))
      for(j=0;j<n;j++)
      {//printf(" bred");
      printf(" %3.1f ",x[i*n+j]);}
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибки Satorin Общие вопросы Delphi 4 25.12.2008 21:35
помогите исправить ошибки kermit Помощь студентам 1 21.06.2008 10:44
Помогите исправить незначительные ошибки HAMMAN Помощь студентам 1 10.06.2008 19:07
помогите исправить ошибки в программе... VDK23 Помощь студентам 1 17.04.2008 13:05
Помогите исправить ошибки ...С++ Настенька Помощь студентам 1 25.03.2007 23:30