2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Помогите пожалуйста разобраться в программе в Pascal.
Сообщение27.12.2013, 19:51 
Аватара пользователя


11/12/13
24
Задание: Напечатать значения х, при которых выполняется неравенство $0.8xarctgx>ln(1+x^2)$ при изменении x от a до b с шагом h. Значения переменных а, b и h задать самостоятельно.
Моя программа:
Program 1;
Var x,y,a,b,h,f,g,xgr:real;
Begin
WriteLn;
WriteLn('Введите a,b,h,');
ReadLn(a,b,h);
WriteLn;
WriteLn('a=', a:1,' b=',b:1, ' h=', h:1);
WriteLn('x:');
xgr:=b+0.02*h;
x:=a;
repeat f:=0.8*x*arctan(x);
g:=ln(1+x*x);
if f>g then WriteLn(x:1:0);
x:=x+h;
until x>xgr
End.

Что означает строчка выделенная синим цветом? и что лучше там написать, ну всмысле вместо 0.02

 Профиль  
                  
 
 Re: Помогите пожалуйста разобраться в программе в Pascal.
Сообщение27.12.2013, 20:14 
Аватара пользователя


20/10/12
308
А в каком смысле эта программа "ваша"? Вы ее купили?
Синяя строчка обеспечивает защиту от ошибок округления и гарантирует, что
конечная точка интервала будет обработана. Оставьте эту строчку как есть.

 Профиль  
                  
 
 Re: Помогите пожалуйста разобраться в программе в Pascal.
Сообщение27.12.2013, 22:41 
Заслуженный участник
Аватара пользователя


18/01/13
12065
Казань
Конечно, в такой маленькой программе оптимизация не обязательна, но зачем столько переменных? $f$ и $g$ совершенно излишни. А $y$ совсем не используется.

 Профиль  
                  
 
 Re: Помогите пожалуйста разобраться в программе в Pascal.
Сообщение28.12.2013, 08:09 
Заслуженный участник


11/05/08
32166
Кроме того: в WriteLn('a=', a:1,' b=',b:1, ' h=', h:1); и в WriteLn(x:1:0); спецификаторы ":1:0" и уж тем более ":1" выглядят довольно бессмысленно.

 Профиль  
                  
 
 Re: Помогите пожалуйста разобраться в программе в Pascal.
Сообщение28.12.2013, 14:27 
Заслуженный участник


09/09/10
3729
provincialka в сообщении #807023 писал(а):
Конечно, в такой маленькой программе оптимизация не обязательна, но зачем столько переменных?

Вы не поверите, но уже в конце 70-ых любой оптимизирующий компилятор умел распределять регистры под промежуточные результаты наиболее оптимальным образом. Так что для
Код:
f:=0.8*x*arctan(x);
g:=ln(1+x*x);
if f>g

сгенерируется тот же код, что и для
Код:
if 0.8*x*arctan(x) > ln(1+x*x)

 Профиль  
                  
 
 Re: Помогите пожалуйста разобраться в программе в Pascal.
Сообщение28.12.2013, 20:23 
Заслуженный участник
Аватара пользователя


18/01/13
12065
Казань
Ну, тогда ладно, может, автору так понятней.

 Профиль  
                  
 
 Re: Помогите пожалуйста разобраться в программе в Pascal.
Сообщение28.12.2013, 20:48 
Заслуженный участник


11/05/08
32166

(Оффтоп)

Joker_vD в сообщении #807140 писал(а):
Вы не поверите, но уже в конце 70-ых любой оптимизирующий

Вы не поверите, но тут дело вовсе не в оптимизирующности компилятора. А в том,что за бессмысленным нагромождением идентификаторов довольно трудно разглядеть существо дела. И, что печальнее всего -- самому же аффтару и трудно.

 Профиль  
                  
 
 Re: Помогите пожалуйста разобраться в программе в Pascal.
Сообщение28.12.2013, 21:18 
Заслуженный участник
Аватара пользователя


06/04/10
3152

(Оффтоп)

ewert в сообщении #807300 писал(а):
за бессмысленным нагромождением идентификаторов довольно трудно разглядеть существо дела

xgr - явно ""граница икс :wink:

 Профиль  
                  
 
 Re: Помогите пожалуйста разобраться в программе в Pascal.
Сообщение28.12.2013, 21:51 
Заслуженный участник


11/05/08
32166

(Оффтоп)

nikvic в сообщении #807320 писал(а):
xgr - явно ""граница икс :wink:

Это да; но остальные-то -- откровенно лишь для запудривания мозгов и моральной подготовки к Новому Году.

 Профиль  
                  
 
 Re: Помогите пожалуйста разобраться в программе в Pascal.
Сообщение18.02.2014, 06:18 


17/02/14
25
Россия, ХМАО-Югра, Сургут
Как минимум надо вычисление функций в подпрограмму(ы) вынести. Привыкать к структурированию кода, особенно своего, лучше сразу.

Может так автору сразу все понятней станет.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group