|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
02.03.2011, 21:21 | #1 (permalink) |
Member
Регистрация: 23.07.2008
Сообщений: 584
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 278
|
Помогите с программой в паскале
program A2; var a,b,s,p:real; begin writeln ('vvedite p'); readln(p); writeln('vvedite a'); readln(a); writeln ('vvedite b'); readln(b); if (p<=2.5) and (p<a) then s:=(sqr(a)-p)/(b*(ln(b+p)/ln(2)) else if (p<4) and (p<=b) then s:=(3.51*sqrt(p))/(a-1) else writeln ('nevernoe uslovye'); writeln ('s=',s); readln end. выдает ошибку else if (p<4) and (p<=b) then |
02.03.2011, 21:21 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Могу порекомендовать вам схожие топики Помогите с программой Помогите с программой на Паскале |
02.03.2011, 21:37 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Правильно выдает - потому что в предыдущей строке не хватает закрывающей скобки.
А еще у Вас неправильно заданы неравенства (p<=2.5) and (p<a) и (p<4) and (p<=b) В обеих строках неравенства в ПЕРВЫХ скобках должны быть обратными. |
02.03.2011, 21:44 | #3 (permalink) | |
Member
Регистрация: 23.07.2008
Сообщений: 584
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 278
|
Цитата:
(p<=2.5) and (p<a) и (p>4) and (p>=b) то получается то же самое а может ли так (p>=2.5) and (p<a) и (p>4) and (p<=b) Последний раз редактировалось JCHacker; 02.03.2011 в 21:50 |
|
02.03.2011, 22:06 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Вот именно ТАК! И только ТАК!
А вообще - в математике следует не гадать на кофейной гуще, а разобраться. Двойное неравенство 2.5 ≤ p < a читается, как "p больше или равно 2.5, но меньше а". В Паскале двойные неравенства не предусмотрены, поэтому условия нужно задать порознь и соединить их логическим отношением "и" ("and"). При этом, если мы меняем местами члены неравенства, то отношение их друг к другу должно остаться тем же, т.е. на кого из них "смотрело" острие знака "<", "≤", ">" или "≥", на того и должно смотреть, так же, как и "раструб". Поэтому указанное неравенство записываем так: (p ≥ 2.5) and (p < a). |
02.03.2011, 22:13 | #5 (permalink) | |
Member
Регистрация: 23.07.2008
Сообщений: 584
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 278
|
все равно получается та же ошибка
Цитата:
program A2; var a,b,s,p:real; begin writeln ('vvedite p'); readln(p); writeln('vvedite a'); readln(a); writeln ('vvedite b'); readln(b); if (p>=2.5) and (p<a) then s:=(sqr(a)-p)/(b*(ln(b+p)/ln(2)) else if (p>4) and (p<=b) then s:=(3.51*sqrt(p))/(a-1) else writeln ('nevernoe uslovye'); writeln ('s=',s); readln end. то все равно получается та же ошибка |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
02.03.2011, 22:32 | #6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Дорогой товарищ!
Может быть, Вы всё-таки соблаговолите ВНИМАТЕЛЬНО прочитать то, что я написал в #2? А написано там следующее - ладно уж, для особо рассеянных повторю: 1. В программе ошибка - не хватает закрывающей скобки в строке s:=(sqr(a)-p)/(b*(ln(b+p)/ln(2)) Отсюда и ошибка. 2. Неправильно записаны неравенства. Это - дополнительное замечание, никакого отношения к ошибке не имеющее. Просто если не исправить, то программа будет работать неправильно. Пункт первый Вы проигнорировали - так чего Вы от меня хотите? |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|