.
Отговор в тема
Резултати от 1 до 6 от общо 6
  1. #1

    информатика за 10клас

    Моля да ми помогнете по информатика с една задача:

    Да се състави програма, която въвежда от клавиатурата цяло положително четирицифрено число. Програмата да извежда сумата и произведението от цифрите на числото.
    Примерен вход:1234 Примерен изход:10 24
    Примерен вход:2508 Примерен изход:15 0

    Моляяя Ви, помагайте ии ако някой я реши моля да обясни как го е направил..

  2. #2
    мога да ти е реша ти с какво можеш да ми помогнеш

  3. #3
    Емии не знамм. Какво искаш?

  4. #4
    по английски добра ли си? трябва ми да напиша едно кратко съчинение?

  5. #5
    Мега фен Аватара на Chacho
    Регистриран на
    Nov 2006
    Мнения
    15 573

    Re: информатика за 10клас

    Цитирай Първоначално написано от bubsi1
    Моля да ми помогнете по информатика с една задача:

    Да се състави програма, която въвежда от клавиатурата цяло положително четирицифрено число. Програмата да извежда сумата и произведението от цифрите на числото.
    Примерен вход:1234 Примерен изход:10 24
    Примерен вход:2508 Примерен изход:15 0

    Моляяя Ви, помагайте ии ако някой я реши моля да обясни как го е направил..
    Не знам на какъв език е, ще карам на С++
    Код:
    #include <iostream>
    using namespace std;
    
    int main()
    {
        int n, s, p;
        cout<<"Vuvedete chetiricifreno chislo n="; cin>>n;
        while (n<1000 || n>9999)
        {
           cout<<"\nVuvedete chetiricifreno chislo!!";  
           cout<<"\nn="; cin>>n;
        }
        
         s=0; p=1;
        while (n!=0)
        {
           s+=n%10;
           p*=n%10;
           n/=10;
         }
    
         cout<<"\n"<<s<<" "<<p;
         
         std::cin.ignore(std::numeric_limits<streamsize>::max(), '\n');
         std::cin.get();
    
         return 0;
    }
    Идеята е следната:

    Въвеждаме число n.

    След това проверяваме дали числото е между 1000 и 9999 (положително четирицифрено). Ако не е, питаме за повторно въвеждане, докато не се въведе такова. Това го постигаме чрез първия while.

    Нулираме сумата и произведението (s=0 първоначално, а р=1 първоначално, защото ако беше 0, винаги щеше да си остава нула, по каквото и да го умножим). След това ще вадим цифрите и на всяка стъпка ще прибавяме извадената в сумата и ще умножаваме с нея произведението. Така докато не свършат цифрите.

    Как вадим цифри? Като раделим n по модул 10 (връща остатакът от деление на 10), лесно се забелязва, че ни дава последната цифра. Ето например 1394 : 10 = 139 и остатък 4. По този начин, ползвайки n%10, получаваме последната. Въпросът е, като сме я получили, как да преминем към следващата. Като разделим с целочислено деление на 10, всъщност получаваме числото без последната цифра. Защо? да проверим отново с 1394:10 = 139 и остатък 4, но целочисленото деление не запазва остатъкът и всъщност имаме 1394/10 = 139. Така n/=10 ни дава числото без последната цифра. Повтаряме тези две стъпки (запазване на остатък и премахване на цифра), докато не свършат цифрите. Тогава s и p ще са придобили търсените стойности.


    Код:
         std::cin.ignore(std::numeric_limits<streamsize>::max(), '\n');
         std::cin.get();
    Тези редове просто казват на програмата да изчака да цъкнеш enter, преди да се затвори, за да можеш да видиш резултата.
    Има 10 вида хора. Тези, които могат да четат двоичен код и тези, които не могат.

  6. #6
    Амии попринцип трябва на Visual Basic, това дали ще стане? Иначе мерси много!

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

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