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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2011, 17:36   #1
iCaesy
In progress...
Форумчанин
 
Регистрация: 25.09.2011
Сообщений: 161
По умолчанию Не пойму задание.

Даны натуральное число n, действительные числа a[1],...,a[n]. Вы-
числить a[1]-a[2]+a[3]-...+(-1)^(n+1)a[n].

Не могу понять что нужно сделать, кроме того что у нас одномерный массив...
iCaesy вне форума Ответить с цитированием
Старый 27.10.2011, 17:38   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Вычислить "Первый элемент минус второй плюс третий минус четвёртый плюс пятый..."
В общем, нечётные с плюсом, чётные с минусом.
Abstraction вне форума Ответить с цитированием
Старый 27.10.2011, 20:29   #3
iCaesy
In progress...
Форумчанин
 
Регистрация: 25.09.2011
Сообщений: 161
По умолчанию

Написал так:
Код:
kol:=0;
for i:=1 to n do
if  odd(a[i]) then begin
kol:=kol+a[i];
end
else
kol:=kol-a[i];
Не правильно считает, в чем ошибка.
iCaesy вне форума Ответить с цитированием
Старый 27.10.2011, 20:34   #4
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Abstraction сказал же, не нужно проверять на чётность нужно чередовать знак.
Код:
kol:=0;
for i:=1 to n do
kol:=kol+(1-2*byte(i mod 2=0))*a[i];
П.С. добавил информацию для теоретических программистов:
я специально написал i mod 2=0 по причине того, что n-положительное натуральное число
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 27.10.2011, 21:30   #5
iCaesy
In progress...
Форумчанин
 
Регистрация: 25.09.2011
Сообщений: 161
По умолчанию

Явное преобразование типа Boolean к типу byte запрещено...
iCaesy вне форума Ответить с цитированием
Старый 27.10.2011, 21:42   #6
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

На чётность проверять i, а не a[i].
Я имел в виду, что первый, третий, пятый и т.д. члены массива идут с плюсом, а второй, четвёртый, шестой... - с минусом.
Abstraction вне форума Ответить с цитированием
Старый 27.10.2011, 23:16   #7
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

если Явное преобразование типа Boolean к типу byte запрещено тодла
Код:
kol:=0;
for i:=1 to n do
case i mod 2 of
 1: kol:=kol-a[i];
 0: kol:=kol+a[i];
end;
так наглядней )
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 27.10.2011, 23:44   #8
iCaesy
In progress...
Форумчанин
 
Регистрация: 25.09.2011
Сообщений: 161
По умолчанию

Ввел 1 2 3 4 5
По идее 1-2+3-4+5 = 3
А выводит -3 !
iCaesy вне форума Ответить с цитированием
Старый 27.10.2011, 23:45   #9
iCaesy
In progress...
Форумчанин
 
Регистрация: 25.09.2011
Сообщений: 161
По умолчанию

Цитата:
Сообщение от JUDAS Посмотреть сообщение
если Явное преобразование типа Boolean к типу byte запрещено тодла
Код:
kol:=0;
for i:=1 to n do
case i mod 2 of
 1: kol:=kol-a[i];
 0: kol:=kol+a[i];
end;
так наглядней )
Поменял + на - и заработало.
Спасибо всем.
iCaesy вне форума Ответить с цитированием
Старый 28.10.2011, 08:58   #10
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Зачем вообще преобразование )) ? просто записать *(i mod 2) если четное, то скобка суть 0, если нечетное - 1, и тогда для четного i
Код:
(2*(i mod 2)-1)
будет -1, а для нечетного 1
phomm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запутаное задание задание с массивом.Буду очень благодарен. Riko1 Общие вопросы C/C++ 2 22.10.2011 10:23
не пойму задание, растолкуйте Alexgv Паскаль, Turbo Pascal, PascalABC.NET 4 26.12.2010 16:11
не пойму ошибку Domanoff Общие вопросы Delphi 4 25.05.2010 21:37
не пойму с запросом kaizer131 Microsoft Office Access 8 23.03.2009 22:27
Не пойму чо так Cricket2007 Помощь студентам 5 15.05.2008 01:17