Форум программистов, компьютерный форум CyberForum.ru

Матрица мин макс, не правильно выводиться - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Описать функцию, которая подсчитывает число вхождений элемента Е http://www.cyberforum.ru/cpp-beginners/thread749057.html
Сформировать динамический список (стек или очередь), считая, что длина списка (количество элементов) задана. Описать функцию, которая подсчитывает число вхождений элемента Е, значение ко-торого введено с клавиатуры, в списке Q.
C++ Создание 3D игры на UDK используя C++ Народ всем привет короче у меня появилась идея создать игру на UDK который использует C++. типо этой ==> http://www.youtube.com/watch?v=BpttBAzzo70 но чтобы было много персов и они между собой дрались. Получиться ли создать ее одному создавая модельи в zbrush и анимировав их в mayaа затем вставлять в udk ? Если да то сколько это займет времени?(научиться делать модели в zbrush, научиться... http://www.cyberforum.ru/cpp-beginners/thread749051.html
Отличаи класса С++ от структуры на С и структуры на С++ C++
Можете, пожалуйста, перечислить все отличия?
C++ На вход подается некоторое количество треугольников (координаты вершин). Отсортировать и вывести их по возрастанию площадей
доброго времени суто,вы не могли бы мне помочь,очень нужно. Спасибо за ранее ) На вход подается некоторое количество треугольников (координаты вершин). Отсортировать и вывести их по возрастанию площадей.
C++ Найти строку матрицы, имеющую наибольшую разницу между элементами. http://www.cyberforum.ru/cpp-beginners/thread749024.html
доброго времени суто,вы не могли бы мне помочь,очень нужно. Спасибо за ранее ) С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица. Найти строку, имеющую наибольшую разницу между элементами.
C++ fstream не создается файл (Ecipse + MinGW) Помогите пожалуйста, у меня не создается текстовый файл. Я начал изучать С++ недавно. Пользуюсь Ecipse + MinGW. Вот мой исходник cWrite.h #ifndef CWRITE_H_ #define CWRITE_H_ class cWrite { public: cWrite(void) {}; подробнее

Показать сообщение отдельно
Learx
1032 / 839 / 85
Регистрация: 31.03.2010
Сообщений: 2,465
28.12.2012, 19:09     Матрица мин макс, не правильно выводиться
Немножко поправил:
1. Шаг вычисляется автоматически(это и есть d)
2. Именил чуток вычисление m
3. Использовал вывод с++. вывод СИ чет глючит.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include <conio.h>
#include <malloc.h>
#include <stdlib.h>
 
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <fstream> 
using namespace std;
 
double Min(double xmin, double xmax, double step) //ÔóГ*êöèÿ ГўГҐГ°Г*ГҐГІ ymin
{
  double min;
  min=sin(xmin*xmin);
  for (double i=xmin+ step; i<=xmax; i+=step)
    {
     if (sin(i*i)<min) min=sin(i*i);
    }
  return min;
}
 
double Max(double xmin, double xmax, double step) //ÔóГ*êöèÿ ГўГҐГ°Г*ГҐГІ ymax
{
  double max;
  max=sin(xmin*xmin);
  for (double i=xmin+step; i<=xmax; i+=step)
    {
     if (sin(i*i)>max) max=sin(i*i);
    }
  return max;
}
 
 
int main()
{
 FILE *OutputFile;
 char path_out[25];
  int m,n;
  double ymin, ymax,x,dx,dy,y,f,d=1;
  double xmin,xmax;
  xmin=-3.14, xmax=3.14;
  printf("Lab N1. \nFunction: sin(x^2).\nRange: [-Pi;Pi]\n");
 
  //Ïîëó÷èòü n ГЁ d
  printf("\nInput n: \n");
  cin>>n;
 
  if (n<=0||d<=0){ cout<<"ERROR\n"; system("pause"); return 0;}
 
  //ГђГ*Г±Г±Г·ГЁГІГ*ГІГј ymax ГЁ ymin
 
  ymin=Min(xmin,xmax, fabs(xmax-xmin)/n);
  ymax=Max(xmin,xmax, fabs(xmax-xmin)/n);
  
  d=(xmax-xmin)/n;//Г™Г*ГЈ ГЇГ® x
    //ГђГ*Г±Г±Г·ГҐГІ m
  m=round((ymax-ymin)/d);
 
  cout<<"m = "<<m<<endl;
 
//ÎáúÿâëåГ*ГЁГҐ Г¬Г*òðèöû
char **M;
M=new char* [m];
for (int i=0; i<m; i++)
  M[i]=new char[n];
 
 
 
x=xmin;
int j=0,i;
while (j<n){
  f=sin(x*x);
  i=m-1; y=ymin;
  while (i>=0){
    if (fabs(y-f)<=d )
      M[i][j]='0';
    else M[i][j]=' ';
    i--; y=y+d;
  }
  j++; x=x+d;
}
 /*
printf("Enter output file for result: "); //Г§Г*ïðîñ èìåГ*ГЁ âûõîäГ*îãî ГґГ*éëГ*
    scanf("%s",path_out);
 
    if ((OutputFile=fopen(path_out,"w+")) == NULL ) //åñëè Г*ГҐ ГіГ¤Г*ëîñü îòêðûòü ГґГ*éë, ГІГ®
    {
        perror(path_out); //âûâîäèì îá ýòîì ñîîáùåГ*ГЁГҐ
        getch();
    }
    */
//Âûâîä Г¬Г*òðèöû
 
 
printf("Initial matrix: \n");
 
ofstream file; file.open("text.txt"); 
/*
for (i=0;i<m;i++)
{ for(j=0;j<n;j++)
 
   {
      printf("%5i",M[i][j]);
      fprintf(OutputFile,"%4d",M[i][j]);
      
   }
   printf("\n");
   fprintf(OutputFile,"\n");
}
*/
for (i=0;i<m;i++)
{ for(j=0;j<n;j++)
 {
  cout<<M[i][j];file<<M[i][j];  
}
 cout<<"\n"; file<<"\n";
}
 file.close(); 
 
for (int i = 0; i < m; i ++ )
delete M[i];
delete M;
        cout<<endl;
        system("pause");
        return 0;
}
Добавлено через 1 минуту
Если указать достаточно большое значение n и затем открыть в продвинутом текстовом редакторе(напр. AcelPad) и сделать максимальный масштаб, то увидите график функции.

Добавлено через 8 минут
Заполнение матрицы с осями координат:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
while (j<n){
  f=sin(x*x);
  i=m-1; y=ymin;
  while (i>=0){
    if (fabs(y-f)<=d )
      M[i][j]='0';    
    else
    { if(fabs(y)<d) M[i][j]='-';
      else if(fabs(x)<d) M[i][j]='|';
       else M[i][j]=' ';
    }
    i--; y=y+d;
  }
  j++; x=x+d;
}
 
Текущее время: 10:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru