Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 04.02.2012, 14:17   #21 (permalink)
Гульназ.М.
Member
 
Регистрация: 01.02.2012
Сообщений: 75
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

На паскале во втором и третьем задании(ZADANIE_2,ZADANIE_3), если отрицательное число вводишь, ответа нет, идет так Wrong x wrong x,пока не введешь полож.. Чем это может быть вызвано?.. А в первом задании все блестяще отлично, и отриц. и полож. числа идут.
Гульназ.М. вне форума   Ответить с цитированием
Старый 04.02.2012, 16:16   #22 (permalink)
Гульназ.М.
Member
 
Регистрация: 01.02.2012
Сообщений: 75
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Zadanie_1 сработала на паскале на ура! А вот с остальными двумя не получаестя что-то. Если вводишь отрицательные числа, то все не пашет..вот это пишется -"Wrong X" до тех пор пока положительное число не введешь... а в первом и с отриц. и с положит. работает все
Гульназ.М. вне форума   Ответить с цитированием
Старый 04.02.2012, 16:42   #23 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Ну вот, здрасьте пожалуйста - приехали! Вы же сами настаивали, чтобы в программах была "проверка условия" - она и срабатывает. При вводе недопустимых значений Х появляется сообщение "Wrong X", т.е. "Неправильный Х", и надо ввести другой.
А вот какие значения являются допустимыми? Давайте разбираться.
Во втором задании вычисляется функция ln(arctan(ln(x)/sqr(x))). Не забываем, что логарифм определен ТОЛЬКО для существенно-положительных аргументов. Отсюда сразу заключаем, что Х должен быть >0, поскольку в формуле стоит ln(x). Но мало того! Если 0<X<1, то логарифм будет отрицательным. Отрицательным же окажется и арктангенс, а он стоит под знаком другого, "внешнего" логарифма. Из всего этого следует, что допустимой областью является Х>1, что в программу и заложено.
Аналогично в задании 3 фигурирует ln(x-1), откуда моментально следует, что X>1, что также заложено в программу.
Между прочим, в задании 1 тоже есть ограничение. Соотношение параметра а и переменной х должно быть таким, чтобы выполнялось условие (х-а)>=0, поскольку в формуле фигурирует корень квадратный из (х-а), а извлекать квадратный корень из отрицательного числа нельзя. Это тоже заложено в программу.
Vladimir_S вне форума   Ответить с цитированием
Старый 04.02.2012, 17:11   #24 (permalink)
Гульназ.М.
Member
 
Регистрация: 01.02.2012
Сообщений: 75
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

А ну тогда все понятно. Спасибо большое что просвятили. Теперь немного понимать начала что о чем. =) запутал меня препод со своими отрицательными числами и проверками условий...
Гульназ.М. вне форума   Ответить с цитированием
Старый 07.02.2012, 17:37   #25 (permalink)
Гульназ.М.
Member
 
Регистрация: 01.02.2012
Сообщений: 75
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

СЕгодня показала работу, в общем сбили мне программу....там какие то цифпы вставил в значения и все кирдык, сбилось все, ответа не получился....
и сказали что не так, слишком мудрено и догадались что не я сделала а кто то спец, там я так и знала что поменьше нужно строк
Гульназ.М. вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 07.02.2012, 17:39   #26 (permalink)
Гульназ.М.
Member
 
Регистрация: 01.02.2012
Сообщений: 75
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Сбили мне программы все и по этим заданиям и по тем с табулированием..... вставили какие то значения и ответ не дал, короче не то что то там... и сразу догадались что не я сделала там слишком мудрено, должно было быть попроще все оказывается,а я не знала...так что сама заварила кашу сама и буду расхлебывать...а вам огромное спасибо что помогли все равно
Гульназ.М. вне форума   Ответить с цитированием
Старый 07.02.2012, 20:45   #27 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Гульназ.М. Посмотреть сообщение
сама заварила кашу сама и буду расхлебывать
Ну что же - удачи!
Vladimir_S вне форума   Ответить с цитированием
Старый 09.02.2012, 20:01   #28 (permalink)
Гульназ.М.
Member
 
Регистрация: 01.02.2012
Сообщений: 75
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

здесь в задании y:=sqrt(x-a)+(1/(x+c)) - когда вводишь c=3, x=-3. a=-10. получается на ноль делить нельзя, и сбиватеся, как сделать чтобы не сбивалось?
а в этом ln(arctan(ln(x/sqr(x)))) неправилно сосnавлено говорили, как это??? все же правильно....
и в этом где exp(q/4*ln(x+3))+exp(1/6*ln(x-1)) - отриц. числа не идут.
Гульназ.М. вне форума   Ответить с цитированием
Старый 09.02.2012, 20:03   #29 (permalink)
Гульназ.М.
Member
 
Регистрация: 01.02.2012
Сообщений: 75
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

так и не разобралась,времени не было
Гульназ.М. вне форума   Ответить с цитированием
Старый 09.02.2012, 20:41   #30 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Гульназ.М. Посмотреть сообщение
здесь в задании y:=sqrt(x-a)+(1/(x+c)) - когда вводишь c=3, x=-3. a=-10. получается на ноль делить нельзя, и сбиватеся, как сделать чтобы не сбивалось?
Вот так:
Код:
program zadanie_1;
var
  x,a,c: integer;
  y: real;
begin
 write('Vvedite A - ');
 readln(a);
 write('Vvedite C - ');
 readln(c);
 Repeat
  write('Vvedite X - ');
  readln(x);
  if ((x-a)<0) or ((x+c)=0) then writeln('Wrong X');
 Until ((x-a)>=0) and ((x+c)<>0); 
 y:= sqrt(x-a)+(1/(x+c));
 Writeln('Y = ',y:6:2);
 Readln;
end.
Цитата:
Сообщение от Гульназ.М. Посмотреть сообщение
а в этом ln(arctan(ln(x/sqr(x)))) неправилно сосnавлено говорили, как это??? все же правильно....
Нет, не правильно! У меня в программе (#11) написано:
y:= ln(arctan(ln(x)/sqr(x)));
а у Вас что? Сверьте расстановку скобок!
Цитата:
Сообщение от Гульназ.М. Посмотреть сообщение
и в этом где exp(q/4*ln(x+3))+exp(1/6*ln(x-1)) - отриц. числа не идут.
И не должны! Если задать х<1, в том числе отрицательный, то под знаком второго логарифма будет стоять отрицательное число, что недопустимо. Еще раз повторяю - функция логарифм определена только для СТРОГО положительных аргументов, ни отрицательные, ни нули там НЕ ДОПУСКАЮТСЯ. Затем и проверка поставлена.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


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

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




Часовой пояс GMT +4, время: 03:58.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.