Помогите с программой в паскале
Ссылка удалена
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 |
Цитата:
А еще у Вас неправильно заданы неравенства (p<=2.5) and (p<a) и (p<4) and (p<=b) В обеих строках неравенства в ПЕРВЫХ скобках должны быть обратными. |
Цитата:
(p<=2.5) and (p<a) и (p>4) and (p>=b) то получается то же самое а может ли так (p>=2.5) and (p<a) и (p>4) and (p<=b) |
Цитата:
А вообще - в математике следует не гадать на кофейной гуще, а разобраться. Двойное неравенство 2.5 ≤ p < a читается, как "p больше или равно 2.5, но меньше а". В Паскале двойные неравенства не предусмотрены, поэтому условия нужно задать порознь и соединить их логическим отношением "и" ("and"). При этом, если мы меняем местами члены неравенства, то отношение их друг к другу должно остаться тем же, т.е. на кого из них "смотрело" острие знака "<", "≤", ">" или "≥", на того и должно смотреть, так же, как и "раструб". Поэтому указанное неравенство записываем так: (p ≥ 2.5) and (p < a). |
все равно получается та же ошибка
Цитата:
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. то все равно получается та же ошибка |
Цитата:
Может быть, Вы всё-таки соблаговолите ВНИМАТЕЛЬНО прочитать то, что я написал в #2? А написано там следующее - ладно уж, для особо рассеянных повторю: 1. В программе ошибка - не хватает закрывающей скобки в строке s:=(sqr(a)-p)/(b*(ln(b+p)/ln(2)) Отсюда и ошибка. 2. Неправильно записаны неравенства. Это - дополнительное замечание, никакого отношения к ошибке не имеющее. Просто если не исправить, то программа будет работать неправильно. Пункт первый Вы проигнорировали - так чего Вы от меня хотите? |
Часовой пояс GMT +4, время: 18:11. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.