Модераторы: Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Описание функции, Определить ф-цию , вычисл. факториал. 
:(
    Опции темы
Rockie
Дата 10.5.2007, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: 13
Всего: 31



keenara

Цитата(keenara @  10.5.2007,  08:37 Найти цитируемый пост)
Я например люблю нестандартные приемы

1) Тернарный оператор это стандартный прием. Другое дело что к примеру мне он не нравится по причине нечитабельности. Равно как мне не нравится switch, мне понятнее if-else, if-else.. Впрочем это субъектив.
2) Если писать что-то для себя, то хоть 
Код

define ++ --

Но если ваш код смотрит кто-то другой, "нестандартные приемы" неуместны.

GIK, не знал, что факториал единицы равен трем. 




--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
dizzy1984
Дата 10.5.2007, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 15.2.2007

Репутация: 10
Всего: 25



наВернА гИк ХаТел эТА?
Код

int f(int x)
{
    return x == 1 ?  1 : ( x == 2 ? 2 : (x * f(x - 1)) );
}


но пАможит илИ наврИдИт - сПорныЙ вАпрос

Это сообщение отредактировал(а) dizzy1984 - 10.5.2007, 13:31
PM MAIL   Вверх
keenara
Дата 10.5.2007, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 2.2.2007

Репутация: 2
Всего: 2



Цитата
Тернарный оператор это стандартный прием.

Стандартный - понятие относительное. Именно этот прием очень многие не используют
Цитата
Но если ваш код смотрит кто-то другой, "нестандартные приемы" неуместны.

С этим поспорю. Когда я пишу программы для всяких "Центров помощи", то естественно стараюсь сделать программу как можно проще и нагляднее, пусть даже в ущерб качеству. Но когда я пишу более серьезные вещи, СМОТРЕТЬ код (а не просто юзать) будут достаточно опытные кодеры, которые все эти нестандартные приемы выучили когда я еще погремушки в детсаду дебаггила  smile 
А на всякий случай все равно все непонятные места документирую. Пара комментов и все станет ясно.
PM MAIL   Вверх
Rockie
Дата 10.5.2007, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: 13
Всего: 31



Цитата(dizzy1984 @  10.5.2007,  13:29 Найти цитируемый пост)
но пАможит илИ наврИдИт - сПорныЙ вАпрос

dizzy1984, навредит, так как этот вариант не подсчитает 0!
Цитата(keenara @  10.5.2007,  13:56 Найти цитируемый пост)
 Но когда я пишу более серьезные вещи, СМОТРЕТЬ код (а не просто юзать) будут достаточно опытные кодеры, которые все эти нестандартные приемы выучили когда я еще погремушки в детсаду дебаггила smile  

Откуда они знают эти приемы, если они нестандартные? Мы кажется про-разному понимаем это слово  smile 




--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
GIK
Дата 10.5.2007, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 4
Всего: 14



Точно, перемудрил  smile , вот что хотел:
Код

int factorial(int x) {
     if(x>1)
         return (x == 2) ? (2):(x * factorial(x - 1));
     else if(x>0) return 1;      
}


Добавлено через 1 минуту
Вроде больше некуда урезать smile 


--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
zkv
Дата 10.5.2007, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 21
Всего: 92



Цитата(keenara @  10.5.2007,  13:56 Найти цитируемый пост)
Но когда я пишу более серьезные вещи, СМОТРЕТЬ код (а не просто юзать) будут достаточно опытные кодеры, которые все эти нестандартные приемы выучили когда я еще погремушки в детсаду дебаггила  smile 
А на всякий случай все равно все непонятные места документирую. Пара комментов и все станет ясно.

по вашему получается, что профессионалы пишут код так, что потом  его никто без поллитры не разберет? smile 

GIK, (ехидно улыбаясь smile ), а если х == 0 придет (для которого факториал == 1)? А если отрицательное число?
PM MAIL   Вверх
GIK
Дата 10.5.2007, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 4
Всего: 14



Код

