IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> красивая задача, из класса на нестандартность мышления
мисс_граффити
сообщение 12.05.2006 19:52
Сообщение #1


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Есть три целочисленных переменных (a,b,c). Надо вывести на экран ту, значение которой минимально.
Фишка в том, что использовать циклы и условные операторы нельзя.

Формально ограничений на язык не накладывается, но обещали, что средств Паскаля хватит.
Главное - конструктивная идея.

Была мысль про исключения...
Ну допустим при a<b ln(a-b) будет фигней, а при a>b прекрасно обработается. Но этот вариант был принят условно. Говорят, существует решение совсем без условий....

У вас тут с мыслями порядок... может, придумается что......


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 12.05.2006 20:01
Сообщение #2


Гость






мисс_граффити,
для 2-х чисел задача решается так:
var
a, b: integer;

begin
a := 10; b := 12;
writeln('min(a, b) = ',
(((((a-b)/abs(a-b)))*(-1)+abs(((a-b)/abs(a-b))))/2)*a +
(((((b-a)/abs(b-a)))*(-1)+abs(((b-a)/abs(b-a))))/2)*b
);
end.
Лениво сейчас то же самое добавлять еще раз... Просто присвой промежуточный результат в какую-то переменную, и проделай то же самое с ней и "С"... smile.gif
 К началу страницы 
+ Ответить 
volvo
сообщение 12.05.2006 21:12
Сообщение #3


Гость






P.S. Кстати, упрощаем выражение:

Сообщение отредактировано: volvo - 13.05.2006 10:50


Прикрепленные файлы
Прикрепленный файл  ver_02.pas ( 111 байт ) Кол-во скачиваний: 134
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 12.05.2006 21:19
Сообщение #4


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


супер!
с такой скоростью решил или знал?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 13.05.2006 5:43
Сообщение #5


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Вот мое решение (для трех чисел). В нем нет условных операторов, хотя есть сами условия. Впрочем, их тоже можно избежать..
const
a:integer=2;
b:integer=300;
c:integer=-10;

var
d:array[false..true]of integer;

begin
d[false]:=a;
d[true]:=b;
d[false]:=d[a>b];
d[true]:=c;
d[false]:=d[d[false]>c];
WriteLn(d[false]);
end.

Первое решение volvo не годится - там может возникнуть деление на ноль.
Второе - класс, очень красиво, respect! smile.gif
Почему-то я сразу стал думать в русле программирования, забыв про общую математику.. sad.gif

P.S.
volvo, не мог ли бы ты из некоторого сочувствия к другим как-то прикрывать решения подобных задач (скажем, цветом фона)? Мне повезло, что я сразу не скользнул взглядом по решению, успел отвернуться..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 13.05.2006 10:53
Сообщение #6


Гость






Цитата(lapp @ 13.05.2006 5:43)
volvo, не мог ли бы ты из некоторого сочувствия к другим как-то прикрывать решения подобных задач (скажем, цветом фона)?
Нет, я лучше буду присоединять решения отдельным файлом. Пока не захочешь - не увидишь smile.gif См. выше, исправлено... Пойдет?

А цвет фона может изменяться в зависимости от выбранного скина и браузера...
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 13.05.2006 11:23
Сообщение #7


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


lapp, тоже красиво.
я уточню, можно ли с условиями с таком виде. думаю, что да: ведь никаких ветвлений нет, а ограничения были именно на них.
-----------
если интересно, могу иногда подобные задачи кидать.
то есть если вам самим в удовольствие, а не как 1725-й раз писать "пользуйтесь поиском".

Сообщение отредактировано: мисс_граффити - 13.05.2006 11:25


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 13.05.2006 11:41
Сообщение #8


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(мисс_граффити @ 13.05.2006 12:23) *

если интересно, могу иногда подобные задачи кидать.

Конечно, интересно. smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 29.03.2024 14:22
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"