Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2013, 20:35   #1
snacki
Пользователь
 
Регистрация: 23.06.2010
Сообщений: 22
По умолчанию объяснить программу

Добрый вечер. Побудьте моим учителем!!!
Объясните мне эту программу после int main ПОСТРОЧНО!!!

Код:
#include <iostream>
#include <math.h>
#include <clocale>

long int factorial(int n)
{
   long int M=1
   for(int i=2; i<=n;i++)
       M*=i;
   return M;
}

int main()
{

    setlocale (0, "Rus");
    int a, x;
    double E;
    int k=1;

        cout<<"Введите число x:=";
        cin>>x;
        cout<<"Введите число E:=";
        cin>>E;
        cout<<"Введите число a:=";
        cin>>a;
        double p=1.0, summa=1.0, factor=1.0; 
        double delta=factorial(a)*x/3.0;
        do

{
            if (k!=1) delta*=x/(k*a);
            summa+=delta;
            k++;
            a--;
        }

while(fabs(delta)>E);
        cout<<summa<<endl;
        cout<<k<<endl;
        system("pause");
        return 0;
}
/Больше всего интересует вот эта запись\:

Код:
double p=1.0, summa=1.0, factor=1.0; 
double delta=factorial(a)*x/3.0;
do

{
if (k!=1) delta*=x/(k*a);
summa+=delta;
k++;
a--;
}
snacki вне форума Ответить с цитированием
Старый 01.10.2013, 20:59   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
Используем модуль для вывода на экран в стиле плюсов
#include <iostream>
Используем модуль с математическими функциями
#include <math.h>
Используем модуль для киррилицы в консоли
#include <clocale>

