Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2009, 21:58   #1
guffer
Пользователь
 
Регистрация: 07.07.2009
Сообщений: 58
Печаль задача

Выписаны числа от 1 до N по порядку. Между каждой парой соседних чисел попеременно расставлены знаки "+" и "-". Надо найти чему равно значение выражения.
Например, для N=12 будет так: +1-2+3-4+5-6+7-8+9-10+11-12=-6.
Задача:
С клавы вводится(в Edit1)число N(1<=N<=32000).
В Edit2 выводится значение.
Помогите,вообще не понимаю как это сделать
guffer вне форума Ответить с цитированием
Старый 31.10.2009, 22:13   #2
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

Идёшь по строке.
Если нечётный индекс, то Continue.
Если S[i - 1] равно '+' значит плюсуем к Result. В противном случаем минусуем к Result.

Последний раз редактировалось Вавел из ГМТУ; 31.10.2009 в 22:17.
Вавел из ГМТУ вне форума Ответить с цитированием
Старый 31.10.2009, 22:16   #3
guffer
Пользователь
 
Регистрация: 07.07.2009
Сообщений: 58
По умолчанию

Не понял(((
guffer вне форума Ответить с цитированием
Старый 31.10.2009, 22:17   #4
SnX
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 114
По умолчанию

Код:
var
   i,n,res:integer;
   flag: boolean;

begin
     n:=StrToInt(Edit.Text);

     flag:=true;

     for i:=1 to n do
         begin
            if flag then
                 res:=res+i
            else res:=res-i;
            flag:=not flag;
         end;
....
SnX вне форума Ответить с цитированием
Старый 31.10.2009, 22:19   #5
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

Код:
For i := 1 To Length(S) Then Begin
if (i mod 2) = 0 Then Continue;
If S[i-1] = '+' Then ..... Else ...... ;
End;
Вавел из ГМТУ вне форума Ответить с цитированием
Старый 31.10.2009, 23:39   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

if n mod 2 =0 then
r:=(n div 2)*(-1)
else
r:=(n div 2)*(-1)+n;

или одной строкой
r:=(n div 2)*(-1) + n*(n mod 2);
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц