помогите с графиком в Turbo Pascal 7.0

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
nipel
Сообщения: 6
Зарегистрирован: 09 апр 2013, 22:43

Всем здравствуйте, помогите пожалуста построить график вот такой функции см. Снимок 1

n и конец диапазона(вместо бесконечности) вводятся с клавиатуры.
Спасибо большое.
P.S. условие на снимке1 идёт Print Screen-ом условия.
Вложения
Снимок1..PNG
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Раздел "алгоритмы", тема "табулирование функции". Дальше - переводим Паскаль в графический режим. Получаем таблицу значений - проходим в цикле, чертим линию от x, y до x[i+1], y[i+1]. При этом предварительно просматриваем область определения и область значений, чтобы построить адекватный масштаб.
А вообще - когда же преподаватели перестанут учить студентов забивать шурупы плоскогубцами и полировать зеркала напильником!
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
nipel
Сообщения: 6
Зарегистрирован: 09 апр 2013, 22:43

Хыиуду, спасибо за Ваш ответ, очень кстати.
nipel
Сообщения: 6
Зарегистрирован: 09 апр 2013, 22:43

здравствуйте все. снова нужна Ваша помощь, я написал программу на построение графика функции f(x)=lnx+b, но почему то она не работает. помогите решить эту проблему и ,в добавак , скажите пожалуста, как мне сделать так чтобы программа считала это вводимое число b.
вот программа:

Код: Выделить всё

program grafik;
uses crt, graph;
const a=0; b1=2*pi; h=0.1; h1=5; x0=60; y0=240; M=50;
var driver, mode, x1, y1:integer; x, y, b:real;
function z(x:real):real;
begin
outtextxy(50,300,'vvedit chislo b');
readln(b)
 z:=ln(x)+b
end;
begin clrscr;
driver:=detect;
initgraph(driver, mode,'');
setcolor(14); setbkcolor(1);
line(20,y0,600,y0); line(x0,440,x0,20);
x:=a; x1:=x0+trunc(M*x);
y:=z(x); y1:=y0-trunc(M*y);
moveto(x1,y1); setcolor(15);
while x<=b1 do begin
  y:=z(x); y1:=y0-trunc(M*y); lineto(x1,y1);
  x1:=x1+h1; x:=x+h
  end;
settextstyle(0,0,1);
outtextxy(60,245,'0'); 
settextstyle(0,0,2);
outtextxy(200,380,'Graphik funkcii'); readln
end.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Объединил темы.
Переменная b должна вводиться еще до initgraph, простым writeln - readln. А ввод и вывод из функции убрать.
И еще - я бы вам рекомендовал сделать функции для перевода числа в виде "как есть" в координату на экране, чтобы не маяться с этими x0 и y0.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
nipel
Сообщения: 6
Зарегистрирован: 09 апр 2013, 22:43

Спасибо, у меня все получилось :)
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Приятно видеть в этом разделе новичков, которые хотят делать что-то сами
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
nipel
Сообщения: 6
Зарегистрирован: 09 апр 2013, 22:43

Хыиуду, спасибо)
Ответить