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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2010, 17:56   #1
dzuga
Пользователь
 
Регистрация: 08.06.2010
Сообщений: 43
По умолчанию Паскаль-Графика

помогите пожалуйста нарисовать точечный график функции . Диапазон изменения аргумента: от 15 до 5, шаг аргумента – 0,1. График начертить на фоне координатных осей, точка пересечения которых в центре экрана.
dzuga вне форума Ответить с цитированием
Старый 08.06.2010, 18:11   #2
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

не советовал бы кросспостить.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 08.06.2010, 18:12   #3
Snejnaya
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 219
По умолчанию

у меня есть кусок программы в С-Билдере, это тоже Борланд, на Делфи не составит труда переделать. Самой переделывать влом.
Точка пересечения осей у меня, понятное дело, в удобном для меня месте, а не в центре, тоже надо подправить.

//функции преобразования координат (в них вводи начало координат, какое там надо)

Код:
int preobr_x(int xx)
 {int res;
 res=xx+360;
 return(res);
 }

  int preobr_y(int yy)
 {int res;
 res=230-yy;
 return(res);
 }
//обработчик события щелчка по кнопке
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int x0,y0,x,y,i;
//рисуем оси координат со стрелочками на концах
x0=0;
y0=0;
Form1->Canvas->MoveTo(preobr_x(x0),preobr_y(y0));
x0=610;
y0=0;
Form1->Canvas->LineTo(preobr_x(x0),preobr_y(y0));
x=x0-10;
y=y0+5;
Form1->Canvas->LineTo(preobr_x(x),preobr_y(y));
Form1->Canvas->MoveTo(preobr_x(x0),preobr_y(y0));
x=x0-10;
y=y0-5;
Form1->Canvas->LineTo(preobr_x(x),preobr_y(y));
x0=0;
y0=-190;
Form1->Canvas->MoveTo(preobr_x(x0),preobr_y(y0));
x0=0;
y0=190;
Form1->Canvas->LineTo(preobr_x(x0),preobr_y(y0));
x=x0-5;
y=y0-10;
Form1->Canvas->LineTo(preobr_x(x),preobr_y(y));
Form1->Canvas->MoveTo(preobr_x(x0),preobr_y(y0));
x=x0+5;
y=y0-10;
Form1->Canvas->LineTo(preobr_x(x),preobr_y(y));
x0=0;
y0=0;
Form1->Canvas->MoveTo(preobr_x(x0),preobr_y(y0));
//рисуем засечки на осях координат
for(i=1;i<60;i++)
{x0=i*10;
y0=3;
Form1->Canvas->MoveTo(preobr_x(x0),preobr_y(y0));
x=x0;
y=-3;
Form1->Canvas->LineTo(preobr_x(x),preobr_y(y));
}
x0=0;
y0=-180;
Form1->Canvas->MoveTo(preobr_x(x0),preobr_y(y0));
for(i=1;i<37;i++)
{ y0=-190+i*10;
  x0=-3;
  Form1->Canvas->MoveTo(preobr_x(x0),preobr_y(y0));
  x=3;
  y=y0;
  Form1->Canvas->LineTo(preobr_x(x),preobr_y(y));

int *pimp, imp[301], tt[301];
pimp=impulse(ECD,gaus_wum);// impulse() - ак называется моя функция, которую надо нарисовать, у тебя будет другая

tt[0]=0;
for (i=0; i<301; i++)
{tt[i+1]=(2*i+2);
}

for (i=0;i<301;i++)	{
		 imp[i]=*(pimp+i);
	}//теперь в массиве imp[] хранится форма импульса

 //рисуем график функции
 x0=0;
 y0=0;
 Form1->Canvas->MoveTo(preobr_x(x0),preobr_y(y0));
 for(i=0;i<301;i++)
 { x0=tt[i];
   y0=imp[i];
   if(x0>610)
   {x0=610;
   }
   if(y0>190)
   {y0=190;
   }
   if(y0<-190)
   {y0=-190;
   }
   Form1->Canvas->LineTo(preobr_x(x0),preobr_y(y0));
 }
}
если что-то непонятно - спрашивай. только не надо "все непонятно")

Последний раз редактировалось Snejnaya; 08.06.2010 в 19:43.
Snejnaya вне форума Ответить с цитированием
Старый 08.06.2010, 18:34   #4
Marat-ik
Новичок
Джуниор
 
Регистрация: 08.06.2010
Сообщений: 9
По умолчанию

please, помогите "Нарисовать ковер со сложным узором."
Marat-ik вне форума Ответить с цитированием
Старый 08.06.2010, 18:51   #5
dzuga
Пользователь
 
Регистрация: 08.06.2010
Сообщений: 43
По умолчанию

ну надо именно для паскаля, хотя спасибо большое!!
dzuga вне форума Ответить с цитированием
Старый 08.06.2010, 19:53   #6
Snejnaya
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 219
По умолчанию

Может быть все таки для Делфи, а не для Паскаля? о_О

Разницы почти никакой, только
Делфи: Form1.Canvas.MoveTo
Билдер: Form1->Canvas->MoveTo

Делфи: for i:=1 to n do begin .. end;
Билдер: for(i=1; i<n+1;i++) {}

Делфи: begin...end;
Билдер:{}

Функция в Делфи:
Код:
function func1(входные параметры):integer
begin
...
result:=результат;
end;
Функция в Билдере
Код:
int func1(входные параметры)
{...
return(результат);
}
Если есть желание, разобраться можно за полчаса максимум, даже если не имеешь представления о СИ.

ЗЫ:гораздо хуже, если ты не имеешь представления о том, чем Паскаль отличается от Делфи...
Snejnaya вне форума Ответить с цитированием
Старый 08.06.2010, 21:04   #7
dzuga
Пользователь
 
Регистрация: 08.06.2010
Сообщений: 43
По умолчанию

не просто препод требует именно в паскале(((
dzuga вне форума Ответить с цитированием
Старый 09.06.2010, 10:52   #8
Snejnaya
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 219
По умолчанию

dzuga

И как ты собрался выводить график функции в консольном режиме? Это невозможно.
Snejnaya вне форума Ответить с цитированием
Старый 09.06.2010, 11:12   #9
Ol'ga_new
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 125
По умолчанию

В паскале есть графический режим, в этом случае поле для рисунка составляет весь экран.
Для начала нужно подключить модуль Graph в разделе uses.
Ol'ga_new вне форума Ответить с цитированием
Старый 09.06.2010, 19:45   #10
dzuga
Пользователь
 
Регистрация: 08.06.2010
Сообщений: 43
По умолчанию

Да мы делаем так как Ольга сказала!!
dzuga вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графика в Паскаль Nord18 Паскаль, Turbo Pascal, PascalABC.NET 6 03.04.2010 20:28
Паскаль графика Asira Помощь студентам 19 28.12.2009 21:42
паскаль. графика deu4er Помощь студентам 2 18.05.2009 21:30