![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
Tsunameh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 29.4.2007 Репутация: нет Всего: нет |
Доброго времени суток !
Возникла вот такая задачка ; просьба написать код таким образом , чтобы можно было разобраться самостоятельно с книжкой ) тоесть наиболее простая запись , просто чтобы работало ) Итак: Описать функцию F(n,m) = (n!*m!)/(n*m)! , n,m >=0. При этом необходимо определить функцию , вычисляющую факториал. Заранее спасибо ) |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
Это сообщение отредактировал(а) zkv - 9.5.2007, 12:30 |
|||
|
||||
GIK |
|
||||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: 4 Всего: 14 |
В смысе она отдельна должна быть? Ну короче вот пока, если надо переделаю ![]()
Добавлено через 1 минуту и 22 секунды Упс, опоздал, решение уже есть ![]() -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
||||
|
|||||
keenara |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 2.2.2007 Репутация: 2 Всего: 2 |
Позволю себе несколько замечаний (zkv заранее сорри).
1)Не вижу никакого смысла в двойной проверке корректности: если что-то не так, то внутренняя функция Fuct все равно скажет об ошибке и еще и передаст наружу сигнал сбоя. 2)unsigned и т.п. могут показаться сложными, а автор просил
3)Факториал - по опредлению рекурсивная процедура, поэтому вычислять ее при помощи рекурсии сам Джа велел. Поэтому предлагаю свой, более простой вариант.
|
||||
|
|||||
GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: 4 Всего: 14 |
Согласен с Вами, а кто такой Джа, простите? ![]() -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
Tsunameh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 29.4.2007 Репутация: нет Всего: нет |
Спасибо огромное и бальшущий вам риспект ) приду еще ))
|
|||
|
||||
keenara |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 2.2.2007 Репутация: 2 Всего: 2 |
Захады дарагой! мы тут как раз на ваших задачках прокачиваемся
![]() |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
Уважаемый(ая) keenara, не стояло задачи написать программу, была задача написать отдельные функции, вы уверены, что она нигде больше не будет вызываться? Даже если не будет, лишняя проверка никогда еще никому не помешала ![]() не буду спорить, сужу по себе, я бы не испугался ![]()
не спорю, рекурсия хорошо смотрится, да и повозиться с ней иногда интересно из спортивного интереса, но по возможности следует ее избегать (стек не резиновый ![]() |
|||
|
||||
keenara |
|
||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 2.2.2007 Репутация: 2 Всего: 2 |
Некоторые особо одаренные товарищи из числа авторов тем в этом разделе не в состоянии собрать прогу из готовых функций ![]()
В любом случае если косячок с аргументом будет то функция самого факториала нас все равно носом в это дело тыкнет
Ну если смотреть с философской точки зрения... усложнение кода, падение производительности, а главное - лишний геморрой при вычерчивании блок-схемы ![]()
я тоже, но многие писаются при виде этих "страшных" слов ![]()
Это что же такое туда надо засунуть чтобы стек переполнить? ![]() Это сообщение отредактировал(а) keenara - 9.5.2007, 14:14 |
||||||||||
|
|||||||||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
keenara, есть некоторые принципы, которых я придерживаюсь (по возможности не применять рекурсию, проверять ошибки где только можно - производительность перетопчется, особенно в таком контексте
![]() ![]() |
|||
|
||||
keenara |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 2.2.2007 Репутация: 2 Всего: 2 |
Очень правильные принципы на самом деле, я тоже в СЕРЬЕЗНЫХ задачах их придерживаюсь, но в данном контексте... Ты пойми, я ж не из принципа все это говорю, а из сочуствия к кренделям которым все это дело придется защищать злобным преподам ![]()
Гы, тогда по логике нужно еще и добавить проверку корректности ввода в том плане чтобы туда буквы не вводили ![]() ![]() Это сообщение отредактировал(а) keenara - 9.5.2007, 14:33 |
||||
|
|||||
Rockie |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 13 Всего: 31 |
![]()
Добавлено через 3 минуты и 58 секунд еще на wiki:
-------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
||||
|
|||||
keenara |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 2.2.2007 Репутация: 2 Всего: 2 |
Хе, я тоже тернарный оператор люблю, он красивый и почему-то в основном программерами незаслуженно забыт
![]() |
|||
|
||||
GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: 4 Всего: 14 |
Если уж говорить о загружанности компа, и о прочих подобных вещах, то ему можно немого помочь:
-------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
||||
|
||||
Rockie |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 13 Всего: 31 |
keenara
1) Тернарный оператор это стандартный прием. Другое дело что к примеру мне он не нравится по причине нечитабельности. Равно как мне не нравится switch, мне понятнее if-else, if-else.. Впрочем это субъектив. 2) Если писать что-то для себя, то хоть
Но если ваш код смотрит кто-то другой, "нестандартные приемы" неуместны. GIK, не знал, что факториал единицы равен трем. -------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
|||
|
||||
dizzy1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: 10 Всего: 25 |
наВернА гИк ХаТел эТА?
но пАможит илИ наврИдИт - сПорныЙ вАпрос Это сообщение отредактировал(а) dizzy1984 - 10.5.2007, 13:31 |
|||
|
||||
keenara |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 2.2.2007 Репутация: 2 Всего: 2 |
Стандартный - понятие относительное. Именно этот прием очень многие не используют
С этим поспорю. Когда я пишу программы для всяких "Центров помощи", то естественно стараюсь сделать программу как можно проще и нагляднее, пусть даже в ущерб качеству. Но когда я пишу более серьезные вещи, СМОТРЕТЬ код (а не просто юзать) будут достаточно опытные кодеры, которые все эти нестандартные приемы выучили когда я еще погремушки в детсаду дебаггила ![]() А на всякий случай все равно все непонятные места документирую. Пара комментов и все станет ясно. |
||||
|
|||||
Rockie |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 13 Всего: 31 |
dizzy1984, навредит, так как этот вариант не подсчитает 0! Откуда они знают эти приемы, если они нестандартные? Мы кажется про-разному понимаем это слово ![]() -------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
|||
|
||||
GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: 4 Всего: 14 |
Точно, перемудрил
![]()
Добавлено через 1 минуту Вроде больше некуда урезать ![]() -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
по вашему получается, что профессионалы пишут код так, что потом его никто без поллитры не разберет? ![]() GIK, (ехидно улыбаясь ![]() |
|||
|
||||
GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: 4 Всего: 14 |
-------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
keenara |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 2.2.2007 Репутация: 2 Всего: 2 |
Это мы спьяну пишем не думая, а потом слова назад по-быстрому берём. Эсперанто прикопался к одной из прог (типа ошибку) заметил, но понял что не прав и заменил пост на 44
Я по ошибке прогу не в тот топик запостила и заменила на 11. Это все из-за того что невозможно полностью удалить пост. Вот и приходится его заменять откровенным флудом чтобы его кильнули |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
![]() Ну только у компьютерщиков существует такой сленг. Ни в одной специальности я больше такого не видел. ![]() Одна фраза "кильнуть пост". Всем понятно, но ведь это термин водный. Как можно перевернуть пост вверх ногами?! Это я так, прикалываюсь. ![]() |
|||
|
||||
Tsunameh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 29.4.2007 Репутация: нет Всего: нет |
Возникла проблема .. ни один из вышеперечисленных кодов не хочет правильно работать на билдере. Если можно , напишите код так , чтобы работал на билдере , тк мы в этой среде работаем ... *(
|
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
Tsunameh, я плохо знаком с билдером, но во-первых, приложение должно быть консольным, во-вторых, показывайте что именно пишите, и что не получается (вместе с кодом ошибки, и номером строки в коде).
|
|||
|
||||
Tsunameh |
|
||||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 29.4.2007 Репутация: нет Всего: нет |
компилятор не нашел ошибки , но при запуске программы пишет Undefined symbol _main in module c0.ASM в окне компилятора.
Это сообщение отредактировал(а) Guedda - 13.5.2007, 15:19 |
||||
|
|||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
и кто такой код вам приводил?
![]() Вот, вероятно, то, что вы хотели изобразить:
|
|||
|
||||
Tsunameh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 29.4.2007 Репутация: нет Всего: нет |
Я сам себе его наприводил следуя указаниям выше )) видимо неудачно, буду проверять вашу версию.
Добавлено через 5 минут и 35 секунд Вопрос : что означает ran1*=i; ? Конкретнее "*=" непонятно ) |
|||
|
||||
zkv |
|
||||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
Это сообщение отредактировал(а) zkv - 13.5.2007, 15:09 |
||||
|
|||||
Tsunameh |
|
||||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 29.4.2007 Репутация: нет Всего: нет |
Вот бы вроде тот код который мне нужен:
Но опять же пишет Undefined symbol _main in module c0.ASM ... (((
Это сообщение отредактировал(а) Guedda - 13.5.2007, 16:09 |
||||
|
|||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
Tsunameh, грубо говоря, в программе обязательно должна быть функция
int main", она является точкой входа в приложение, те с нее начинается выполнение. |
|||
|
||||
Tsunameh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 29.4.2007 Репутация: нет Всего: нет |
Все , саму суть программы описал , теперь нужно понять как вызывать выполнение программы с помощью функции.. )
|
|||
|
||||
dizzy1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: 10 Всего: 25 |
Вам много раз об этом сказали, но вы, почему-то, оказались глухи к гласу разума.
Любая программа на c/с++ обязана начинаться только с функции main. Вот пример
простейшей программы Это сообщение отредактировал(а) dizzy1984 - 14.5.2007, 05:32 |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |