![]() |
|
Модераторы: 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 |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |