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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2009, 17:48   #1
Rise
Пользователь
 
Регистрация: 05.01.2009
Сообщений: 20
По умолчанию 2 задачи на Graph в Паскале

1) Построить семейство одинаковых кругов, центры которых расположены на синусоиде.

2) Построить график функции y=x*cos(x)+sin(x), для х:[-4;4] с шагом h=0.05
Rise вне форума Ответить с цитированием
Старый 30.05.2009, 18:04   #2
Rise
Пользователь
 
Регистрация: 05.01.2009
Сообщений: 20
По умолчанию

Ну или максимально упростите вот эту задачку. (Для 2-го задания)

Код:
uses Graph,Crt{,fun};
const
  {x0=300;y0=200;} {mx=20;my=30;}h=0.05;
var
  Driver,Mode:integer;
  a,b,x,y:real;
  j:string;
  x0,y0,xg,yg,xmax,ymax,c,m,p,n,i:integer;
  mx,my,max,min:real;
  x1,y1:integer;

  function f(x:real):real;
    begin
      f:=x*cos(x)+sin(x);
    end;

  procedure max_min(aF,bF:real;var maxF,minF:real);
  var x,max,min:real;
    begin
      maxF:=f(aF);
      minF:=f(aF);
      x:=aF+h;
      while x<=bF do
	begin
	  if f(x)>maxF then maxF:=f(x);
	  if f(x)<minF then minF:=f(x);
	  x:=x+h;
	end;
    end;

Begin

Writeln('input color');Readln(c);
Writeln('input a,b');Readln(a,b);
max_min(a,b,max,min);
mx:=600/(b-a);
my:=40/(max-min);
writeln(max:6:4,' ',min:6:4,' ',mx:6:4,' ',my:6:4);
readkey;
x0:=300;
y0:=200;

   Driver:=Detect;
   InitGraph(Driver,Mode,'..\bgi');
   if GraphResult<>0 then halt(1);
   xmax:=getMaxX;
   ymax:=getMaxY;
   Line(0,y0,640,y0);
   Line(x0,0,x0,480);
   x:=a;
   While x<=b do
     begin
	xg:=x0+Trunc(mx*x);yg:=y0-Trunc(my*f(x));
	if(xg>=0) and (xg<=xmax) and (yg>=0) and (yg<=ymax)
	  then PutPixel(xg,yg,c);
	x:=x+h;
     end;

   i:=0;
   x1:=x0;
   y1:=y0;
   while (x1<=xmax) and (y1<=ymax) do
   begin
   str(i,j);
   if i mod 2=0 then y1:=y0-5;
   outtextxy(x1,y1,j);
   i:=i+1;
   x1:=trunc(x1+mx);
   end;

   i:=0;
   x1:=x0;
   y1:=y0;
   while (x1>0) and (y1>0) do
   begin
   str(i,j);
   outtextxy(x1,y1,j);
   i:=i-1;
   x1:=trunc(x1-mx);
   end;

   line(614,195,624,200);
   line(614,205,624,200);
   outtextxy(616,207,'x');

   i:=0;
   x1:=x0;
   y1:=y0;
   while (x1<=xmax) and (y1<=ymax) do
   begin
   str(i,j);
   outtextxy(x1,y1,j);
   i:=i+1;
   y1:=trunc(y1-my);
   end;

   i:=0;
   x1:=x0;
   y1:=y0;
   while (x1>0) and (y1>0) do
   begin
   str(i,j);
   outtextxy(x1,y1,j);
   i:=i-1;
   y1:=trunc(y1+my);
   end;


   line(300,10,292,30);
   line(300,10,308,30);
   outtextxy(325,20,'y');

      Readln;
   CloseGraph;
   end.
Вывод графика функции на заданном промежутке [a,b]. Функция определяется в модуле, диапазон изменения аргумента задает пользователь, на графике должны отображаться координатные оси с подписями делений, программа должна сама определять максимальное и минимальное значения функции в заданных пределах и соответственно им выбирать наилучший масштаб.
Rise вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 задачи в паскале каринка Помощь студентам 7 18.04.2009 17:40
Задачи на Паскале Марахов Николай Паскаль, Turbo Pascal, PascalABC.NET 0 30.03.2009 20:06
Задачи в Паскале. fairy_cookies Помощь студентам 3 02.03.2009 20:58
привет всем! помогите пожалуйста решить две задачи на паскале. я в паскале полный ноль. Пищенок Саша Паскаль, Turbo Pascal, PascalABC.NET 5 20.01.2009 13:46