Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 396

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
имеется ряд 1..N.
необходимо четные числа из этого ряда сложить, нечетные умножить.
help

габибыч Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: габибыч (статус: Заблокирован)
Вопрос отправлен: 8 июля 2010, 14:33
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

Цитата (габибыч):

у меня обычный ряд(например 1..5 (т.е. 1,2,3,4,5)). мне надо перемножить нечет члены (1*3*5) и сложить чет (2+4) но я не умею их разделять на чет и нечет


Это я тебе маленький ненавязчивый ликбез провел на тему "как правильно задавать вопросы по программированию". Правильная и однозначная формулировака задачи = 50% готового решения.

А теперь по делу:
// необходимо четные числа из этого ряда сложить, нечетные умножить.
procedure Calculate(const N: Cardinal; var EvenSum, OddMult: Int64);
var
  Index: Cardinal;
begin
  EvenSum:= 0;
  OddMult:= 0;
 
  if N = 0
    then Exit;
 
  OddMult:= 1;
 
  for Index:= 1 to N do
    if Odd(Index)
      then OddMult:= OddMult * Index  // Произведение нечётных
      else EvenSum:= EvenSum + Index; // Сумма чётных
end;

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 8 июля 2010, 15:23
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 17; последнее сообщение — 8 июля 2010, 22:17; участников в обсуждении: 3.
min@y™

min@y™ (статус: Доктор наук), 8 июля 2010, 14:43 [#1]:

Где общая формула членов ряда?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
габибыч

габибыч (статус: Заблокирован), 8 июля 2010, 14:45 [#2]:

формулы нет. просто упорядоченный набор цифр от 0 до N (N я как понял из условия задается). мне нужен алгоритм разделения чисел на чет и нечет
габибыч

габибыч (статус: Заблокирован), 8 июля 2010, 14:46 [#3]:

читать от 1..N
min@y™

min@y™ (статус: Доктор наук), 8 июля 2010, 14:49 [#4]:

Цитата (габибыч):

просто упорядоченный набор цифр от 0 до N

Так от 0 или от 1? Ты уж определись.
Упорядоченный как? Порядок следования членов ряда может быть разным и задаётся общей формулой, типа:
mi = i! / m или mi = mi-1 + mi-2 (ряд Фибоначчи).
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
габибыч

габибыч (статус: Заблокирован), 8 июля 2010, 14:53 [#5]:

от 1, написал же.
порядок следования - через число (напр. если нечет, тогда 1,3,5...). я не могу разбить ряд на чет и нечет
min@y™

min@y™ (статус: Доктор наук), 8 июля 2010, 14:56 [#6]:

Нихрена непонятно. Если у тебя ряд 1, 3, 5, ... , N, то все числа нечтные.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
габибыч

габибыч (статус: Заблокирован), 8 июля 2010, 15:02 [#7]:

..)) это на твой вопрос - "Упорядоченный как? Порядок следования членов ряда может быть разным и задаётся общей формулой, типа"

у меня обычный ряд(например 1..5 (т.е. 1,2,3,4,5)).
мне надо перемножить нечет члены (1*3*5) и сложить чет (2+4)
но я не умею их разделять на чет и нечет

иду на семинар, потом будим...
Тов. Женька

Тов. Женька (статус: 3-ий класс), 8 июля 2010, 17:25 [#8]:

Подели число на два. Если без остатка делится, то четное.
габибыч

габибыч (статус: Заблокирован), 8 июля 2010, 21:42 [#9]:

min@y™ , все хорошо, но как выводить результат на экран?
вместо N подставлять число?
габибыч

габибыч (статус: Заблокирован), 8 июля 2010, 21:44 [#10]:

Тов. Женька "Подели число на два. Если без остатка делится, то четное. "
- понятное дело, а как кодом это написать, вот в чем вопрос)
min@y™

min@y™ (статус: Доктор наук), 8 июля 2010, 21:45 [#11]:

Цитата (габибыч):

все хорошо, но как выводить результат на экран? вместо N подставлять число?

Это смотря какое у тебя приложение. Консольное? GUI? Я написал функцию. Воспользуйся ею в любом случае. Результаты можно выводить куда угодно, хоть посылать по e-mail.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 8 июля 2010, 21:46 [#12]:

Цитата (габибыч):

а как кодом это написать, вот в чем вопрос

число делится на 2, если X mod 2 = 0.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
габибыч

габибыч (статус: Заблокирован), 8 июля 2010, 21:50 [#13]:

min@y™ , а без процедуры эту задачу можна решить?
габибыч

габибыч (статус: Заблокирован), 8 июля 2010, 21:51 [#14]:

число делится на 2, если X mod 2 = 0.

точно) чо то туплю)
min@y™

min@y™ (статус: Доктор наук), 8 июля 2010, 21:57 [#15]:

Цитата (габибыч):

а без процедуры эту задачу можна решить?

Да.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Тов. Женька

Тов. Женька (статус: 3-ий класс), 8 июля 2010, 22:05 [#16]:

Более того, можно и без функции!
габибыч

габибыч (статус: Заблокирован), 8 июля 2010, 22:17 [#17]:

все понял. блин мне чуть-чуть не хватило...

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:40
Выполнено за 0.03 сек.