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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2012, 11:06   #1
joolt
 
Регистрация: 20.04.2012
Сообщений: 9
По умолчанию вычисление min и max функции(С++)

Имеется код для консоли для выведения графика функции:


#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <conio.h>
//---------------------------------------------------------------------------
#pragma argsused
// Символы псевдографики
FILE *out;
unsigned char g = 196; // Горизонктальная линия
unsigned char v = 179; // Вертикальная линия
unsigned char k = 197; // Крест
unsigned char kln = 192; // Крест левого нижнего угла
unsigned char kpn = 217;
unsigned char kn = 193;
unsigned char kpv = 191;
unsigned char klv = 218;
unsigned char kv = 194;
unsigned char kl = 195;
unsigned char kp = 180;
// Функция формирования сетки графика
char* Cr_S(unsigned char *S, int i){
int j, l;
if(!i){
S[0] = klv;
for(l = 0; l < 6; l++){
for(j = 0; j < 9; j++) S[j+1+l*10] = g;
S[j+1+l*10] = kv;
}
return S;
}
if(!(i % 10)){
S[0] = kl;
for(l = 0; l < 6; l++){
for(j = 0; j < 9; j++) S[j+1+l*10] = g;
S[j+1+l*10] = k;
}
return S;
} else {
S[0] = v;
for(l = 0; l < 6; l++){
for(j = 0; j < 9; j++) S[j+1+l*10] = ' ';
S[j+1+l*10] = v;
}
return S;
}
}
unsigned char S[80];
int main(int argc, char* argv[]){
double h, x, y;
int i, n_P;
//char *s;
char a = '*'; // Символ для отображения точек графика
// Основная процедура вывода графика
// y = -x*(x-1)(x-2), x = 0, 1/10, ..., 20/10.
x = 0;
y = 1.0;
h = y/6;
out = fopen("file_02.txt", "wt");
for(n_P = -3; n_P < 4; n_P++){
printf("%10.2lf", n_P*h); // Вывод шапки по оси ординат на консоль
fprintf(out, "%10.2lf", n_P*h); // Вывод шапки по оси ординат в файл
}
printf("\n"); // вывод пусто строки на консоль
fprintf(out, "\n"); // вывод пусто строки в файл
i = 0;
h = 2.0/20;
while(x <= 2.1){
y = -x*(x-1)*(x-2); // Вычисление значения функции
Cr_S(S, i); // Формирование строки сетки графика
i++;
n_P = 60.0*y+30; // n_P - Кол-во пробелов до символа графика
S[n_P] = a; // Наложение на сетку символа графика
printf("%5.1lf %s\n", x, S); // Вывод сетки с символом графика на консоль
fprintf(out, "%5.1lf %s\n", x, S); // Вывод сетки с символом графика в файл
x += h; // Увеличение абсциссы на шаг
}
if(!getch())getch(); // Ожидание нажатия клавиши
return 0;
}



нужно как-то впихнуть сюда вычисление каждого значения y для меняющихся иксов
препод дал формулы:
n_P = ((y - ymin) / (ymax-ymin)) * 60
h = (ymax-ymin)/6
чтобы деления y по оси были:
ymin, y min+h, ymin+2h... ymin+6h
joolt вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисление MAX и MIN Джиган Microsoft Office Excel 6 13.03.2011 18:14
max и min Кристинка89 Общие вопросы C/C++ 2 23.02.2011 15:24
Матрица Min-Max и Max-Min boog Помощь студентам 3 23.12.2010 13:19
Max и min значения функции [Garfield] Паскаль, Turbo Pascal, PascalABC.NET 7 01.06.2010 21:11
min max Alpha_Dog Фриланс 10 15.03.2010 19:27