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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2012, 09:49   #1
Jme
Новичок
Джуниор
 
Регистрация: 27.05.2012
Сообщений: 2
По умолчанию С++ умножение

Здравствуйте.
Мне нужно добавить вот в эту программу метод, умножающий большое число на однорязрядное десятичное число(char).
помогите пожалуйста
Код:
using namespace std;
class SimpleClass
{
public:
SimpleClass()
                {
                chis=(char*)malloc(1000);
                j=0;
                fl=0;
                }
 int vvod();
 int proverka();
 int memory();
 void show();
 void reverse();
 //void gotoxy(int x, int y);
 void potok();
 ~SimpleClass()
private:
        char* chis;
        char ch;
        bool fl;
        int i,j,r,res,n,m,x,y;
};
int main()
{	 
         SimpleClass Object;
                 if(Object.memory()==3)
                 return 0;
         cout<<"object bil cozdan";
         cout<<endl;
         Object.vvod();
         Object.reverse();
         Object.proverka();
         return 0;
}
void SimpleClass::potok()
{
prev: cout<<"vvedite chislo"<<endl;
prev1:          i=0;
                ch=getch();
                                if (ch==8)
                                goto prev1;
                if (ch=='0')
                {
                cout<<"\n"<<endl;
                cout<<"chislo ne mozhet nachinatsya s 0"<<endl;
                cout<<endl;
                goto prev1;
                }
        cout<<ch;
   jmp:   while(ch!=13)
    {
                if(ch==8)
                                {
                --i;
                                if(i==0)
                                {
                system ("cls");
                cout<<"vi sterli chislo chelikom"<<endl;
                                goto prev;
                                }
                                system ("cls");
                                for(j=0;j<i;j++)
                                cout<<chis[j];
                                ch=getch();
                                cout<<ch;
                                goto jmp;
                                }
                                if ((ch>'9')||(ch<'0'))
                                {
                                cout<<endl;
                                cout<<"oshibka BBoda"<<endl;
                                cout<<endl;
                                goto prev;
                                }
                chis[i++]=ch;
                ch=getch();
                cout<<ch;
                if(i>=999)
                {
                                cout<<endl;
                                cout<<"slishkom bolshoe chislo,BBdite chislo pomenshe"<<endl;
                goto prev;
                }
    }
}
void SimpleClass::reverse()      //разворот
{
        m=i;
                for(j=0;j<i/2;j++)
                {
                ch=chis[j];
                chis[j]=chis[m-1];
                chis[m---1]=ch;
                }
                chis[i]=-1;
        //show();
}
void SimpleClass::show()
{
        cout<<endl;
        for(j=0;j<i;j++)
        cout<<chis[j];
        cout<<endl;
}
int SimpleClass::vvod()
{
        fl=0;
        i=0;
        r=1;
        potok();
                return 0;
                cout<<endl;
}
int SimpleClass::memory()
{
        if (!chis)
                 {
             cout<<endl;
                 cout<<"pamyat ne bila Bidelena, object ne bil sozdan";
                 return 3;
                 }
}
int SimpleClass::proverka()
{

        res=chis[0]-48;
        for(j=0;j<i-1;j++)
         {
        if(chis[j+1]==-1)
        break;
        res+=((chis[j+1]-48)*((10*r)%277));
        r=(10*r)%277;
          }
        if(!(res%277))
        {
                system ("cls");
        cout<<"vvedennoe chislo kratno 277";
        again: 
                        cout<<"\n";
                        cout<<"hotite vvesti eshe raz?  y/n";
                                ch=getch();
                                if (ch=='y')
                                                                {
                                                                cout<<endl;
                                                                vvod();
                                                                reverse();
                                                                proverka();
                                                                }
                                if (ch=='n')
                                return 0;
                                if((ch!='n')||(ch!='y'))
                                goto again;
        }
        else
        {
                n=(res%277);
                cout<<"vvedennoe chislo ne delitsya na 277 naczelo, ostatok "<<n;
                                cout<<"\n";
                                goto again;
        }

}

Последний раз редактировалось Stilet; 27.05.2012 в 10:25.
Jme вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Умножение X_RaY Помощь студентам 10 15.08.2011 22:22
Умножение panuta Microsoft Office Excel 3 31.05.2010 17:42
Умножение фантомаз Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 20.05.2010 11:40
Умножение KoBRaAndrey Общие вопросы Delphi 4 03.10.2009 12:23
умножение PAWLO1993 Паскаль, Turbo Pascal, PascalABC.NET 4 29.07.2008 18:55