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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2007, 15:36   #11
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

a:=a/abs(a);
b:=b/abs(b);
c:=c/abs(c);
d:=d/abs(d);
s:=a+b+c+d;
k:=(s+4)/2;

Устроит?
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 18.10.2007, 17:41   #12
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Alex21: если они не знают операторов if то им явно не рассказывали обработку исключительных ситуаций. Но скорее всего ты прав. Еще вариант анализировать тип, но это тоже не для месяца программирования
Hollander вне форума Ответить с цитированием
Старый 18.10.2007, 17:44   #13
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
a:=a/abs(a);
b:=b/abs(b);
c:=c/abs(c);
d:=d/abs(d);
s:=a+b+c+d;
k:=(s+4)/2;

Устроит?
а если среди чисел ноль будет?

такой алгоритм ноль нормально воспримет
count:=0;
n:=(a+abs(a))*2;
count:=count + n div (n-1);
n:=(b+abs(b))*2;
count:=count + n div (n-1);
n:=(c+abs(c))*2;
count:=count + n div (n-1);
n:=(d+abs(d))*2;
count:=count + n div (n-1);
writeln(count);

он же с небольшим отличием
count:=0;
n:=a+abs(a);
count:=count + round(n /(n+1));
n:=b+abs(b);
count:=count + round(n /(n+1));
n:=c+abs(c);
count:=count + round(n /(n+1));
n:=d+abs(d);
count:=count + round(n /(n+1));
writeln(count);
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 18.10.2007 в 17:51.
mutabor вне форума Ответить с цитированием
Старый 18.10.2007, 18:15   #14
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

#13, а если среди чисел 0.5 будет
_Dmitry вне форума Ответить с цитированием
Старый 18.10.2007, 20:09   #15
utyyf
Пользователь
 
Регистрация: 18.10.2007
Сообщений: 21
По умолчанию

Спасибо большое!
Во всяком случае завтра обязательно спрошу, могут ли по условию числа быть равными нулю. А пока буду думать что делать с нулями (если они все таки там могут быть ).
utyyf вне форума Ответить с цитированием
Старый 19.10.2007, 07:14   #16
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

Цитата:
а если среди чисел ноль будет?
а ноль это положительное или отрицательное число? а?
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 19.10.2007, 09:12   #17
utyyf
Пользователь
 
Регистрация: 18.10.2007
Сообщений: 21
По умолчанию

Еще раз огромное спасибо!!!
Там у него была для некоторых заданий сноска (для чисел не равных нулю). Так что решено
utyyf вне форума Ответить с цитированием
Старый 19.10.2007, 09:33   #18
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Линейные алгоритмы наверное самые сложные, поскольку из всех инструментов программирования можно использовать только один - собственные мозги.
Попробуй такой алгоритм:
Переменные A,B,C,D,x1,x2.x3,x4,сумма,количеств о положительных;
1.Ввести A,B,C,D;
2.x1:=A/abs(A); аналогично для B,C,D;при делении получается либо 1, либо -1.
3.сумма:=x1+x2+x3+x4; получается варианты 4(все +),2(3+),0(2+),
-2(1+),-4(0+);
4.количество положительных:=(сумма+4)/2;
Код напишете сами. Если выберете тип переменных integer, то вместо знака деления div.
puporev вне форума Ответить с цитированием
Старый 19.10.2007, 10:57   #19
utyyf
Пользователь
 
Регистрация: 18.10.2007
Сообщений: 21
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
Попробуй такой алгоритм:
... x1:=A/abs(A); аналогично для B,C,D;при делении получается либо 1, либо -1....
Спасибо, нечто аналогичное предлагалось выше.
Единственное "но" - возможное деление на ноль.
Выяснилось, что эта задача давалась для чисел отличных от нуля.

Но все-таки интересно, можно ли ее решить при нулевых значениях???
utyyf вне форума Ответить с цитированием
Старый 19.10.2007, 12:24   #20
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от utyyf Посмотреть сообщение
Но все-таки интересно, можно ли ее решить при нулевых значениях???
Можно. Ноль за не отрицательное число считать?
Alex21 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не простая задача !!! MaxZoa Microsoft Office Excel 2 06.03.2008 18:07
простая задача по строковым переменным STEEL-F Помощь студентам 6 21.01.2008 22:32
Простая и в то же время сложная задача fiveelement Microsoft Office Excel 1 28.10.2007 21:03
Простая задача utyyf Помощь студентам 25 18.10.2007 14:50