.
Отговор в тема
Резултати от 1 до 7 от общо 7
  1. #1
    Супер фен
    Регистриран на
    Jun 2005
    Мнения
    1 162

    Решение на лесна задача на С++. Много Ви моляяя

    Ето задачата, спешно е!

    Да се напише програма, която намира произведението на целите числа в интервала (m,n) m<=n.

    Задачата трябва да се реши по 2начина: 1-вия с oператорът do; 2-рия с операторът while.

    Спешно е! Много Ви моля, помогнете ми!
    Мерси предварително

    т.1 от Правилника!

    Модерирано от sh3_1s_7h3_0n3

  2. #2
    Guest
    Program Proizvedenie;
    Var m,n,i:integer;
    pr:integer;
    Begin
    printf('vyvedete n');scanf(%d,n);
    printf('vyvedete m');scanf(%d,m);
    pr=1;
    for(i=n;i<=m;i++);
    pr=pr*i;
    scanf('prozivdenieto e', pr);



    Program Pr2;
    ....
    i=n;
    while (n<m) do
    pr:=pr*i;
    i++;
    ...
    Zna4i dano sym ti pomognala, samo da ti kaja, 4e za formatirashite stringove, demek printf i scanf ne sym sig kak bqha, vij si gi ot knigata, vtoriq varinat samo sym smenila fragmenta s cikyla, drugoto si e pak kato v pyrvata zad. Uspeh

  3. #3
    Супер фен
    Регистриран на
    Jun 2005
    Мнения
    1 162
    Цитирай Първоначално написано от Анонимко
    Program Proizvedenie;
    Var m,n,i:integer;
    pr:integer;
    Begin
    printf('vyvedete n');scanf(%d,n);
    printf('vyvedete m');scanf(%d,m);
    pr=1;
    for(i=n;i<=m;i++);
    pr=pr*i;
    scanf('prozivdenieto e', pr);



    Program Pr2;
    ....
    i=n;
    while (n<m) do
    pr:=pr*i;
    i++;
    ...
    Zna4i dano sym ti pomognala, samo da ti kaja, 4e za formatirashite stringove, demek printf i scanf ne sym sig kak bqha, vij si gi ot knigata, vtoriq varinat samo sym smenila fragmenta s cikyla, drugoto si e pak kato v pyrvata zad. Uspeh
    Това С++ ли е, миличка, че от първото нищо не разбирам.
    Трябват ми 2решения на задачата - едното да е само с while, другото с do. Bez nikakki masivi, ne sme gi vzemali...

  4. #4
    Мега фен Аватара на RoyTheReaper
    Регистриран на
    Nov 2005
    Мнения
    3 133
    Това, което си написала е нещо средно между С (не ++) и Паскал. Ето как трябва да стане:

    Със for:

    #include <cstdio>
    #include <cstdlib>
    #include <iostream>
    #include <string>
    #include <cmath>
    using namespace std;

    int main(int nNumberofArgs, char* pszArgs[])
    {
    int m, n, i, pr;
    cout<<"Vavedete m: ";
    cin>>m;
    cout<<"Vavedete n: ";
    cin>>n;
    pr=1;
    for(i=m;i<=n;i++) {
    pr=pr*i;
    }
    cout<<"Proizvedenieto e "
    <<pr <<endl;
    system("PAUSE");
    return 0;
    }

    Със while:

    #include <cstdio>
    #include <cstdlib>
    #include <iostream>
    #include <string>
    #include <cmath>
    using namespace std;

    int main(int nNumberofArgs, char* pszArgs[])
    {
    int m, n, i, pr;
    cout<<"Vavedete m: ";
    cin>>m;
    cout<<"Vavedete n: ";
    cin>>n;
    pr=1;
    i=m;
    while (i<=n) {
    pr=pr*i;
    i++;
    }
    cout<<"Proizvedenieto e "
    <<pr <<endl;
    system("PAUSE");
    return 0;
    }

    Тествани са, работят.

  5. #5
    Мега фен Аватара на RoyTheReaper
    Регистриран на
    Nov 2005
    Мнения
    3 133
    БДУ не всички #include декларации ти трябват. Тези които не ти трябват, може да ги махнеш ако искаш.

  6. #6
    Супер фен
    Регистриран на
    Jun 2005
    Мнения
    1 162
    Благодаря.

  7. #7
    Guest

    Re: Решение на лесна задача на С++. Много Ви моляяя

    Цитирай Първоначално написано от sineoka_kukla
    Ето задачата, спешно е!

    Да се напише програма, която намира произведението на целите числа в интервала (m,n) m<=n.

    Задачата трябва да се реши по 2начина: 1-вия с oператорът do; 2-рия с операторът while.

    [/b]
    само за информация ... този вид задачи се решават с рекурсия, но разбирам, че още не сте ги учили, ако все пак проявяваш интерес ето една такава реализация:
    Код:
       
    // multiplication.cpp
    // Dev C++
    
    #include <iostream>
    #include <conio.h>
    
    using namespace std;
    
    int result();
    void multiplication(int m, int n, int& x);
    
    int main()
    {
        cout << result();
        
        getch();
        return 0;
    }
    // -------------------------------------------
    int result()
    {
     // m - начало на интервал, n - край на интервал, x - резултат
        int n, m, x=1; 
     
        cout << "m = ";
        cin >> m;
        cout << "n = ";
        cin >> n;
        
        multiplication(m, n, x);
        
        return x; 
    }
    
    // --------------------------------------------
    void multiplication(int m, int n, int& x)
    {
        if(m <= n)  
        {
          x *=  m;        
          multiplication(m+1, n, x);
        }
    }
    // ------------------- END --------------------
    Успех!

Правила за публикуване

  • Вие не можете да публикувате теми
  • Вие не можете да отговаряте в теми
  • Вие не можете да прикачвате файлове
  • Вие не можете да редактирате мненията си