نمایش نتایج: از شماره 1 تا 2 , از مجموع 2

موضوع: ضرب دو تا ماتریس????

  1. #1
    کاربرسایت PARS آواتار ها
    تاریخ عضویت
    ۸۷-۰۲-۲۵
    نوشته ها
    666
    سپاس ها
    0
    سپاس شده 0 در 0 پست

    ضرب دو تا ماتریس????

    برنامه ضرب دو ماتريس در ++c C++ برنامه ضرب دو ماتريس در
    راست كليك كنيد و از Encoding گزينه Left to Right Document را انتخاب كنيد

    #include <math.h>
    #include <iomanip.h>
    #include <stdlib.h>
    #include <iostream.h>
    #include <conio.h>
    int main()
    {
    clrscr();
    int r=0,d=0,s=0,f=0,t=0,n,a[99],b[99],sum=0,m=0;
    cout<<"what is martabe Matrix (1-9) ?";
    cin>>n;
    cout<<"Enter "<<n*n<<" number integer for matrix A\n";
    for(int i=0;i<n*n;++i)
    cin>>a[i];
    cout<<"Enter "<<n*n<<" number integer for matrix B\n";
    for(i=0;i<n*n;++i)
    cin>>b[i];
    for(int k=0;k<(n*n);++k){
    for(i=0;i<n{
    for(int j=0;j<n;++j){
    if(r==n) {
    d+=n;
    r=0; }
    if(f/n==1) {
    s+=1;
    if(s==3) s=0;
    f=0; }
    t=a[i+d]*b[j*n+s];
    sum+=t;
    ++i;
    if(j==n-1) {
    cout<<sum<<" ";
    sum=0;
    m+=1;
    if(m==n) {
    cout<<endl;
    m=0; }
    r+=1; }
    f+=1;}}}
    return 0; }

  2. #2
    کاربرسایت PARS آواتار ها
    تاریخ عضویت
    ۸۷-۰۲-۲۵
    نوشته ها
    666
    سپاس ها
    0
    سپاس شده 0 در 0 پست

    Re: ضرب دو تا ماتریس????

    استفاده از thread ها در C# مقدمه :

    Thread ها ابزاری مفید هستند که به کاربر اجازه می دهند تا اعمالی رابه صورت موازی (Parallel) و همزمان انجام دهد. با استفاده از Thread ها،از امکانات MultiTasking در یک برنامه استفاده می کنید. در ضمن می توانیدیک قسمت از برنامه را متوقف و یا به جریان بیندازید. در استفاده ازThreadها بسیار مراقب باشید چون منابع شما محدود هستند.
    Threadها هنگامی که باید منتظر پاسخ بخشی دیگر از برنامه باشید، بسیار بهکار می آیند و شما می توانید در حالی که بخشی از برنامه متوقف است و منتظرپاسخ است بقیه قسمت ها را پیش ببرید که سرعت برنامه های شما را به طرزقابل ملاحظه ای افزایش می دهد..
    در C# کلاسهایی برای استفاده از Thread ها وجود دارندکه درSystem.Threading قرار دارند. در ادامه یک مورد ساده ی استفاده از Threadشرح داده می شود. امید است که مورد استفاده واقع شود.

    کار با Thread ها :

    در ابتدا باید یک Object از نوع System.Threading.Thread ایجاد کنید.کلاس Thread تنها یک ایجادکننده (Constructor) دارد که یک ThreadStart (کهیک Delegate است) می گیرد. برای توابع static می توان مستقیما نام تابع راارسال کرد. تابع نوشته شده باید هیچ پارامتری نداشته باشد و هیچ مقداری رانیز برنگرداند (یعنی void باشد) به این علت که تابع اصلی این گونه تعریفشده است. کد:
    public static void MyCallbackFunction()
    {
    while (true)
    {
    System.Console.WriteLine(“ Hey!, My Thread Function Running”);
    }
    }


    Thread MyThread = new Thread(new ThreadStart (MyCallbackFunction));
    MyThread.Start();
    بعد از ایجاد Thread می توانید آن را با Start، شروع کنید. Thread را میتوانید با Abort بکشید که باعث ایجاد یک ThreadAbortException خواهد شد.با Suspend و Resume هم می توانید Thread را متوقف و یا مجددا به حرکتبیندازید.
    Thread یکی از حالت های زیر را دارد که با ThreadState قابل مشاهده است:
    Thread State Description Unstarted Thread is Created within the commonlanguage run time but not Started still. Running After a Thread callsStart method WaitSleepJoin After a Thread calls its wait or Sleep orJoin method. Suspended Thread Responds to a Suspend method call.Stopped The Thread is Stopped, either normally or Aborted. اولویتThread نیز با ThreadPriority تعیین می شود که یکی از حالت های زیر رادارد:
    Lowest, BelowNormal, Normal, AboveNormal, Highest
    که در حالت عادی Normal است.

    مثال های بیشتر برای MultiTreading

    برنامه زیر یک برنامه ی مفید و ساده برای دریافتن مفهوم MultiThread است که به همراه خروجی برنامه آورده می شود: کد:
    using System;
    using System.Threading;
    class Tester
    {
    static void Main( )
    {
    // make an instance of this class
    Tester t = new Tester( );
    // run outside static Main
    t.DoTest( );
    }
    public void DoTest( )
    {
    // create a thread for the Incrementer
    // pass in a ThreadStart delegate
    // with the address of Incrementer
    Thread t1 = new Thread( new ThreadStart(Incrementer) );
    // create a thread for the Decrementer
    // pass in a ThreadStart delegate
    // with the address of Decrementer
    Thread t2 =
    new Thread( new ThreadStart(Decrementer) );
    // start the threads
    t1.Start( );
    t2.Start( );
    }
    // demo function, counts up to 1K
    public void Incrementer( )
    {
    for (int i =0;i<1000;i++)
    {
    Console.WriteLine("Incrementer: {0}", i);
    }
    }
    // demo function, counts down from 1k
    public void Decrementer( )
    {
    for (int i = 1000;i>=0;i--)
    {
    Console.WriteLine("Decrementer: {0}", i);
    }
    }
    }

    Output:
    Incrementer: 102
    Incrementer: 103
    Incrementer: 104
    Incrementer: 105
    Incrementer: 106
    Decrementer: 1000
    Decrementer: 999
    Decrementer: 998
    Decrementer: 997
    پیوند زدن Thread ها و متوقف کردن آنها

    بااستفاده از join می توانید Thread ها را به هم وصل کنید و باSeleep برای لحظاتی چند متوقف کنید. یک نمونه ی ساده در زیر آمده است :
    کد:
    using System;
    using System.Threading;
    class Tester
    {
    private int counter = 0;
    static void Main( )
    {
    // make an instance of this class
    Tester t = new Tester( );
    // run outside static Main
    t.DoTest( );
    }
    public void DoTest( )
    {
    Thread t1 = new Thread( new ThreadStart(Incrementer) );
    t1.IsBackground=/.\content/fa/kb/thread/true;
    t1.Name = "ThreadOne";
    t1.Start( );
    Console.WriteLine("Started thread {0}",
    t1.Name);
    Thread t2 = new Thread( new ThreadStart(Incrementer) );
    t2.IsBackground=/.\content/fa/kb/thread/true;
    t2.Name = "ThreadTwo";
    t2.Start( );
    Console.WriteLine("Started thread {0}",
    t2.Name);
    t1.Join( );
    t2.Join( );

    // after all threads end, print a message
    Console.WriteLine("All my threads are done.");
    }
    // demo function, counts up to 1K
    public void Incrementer( )
    {
    try
    {
    while (counter < 1000)
    {
    int temp = counter;
    temp++; // increment
    // simulate some work in this method
    Thread.Sleep(1);
    // assign the decremented value
    // and display the results
    counter = temp;
    Console.WriteLine("Thread {0}. Incrementer: {1}",Thread.CurrentThread.Name,counter);
    }
    }
    catch (ThreadInterruptedException)
    {
    Console.WriteLine("Thread {0} interrupted! Cleaning up...",Thread.CurrentThread.Name);
    }
    finally
    {
    Console.WriteLine("Thread {0} Exiting. ",Thread.CurrentThread.Name);
    }
    }
    }


    Output:
    Started thread ThreadOne
    Started thread ThreadTwo
    Thread ThreadOne. Incrementer: 1
    Thread ThreadOne. Incrementer: 2
    Thread ThreadOne. Incrementer: 3
    Thread ThreadTwo. Incrementer: 3
    Thread ThreadTwo. Incrementer: 4
    Thread ThreadOne. Incrementer: 4
    Thread ThreadTwo. Incrementer: 5
    Thread ThreadOne. Incrementer: 5
    Thread ThreadTwo. Incrementer: 6
    Thread ThreadOne. Incrementer: 6
    استفاده از InterLock

    یکی دیگر از امکاناتی که در اختیار دارید، امکان InterLock است کهبراساس آن می توانید برای برنامه های در حال اجرا Lock تعریف کنید. برایاین کار C# تابعی به نام InterLock در اختیار شما قرار می دهد که شامل دوتابع Increment و Decrement است.
    نمونه ی ساده ای از نحوه استفاده و خروجی تابع در زیر آمده است:
    کد:
    public void Incrementer( )
    {
    try
    {
    while (counter < 1000)
    {
    Interlocked.Increment(ref counter);
    // simulate some work in this method
    Thread.Sleep(1);
    // assign the decremented value
    // and display the results
    Console.WriteLine("Thread {0}. Incrementer: {1}", Thread.CurrentThread.Name,counter);
    }
    }
    }

    Output (excerpts):
    Started thread ThreadOne
    Started thread ThreadTwo
    Thread ThreadOne. Incrementer: 1
    Thread ThreadTwo. Incrementer: 2
    Thread ThreadOne. Incrementer: 3
    Thread ThreadTwo. Incrementer: 4
    Thread ThreadOne. Incrementer: 5
    Thread ThreadTwo. Incrementer: 6
    Thread ThreadOne. Incrementer: 7
    Thread ThreadTwo. Incrementer: 8
    Thread ThreadOne. Incrementer: 9
    Thread ThreadTwo. Incrementer: 10
    Thread ThreadOne. Incrementer: 11
    Thread ThreadTwo. Incrementer: 12
    Thread ThreadOne. Incrementer: 13
    Thread ThreadTwo. Incrementer: 14
    Thread ThreadOne. Incrementer: 15
    Thread ThreadTwo. Incrementer: 16
    Thread ThreadOne. Incrementer: 17

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. تندیس های زندگی در سراسر دنیا!
    توسط HRG در انجمن گالری عکس
    پاسخ ها: 7
    آخرين نوشته: شنبه ۰۵ دی ۸۸, ۲۰:۳۰
  2. پاسخ ها: 1
    آخرين نوشته: دوشنبه ۱۶ آذر ۸۸, ۲۲:۱۲
  3. پرواز مرد بالدار از فرانسه به انگلیس
    توسط mina در انجمن بایگانی اخبار حوادث
    پاسخ ها: 0
    آخرين نوشته: دوشنبه ۰۸ مهر ۸۷, ۰۱:۰۸
  4. باز کردن فایلهای آفیس 2007 با آفیس های قدیمی
    توسط SAREH در انجمن نرم افزار
    پاسخ ها: 0
    آخرين نوشته: شنبه ۳۰ شهریور ۸۷, ۰۰:۴۸
  5. پاسخ ها: 0
    آخرين نوشته: چهارشنبه ۰۹ مرداد ۸۷, ۲۳:۲۷

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •