imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 22.11.2005, 20:18     # 1
Yurij
Member
 
Аватар для Yurij
 
Регистрация: 30.05.2003
Адрес: Литва
Пол: Male
Сообщения: 329

Yurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царстве
Pascal-сумма корней...

Народ! Хелп.
Задача лёгкая, но почему то не пашет.
Условие:
x=сумме корней каждого члена от 99 до 3, причём числа уменьшаются на 3... т.е. sqrt(99)+sqrt(96)+...+sqrt(3)=x
Моя программа почему то не суммирует каждый член, а выводит последний... x всегда остаётся 0...
Помогите.

program if_1;
var
i:integer;
x,c:real;
BEGIN
x:=0;
for i:=99 downto 4 do
{либо ...x:=sqrt(i)+x;i:=i-2...}
begin
c:=i;
x:=sqrt(c)+x;
i:=i-2;
end;
writeln(x);
end.
Yurij вне форума  
Старый 22.11.2005, 22:02     # 2
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
Попробуй чуть попроще, вот так
Код:
i:=99;
while i>=3 do 
begin
  x:=x+sqrt(i);
  i:=i-3;
end;
ЕЖ вне форума  
Старый 22.11.2005, 22:06     # 3
Yurij
Member
 
Аватар для Yurij
 
Регистрация: 30.05.2003
Адрес: Литва
Пол: Male
Сообщения: 329

Yurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царстве
Примерно так же пробовал-результат отрицательный...
но что интересно в первом случае ответ ~2,7. а во втором отличается... 2,8...
Yurij вне форума  
Старый 22.11.2005, 22:12     # 4
Stasik
Registered User
 
Аватар для Stasik
 
Регистрация: 27.03.2002
Адрес: дома
Сообщения: 1 660

Stasik Известность не заставит себя ждатьStasik Известность не заставит себя ждать
Код:
program xxx;
uses
  WinCrt;
var
i:integer;
x:real;
begin
 x:=0;
 i:=99;
 while i>2 do
 begin
  x:=x+sqrt(i);
  i:=i-3;
 end;
 writeln(x);
end.
c for было лень думать..... выдаёт 2.2352466667E+02 т.е. 223.52 с копейками
__________________
Всё будет хорошо!
Stasik вне форума  
Старый 23.11.2005, 13:49     # 5
Yurij
Member
 
Аватар для Yurij
 
Регистрация: 30.05.2003
Адрес: Литва
Пол: Male
Сообщения: 329

Yurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царстве
Цитата:
2.2352466667E+02
это разве 223?
В первом случае sqrt из 99 = 9,9498743710661995473447982100121
и ответ был в форме ~9.94blablablaE+002...
И мне странно... почему же он постоянно обнуляет x...
Yurij вне форума  
Старый 23.11.2005, 14:02     # 6
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
Yurij
Ты явно где-то что-то не досмотрел, мой вариант и фактически такой же вариант Stasik выдают верный результат. Просто пиши при выводе дробных чисел везде что-то вроде write(x:5:5) - тогда и не будешь ошибаться.

Число после E означает степень 10-и, на которое нужно умножить результат левее E. Если число после E со знаком минус, то вместо умножения нужно делить на 10 в этой степени.

Последний раз редактировалось ЕЖ; 23.11.2005 в 14:06.
ЕЖ вне форума  
Старый 23.11.2005, 23:10     # 7
Shama_in_da_for
Guest
 
Сообщения: n/a

Цитата:
почему же он постоянно обнуляет x...
У меня нормально работает твоя программа. Может скажу глупость, но мне больше нравится x:=x+sqrt(c), может в етом проблема
 


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

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

Быстрый переход


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




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.