Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов
Перезагрузить страницу решена задача в паскале правильно или нет?
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
durachok durachok вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.12.2008
По умолчанию решена задача в паскале правильно или нет? - 27.12.2008, 09:26

задание прикреплено снизу

------------------------------------------------------------------

uses graph,crt;
var Koordx,koordy,x0,y0,dx,dy,dk,gd,gm,i,l,intsn,d,n:i nteger;
x1,x2,x,y,sn,xx:real;
s:string;
begin
repeat
writeln('vvedite x1 i x2 (x1<x2)');
readln(x1,x2);
until x2>x1;
gd:=detect;
initgraph(gd,gm,'');
dx:=round((getmaxx-2*20)/(x2-x1));
dy:=3*dx div 2;
X0:=round(20-dx*x1);
Y0:=getmaxY div 2;
setcolor(white);
line(0, Y0, getmaxx, Y0);
OutTextXY(getmaxx-10, Y0-15, 'X');
if trunc(x2) - round(x1) > 20 then
dk:=(trunc(x2) - round(x1)) div 20 +1
else dk:=1;
for i:=round(x1) to trunc(x2) do
if i mod dk = 0 then
begin
str(i,s);
Line(X0+round(i*dx), Y0-5,X0+round(i*dx), Y0+5);
OutTextXY(X0+round(i*dx), Y0+5, s);
end;
if x1*x2<0 then
begin
Line(X0, 1,X0, getmaxy);
OutTextXY(X0+5, 5, 'Y');
end;
setcolor(green);
n:=600; xx:=(x2-x1)/(N-1);
x:=x1; y:=sin(x);
KoordX:=X0+round(x*dx);
KoordY:=Y0-round(y*dy);
MoveTo(KoordX,KoordY);
for i:=1 to N-1 do begin x:=x+xx; y:=sin(x);
KoordX:=X0+round(x*dx);
KoordY:=Y0-round(y*dy);
LineTo(KoordX,KoordY);
end;
repeat until keypressed;
closegraph;
end.
Миниатюры
caaeaiea.jpg  
Ответить с цитированием
  (#2 (permalink)) Старый
Vladimir_S Vladimir_S вне форума
Member
 
Сообщений: 423
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
По умолчанию 27.12.2008, 11:15

Нет, не правильно. Я попытался ее запустить, и всё, что получил на экране - горизонтальную линию на середине высоты экрана. Я не имею возможности и (простите) желания разбирать Вашу программу, но создается впечатление, что Вы просто попытались скомпилировать что-то из каких-то кусков - накручено сильно много и бездумно. Ну вот, для начала. Вы задаете цикл вида
repeat
writeln('vvedite x1 i x2 (x1<x2)');
readln(x1,x2);
until x2>x1;
АБСОЛЮТНО бессмысленный! Он выполнится заведомо один раз.
Далее. Положение Х-оси Вы задаете посередине высоты экрана - зачем? Ведь экспонента не может иметь отрицательных значений! Скатали у коллеги, которому был задан какой-нибудь синус? Ну и т.д.
Ответить с цитированием
  (#3 (permalink)) Старый
AlexZir AlexZir вне форума
Member
 
Аватар для AlexZir
 
Сообщений: 1,971
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 19.08.2007
Адрес: Зея
По умолчанию 27.12.2008, 11:35

Все гораздо проще:
запрашиваете пределы для аргумента функции, потом в цикле изменяете координату Х, вычисляете Y и выводите точку. Приращение аргумента советую взять 0.1. Точка выводится командой PutPixel(x,y). Удачи .
Ответить с цитированием
  (#4 (permalink)) Старый
Vladimir_S Vladimir_S вне форума
Member
 
Сообщений: 423
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
По умолчанию 27.12.2008, 14:22

Цитата:
Сообщение от AlexZir Посмотреть сообщение
Все гораздо проще:
запрашиваете пределы для аргумента функции, потом в цикле изменяете координату Х, вычисляете Y и выводите точку. Приращение аргумента советую взять 0.1. Точка выводится командой PutPixel(x,y). Удачи .
Да, конечно, только на самом деле - задача сильно муторная. Надо ввести ограничения на Х2 (поскольку функция - положительная экспонента), потом, исходя из Х1, Х2, f(X1), f(X2) оптимально построить координатную сетку и т.д. и т.п. и проч. Все на самом деле просто - как вышивание крестиком :( .
P.S. А для построения кривой IMHO предпочтительна команда LineTo. Но это дело вкуса.
Ответить с цитированием
  (#5 (permalink)) Старый
durachok durachok вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.12.2008
По умолчанию 27.12.2008, 19:00

спасиб за советы0)
Ответить с цитированием
Ads.
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правильно ли составлена задача? Gores Visual C++ 1 06.03.2012 17:11
Возможно ли это на паскале?)задача состоит в следующем:есть множество символов.. nidaime Pascal 4 14.12.2011 21:13
Задача в паскале investr Pascal 1 12.12.2011 02:22
задача на паскале GHJ Pascal 0 07.11.2011 16:32
Помогите, задача по прологу, срочно...задача с высказываниями 4ixOn Prolog 6 10.07.2011 23:29
Помогите, задача по прологу, срочно...задача о станках 4ixOn Prolog 3 09.07.2011 22:48
сделаю прогу на Мидлет паскале или на Турбо Паскале imported_Ренат Работа 0 03.07.2011 20:51
Записи (на Паскале) Региша Pascal 0 21.04.2011 19:35
Геометрическая задача на Паскале tapah4ik Вопросы начинающих программистов 3 12.04.2011 07:55
пожалуйста объясните как решена задачка Ж.Арсака angelinblack Prolog 2 05.12.2010 16:40
Задача на графы как их правильно решать 7ema С/С++ 6 13.11.2010 14:11
Задача на указатели: правильно ли я понял условие? Gock C++ Builder 5 07.09.2010 09:12



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов