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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2012, 21:55   #11
cote
Пользователь
 
Регистрация: 04.05.2012
Сообщений: 12
По умолчанию

у меня получилось как то так
uses
graph, crt;
const
Xmin=220;
Ymin=140;
Xmax=420;
Ymax=240;
var
x, y, a, b, c, i, max, min, sector, j, gd, gm, z:integer;
begin
write('a= ');
readln(a);
write('b= ');
readln(b);
write('c= ');
readln(c);
InitGraph(gd, gm, '');
min:=0;
max:=0;
for x:=Xmin to Xmax do begin
for y:=Ymin to Ymax do begin
z:=a*x+b*y+c;
if z<=min then
min:=z
else if z>=max then
max:=z;
end;
end;
sector:=round(abs(max-min)/16);
for x:=Xmin to Xmax do begin
for y:=Ymin to Ymax do begin
z:=a*x+b*y+c;
for i:=1 to 15 do begin
if (min<=z) and (z<min+sector*i) then begin
putpixel(x,y,i-1);
end;
end;
end;
end;
readln;
end.
только для определенной функции, тоесть прямой, но вроде не то что то получилось посмотрите пожалуйста.
cote вне форума Ответить с цитированием
Старый 11.05.2012, 21:59   #12
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Rin Посмотреть сообщение
А какая разница?
Вы спрашиваете чем |a| + |b| отличается от a-b ?
s-andriano вне форума Ответить с цитированием
Старый 11.05.2012, 22:53   #13
cote
Пользователь
 
Регистрация: 04.05.2012
Сообщений: 12
По умолчанию

нет не это.

программа почемуто все закрашивает одним цветом белым как исправить это?

Последний раз редактировалось Stilet; 15.05.2012 в 20:46.
cote вне форума Ответить с цитированием
Старый 12.05.2012, 15:27   #14
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Начнем с того, что Вы неверно инициализируете первоначальные значения min и max.
Проще всего, инициализировать их некоторой величиной, заведомо входящей в область значения функции. Например, в углу или центре рассматриваемого региона.

И оформите нормально код - невозможно читать.
s-andriano вне форума Ответить с цитированием
Старый 15.05.2012, 07:49   #15
cote
Пользователь
 
Регистрация: 04.05.2012
Сообщений: 12
По умолчанию

rogram a25;
usesgraph, crt;
constXmin=-200;Ymin=-200;Xmax=200;Ymax=200;
varx, y, a, b, c, i, max, min, sector, j, gd, gm:integer;z:longint;
beginInitGraph(gd, gm, '');min:=0;max:=0;for x:=Xmin to Xmax do beginfor y:=Ymin to Ymax do beginif (x+y<>0) thenz:=round(100{/x+y});if z<=min thenmin:=zelse if z>=max thenmax:=z;end;end;sector:=round(abs(max-min)/16);for x:=Xmin to Xmax do beginfor y:=Ymin to Ymax do beginz:=round(100/x+y);for i:=1 to 16 do beginif (min<=z) and (z<min+sector*i) then beginputpixel(getmaxx div 2+x,getmaxy div 2+y,i-1);end;end;end;end;readln;
end.
ну тогда как то так оно почемуто выдает ошибку деления на 0 хотя проверка зделана.

Последний раз редактировалось cote; 15.05.2012 в 07:54.
cote вне форума Ответить с цитированием
Старый 15.05.2012, 16:38   #16
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

s-andriano
Цитата:
Вы спрашиваете чем |a| + |b| отличается от a-b ?
Да уж, что то дал лиха я. Вы правы. Нужно max-min.
cote
Есть такая кнопка #. Вот через неё и оформляют код.
Код:
z:=round(100/x+y);
А вот тут я что-то не увидел проверки, и x+y легко могут дать в сумме нуль.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 15.05.2012, 17:42   #17
cote
Пользователь
 
Регистрация: 04.05.2012
Сообщений: 12
По умолчанию

Код:
uses
   graph, crt;
const
   Xmin=-200;
   Ymin=-200;
   Xmax=200;
   Ymax=200;
var
   x, y, a, b, c, i, max, min, sector, j, gd, gm:integer;
   z:longint;
begin
  InitGraph(gd, gm, '');
  min:=0;
  max:=0;
  for x:=Xmin to Xmax do begin
     for y:=Ymin to Ymax do begin
        if (x+y<>0) then
           z:=round(100/x+y);
        if z<=min then
           min:=z
        else if z>=max then
                max:=z;
     end;
  end;
  sector:=round(abs(max-min)/16);
  for x:=Xmin to Xmax do begin
     for y:=Ymin to Ymax do begin
        z:=round(100/x+y);
        for i:=1 to 16 do begin
           if (min<=z) and (z<min+sector*i) then begin
              putpixel(getmaxx div 2+x,getmaxy div 2+y,i-1);
           end;
        end;
     end;
  end;
  readln;
end.
Проверка есть но почемуто все равно выскакивает ошибка деление на ноль.

Последний раз редактировалось cote; 15.05.2012 в 18:09.
cote вне форума Ответить с цитированием
Старый 15.05.2012, 18:14   #18
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Есть кнопка со значком #, которая формирует тэг {code}тут пишут код {/code} замечание: чтобы тег работал, нужно "{}" заменить на "[]".
Код:
rogram a25;
usesgraph, crt;
const
Xmin=-200;    Ymin=-200;
Xmax=200;     Ymax=200;
var 
x, y, a, b, c, i, max, min, sector, j, gd, gm:integer;
z:longint;
begin
InitGraph(gd, gm, '');
min:=0;
max:=0;
for x:=Xmin to Xmax do
begin
   for y:=Ymin to Ymax do
   begin
      if (x+y<>0) then
      z:=round(100{/x+y});
      if z<=min then
      min:=z
      else if z>=max then
      max:=z;
     end;
  end;
sector:=round(abs(max-min)/16);
for x:=Xmin to Xmax do 
begin
  for y:=Ymin to Ymax do
  begin
     z:=round(100/x+y); // А тут кто проверять будет?
     for i:=1 to 16 do
     begin
        if (min<=z) and (z<min+sector*i) then
        begin
            putpixel(getmaxx div 2+x,getmaxy div 2+y,i-1);
        end;
     end;
   end;
end;
readln;
end.
Возьмите за правило всегда проверять знаменатель на равенство нулю.
Если помог, проси поставить минус. Будь оригинален!

Последний раз редактировалось Rin; 15.05.2012 в 18:20.
Rin вне форума Ответить с цитированием
Старый 15.05.2012, 18:28   #19
cote
Пользователь
 
Регистрация: 04.05.2012
Сообщений: 12
По умолчанию

Хорошо возбму за правило)) В этом коде ошибка после верхней проверки вылезает ошибка 200: деления на ноль. И как исправить не могу.
cote вне форума Ответить с цитированием
Старый 15.05.2012, 19:32   #20
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Вы делите на х, нигде не проверяя, что х отличен от 0.
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
функции двух переменных cote Помощь студентам 1 04.05.2012 20:46
График функции двух переменных в Delphi Беллая Помощь студентам 16 29.09.2010 20:16
Нахождение экстремума функции от двух переменных dekameron Помощь студентам 3 26.05.2010 08:16
Построить график произвольной функции HECTOR.A. Паскаль, Turbo Pascal, PascalABC.NET 3 05.06.2009 23:55
Разработка программ с использованием функций. Табулирование функции одного и двух переменных кася Паскаль, Turbo Pascal, PascalABC.NET 5 07.05.2008 20:11