Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 02.03.2011, 21:21   #1 (permalink)
JCHacker
Member
 
Аватар для JCHacker
 
Регистрация: 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
JCHacker вне форума   Ответить с цитированием

Старый 02.03.2011, 21:21
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Могу порекомендовать вам схожие топики

Помогите с программой
Помогите с программой на Паскале

Старый 02.03.2011, 21:37   #2 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,360
Сказал(а) спасибо: 289
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Цитата:
Сообщение от JCHacker Посмотреть сообщение
выдает ошибку else if (p<4) and (p<=b) then
Правильно выдает - потому что в предыдущей строке не хватает закрывающей скобки.
А еще у Вас неправильно заданы неравенства
(p<=2.5) and (p<a)
и
(p<4) and (p<=b)
В обеих строках неравенства в ПЕРВЫХ скобках должны быть обратными.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 02.03.2011, 21:44   #3 (permalink)
JCHacker
Member
 
Аватар для JCHacker
 
Регистрация: 23.07.2008
Сообщений: 584
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 278
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Правильно выдает - потому что в предыдущей строке не хватает закрывающей скобки.
А еще у Вас неправильно заданы неравенства
(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)

Последний раз редактировалось JCHacker; 02.03.2011 в 21:50
JCHacker вне форума   Ответить с цитированием
Старый 02.03.2011, 22:06   #4 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,360
Сказал(а) спасибо: 289
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Цитата:
Сообщение от JCHacker Посмотреть сообщение
а может ли так
(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).
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 02.03.2011, 22:13   #5 (permalink)
JCHacker
Member
 
Аватар для JCHacker
 
Регистрация: 23.07.2008
Сообщений: 584
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 278
По умолчанию все равно получается та же ошибка

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Вот именно ТАК! И только ТАК!
А вообще - в математике следует не гадать на кофейной гуще, а разобраться.
Двойное неравенство
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.
то все равно получается та же ошибка
JCHacker вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 02.03.2011, 22:32   #6 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,360
Сказал(а) спасибо: 289
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Цитата:
Сообщение от JCHacker Посмотреть сообщение
то все равно получается та же ошибка
Дорогой товарищ!
Может быть, Вы всё-таки соблаговолите ВНИМАТЕЛЬНО прочитать то, что я написал в #2? А написано там следующее - ладно уж, для особо рассеянных повторю:
1. В программе ошибка - не хватает закрывающей скобки в строке
s:=(sqr(a)-p)/(b*(ln(b+p)/ln(2))
Отсюда и ошибка.
2. Неправильно записаны неравенства. Это - дополнительное замечание, никакого отношения к ошибке не имеющее. Просто если не исправить, то программа будет работать неправильно.
Пункт первый Вы проигнорировали - так чего Вы от меня хотите?
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

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

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

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

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




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

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