Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Турбо Паскаль. Программирование на Pascal
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ]
Модераторы: paradise, KMA
  

KMA



Долгожитель

Ok, вот код:

for i:=1 to n do
begin
  if i mod 2 =0
     then buf:=-1/i
     else buf:=1/i;
   summ:=summ+buf;
end;

buf, summ: real;
i: word;

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 4 дек. 2006 16:51 | IP
StudentTNGU


Удален

KMA, thanx, а почему i: word ???
Мне ещё на другом форуме дали решение этой задачи. Вот:

s := 1; sign := -1;
for i := 0 to n - 1 do
 s := s + (sign / (2 * i + 1));
 sign := - sign;
end;

Но результаты их работы разные... Кто то ошибся или что?

(Сообщение отредактировал StudentTNGU 4 дек. 2006 17:05)

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 4 дек. 2006 16:55 | IP
Kron



Новичок

Ошибся КМА немного.

Всего сообщений: 37 | Присоединился: октябрь 2006 | Отправлено: 4 дек. 2006 22:20 | IP
KMA



Долгожитель

угу, я ошибся, просто невнимательно посмотрел задачу (там только нечетные числа), у меня бы считал ряд 1-1/2+1/3-1/4...
Делал с рабочего места и потом быстро.

Но если говорить про другое решение то у них то же аж целых две ошибки, во первых, не поставлен begin после do (т. е. не заключены два оператора в логические скобки), а во вторых у тебя вначале ряда не будет 1, а будет сразу 1/3-1/5 т. д. Короче, вот правильное решение:

s := 0; sign := 1;
for i := 0 to n  do
begin
s := s + (sign / (2 * i + 1));
sign := - sign;
end;



(Сообщение отредактировал KMA 4 дек. 2006 22:35)

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 4 дек. 2006 22:21 | IP
Kron



Новичок

КМА, тогда уж цикл с 1 начинать надо по-моему.
Еще раз ряд посмотри, пожалуйста.

(Сообщение отредактировал Kron 4 дек. 2006 22:29)

Всего сообщений: 37 | Присоединился: октябрь 2006 | Отправлено: 4 дек. 2006 22:27 | IP
KMA



Долгожитель

Все верно.
Если начинать с 1, тогда и S надо присваивать 1, в принципе, нет никакой разницы. Я могу и так написать:

s := 1; sign := -1;
for i := 1 to n do
begin
 s := s + (sign / (2 * i + 1));
 sign := - sign;
end;
И это то же не меняет сути дела. Единственное что, мы здесь сэкономим всего 3 такта, что я думаю особо на программе не отобразиться. =)

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 4 дек. 2006 22:35 | IP
StudentTNGU


Удален

Спасибо. Программка работает. лабу сдал. ураааа. большое спасибо

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 5 дек. 2006 15:39 | IP
Kron



Новичок

А по-моему не верно:
если скажем я введу 1 член ряда то должно получиться 1 а получается другое =)





(Сообщение отредактировал Kron 5 дек. 2006 21:14)


(Сообщение отредактировал Kron 5 дек. 2006 21:15)

Всего сообщений: 37 | Присоединился: октябрь 2006 | Отправлено: 5 дек. 2006 21:11 | IP
KMA



Долгожитель

Это по-твоему, а если реально смотреть програме в исходный код, то как раз все получиться, единственное, что сместиться на еденицу... Если вам так угодно, то начните цикл с двух и все ваши проблемы будут решены. Главное -- идея, а к решению приводит лишь аккуратность. Я излагал идею, а не решение.

И еще вопрос, здесь есть принципиальная разница??? Всегда можно подогнать... Или это так, природное занудство и допотопность??? У меня то же часто такое бывает, особенно в отношении математики =)

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 5 дек. 2006 21:34 | IP
Kron



Новичок

=)
Не обижаися.

Всего сообщений: 37 | Присоединился: октябрь 2006 | Отправлено: 5 дек. 2006 23:24 | IP

Эта тема закрыта, новые ответы не принимаются

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ]

Форум работает на скрипте © Ikonboard.com