powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Здачка для школьника
25 сообщений из 76, страница 3 из 4
Здачка для школьника
    #36831994
Ed.Kondakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dim I As Integer

I = 0
Debug.Print I * ((I = 0) + 1) / Abs(I + (I = 0))

I = -666
Debug.Print I * ((I = 0) + 1) / Abs(I + (I = 0))

I = 666
Debug.Print I * ((I = 0) + 1) / Abs(I + (I = 0))
...
Рейтинг: 0 / 0
Здачка для школьника
    #36832015
Фотография lLocust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
with t as ( select - 25 . 5  num from dual union all
            select -(-(- 5 )) num from dual union all--ну так, поржать
            select - 0  num from dual union all
            select -(- 0 . 0000003 ) num from dual union all
            select . 45  num from dual union all
            select  14 . 9  num from dual)
select
num, round(num/abs(To_NUMBER(replace(TO_CHAR(num, '09.9EEEE'),'0.0E+00','1.0E+00'),'09.9EEEE'))) smile
from t
...
Рейтинг: 0 / 0
Здачка для школьника
    #36832028
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БерлuнгерЯростный МечКоллеги, покритикуйте мой вариант
А то у меня фобия, что "все игнорируют"
вроде работает - к тому же пока самое приличное из всех (если считать разрешенными функции floor -- как аппаратную, а abs -- как наложение маски)
А при -1 и 1 в той формуле разве нет деления на ноль? )) В ней их еще больше. Так что, от a / abc(a) она ничем не отличается. Только абсов в ней 4, делений 2, проблемных точек, в которых происходит деление на ноль - тоже две. А смысл тот же ))
...
Рейтинг: 0 / 0
Здачка для школьника
    #36832039
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но округление необходимо конечно же, я упустил что в задании на входе не целое, а на выходе целое. Только округление, которое возвращает целое. Если floor возвращает int значит его, если нет - значит надо посмотреть справочник по функциям.
...
Рейтинг: 0 / 0
Здачка для школьника
    #36832042
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonБерлuнгерЯростный МечКоллеги, покритикуйте мой вариант
А то у меня фобия, что "все игнорируют"
вроде работает - к тому же пока самое приличное из всех (если считать разрешенными функции floor -- как аппаратную, а abs -- как наложение маски)
А при -1 и 1 в той формуле разве нет деления на ноль? ))А подумать?
abs(x)+1 может ли быть нулем?
...
Рейтинг: 0 / 0
Здачка для школьника
    #36832045
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меч,

А, в скобках запутался ))) Сорри
...
Рейтинг: 0 / 0
Здачка для школьника
    #36832053
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, всем решившим можно присвоить звание "Почетный школьник форума". И закрыть топик.
...
Рейтинг: 0 / 0
Здачка для школьника
    #36832056
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonНо округление необходимо конечно же, я упустил что в задании на входе не целое, а на выходе целое.

Зачем округление ?
...
Рейтинг: 0 / 0
Здачка для школьника
    #36832069
Берлuнгер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonБерлuнгерЯростный МечКоллеги, покритикуйте мой вариант
А то у меня фобия, что "все игнорируют"
вроде работает - к тому же пока самое приличное из всех (если считать разрешенными функции floor -- как аппаратную, а abs -- как наложение маски)
А при -1 и 1 в той формуле разве нет деления на ноль? )) В ней их еще больше. Так что, от a / abc(a) она ничем не отличается. Только абсов в ней 4, делений 2, проблемных точек, в которых происходит деление на ноль - тоже две. А смысл тот же ))
деления на ноль не будет.
от a / abc(a) она отличается
...
Рейтинг: 0 / 0
Здачка для школьника
    #36832096
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rstudioEdd.DragonНо округление необходимо конечно же, я упустил что в задании на входе не целое, а на выходе целое.

Зачем округление ?
Потому что преобразование типа вовсе не обязано преобразовать число из float-формата в int-формат. Т.е. нужна функция, которая возвращает в формате int целую часть переданного ей числа. Если преобразование типа в конкретном языке так же поступает - отлично. Если нет, ищем.
...
Рейтинг: 0 / 0
Здачка для школьника
    #36832112
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonrstudioEdd.DragonНо округление необходимо конечно же, я упустил что в задании на входе не целое, а на выходе целое.

Зачем округление ?
Потому что преобразование типа вовсе не обязано преобразовать число из float-формата в int-формат. Т.е. нужна функция, которая возвращает в формате int целую часть переданного ей числа. Если преобразование типа в конкретном языке так же поступает - отлично. Если нет, ищем.

не понял, речь о решении
х/abc(x) ?

Какая разница, -0.001/abc(-0.001) = -0.001/0.001 = -1
...
Рейтинг: 0 / 0
Здачка для школьника
    #36832121
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rstudio
Какая разница, -0.001/abc(-0.001) = -0.001/0.001 = -1
-0.001/0.001 = -1.000. А в условии задачи требуют вернуть целое, т.е. int
...
Рейтинг: 0 / 0
Здачка для школьника
    #36832145
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, тогда округление нужно. Но конечно эта часть от языка зависимая.
...
Рейтинг: 0 / 0
Здачка для школьника
    #36832152