Функция, просчитывающая факториал числа (http://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%B0%D0%BB)
long int factorial(int n)
{
   long int M=1
В ней последовательность чисел умножается до граничного числа
   for(int i=2; i<=n;i++)
       M*=i;
   return M;
}

Главная программа возвращающая в систему целое число по феншую
int main()
{
Указывает консоли что буквы будут русскими
    setlocale (0, "Rus");
Описывает переменные (которые видимо в формуле ряда участвуют)
    int a, x;
И судя по всему число-эпсилон (http://ru.wikipedia.org/wiki/%D0%AD%D0%BF%D1%81%D0%B8%D0%BB%D0%BE%D0%BD)
    double E;
Это видимо некий счетчик ряда, который будет указывать на порядковый элемент ряда
    int k=1;

Далее просим ввести эти переменки и собсно вводим 
        cout<<"Введите число x:=";
        cin>>x;
        cout<<"Введите число E:=";
        cin>>E;
        cout<<"Введите число a:=";
        cin>>a;

Указываем начальные значения по ряду (см. формулу)
        double p=1.0, summa=1.0, factor=1.0; 
А так же расчитываем первый элемент ряда. Походу с конца
        double delta=factorial(a)*x/3.0;
Пошел цикл
        do

{
В котором дельта ряда умножается на очередной элемент (см. формулу)
            if (k!=1) delta*=x/(k*a);
После чего прибавляется к остальным дельтам, что по циклу уже прошли
            summa+=delta;
Счетчик номера элемента ряда перескакивает на следующий, увеличиваясь на единицу
            k++;
А некая загадочная "а" на единицу уменьшается
            a--;
        }
И так цикл крутится пока дельта (см. выше) не станет по модулю (http://ru.wikipedia.org/wiki/%D0%90%D0%B1%D1%81%D0%BE%D0%BB%D1%8E%D1%82%D0%BD%D0%B0%D1%8F_%D0%B2%D0%B5%D0%BB%D0%B8%D1%87%D0%B8%D0%BD%D0%B0)
 больше чем эпсилон, задатый выше ручками (см. условие)
while(fabs(delta)>E);

После чего сумма и кол-во обработанных элементов ряда выводится на экран
        cout<<summa<<endl;
        cout<<k<<endl;
Консоль становится в позу и ждет волшебного поцелуя принца
        system("pause");
финита ля комедия.
        return 0;
}
I'm learning to live...

Последний раз редактировалось Stilet; 01.10.2013 в 21:02.
Stilet вне форума Ответить с цитированием
Старый 01.10.2013, 21:00   #3
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

Код:
//подключение библиотек
#include <iostream> 
#include <math.h> //
#include <clocale>


long int factorial(int n)// это подрограмма
// long  int тип числа,  factorial название самой функции,(int n) - передаваемый параметр n типа int. int это целые числа
{
   long int M=1 // описание переменной M: тип long int, М получает значение 1
   for(int i=2; i<=n;i++)// это цикл от i =2 до n c шагом 1;int i=2 начальные условия, i<=n условие продолжения цикла(пока i не больше  n),i++ удобная запись i=i+1(увеличение счетчика цикла на 1)
       M*=i;// удобная запись M=M*i
   return M; // возвращаемый параметр из из функции
}
Начал писать,а тут уже все есть. А теперь не удалишь =( ну да ладн,пусть кусочек будет -__-
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!
SaLoKiN вне форума Ответить с цитированием
Старый 01.10.2013, 21:04   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не надо удалять. Светлее автору будет.
Ибо Ученье - свет. А неученье - чуть свет, и на работу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.10.2013, 21:13   #5
snacki
Пользователь
 
Регистрация: 23.06.2010
Сообщений: 22
По умолчанию

Всем спасибо за помощь)))
snacki вне форума Ответить с цитированием
Старый 01.10.2013, 21:19   #6
snacki
Пользователь
 
Регистрация: 23.06.2010
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
Используем модуль для вывода на экран в стиле плюсов
#include <iostream>
Используем модуль с математическими функциями
#include <math.h>
Используем модуль для киррилицы в консоли
#include <clocale>

Функция, просчитывающая факториал числа (http://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%B0%D0%BB)
long int factorial(int n)
{
   long int M=1
В ней последовательность чисел умножается до граничного числа
   for(int i=2; i<=n;i++)
       M*=i;
   return M;
}

Главная программа возвращающая в систему целое число по феншую
int main()
{
Указывает консоли что буквы будут русскими
    setlocale (0, "Rus");
Описывает переменные (которые видимо в формуле ряда участвуют)
    int a, x;
И судя по всему число-эпсилон (http://ru.wikipedia.org/wiki/%D0%AD%D0%BF%D1%81%D0%B8%D0%BB%D0%BE%D0%BD)
    double E;
Это видимо некий счетчик ряда, который будет указывать на порядковый элемент ряда
    int k=1;

Далее просим ввести эти переменки и собсно вводим 
        cout<<"Введите число x:=";
        cin>>x;
        cout<<"Введите число E:=";
        cin>>E;
        cout<<"Введите число a:=";
        cin>>a;

Указываем начальные значения по ряду (см. формулу)
        double p=1.0, summa=1.0, factor=1.0; 
А так же расчитываем первый элемент ряда. Походу с конца
        double delta=factorial(a)*x/3.0;
Пошел цикл
        do

{
В котором дельта ряда умножается на очередной элемент (см. формулу)
            if (k!=1) delta*=x/(k*a);
После чего прибавляется к остальным дельтам, что по циклу уже прошли
            summa+=delta;
Счетчик номера элемента ряда перескакивает на следующий, увеличиваясь на единицу
            k++;
А некая загадочная "а" на единицу уменьшается
            a--;
        }
И так цикл крутится пока дельта (см. выше) не станет по модулю (http://ru.wikipedia.org/wiki/%D0%90%D0%B1%D1%81%D0%BE%D0%BB%D1%8E%D1%82%D0%BD%D0%B0%D1%8F_%D0%B2%D0%B5%D0%BB%D0%B8%D1%87%D0%B8%D0%BD%D0%B0)
 больше чем эпсилон, задатый выше ручками (см. условие)
while(fabs(delta)>E);

После чего сумма и кол-во обработанных элементов ряда выводится на экран
        cout<<summa<<endl;
        cout<<k<<endl;
Консоль становится в позу и ждет волшебного поцелуя принца
        system("pause");
финита ля комедия.
        return 0;
}
а delta просто переменная?
snacki вне форума Ответить с цитированием
Старый 01.10.2013, 21:36   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а delta просто переменная?
А gamma ее знает...
Задание то твое - тебе виднее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу объяснить. Gtnz8 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 29.06.2013 08:06
Объяснить KIRILOW Помощь студентам 0 24.12.2012 10:29
составить программу vba платно и объяснить lighter Фриланс 3 22.11.2010 03:50
маятник, объяснить manuk Помощь студентам 0 26.05.2010 08:21