int factorial(int x) {
     if(x>1)
         return (x == 2) ? (2):(x * factorial(x - 1));
     else if(x>0) return 1;   
     else return 0; //"матерное слово"




--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
keenara
Дата 10.5.2007, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 2.2.2007

Репутация: 2
Всего: 2



Это мы спьяну пишем не думая, а потом слова назад по-быстрому берём. Эсперанто прикопался к одной из прог (типа ошибку) заметил, но понял что не прав и заменил пост на 44
Я по ошибке прогу не в тот топик запостила и заменила на 11.

Это все из-за того что невозможно полностью удалить пост. Вот и приходится его заменять откровенным флудом чтобы его кильнули
PM MAIL   Вверх
Anikmar
Дата 10.5.2007, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 59



Цитата(keenara @  10.5.2007,  15:13 Найти цитируемый пост)
Это мы спьяну пишем не думая, а потом слова назад по-быстрому берём. Эсперанто прикопался к одной из прог (типа ошибку) заметил, но понял что не прав и заменил пост на 44
Я по ошибке прогу не в тот топик запостила и заменила на 11.

Это все из-за того что невозможно полностью удалить пост. Вот и приходится его заменять откровенным флудом чтобы его кильнули 
 smile 
Ну только у компьютерщиков существует такой сленг. Ни в одной специальности я больше такого не видел.  smile 

Одна фраза "кильнуть пост". Всем понятно, но ведь это термин водный. Как можно перевернуть пост вверх ногами?!

Это я так, прикалываюсь.  smile 
PM MAIL ICQ   Вверх
Tsunameh
Дата 13.5.2007, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 29.4.2007

Репутация: нет
Всего: нет



Возникла проблема .. ни один из вышеперечисленных кодов не хочет правильно работать на билдере. Если можно , напишите код так , чтобы работал на билдере , тк мы в этой среде работаем ... *(
PM MAIL   Вверх
zkv
Дата 13.5.2007, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 21
Всего: 92



Tsunameh, я плохо знаком с билдером, но во-первых, приложение должно быть консольным, во-вторых, показывайте что именно пишите, и что не получается (вместе с кодом ошибки, и номером строки в коде).
PM MAIL   Вверх
Tsunameh
Дата 13.5.2007, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 29.4.2007

Репутация: нет
Всего: нет



Код

#include<conio.h>
#include<iostream.h>
#include<stdlib.h>
#include<stdio.h>
#include<math.h>

void main();
int F(int n, int m)

{
 clrscr();
  int i, ran1=1, ran2=1, ran3=1;

{
cout<<"Vvedite chisla n i m : ";
cin>>n;
cout<<" ";
cin>>m;
  for(i=2; i<=n; i++)
   ran1*=i;
  for(i=2; i<=m; i++)
   ran2*=i;

  for(i=2; i<=(n*m); i++)
   ran3*=i;

  i=(ran1*ran2)/ran3;
  cout<<"Znachenie = ";
  cout<<i;
  getch();
}
return(i);
}


компилятор не нашел ошибки , но при запуске программы пишет Undefined symbol _main in module c0.ASM в окне компилятора.


M
Guedda
Не забываем пользоваться кнопкой "Код"


Это сообщение отредактировал(а) Guedda - 13.5.2007, 15:19
PM MAIL   Вверх
zkv
Дата 13.5.2007, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 21
Всего: 92



и кто такой код вам приводил? smile
Вот, вероятно, то, что вы хотели изобразить:
Код

#include<conio.h>
#include<iostream.h>
#include<stdlib.h>
#include<stdio.h>
#include<math.h>

//int F(int n, int m); - это что?

int main()
{
 clrscr();
  int i, ran1=1, ran2=1, ran3=1;


cout<<"Vvedite chisla n i m : ";
cin>>n;
cout<<" ";
cin>>m;
  for(i=2; i<=n; i++)
   ran1*=i;
  for(i=2; i<=m; i++)
   ran2*=i;

  for(i=2; i<=(n*m); i++)
   ran3*=i;

  i=(ran1*ran2)/ran3;
  cout<<"Znachenie = ";
  cout<<i;
  getch();

return i;
}

PM MAIL   Вверх
Tsunameh
Дата 13.5.2007, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 29.4.2007

Репутация: нет
Всего: нет



Я сам себе его наприводил следуя указаниям выше )) видимо неудачно, буду проверять вашу версию.

Добавлено через 5 минут и 35 секунд
Вопрос : что означает ran1*=i; ? Конкретнее "*=" непонятно )
PM MAIL   Вверх
zkv
Дата 13.5.2007, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 21
Всего: 92



Код

ran1*=i;
все равно что:
Код

ran1 = ran1 * i;


Это сообщение отредактировал(а) zkv - 13.5.2007, 15:09
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.1169 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.