Берлuнгер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rstudioда, тогда округление нужно. Но конечно эта часть от языка зависимая.
floor - вообще то штука аппаратная и почти во всех языках пристуствует
...
Рейтинг: 0 / 0
Здачка для школьника
    #36832187
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Берлuнгерrstudioда, тогда округление нужно. Но конечно эта часть от языка зависимая.
floor - вообще то штука аппаратная и почти во всех языках пристуствует

может быть неявное приведение типов

например в бесике

Код: plaintext
1.
2.
3.
4.
function F() as Integer

   return  1 . 000 

end function

успешно вернет один
...
Рейтинг: 0 / 0
Здачка для школьника
    #36832290
Берлuнгер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rstudioможет быть неявное приведение типов
обычно это делается так: константа на уровне компилятора приводится к наиболее удобному типу.
если же типы не совпадают и происходит обрезание (например double к int), то выводится варинг
...
Рейтинг: 0 / 0
Здачка для школьника
    #36832629
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Платформенно-независимая версия варианта eee-pc:
Код: plaintext
1.
2.
3.
4.
5.
6.
int mySign(int c)
{
    const int shiftSize = sizeof(c) * CHAR_BIT -  1 ;
    int zeroBit = (((c | -c) & (0x1 << shiftSize)) >> shiftSize) & 0x1;
    int negativeBit = ((c & (0x1 << shiftSize)) >> shiftSize) & 0x1;
    return zeroBit * ( 1  -  2  * negativeBit);
}
...
Рейтинг: 0 / 0
Здачка для школьника
    #36832656
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, не забываем, что х - не обязательно целое.
авторВводят действительное число х.
...
Рейтинг: 0 / 0
Здачка для школьника
    #36832727
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забавно что до сих пор ничего не известно о ЯП. Кст. мне вспоминается шаблон... кажется назывался "Replace Condition With Polymorphism" и мне кажется что, жонглируя булевыми, битовыми операциями и ссылками на функции можно иммитировать работу условного оператора. Хотя... кому нужен этот онанизм? Всего лишь одному преподу, чтоб потешить своё самолюбие и студенту чтобы получить наконец зачот.
...
Рейтинг: 0 / 0
Здачка для школьника
    #36832987
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
на делфи реплэйсами добился результата, но пришлось поискать нужный format выходной строки.
код приводить не буду, ибо получилось некрасиво (два преобразования6 в стринг и обратно) и громоздко...
...
Рейтинг: 0 / 0
Здачка для школьника
    #36833101
fedoseev_sv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett
Member

Откуда: Бийск
Сообщений: 2384

==========================
Как можно было написать на форуме столько сообщений и "сломать мозг" над этой задачей? Холивар?

Открыл Access, получилось так:
----------------------------------
Dim i As Double
i = 0 // Здесь подставить входное значение
Dim result As Integer
result = 0
If i < 0 Then result = -1 Else
If i > 0 Then result = 1
MsgBox CStr(result)

вот и все. Достойная тема дляSQL.ru!
...
Рейтинг: 0 / 0
Здачка для школьника
    #36833178
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedoseev_sv, молодец, ставлю 2.

Модератор:
мы обсуждаем тему, но не обсуждаем обсуждающих
...
Рейтинг: 0 / 0
Здачка для школьника
    #36833401
Фотография lLocust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedoseev_sv,

ну и неплохо было бы действитеьлно "сломать мозг" и дочитать задание до конца )))

авторВводят действительное число х. Надо получить целое: если число положительное ответ 1, если 0 то 0, а если отрицательное то -1.
Без операторов условия и циклов.

Ваш пример (не забываем про теги src, этому специальный раздел форума посвящен):
Код: plaintext
1.
2.
3.
4.
5.
6.
Dim i As Double
i =  0  // Здесь подставить входное значение
Dim result As Integer
result =  0 
If i <  0  Then result = - 1  Else
If i >  0  Then result =  1 
MsgBox CStr(result)

поясню: вот это операторы сравнения:
Код: plaintext
1.
2.
If i <  0  Then result = - 1  Else
If i >  0  Then result =  1 
...
Рейтинг: 0 / 0
Здачка для школьника
    #36835347
Eduard Kondakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что, решение мое для VB не подходит ?

I * ((I = 0) + 1) / Abs(I + (I = 0))
...
Рейтинг: 0 / 0
Здачка для школьника
    #36835543
Берлuнгер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eduard KondakovА что, решение мое для VB не подходит ?

I * ((I = 0) + 1) / Abs(I + (I = 0))
l=0 -- это условие вообще говоря

к тому же неизвестно что оно вернут: некоторые языки возвращяют в качестве true 1, некоторые -1, а некоторые вообще не умеют напрямую (без явных привидений) превращять bool в int
...
Рейтинг: 0 / 0
25 сообщений из 76, страница 3 из 4
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Здачка для школьника
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]