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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2015, 21:14   #1
wolchara
Пользователь
 
Регистрация: 10.01.2015
Сообщений: 30
По умолчанию Помогите написать программу С++

Написать программу для построения декартовой системы координат. Пользователь вводит максимальные и минимальные значения по осям.

Рекомендации к выполнению:

Входные данные:
xmin, xmax - отрезок оси абсцисс, на котором будет построен график.
ymin, ymax - отрезок оси ординат, на которых будет построен график.

Основные этапы решения задачи:

Вычисление длин единичных отрезков dx и dy по формулам:
dx=panel1.width/(xmax-xmin);
dx=panel1.hight/(ymax-ymin);
Вычисление координат точки начала координат в области построения по формуле:
x0=-dx * xmin;
y0=dy * ymax;
Построение координатных осей.
ось абсцисс: отрезок с концами в точках (0, y0) и (panel1.width, y0);
ось ординат: отрезок с концами в точках (x0, 0) и (x0, panel1.Height);
Построение линий сетки.
Добавление подписей на осях и рисование стрелок на осях.
wolchara вне форума Ответить с цитированием
Старый 10.01.2015, 21:43   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

вот тут в программе строится график. построение графика и запись точек в файл откинешь, останутся оси координат с мин. и макс. значениями
Код:
#include<conio.h>
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<graphics.h>
char bgipath[]="D:\\program\\bc31\\bgi";
double fun(double x)
 {
  return (x+2)*(x+2)/((x-1)*(x-1));   //Задаём функцию с клавиатуры
  if (x==1)return 0;
 }
void WriteData()
 {
  double xmin, xmax;
  printf("\n xmin=");
  scanf("%lf",&xmin);
  printf("xmax=");
  scanf("%lf",&xmax);
  FILE *fp;
  char filename[20];
  printf("\n введите любое имя файла данных:");
  scanf("%s",filename);
  fp=fopen(filename, "w");//буква 'w'-маленькая
  if(fp==0)
   {
    printf("Ошибка открытия файла\n");
    printf("Press ENTER...");
    getch();
    exit(1);
   }
  int N=100;
  double dx=(xmax-xmin)/N;
  double x,y;
  for(int i=0;i<=N;i++)
   {
    x=xmin+(i*dx);
    y=fun(x);
    fprintf(fp,"%6.2f%15.6f\n",x,y);
   }
  fclose(fp);
 }
void figure()
 {
 double xmin, xmax;
 printf("\n xmin=");
 scanf("%lf",&xmin);
 printf("xmax=");
 scanf("%lf",&xmax);
 int i,N=100;
 double dx=(xmax-xmin)/N;
 int wx,wy;
 double ymax=-1e10;
 double ymin=1e10;
 double x,y;
 for(i=0;i<=N;i++)
 {
 x=xmin+(i*dx);
 y=fun(x);
 if(y>ymax) ymax=y;
 if(y<ymin) ymin=y;
 }
 int gd=DETECT, gm;
 initgraph(&gd,&gm,bgipath);
 int left=10;
 int right=left+600;
 int top=10;
 int bot=top+450;
 setcolor(7);
 rectangle(left,top,right,bot);
 wx=left;
 wy=bot+(int)((fun(xmin)-ymin)/(ymax-ymin)*(top-bot)+0.5);
 moveto(wx,wy);
 setcolor(10);
 for(i=1;i<=N;i++)
 {
 x=xmin+(i*dx);
 y=fun(x);
 wx=left+(int)((x-xmin)/(xmax-xmin)*(right-left)+0.5);
 wy=bot+(int)((y-ymin)/(ymax-ymin)*(top-bot)+0.5);
 lineto(wx,wy);
 }
 getch();
 closegraph();
 }
 void main()
 {
 char choice=0;
 while(choice!=27)
 {
 clrscr();
 printf("выбрать:\n");
 printf("закончить работу...ESC\n");
 printf("нарисовать функцию...1\n");
 printf("записать данные на диск...2\n");
 printf(">");
 choice =getche();
 switch(choice)
 {
 case '1':figure();break;
 case '2':WriteData();break;
 }
 }
 }
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 10.01.2015, 22:32   #3
wolchara
Пользователь
 
Регистрация: 10.01.2015
Сообщений: 30
По умолчанию

Благодарю))
wolchara вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите написать программу Sveta-psv Паскаль, Turbo Pascal, PascalABC.NET 3 01.10.2014 00:24
Помогите написать программу на C# Азалька Помощь студентам 1 01.05.2014 21:17
Помогите написать программу Secret1ve Общие вопросы C/C++ 0 16.12.2013 16:59
Помогите написать программу KHAKER Помощь студентам 1 31.10.2007 18:34